From 67fe12625cad98dd37766f29c53aa9e5d4deac5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Asbj=C3=B8rn=20Hansen?= Date: Fri, 3 Mar 2017 14:46:33 +0100 Subject: [PATCH 01/11] Added missing handling for LoggingEvent properties Occasionally we need properties tied to a specific event and not a ThreadContext which is shared across the entire thread. This hooks into the built in functionality in log4net for this scenario. --- source/log4net-loggly/LogglyFormatter.cs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/source/log4net-loggly/LogglyFormatter.cs b/source/log4net-loggly/LogglyFormatter.cs index a67b48b..de2315c 100644 --- a/source/log4net-loggly/LogglyFormatter.cs +++ b/source/log4net-loggly/LogglyFormatter.cs @@ -7,6 +7,7 @@ using System.Dynamic; using Newtonsoft.Json.Linq; using System.Text; +using System.Collections; namespace log4net.loggly { @@ -75,6 +76,27 @@ private string PreParse(LoggingEvent loggingEvent) _loggingInfo.exception = _exceptionInfo; } + //handling loggingevent properties + if(loggingEvent.Properties.Count > 0) + { + var properties = (IDictionary)_loggingInfo; + foreach(DictionaryEntry property in loggingEvent.Properties) + { + var fixedProperty = property.Value as IFixingRequired; + object propertyValue; + if(fixedProperty != null && fixedProperty.GetFixedObject() != null) + { + propertyValue = fixedProperty.GetFixedObject(); + } + else + { + propertyValue = property.Value; + } + + properties[(string)property.Key] = propertyValue; + } + } + //handling threadcontext properties string[] _threadContextProperties = ThreadContext.Properties.GetKeys(); if (_threadContextProperties != null && _threadContextProperties.Any()) From a0d01afe69b914ee7b71506e213312752ccfdc0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Asbj=C3=B8rn=20Hansen?= Date: Thu, 9 Mar 2017 09:19:46 +0100 Subject: [PATCH 02/11] updated gitignore --- .gitignore | 293 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 284 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index aa2e530..2c220b2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,284 @@ -*.user -*.suo -*.dotCover -_ReSharper* -source/_ReSharper.log4net-loggly/* -source/log4net-loggly-console/bin/* -source/log4net-loggly-console/obj/* -source/log4net-loggly/bin/* -source/log4net-loggly/obj/* \ No newline at end of file + +# Created by https://www.gitignore.io/api/visualstudio + +### VisualStudio ### +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# 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/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# 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 + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ +**/Properties/launchSettings.json + +*_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 +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# 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 + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# 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 + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# 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 +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt + +# 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/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# 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 +node_modules/ + +# Typescript v1 declaration files +typings/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# 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 +paket-files/ + +# FAKE - F# Make +.fake/ + +# JetBrains Rider +.idea/ +*.sln.iml + +# CodeRush +.cr/ + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# End of https://www.gitignore.io/api/visualstudio From 2088edbf7293a82dd526364dd30a66fa7720fecc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Asbj=C3=B8rn=20Hansen?= Date: Thu, 9 Mar 2017 09:22:30 +0100 Subject: [PATCH 03/11] added empty unit test project --- .../Properties/AssemblyInfo.cs | 36 +++++++++ .../log4net-loggly.UnitTests.csproj | 78 +++++++++++++++++++ source/log4net-loggly.sln | 20 ++++- 3 files changed, 132 insertions(+), 2 deletions(-) create mode 100644 source/log4net-loggly.UnitTests/Properties/AssemblyInfo.cs create mode 100644 source/log4net-loggly.UnitTests/log4net-loggly.UnitTests.csproj diff --git a/source/log4net-loggly.UnitTests/Properties/AssemblyInfo.cs b/source/log4net-loggly.UnitTests/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..94f16a9 --- /dev/null +++ b/source/log4net-loggly.UnitTests/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("log4net-loggly.UnitTests")] +[assembly: AssemblyDescription("Unit tests for the log4net-loggly project")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Loggly")] +[assembly: AssemblyProduct("log4net-loggly.UnitTests")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("3956c2cb-dab1-40a6-ac25-8ac6a6f577aa")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/source/log4net-loggly.UnitTests/log4net-loggly.UnitTests.csproj b/source/log4net-loggly.UnitTests/log4net-loggly.UnitTests.csproj new file mode 100644 index 0000000..fc25535 --- /dev/null +++ b/source/log4net-loggly.UnitTests/log4net-loggly.UnitTests.csproj @@ -0,0 +1,78 @@ + + + + Debug + AnyCPU + {3956C2CB-DAB1-40A6-AC25-8AC6A6F577AA} + Library + Properties + log4net_loggly.UnitTests + log4net-loggly.UnitTests + v4.6.1 + 512 + {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 10.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages + False + UnitTest + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + False + + + False + + + False + + + False + + + + + + + + \ No newline at end of file diff --git a/source/log4net-loggly.sln b/source/log4net-loggly.sln index d5808ee..40496c6 100644 --- a/source/log4net-loggly.sln +++ b/source/log4net-loggly.sln @@ -1,10 +1,14 @@  -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "log4net-loggly", "log4net-loggly\log4net-loggly.csproj", "{ABE2B1B6-A83C-4604-AF87-FAAC3976530D}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "log4net-loggly-console", "log4net-loggly-console\log4net-loggly-console.csproj", "{0FA10015-A535-484E-8700-C06893FCE2BB}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "log4net-loggly.UnitTests", "log4net-loggly.UnitTests\log4net-loggly.UnitTests.csproj", "{3956C2CB-DAB1-40A6-AC25-8AC6A6F577AA}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -35,6 +39,18 @@ Global {0FA10015-A535-484E-8700-C06893FCE2BB}.Release|Mixed Platforms.Build.0 = Release|x86 {0FA10015-A535-484E-8700-C06893FCE2BB}.Release|x86.ActiveCfg = Release|x86 {0FA10015-A535-484E-8700-C06893FCE2BB}.Release|x86.Build.0 = Release|x86 + {3956C2CB-DAB1-40A6-AC25-8AC6A6F577AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3956C2CB-DAB1-40A6-AC25-8AC6A6F577AA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3956C2CB-DAB1-40A6-AC25-8AC6A6F577AA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {3956C2CB-DAB1-40A6-AC25-8AC6A6F577AA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {3956C2CB-DAB1-40A6-AC25-8AC6A6F577AA}.Debug|x86.ActiveCfg = Debug|Any CPU + {3956C2CB-DAB1-40A6-AC25-8AC6A6F577AA}.Debug|x86.Build.0 = Debug|Any CPU + {3956C2CB-DAB1-40A6-AC25-8AC6A6F577AA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3956C2CB-DAB1-40A6-AC25-8AC6A6F577AA}.Release|Any CPU.Build.0 = Release|Any CPU + {3956C2CB-DAB1-40A6-AC25-8AC6A6F577AA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {3956C2CB-DAB1-40A6-AC25-8AC6A6F577AA}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {3956C2CB-DAB1-40A6-AC25-8AC6A6F577AA}.Release|x86.ActiveCfg = Release|Any CPU + {3956C2CB-DAB1-40A6-AC25-8AC6A6F577AA}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From 560f3d17ef76a0993a09595f8313fe614cd08c01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Asbj=C3=B8rn=20Hansen?= Date: Thu, 9 Mar 2017 09:44:53 +0100 Subject: [PATCH 04/11] added team shared resharper settings --- source/ReSharperTeamShared.DotSettings | 3 +++ source/log4net-loggly.sln.DotSettings | 6 ++++++ 2 files changed, 9 insertions(+) create mode 100644 source/ReSharperTeamShared.DotSettings create mode 100644 source/log4net-loggly.sln.DotSettings diff --git a/source/ReSharperTeamShared.DotSettings b/source/ReSharperTeamShared.DotSettings new file mode 100644 index 0000000..1375fa0 --- /dev/null +++ b/source/ReSharperTeamShared.DotSettings @@ -0,0 +1,3 @@ + + <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /> \ No newline at end of file diff --git a/source/log4net-loggly.sln.DotSettings b/source/log4net-loggly.sln.DotSettings new file mode 100644 index 0000000..62c4425 --- /dev/null +++ b/source/log4net-loggly.sln.DotSettings @@ -0,0 +1,6 @@ + + C:\Projects\Forks\log4net-loggly\source\ReSharperTeamShared.DotSettings + ..\ReSharperTeamShared.DotSettings + True + True + 1 \ No newline at end of file From e2fdc72ac63210e775abe9899177c15db5680ea0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Asbj=C3=B8rn=20Hansen?= Date: Thu, 9 Mar 2017 09:45:58 +0100 Subject: [PATCH 05/11] Quick resharper code cleanup of LogglyFormatter --- source/log4net-loggly/LogglyFormatter.cs | 679 ++++++++++++----------- 1 file changed, 348 insertions(+), 331 deletions(-) diff --git a/source/log4net-loggly/LogglyFormatter.cs b/source/log4net-loggly/LogglyFormatter.cs index de2315c..8abde0e 100644 --- a/source/log4net-loggly/LogglyFormatter.cs +++ b/source/log4net-loggly/LogglyFormatter.cs @@ -1,334 +1,351 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using log4net.Core; -using Newtonsoft.Json; -using System.Dynamic; -using Newtonsoft.Json.Linq; -using System.Text; -using System.Collections; - namespace log4net.loggly { - public class LogglyFormatter : ILogglyFormatter - { - private Process _currentProcess; - private ILogglyAppenderConfig _config; - public int EVENT_SIZE = 1000 * 1000; - - public LogglyFormatter() - { - _currentProcess = Process.GetCurrentProcess(); - } - - public virtual void AppendAdditionalLoggingInformation(ILogglyAppenderConfig config, LoggingEvent loggingEvent) - { - this._config = config; - } - - public virtual string ToJson(LoggingEvent loggingEvent) - { - return PreParse(loggingEvent); - } - - public virtual string ToJson(IEnumerable loggingEvents) - { - return JsonConvert.SerializeObject(loggingEvents.Select(PreParse),new JsonSerializerSettings(){ - ReferenceLoopHandling = ReferenceLoopHandling.Ignore - }); - } - - public virtual string ToJson(string renderedLog, DateTime timeStamp) - { - return ParseRenderedLog(renderedLog, timeStamp); - } - - /// - /// Formats the log event to various JSON fields that are to be shown in Loggly. - /// - /// - /// - private string PreParse(LoggingEvent loggingEvent) - { - //formating base logging info - dynamic _loggingInfo = new ExpandoObject(); - _loggingInfo.timestamp = loggingEvent.TimeStamp.ToString(@"yyyy-MM-ddTHH\:mm\:ss.fffzzz"); - _loggingInfo.level = loggingEvent.Level.DisplayName; - _loggingInfo.hostName = Environment.MachineName; - _loggingInfo.process = _currentProcess.ProcessName; - _loggingInfo.threadName = loggingEvent.ThreadName; - _loggingInfo.loggerName = loggingEvent.LoggerName; - - //handling messages - object _loggedObject = null; - string _message = GetMessageAndObjectInfo(loggingEvent, out _loggedObject); - - if (_message != string.Empty) - { - _loggingInfo.message = _message; - } - - //handling exceptions - dynamic _exceptionInfo = GetExceptionInfo(loggingEvent); - if (_exceptionInfo != null) - { - _loggingInfo.exception = _exceptionInfo; - } - - //handling loggingevent properties - if(loggingEvent.Properties.Count > 0) - { - var properties = (IDictionary)_loggingInfo; - foreach(DictionaryEntry property in loggingEvent.Properties) - { - var fixedProperty = property.Value as IFixingRequired; - object propertyValue; - if(fixedProperty != null && fixedProperty.GetFixedObject() != null) - { - propertyValue = fixedProperty.GetFixedObject(); - } - else - { - propertyValue = property.Value; - } - - properties[(string)property.Key] = propertyValue; - } - } - - //handling threadcontext properties - string[] _threadContextProperties = ThreadContext.Properties.GetKeys(); - if (_threadContextProperties != null && _threadContextProperties.Any()) - { - var p = _loggingInfo as IDictionary; - foreach (string key in _threadContextProperties) - { - if ((ThreadContext.Properties[key] as IFixingRequired) != null - && (ThreadContext.Properties[key] as IFixingRequired).GetFixedObject() != null) - { - p[key] = (ThreadContext.Properties[key] as IFixingRequired).GetFixedObject(); - } - else - { - p[key] = ThreadContext.Properties[key].ToString(); - } - } - } - - //handling logicalthreadcontext properties - if (this._config.LogicalThreadContextKeys != null) - { - var ltp = _loggingInfo as IDictionary; - string[] _LogicalThreadContextProperties = this._config.LogicalThreadContextKeys.Split(','); - foreach (string key in _LogicalThreadContextProperties) - { - if (LogicalThreadContext.Properties[key] != null) - { - if ((LogicalThreadContext.Properties[key] as IFixingRequired) != null - && (LogicalThreadContext.Properties[key] as IFixingRequired).GetFixedObject() != null) - { - ltp[key] = (LogicalThreadContext.Properties[key] as IFixingRequired).GetFixedObject(); - } - else - { - ltp[key] = LogicalThreadContext.Properties[key].ToString(); - } - } - } - } - - //handling globalcontext properties - if (this._config.GlobalContextKeys != null) - { - var gcp = _loggingInfo as IDictionary; - string[] _globalContextProperties = this._config.GlobalContextKeys.Split(','); - foreach (string key in _globalContextProperties) - { - if (GlobalContext.Properties[key] != null) - { - if ((GlobalContext.Properties[key] as IFixingRequired) != null - && (GlobalContext.Properties[key] as IFixingRequired).GetFixedObject() != null) - { - gcp[key] = (GlobalContext.Properties[key] as IFixingRequired).GetFixedObject(); - } - else - { - gcp[key] = GlobalContext.Properties[key].ToString(); - } - } - } - } - - string jsonMessage = string.Empty; - if (TryGetParsedJsonFromLog(_loggingInfo, _loggedObject, out jsonMessage)) - { - return jsonMessage; - } - else - { - //converting event info to Json string - return JsonConvert.SerializeObject(_loggingInfo, - new JsonSerializerSettings() - { - ReferenceLoopHandling = ReferenceLoopHandling.Ignore, - }); - } - } - - /// - /// Merged Rendered log and formatted timestamp in the single Json object - /// - /// - /// - /// - private string ParseRenderedLog(string log, DateTime timeStamp) - { - dynamic _loggingInfo = new ExpandoObject(); - _loggingInfo.timestamp = timeStamp.ToString(@"yyyy-MM-ddTHH\:mm\:ss.fffzzz"); - - string jsonMessage = string.Empty; - if (TryGetParsedJsonFromLog(_loggingInfo, log, out jsonMessage)) - { - return jsonMessage; - } - else - { - _loggingInfo.message = log; - return JsonConvert.SerializeObject(_loggingInfo, - new JsonSerializerSettings() - { - PreserveReferencesHandling = PreserveReferencesHandling.Arrays, - ReferenceLoopHandling = ReferenceLoopHandling.Ignore, - }); - } - } - - /// - /// Returns the exception information. Also takes care of the InnerException. - /// - /// - /// - private object GetExceptionInfo(LoggingEvent loggingEvent) - { - if (loggingEvent.ExceptionObject == null) - return null; - - dynamic exceptionInfo = new ExpandoObject(); - exceptionInfo.exceptionType = loggingEvent.ExceptionObject.GetType().FullName; - exceptionInfo.exceptionMessage = loggingEvent.ExceptionObject.Message; - exceptionInfo.stacktrace = loggingEvent.ExceptionObject.StackTrace; - - //most of the times dotnet exceptions contain important messages in the inner exceptions - if (loggingEvent.ExceptionObject.InnerException != null) - { - dynamic innerException = new - { - innerExceptionType = loggingEvent.ExceptionObject.InnerException.GetType().FullName, - innerExceptionMessage = loggingEvent.ExceptionObject.InnerException.Message, - innerStacktrace = loggingEvent.ExceptionObject.InnerException.StackTrace - }; - exceptionInfo.innerException = innerException; - } - return exceptionInfo; - } - - /// - /// Returns a string type message if it is not a custom object, - /// otherwise returns custom object details - /// - /// - /// - private string GetMessageAndObjectInfo(LoggingEvent loggingEvent, out object objInfo) - { - string message = string.Empty; - objInfo = null; - int bytesLengthAllowdToLoggly = EVENT_SIZE; - - if (loggingEvent.MessageObject != null) - { - if (loggingEvent.MessageObject.GetType() == typeof(string) - //if it is sent by using InfoFormat method then treat it as a string message - || loggingEvent.MessageObject.GetType().FullName == "log4net.Util.SystemStringFormat" - || loggingEvent.MessageObject.GetType().FullName.Contains("StringFormatFormattedMessage")) - { - message = loggingEvent.MessageObject.ToString(); - int messageSizeInBytes = Encoding.Default.GetByteCount(message); - if (messageSizeInBytes > bytesLengthAllowdToLoggly) - { - message = message.Substring(0, bytesLengthAllowdToLoggly); - } - } - else - { - objInfo = loggingEvent.MessageObject; - } - } - else - { - //adding message as null so that the Loggly user - //can know that a null object is logged. - message = "null"; - } - return message; - } - - /// - /// Tries to merge log with the logged object or rendered log - /// and converts to JSON - /// - /// - /// - /// - /// - private bool TryGetParsedJsonFromLog(dynamic loggingInfo, object loggingObject, out string _loggingEventJSON) - { - //serialize the dynamic object to string - _loggingEventJSON = JsonConvert.SerializeObject(loggingInfo, - new JsonSerializerSettings() - { - ReferenceLoopHandling = ReferenceLoopHandling.Ignore, - }); - - //if loggingObject is null then we need to go to further step - if (loggingObject == null) - return false; - - try - { - string _loggedObjectJSON = string.Empty; - if (loggingObject.GetType() == typeof(string)) - { - _loggedObjectJSON = loggingObject.ToString(); - } - else - { - _loggedObjectJSON = JsonConvert.SerializeObject(loggingObject, - new JsonSerializerSettings() - { - PreserveReferencesHandling = PreserveReferencesHandling.Arrays, - ReferenceLoopHandling = ReferenceLoopHandling.Ignore, - }); - } - - //try to parse the logging object - JObject jObject = JObject.Parse(_loggedObjectJSON); - JObject jEvent = JObject.Parse(_loggingEventJSON); - - //merge these two objects into one JSON string - jEvent.Merge(jObject, new JsonMergeSettings - { - MergeArrayHandling = MergeArrayHandling.Union - }); - - _loggingEventJSON = jEvent.ToString(); - - return true; - } - catch - { - return false; - } - } - } + using System; + using System.Collections; + using System.Collections.Generic; + using System.Diagnostics; + using System.Dynamic; + using System.Linq; + using System.Text; + using log4net.Core; + using Newtonsoft.Json; + using Newtonsoft.Json.Linq; + + public class LogglyFormatter : ILogglyFormatter + { + private readonly Process _currentProcess; + + public int EVENT_SIZE = 1000 * 1000; + + public LogglyFormatter() + { + _currentProcess = Process.GetCurrentProcess(); + } + + internal ILogglyAppenderConfig Config { private get; set; } + + public virtual void AppendAdditionalLoggingInformation(ILogglyAppenderConfig config, LoggingEvent loggingEvent) + { + Config = config; + } + + public virtual string ToJson(LoggingEvent loggingEvent) + { + return PreParse(loggingEvent); + } + + public virtual string ToJson(IEnumerable loggingEvents) + { + return JsonConvert.SerializeObject( + loggingEvents.Select(PreParse), + new JsonSerializerSettings + { + ReferenceLoopHandling = ReferenceLoopHandling.Ignore + }); + } + + public virtual string ToJson(string renderedLog, DateTime timeStamp) + { + return ParseRenderedLog(renderedLog, timeStamp); + } + + /// + /// Returns the exception information. Also takes care of the InnerException. + /// + /// + /// + private object GetExceptionInfo(LoggingEvent loggingEvent) + { + if (loggingEvent.ExceptionObject == null) + { + return null; + } + + dynamic exceptionInfo = new ExpandoObject(); + exceptionInfo.exceptionType = loggingEvent.ExceptionObject.GetType().FullName; + exceptionInfo.exceptionMessage = loggingEvent.ExceptionObject.Message; + exceptionInfo.stacktrace = loggingEvent.ExceptionObject.StackTrace; + + //most of the times dotnet exceptions contain important messages in the inner exceptions + if (loggingEvent.ExceptionObject.InnerException != null) + { + dynamic innerException = new + { + innerExceptionType = loggingEvent.ExceptionObject.InnerException.GetType().FullName, + innerExceptionMessage = loggingEvent.ExceptionObject.InnerException.Message, + innerStacktrace = loggingEvent.ExceptionObject.InnerException.StackTrace + }; + exceptionInfo.innerException = innerException; + } + + return exceptionInfo; + } + + /// + /// Returns a string type message if it is not a custom object, + /// otherwise returns custom object details + /// + /// + /// + /// + private string GetMessageAndObjectInfo(LoggingEvent loggingEvent, out object objInfo) + { + var message = string.Empty; + objInfo = null; + var bytesLengthAllowdToLoggly = EVENT_SIZE; + + if (loggingEvent.MessageObject != null) + { + if (loggingEvent.MessageObject is string + //if it is sent by using InfoFormat method then treat it as a string message + || loggingEvent.MessageObject.GetType().FullName == "log4net.Util.SystemStringFormat" + || loggingEvent.MessageObject.GetType().FullName.Contains("StringFormatFormattedMessage")) + { + message = loggingEvent.MessageObject.ToString(); + var messageSizeInBytes = Encoding.Default.GetByteCount(message); + if (messageSizeInBytes > bytesLengthAllowdToLoggly) + { + message = message.Substring(0, bytesLengthAllowdToLoggly); + } + } + else + { + objInfo = loggingEvent.MessageObject; + } + } + else + { + //adding message as null so that the Loggly user + //can know that a null object is logged. + message = "null"; + } + return message; + } + + /// + /// Merged Rendered log and formatted timestamp in the single Json object + /// + /// + /// + /// + private string ParseRenderedLog(string log, DateTime timeStamp) + { + dynamic loggingInfo = new ExpandoObject(); + loggingInfo.timestamp = timeStamp.ToString(@"yyyy-MM-ddTHH\:mm\:ss.fffzzz"); + + string jsonMessage; + if (TryGetParsedJsonFromLog(loggingInfo, log, out jsonMessage)) + { + return jsonMessage; + } + + loggingInfo.message = log; + return JsonConvert.SerializeObject( + loggingInfo, + new JsonSerializerSettings + { + PreserveReferencesHandling = PreserveReferencesHandling.Arrays, + ReferenceLoopHandling = ReferenceLoopHandling.Ignore, + }); + } + + /// + /// Formats the log event to various JSON fields that are to be shown in Loggly. + /// + /// + /// + private string PreParse(LoggingEvent loggingEvent) + { + //formating base logging info + dynamic loggingInfo = new ExpandoObject(); + loggingInfo.timestamp = loggingEvent.TimeStamp.ToString(@"yyyy-MM-ddTHH\:mm\:ss.fffzzz"); + loggingInfo.level = loggingEvent.Level.DisplayName; + loggingInfo.hostName = Environment.MachineName; + loggingInfo.process = _currentProcess.ProcessName; + loggingInfo.threadName = loggingEvent.ThreadName; + loggingInfo.loggerName = loggingEvent.LoggerName; + + //handling messages + object loggedObject; + var message = GetMessageAndObjectInfo(loggingEvent, out loggedObject); + + if (message != string.Empty) + { + loggingInfo.message = message; + } + + //handling exceptions + dynamic exceptionInfo = GetExceptionInfo(loggingEvent); + if (exceptionInfo != null) + { + loggingInfo.exception = exceptionInfo; + } + + //handling loggingevent properties + if (loggingEvent.Properties.Count > 0) + { + var properties = (IDictionary)loggingInfo; + foreach (DictionaryEntry property in loggingEvent.Properties) + { + var fixedProperty = property.Value as IFixingRequired; + object propertyValue; + if (fixedProperty != null && fixedProperty.GetFixedObject() != null) + { + propertyValue = fixedProperty.GetFixedObject(); + } + else + { + propertyValue = property.Value; + } + + properties[(string)property.Key] = propertyValue; + } + } + + //handling threadcontext properties + var threadContextProperties = ThreadContext.Properties.GetKeys(); + if (threadContextProperties != null && threadContextProperties.Any()) + { + var p = (IDictionary)loggingInfo; + foreach (var key in threadContextProperties) + { + var fixingRequired = ThreadContext.Properties[key] as IFixingRequired; + if (fixingRequired != null && fixingRequired.GetFixedObject() != null) + { + p[key] = fixingRequired.GetFixedObject(); + } + else + { + p[key] = ThreadContext.Properties[key].ToString(); + } + } + } + + //handling logicalthreadcontext properties + if (Config.LogicalThreadContextKeys != null) + { + var ltp = (IDictionary)loggingInfo; + var logicalThreadContextProperties = Config.LogicalThreadContextKeys.Split(','); + foreach (var key in logicalThreadContextProperties) + { + if (LogicalThreadContext.Properties[key] == null) + { + continue; + } + + var fixingRequired = LogicalThreadContext.Properties[key] as IFixingRequired; + if (fixingRequired != null && fixingRequired.GetFixedObject() != null) + { + ltp[key] = fixingRequired.GetFixedObject(); + } + else + { + ltp[key] = LogicalThreadContext.Properties[key].ToString(); + } + } + } + + //handling globalcontext properties + if (Config.GlobalContextKeys != null) + { + var gcp = (IDictionary)loggingInfo; + var globalContextProperties = Config.GlobalContextKeys.Split(','); + foreach (var key in globalContextProperties) + { + if (GlobalContext.Properties[key] == null) + { + continue; + } + + var fixingRequired = GlobalContext.Properties[key] as IFixingRequired; + if (fixingRequired != null && fixingRequired.GetFixedObject() != null) + { + gcp[key] = fixingRequired.GetFixedObject(); + } + else + { + gcp[key] = GlobalContext.Properties[key].ToString(); + } + } + } + + string jsonMessage; + if (TryGetParsedJsonFromLog(loggingInfo, loggedObject, out jsonMessage)) + { + return jsonMessage; + } + + //converting event info to Json string + return JsonConvert.SerializeObject( + loggingInfo, + new JsonSerializerSettings + { + ReferenceLoopHandling = ReferenceLoopHandling.Ignore, + }); + } + + /// + /// Tries to merge log with the logged object or rendered log + /// and converts to JSON + /// + /// + /// + /// + /// + private bool TryGetParsedJsonFromLog(dynamic loggingInfo, object loggingObject, out string loggingEventJson) + { + //serialize the dynamic object to string + loggingEventJson = JsonConvert.SerializeObject( + loggingInfo, + new JsonSerializerSettings + { + ReferenceLoopHandling = ReferenceLoopHandling.Ignore, + }); + + //if loggingObject is null then we need to go to further step + if (loggingObject == null) + { + return false; + } + + try + { + string loggedObjectJson; + if (loggingObject is string) + { + loggedObjectJson = loggingObject.ToString(); + } + else + { + loggedObjectJson = JsonConvert.SerializeObject( + loggingObject, + new JsonSerializerSettings + { + PreserveReferencesHandling = PreserveReferencesHandling.Arrays, + ReferenceLoopHandling = ReferenceLoopHandling.Ignore, + }); + } + + //try to parse the logging object + var jObject = JObject.Parse(loggedObjectJson); + var jEvent = JObject.Parse(loggingEventJson); + + //merge these two objects into one JSON string + jEvent.Merge( + jObject, + new JsonMergeSettings + { + MergeArrayHandling = MergeArrayHandling.Union + }); + + loggingEventJson = jEvent.ToString(); + + return true; + } + catch + { + return false; + } + } + } } From 6971e8ad3b9ecdbf47023a832589d2e5d3c95092 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Asbj=C3=B8rn=20Hansen?= Date: Thu, 9 Mar 2017 09:47:13 +0100 Subject: [PATCH 06/11] VS really wanted this to be done --- source/log4net-loggly/log4net-loggly.csproj | 135 ++++++++++---------- 1 file changed, 68 insertions(+), 67 deletions(-) diff --git a/source/log4net-loggly/log4net-loggly.csproj b/source/log4net-loggly/log4net-loggly.csproj index 8a7dbcf..5e1eed7 100644 --- a/source/log4net-loggly/log4net-loggly.csproj +++ b/source/log4net-loggly/log4net-loggly.csproj @@ -1,72 +1,73 @@  - - Debug - AnyCPU - 8.0.30703 - 2.0 - {ABE2B1B6-A83C-4604-AF87-FAAC3976530D} - Library - Properties - log4net.loggly - log4net-loggly - v4.0 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - ..\packages\log4net.2.0.3\lib\net40-full\log4net.dll - - - ..\packages\Newtonsoft.Json.8.0.1\lib\net40\Newtonsoft.Json.dll - True - - - - - - - - - - - - - - - - - - - - - - - - - - - - - jB;P&* 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

& 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 z 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

    a?^GO(@8;bhg&7QV}>JTx~Nc3WC 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 z≫WsOVjGfw3*irqDdxgC*FAl;$^|Q|2t$h;+i6H}pAR=Q9ST_~yotXUU|W=s@-a z^t;&${<-@4nU<_q5vK69Rv&1sag(^ye(g*Vifw1QDNGL*43jx&gGI z(v7S>L&LB>-}NqM-@m6DZ%^Q>eW6KNFy}R(JL~Ntph@4PnqNgkx^9wPNH@r^RGA;< z0m7~Zd39yvA1ui1VdN>+k^FmBih-z93u7JMwOJUOPd5*yK^_hTbY)kv-^W*5XE`Tc zTD08ANJlgVjn!wL;7V06Eh}<`PkGIYvPUs3%1@3rVOZjYSy5>qY4VKy1tVk_HUAXa z%e=?Xv=<9m2p9ncg!`D@LH!23>OBK?Kiv8O&xzPXn$Fjdqax08#iA6>4TVljS|H|- zhKNmvCZa12&m2Ip49$h8^&-p60}F|fqS5$1i7}uf$6(V@U7twhI9xPNwm93QBsFW_ z78UT29BfcAFyPCK7)%1Zc`%xmME_RR;_a8pU&1GLCOshCL9++b-DX4?VOH1nXaff% zl7CagheUDgaQdUhKH@2u&U#$+7?-A#C4sRtA<6R_i!@9}=8R?Jd9a?};OHZD`_-^! zxnY8KQY#(b1a)7xaoo+dc%S6ZfM~bBb)W^x%5fTb3J4riftPhREqDIDnm~IYkmYar zT)a5|8hPRTv+HyJgR%F%?mIR7+2-^;R7#B>aNqiG>JCzQ!l_nVMaqE@rdHhcW(dD5 z9H2C$EA+K^=OiitK_IylIHc!61&~R zXtN6)OMCvA73Meu--a%GkNGmQ4sXN~$=`hCApw4>BX&qMDOl9CMg=?zfmTLcLx%r5 zHzY8a4dzaQl4C`Rs?b0(kM1`_v?Hlc4^UNL=8b_15}mAprOh zG8n*-(6E>0;4%cMkLBQ5jQa|F6uh$GbQ=cwb?5#62nt8Z*`j}!r5l=oC$Vlv=~*g! zPo%-4sH!PawdgD6WXO^crJkjEXhuQEQX|U*8p|>Ec9sJr|Nwb@Dm5~Uyb>`8|HxK{d?1aTS>zHzwC>XRFWWk!iI z9g$&KpDxo|P&3Q;$1xVbSgchbg_{quaY zTbTrGS04Nk`d_O!i2aWHcYcMcoonz|B3N3!F96x2Z2iO|(u>4ZChwz_$U?h?Ec5nH zoTvYm-#@z=yj>)mCH+Q=-B) zycI5PoZTT}S!o7eyD| zwoezx7IKi#+b?VkG>$E_hKIspP$A97_8J*K2fd#?^&&fZM~^Z#gchtChEHtG?cvzNmfCO_Y#ck;NqpkDt%zYCx=BKsu{`%d6-WnKXALl*k-q_}pavm=1) zm#TTa0evh~ZOU>C^+0*`$`d=uyI{OE__Y-w1U^=ABct_|GEX5TG+R{mJK3HX3tiI` zi%hb^8e)GIdHee=09Sy+b`h~uXQ}gLyk?M1&IQAr?(pj{&@kncc?KMIAWScGVz(3a zljnNT1jk*44In;Qm6gE)3j?R$C|;TTzhMwZQWbAT>bOkVQ58(XP242p9Db(1B1J6H1XM>GTi>DeAnG= ztTSnChwhlK{aL7|*N)kceLH{9BjMv)kDneT7)YsDoiYAn%n-_UzH%nF*|dElf-_=g zRFbZQV5hS}yJdV|TrsT}l&aj!bAIjMSeL4D1UpUQT?i0%u2F8heXeA(d>WZGQWGJ5 zO)T5A{8AJVXE0^x-7vT=I_@4hvmLpI7%z-88DYu`lb6EYdczA-XHn7{{#o(^m0I;; zO-;@w?|!qj$DdmpuF5n>x}`^*)b#XAe8DBLPPgwcH9s|ADY%Ep5Bc`E?X}@rPwUw0 zg7x#zg%B5mDTBx3G#iEHp(6B4{1CNbC*s6@iHdh7^S97P=(Cb;@8`51n|Nd&v-zrd zEZsSXJhjP=q#qFzwZohILvLMk7_GBVC)~_8?72Cb7CFW0*46rD$tzIb6%C#l%|Dhd zNRcl+$bq*i@*Jxj@78*!rK3vc&O*)w_bNgreZL|gUkbC1H46TDJL0K|Q)`>Qcbc6% zUZk2R&UV9e@QF)s>MH8*40VdYT_|z>WjNKJuW^q(VBM9d*Em`;3z+Gy^rd65kbqe8 zO0sAkcMfmLZ_VsMt@Gir8N%fW1L3Z%KOjZP7j*5K7DxhQRC8G)6bX%eMNKj`coM_63ZY${!>F`dDUE~1KScnByRWz2oXlLk=6`E4{oQr!O_GK6B7HpoJGJhQ5=$KN z=jPMIJt8Nl-k(7C3M}@r7IZ~_a*6j^t_+7(WCYh&)hs8iiGvmhP&XWnVX!og8 z{zU__zSQW~JD@2#G34Qau){P_90~QGH~mtYNxy@w$q3rZ;~YOW7Mz&YTK%s*oMKoB z=qlYar$s%KL??7ZQTE$2`mEzE z6AvIFUx-xC$gl$=YUT;DT5+q!oxcCu=E6Y2-mKk}i6Mh~q^g94@> z-GqVwX4FSCb*X3&?5IMiW|kaCvaOl6R%I~gkFB@*pL=c`U*j-I;;u_(l*@Y@1R#AFQr(=YXUtVGsCEH>NSyTf$0-k8bQK7 zQ_{H%F_@QPrG1N}MV`>i>^*Yse0lK$28m^MR;7aM2B;C`q2n5eGDE^wz6YFwRogzj za;{8JLHY1RW@JWk7xfS3V>M!gu~fZC*Y6~x*D&?=jO_`|X5o~MwKC)xYzIC^$65E4 z>*^`8$O=|g`Y!X^-*rcE>Y96sIwP749ctR$FZ{Q6Z+`=>K&(ffV`dmuk;5t9M(9)$g$aM z?NMb6BKD%?mPSzQGeNp%eZ-s*<&^dT=X2%OK}M+uzF(wnw^SdPk#g>{5sOg+f_{Sw zuw53m>b9itLmaw>`cA_?4fL+5B;QLHiMg)gi9=0|^bD}A=ocXv!)&JAUd9&!sklB7 zK)byO-;Jj!EDgv_l7+%D`#C-$e|8d%Z`X|8OB7h$h8%0Zz9XUfoT5N8m$dE!8gS0O0`lkGsOV{;Mt{h;pyPaS6?+JGN?@)0$$4{cx_Q@vfWuqk5 zg?y)VsZXZQeM7qWQNR0l(I1MSav7;l>(Aol)V(>^K)h~rT&mS)xRL17)x+fQbrP@e%N+fK zDt+708z0GGp1)Clre5ueKrcHTVz;E{-E0&I$ktNYKU1Nz@s#IONr^~q6p1eV4G(nU z4t;#cjW{{Bdk`Fb_IT09g5j`_8W)Q`v!XTdS0he^4#l?0SWug(lYd0*Nyhgh1NbynMieTM$G>nRA{$TS8+%C|&GnJ@h!O8c`ot>Mp?`3r%+o77 z1;0VnL;Tv#RM|-s_E5IT4c0+ejXY=OduJ*rX|j3r)Q`gO5xS zWy39sSH+m4U4gWSbaw6#!7!W3tC)|cf6g<`EifpMNm!3eJ@o9u0EL-xDDi@aI|}_? zVTp~VQ=oPq5y1>aG-2z#ckU1{H;c~c_1Dpz>V$gB1QVI6*;0unH@^>O4{r^f90m_N z40*Tykjiw(%o$=%L@u~5i1r?Q60^uUr<@Fv?j%X2>(re5&NRpLnxyZ6q*n2EC=iwc4k zqrrCRQA-a(TTw;5TGR?7F`4PoVgltjJwR;SebL`{ek=kxUDi}gsJ?XR{)MABsXnc z(&WA<0&f2j&@kalAOO#10cyIlyjWybS?qIqR%aA9$zGO3O=N7#eHE$zR6VRdI6Znv zt3C?IF45VNVbIVwj6j+KerW^y6)XLlJIoVy(*G$k6a32Xr(Hklc8bvE>>USQ7xzrD z;{Wh>8kNPonrTK=+yUgjcti2{9(`g*w^ZW3#?IK|J9-tnxldUSpE?s?M{8UzgP09y z4=f6%esfi{@|66_GeXPxEY$2{M3E*lL8xSR9jY<_PS zMMS#X5#L*{X#MNy+T#`drQ%nCd}(+0^NH^57@Ak-*>B^+==9@V=Ueh8cbGIAz>(kI zP3|)JrgPkVE`3~b3GW_gEaPrQP598Ju6nAaWKwPbNmSJ#M08>tDWqa zu<>KQZG86|ktSiFEEHNF!E&ygfUT7JJpZ}r0B%j7AIpepc@`~aB4cBE5&509xW2Zx zBsCY?^14y8>AeEvTisQCZIZg2&(d%J-L;{zaGB$gV4htwV_b~oci)GHGj9=Th zw|HRDW$8x0QD^oy@!|6yw=@OG?hjx{R5AN(H07c@(q`N$vJIBV;!Rka96E!G&}Lpa zRkNiKu^rji=z8KnUE-EQcIlC!HJE>B?ZeClblT)G((psRU*4vf#zlsmc$j=3g0fJ1 zyF1ULwdI4qvEgt(qW^xe`v;h56a-5)Ttz+NNO-_p-h+??x% z6s%s3sbnp`U8`GxJ=wz$Tl88I4cK=HK(IAQ;&;WSvyMg=e?;btH!r0;goQhz7c;Pb zu~Vh~28%J(Xb4Ky6syw>KQ=b9bmSqNc%?iJX#X6Hq>ULah3ZBEdA32X`5y%A^C7pU zKA(+P2$8FmVeb%xxsBYSJ_C-YbQ_iI9s(*G6D*HCvt65|+pb*OxDJ2`9fHSMQ=B!H zy^ro`rAdn{g@`-C5=Io2rV{LMB{08~tso3ByilUFGl70fu6AD*iu~B9rPTG%06w(G zyCQy((#Vw|*p$BzGO-VXlPiK#6PruR|Aj$5iWnCWj-0nt+MI;T-)ODWe%?^UVq{~Y z;Q^C=C5^3{-38=ImIdo&Zi!s9u7G)A@$$w6ZGu%!9MB6BQ!KXBJ|4vt)jdLW$?1mQ zgkQ68B-2nEju{0$PXA-znmGb)3!>=~8rZ)%YBBRHfn^F{?l`(A1s(VD%>-@S!3w`^ z4%xLPB(Sc4bVVf?N&FQroqi2=DeA;5n?b|szLx(i3nN^-d0yA7Uv&3)MIqu~_wB2$ z*ACcou70}x;I5Iy0mnr1xO%OKRQY_{SMmJ!XuC-j&u>`?A?i1Jp1z!0(H>pf>bNDX zGCqGR6Pzleb=>p)EyJZ^@|))~SLi4soC^96K^sQ5Y8j zRhO#uJfMX7a2AP-DIU~3NT%q1y*4q1t2!unl|o!J-!9ob3~>>(y=0j*8T1vMRpE|r z7*wXGB;qWr9ZOXoVNWL6@4IwRx{$4YnOEm*{)_(dw14=nKrAs4Bqv=QZnvktp>GRu zi&pd$kM+c#J>hav`v=8YuzATd^$d282F2|9^68}UWS7|#_;-r_Nw@Rbib`8?Z^9iM zi&5mK>Xj@T>}krFT4;Nii(nYu8$BMS9GRwZoKzTiOLVZCk)x*isF&uyy6YlbS<|O? zr|zP~+TY7pM+%i39fr`~d80*2xBAZQp?QPFKaacO@T+zKdrQAKajqxdh!fAURgBRCLE72WkmzdaI zo_R02(s<;i;F9*fw<>_rFvqK0gKY3&L~Nm2*0C_v+dSdr{Y-<4edTH1ny)_YBTmFe-Wf?>3 zJFdP{NpevP6m@#I@bL&MC2VICND*`)>72JoTt)9{M(tbga%H0*;uAcy`uEpNrKY2b zkWa75f}zc(fr8pHNu#{jN|po zHPAn7dUr+pAnID}_vp_~Rhzf;N^;V<&$`KQiC2%SY_EYl=nrq@lxb{vavsl7(!=Vb zX}cL@54VD7XGCVMT|zZ?!l)!;+z-@6yC$urT7no?Y}H73L%+o_XAn4H@(~y76Q&s6L{iLrnfI2 z7bqWj5N5EeZEzC%?AyW8&Rc7Ta6pY~X0DyzE1^}JpA?Vy49IYG&-}dcy`9S$CR*os znZ;_e!F^Q0vx=RbX~5KgdxMdb>@ z)27yhfsW#w47^NUB`}W+I-?3apmo)_#DA(XrtVQ(sDaPdj31S`otFYMb;_`h2(CLN zDB7Ruai*Q@19D};GXQpq1jy->K_Z4Hg^QC=Xmb*-%Ga4leK#&DL1}jTZriwrr-&t6 z6}s0AHb1}$miwE9IStI$%(`W3FL#hy1ySN{w zr;E*kNu-L>&YDycM6=<@t#aP<3iO!qXElS})U|Xpm^B^U^@LB{%DoHzI4Ix{LMax) zh!V$XF?N7lnB894mo5mvW}{f^g{L zhp%MsVvy(TH(~+;kDT}g1qdsb-h;#yZd~P!9^9hT{Ag;TWNDN0-$$0W9?!AFAY=>JG4gfBN!ke{Y{{%39QD zhpg z#j;6*(LYEwwact-eK@N8qn?xm8jrKS``X>3!U=cpu5g95vnDCHBIp`eb1Pz`u0WtA zB%66YKj~cjRioFo2oeu2PPK-y1|qGf``K{{km8vu$f!;R_$*bLy{Xs+vp!4phDF&& zwbX7Zx2mLf-woI}Zh%d$AAYhCqfId9$U+U$@pgC1mDv7gP{=yhu$n*|#HbwDROW)F z>ZortRkv^lv$UhJF77a&a&h(-1qh1ww9Okc74Upm!DoVdvFW*tFRnL@hGz z3`phZU}M`#UgUv4%~6IMeKmdiT-ua#lJq2IhPkajQYY_iJYsC^GV-??^1)_eoodsU zjC}gZrIUMg1TkITmIf#FgiO3TgTP$}ERrL}Q$HjAM{Nsav{`(&n!cs4A7cdAfgnPJKs@HD>o~U30P;Z6r3!` z82`f@x5#GvA|UNYoQ(MU){g)X=U%Orx=FWaH6b^p2k?m#hfOYzKBf|sO>Qb?it{uD zyh3y7=e6{>Eeok(`^U$T9g)GAbw+p?|L>B=WYB0O-?b&E!Er@16NO&<1H4Mvi+kv_ zXG`}OQ%7QC5?3@w=Z}oOKPr8UTgp9WnAN3$mquBx-KJz-0z#*vnyY>_$IY&a@ek165|2A zr%^73ncKSAQllrINYAmMybOsX_7@&;hxgn)+rocW?-NsL*@~iRiyqNQ()KNkK@;e6- zYu$q5X>SW-K4UPd{^i9F3%)pbhdRAXfn(@G@Lg>fl|v`ij;SoDZ) zYvge=FJ(O!nJ;n{G@f{vi@W(Do>F}|bZ0i{S#bZ%FmC`|bbg4P7X@$8T(k(1&)Vv~ z`?0$q5AF6XD(@eP?vf8lkXA) zJ_5{31gk!X=*MQ6?QGTtJPg0g;77)tcRTxRkr!eZYNkVzvin&!SmZ4PPMs;&$l4-Hc{&D|4!3}iL3hhjOgkg*r!2lo zp#L~}euo5aS;KYDQT8afCQ>I^6gDo5HZ@)=t=l0%dR9BBC2Yd^2Mi4nD@OJH-Gm~l z@MOZh`lEwD!b`gQ5pmixhWL5mqcA@kl=A!YrPArp9!Whk?_l*Uaa=$3Rg!l0R(CKC zmtR`N88{xEwCN(s2y5x>;ulKj{@~KWQatPZG?)4n0^5|DO`Bivlg1+u6El;QC<5z^DVrtixjiJRP|GvZ#E?`QJhyE7o55XKp%`UuEgV0JyvIt%?jCMId(tv zA4r;*!bd+OpV-{2HQao;=-NeS!)b4w_Y}0y>k1~#4ceBKt6Z|IZhg~$L19S)xacD< zDEO-V$74JZ0Y=uHM7wHFJ6}%HYi5Lf->v|uEe3telA64{hsuKia}A5#gxQv-&trAC zu%+b*2iGaj&29eD=;SZYN3GG>6bg7)dw4t_)3p?rO17Wb!n=RpT&_4$d;E}qF zJqQKNYW+mt-zS?(>7sU z^jgr+2bK7-S21O+SBt!bA4R5RQr=fJ+uh486jugpS#um8U7r>&H;$IehS(*=6yK3+ zIkgI*aj=g(b~eyG7oUZg%?W|jj5nCTiGe=TcY~T|Ng=eFW8NN|pEHpx zLI6huiQwGF$-&{D-~x^7>~AxgB#RmhITFVHVxpDfy_vB!5A?I^eNCmLZJMol$qEWT z%~+_zaJ^!ymTkVa!bAbXA{Wj}PKm^|t*oD9DS^LA-xZeHcg~#KG&(DB7EXEz6Cdct zo40%+@8_!#@|!=1LYl3vvm(s^ry5*aN{T)XYIPHtBwgNK;eysHDbiHq&dz>(>El!Z z68J;7URgK_z6N-;NYAC4g(3Fe3)(^-3RA*r zC1yAlT0*CP-6-`9g_bSZv)y#c5O-X$W(;PPJ0=|`Fc&hh^L}crt@c)t3@n+I^pERb6wFTZMKyv#TDc`ho`J0S|6XRY8@M++&+Zzu`#KA z7ikhe`JLWHaj|eZlY~U)y4QVgg`Vufj|S|sO+lehB?s_E6-S#vBt_wcFs$`QG@KIH znf%vpkn@TZ?66;9_7d()B{Zatm$h9OedLMT=)jW(LF(aWY)D0Yu_rd;y$;?@1dFh=QGWIXGNm>Qe;1#?o%(F3h*sYinh7wSj*%szGx!ccO9&QkCT#;(Kc0ZC z)_+E%K{x(R-UMm5uSJ4+hcKvW)@^1yEE;9_C{|DuKV~KW&FruNnYN{aR=9|T#0Z;B3L;c^9cI`+9$i067l zzh89)7`L||F-v}hp}uHX{6?YI#*-)T4;gz$t1x9xf6sGc`hegM~A^@^)0H?`dstv}fCcZcsNWLw&JNDcb)M zHp4xd&qmz^(Kl%+EUm0Y)9QUxl4>=r08PFMeq)TG61wl|F6#+yWEM)9p><8%kiW0}Mfxl)#{n#` zL-pc7L(Mxx^#=8i#o&Mwo88qlnhYY^-%#{X_mHy>08(A*+_D()+_!HkKxPa&xg$QE9njt<@H?Le zrSl)$xSEiQJ2Y9)DcZ(gaOBBV0zWN`j*3lfP#a7DQhVP|6oO3|Bsa^63iwZIqLRuV z+YU)LKap<61LT%i=#dS?atrV8809mka+7tzqX>9-<~daPQixMK?@o6=DrVzQ`EmYa z1_Vt8k%mDVYUR`|CwdoXgJuoL`>+ygyqyT#?U?nErPwsa`PN#_+7`!q>tdgdK27ctt3!8PtjfFOW~8x zZxk&>#p^)L&km|DqURWIo*Kn>T~B;6f@x`UWnI7Oud0mGeWJY>-T#7!9vlm(k!F|{ z5_Z%l(xVGk;}>aw{s$pWPa+g)8rsYWy-iNcwGL^hnPP+TMWA5`#G-Til$8cS_5i8) zuP`}=(m-e_&y=!V+UYB=k%RM^e9fA*Zs%Vl7#7ij&MszzvXkmOfd(jaz*#ZYYzu$* ziSeM^ASHe3H^}ZbSETjXY%x<~`7O1JLw()Wm@~nzSeBdoO`{dQ!f)J-n^JYhTNq3s z$k&5cf`z`Ek_%jZ+Y72m(#GZ-i)S~}tuQD`Lr-J)=aM$G(clmZM7u$YMri$g0Yk4% z0A@?R4B&LHZJDhubn9jkXGW#Gl-iJw?Ledh)VwrS)atU+ClBs-o(WcJYr}X{Of}=T zF8vvy$)pDKO<=)(y7>mY&DHwcr6P0`{*}UOIDr#axi26BXY4fw`A+L00EN63N$uZU zzlQxuy3*D&8t~+)0R*%^s&I?8gF}Qt`23dDln`Ht(0g<2bL&+Y|E^%9Jy%en+A`7y z6Qx@{gvFHWUk2+i@BuR-*1^?mg*V%-kogmvaL5Mkf+w6~9&u#8Q--(%+P7*+STS|` zY_di!CmkX#i@J4fvfQx=4J=rR&wLE;!e7)(^!1m3&9g|K42;Ko`)vMFegGlx}q5#RfAdd`5 z=|(Ss?i*8&BH+V`o=Uk`=ud7M2*fKvQ1>u7K;f4GCzE5mt_?KX=ExIrF!Bz#l3prF$J9%L7wd_gWyisAJ2hvSo7 z!9wO|<})%$()Qd$Zbz)6rekL+!)Gz2WtoU{6aGyS3^rd-IO1aJ1dIpxa9x^(Tvy z-=3McekLGRmTO~wsk6Cg#`|5bqA+~Pw&ecCig!f$m)98gc8Rnz3cKNz&0+T5Dt3>^ zU(T3cg*3;g-_bp@Q5EBCuj|!3`^s`W#Slu}v@P*aI;@m+dsKcByV~%@)x2(2!Ll}` zibr+NyxkqC5ou=c*6HzpjMSto$FmR|wo1 z{(`~yxBI-yl2=KbfNB>Phum1>eR+tP$O{+bj7>Kf9iEgE@DK<~Tl4206UZem8WP4qNb+F&L!}kmu)9GomXL`z0z#@3tV6Q;A>2rT-v1+}jO6CfuT+A+C*?`j8)-Fq%JD}XjrX! z-j?PDJa#Hboju<(lPnvzr5d4cCazN}p$|KBPt*G;J!v-U^zM{_IK{6Aw8HlV zr)y38I{Y_FtIOc@cH;XyjP59lG3SACdm_eQZC+GCgPzlI7fCW*Opj4kY*glP#8d8) zAD>TtR1m++`g7wD1>umONKp9!pB&-ZtLl|MJ9apN^j{W2&db3# zg%sE65QuqEHALjGWjOf55E8f@RJ486tosVIorC6^i(G6IP#^{cb38EItIOc8oe!P< z7Cm=7(x&%;isH3; z`7>tAhrODYwVQ6DiLlBo#VZaeLYygA;yAI3rBl;CV=tkJ+J zuibDxI4!to&hI&O4oY4&S3OFAzSLCh2#8%<`%MHpVtGu%HI;_P`q`rf;9y0Ieo+Vk3n_UL~gRzq#)$}`$ zQafb}ULt3Vj%g?FkCQ4zD@g3ouMg7wB$A;zmFymOtS8*7a<;CHm|_{%JQXhQAQDkS z)maoyFX0MPHe?WXBIpm6=+Rc!-QbNOzk>yG?>w1Q?(77xjey|ux0qo1NoEqsrh)XZ!XTR@3Ra}+WMV-rG4~hx>}Z+i>#z-da}Q# z<=kcaVySf5OJ*jn4ScC}OO7r#5-o#aYd_99$aO3xCTlQMo5Wui7 z_D|~ZX~V+c-m-2!z6(uz6y$H!~+vZVr|6leQuWaG?CoC7KGaHLZNImhF*#HWdd*ljS+$I(x5T12 zmK_b~Ns9Z2mkg0^@$}YJ_$`B@6rl8 z75&}DnhQ^jQvXQgagX4hulk5#d!Djn*Tm!Dzl7UJM*rd+np2U|+Wf#2-*W8;U&G2$ zJhrmqGj#6A10L{#TqbDKcAq94;v81Gmk<4`l4eOqPNi42^|s>VLi zT^FjA!vHF=O#mG{c8o7b{Nueaf0Ci6zwy6tYvF@jk7W z-$kZSWB!U^3JX6y!mDs)W)+?q9ptZSVjh0|^dv&}I==yuWv`aj37x&DpH*nc5djuJV zHf2AD&n_Ut;FlxEq*}PutDYSZ*B(W^XpUc-k-q0X$A9-|dH)3vnV+zxf3|`9iBn_8 z0yWiMGJw;!yl_RI^nZu8&-h9fb~C2LS3ktlqmsl|DP(y@v+oT-X)|cq?v!VsLoaIe zREN}V!rsXDcI-0_Y~l>!El}XrIddA_OwMnuxVr-`Y2ck263gv$yUet7|1qkq8*pLX zrqbQuL&sP<;~@6;4iflvzO0O`+(aRPdtjc^oWwXBc4kf+9n$EQl7om`yNZF?hJ2&g zOQTO>6cdlWNsZ*5Th&OM)Yu&ocnAb}@+~U9`&ldctHJm$>#kctk$hWbp~y=MU=M|4 zPdgN;oP>DJgOnhTHt*>6N~L@$IU^$osxJ^2`{%v!sY*@12rAn9tql#i>6G*RAn&)+ zd$3c^6@#OXBK>DpxEM7$>-ewtZMlYt8&V8nhD~`9&~!WI2Xu$VJ>Nj|eO<`$I*moS zGR%dm&^G1i9D8ui>suQgZ*9^rAukvhQ%Opp6Rk~_)7lzO zL#@)i^J4Ev_Gd`d+(r#tjUn^)kRtrgGR-<@$L2V%a4T0v;5#>_fJ5dc4SNW{(i_^`Z!wd|BPUQC@7@ zae6y8+o8$)n;4K4c4r~_gi$I=z3CQT3)WQ3fUeUD-J8cU;dab|uNZE0_FqcDhYPxe zv;xP6ilbXj;_g3$354<}pD%=B^Tq%8xoCKfp|c6ns~^<+UNBP<@bMO`zK4I@e_E@b z)|AfWQIGp8&+!hz84d;GHhn3Z5_hbe_d6`PEj{p|P7C+pTdHV|VwFw)QLEifQrOARf@2z2n7uSQ6l< zNd5R#wnA?OYd?k3T*2P4DAQe0FRcm~Cf=E))fNjkA$0X(7YXm3!YI~Bg^|Ly)Mu%f z+6?H|!4tAFApIJqx^1ZShbvcWRgqk&^^P&0@ooIUP#(3|WknyQ&2*wc1oWnF&={nIBZrs5{}ct4z6tvsv04=>GmmA+!$5ft%= zbt8@Komy#7*`X*A=&uCnyL$ry``*lG#dt{W>{tYER0?w|xJ9GK5 z_i-Bh=ZdI3+;H9`KEjU7t8(VOt_(HEfS1AS3?lzgcbz|QuSxY1@Xp>481J@(n(=?f z=(_P<*(ZYSwwYcpoAo41+|>F)6P;k|^-4j1EyRrP>p(p>-oK{Q5zE`f0qN#E0)@C& zI}Kb3Y*fZkI!8B)o3F#3DC3D>6SSvsv?j*OQWq1+EfYpx!`xFem8EWbC3in3F!Nt_ zcaF=G=oJ5CdgPdBfM0is(DtJgFr8iAWr!j52-`_N znWX7nQgw{;T+R!AYHL!R-6BPa@|dJh;Cz~dKCf??r~!;$`KPl_`7P9?uXIUZ_-@666aR$5f85klX3Vj9 z%CnjqVR?BiJx@dRJ_GBzqnOze7&@;dT9`-}E3o8w{UeR8sl4T@x)}bGTjP31ySKn& z7{wG42jV|rPTCG04xaK=A|46)yfeU0?|g7UNNj{J;^WA1A`pqnw{>VnJEpk4?GEgz#tlsSy(@0=|5`8KsW)_-l0Y>VLK0K5g_P#GWz%pJ=d0~Cg)o{|3f|Z@re3s_S zIgEKddbRe=)h_)j9GYFgS3lZ`!31{fN1S=KRVEy})>l*K%8z;J<9`2da}7mz6Vmnd z4gZO2CJuIX-Y6zy+TF-Get{INe^2~(>N=zye#bATrV?=wnYcMT((E57>Io#oe<4;# zO!v@FgzuR@Y21pgd#v6|d+Ada!TxWcR+0X5ce2EFKv~d<>4hs8^CGG7U9Y79qAcig zXKg$3zY9ENGzT~pJYQPfOo`_!=7{pWQ*Zr;;ZsEBB?y6J8xz=t@ioL zW&Ye@s$xf^;L+>w)HPD21|b7zR!y~tS&hjeCDv3URS2M@D$`|$+M(U=iQ$;uk)i+% zrO%sLdpWlR7BxrWeT>COQS1ZfiT{DJ`I(rugVZaW){j|ykx4Aaq8M7}NE81H;dSvU zKDv%-v@n0mtu^QgYx8j2TCkrb)TcM3lu>rRRq=OU5<4x&)DE`UaFuQI^{C2OlWxJ7AkFG3eZfy@^+6vyB0XF#_^gw zPf!ycw;?K_9(DSsk5t!P^fm6Z!^`Jwg^?vcHt6x9J0*J~U9C>s6QNI?URMY@J(qhC zrau^Ie%9!bRUZ#)pPc7s4Do|NpM z#9TGjw;H{QzS8nJek!BFMveObgn4{ov{to4W@VjYu{?RGLx0TY@1y%ob&HCqR=m%b z0NSAoM~LE<_)Tfp&Upa=kANFy8`#eh)?c%$Dlz5`hN}Qs`m@`2@+kq(UGzl%F+tbox^b& zV?Wjr-ViT%H`Wo0U}tN0f5GBO+B@MknMfb(&e)Dwq@+UQq)Ue<*AhD(OUr2e;>H~` zfVF(NWGml|$f)@&gQ0t+<9eP(6p{Tp?d}V@>D%7tZH2X@e)hQ<_Rv|0PBn7-NDKv( zf2kOWaj3LZ69x)Sse5)2NUU<4vXn3puXWSMZ$P_6!l<-pV)2y~4pIFVae53nf&Q9!t$HX}iaW16bBcM$hR9 z*chduhte4G6-i&K!C7t>ouB+%jU(kpvu8o4xx8%CNuLBRFRpFK)-xKtP??)VfjT!| zHW2JW6m_}|xpW!8kKra|+8BrDEu`-XU;9~|u3B^2-I1)sS~H&%zDeMBT4mkebCdY} z+~%*V9#yc5v9$P$FxsEx&!`ej0ij1u0qo?(Z%w0VrTV?dL|zy8wvvvvX*B0Zxc!`X zNANCOM~`pbWZBFZ3m`V@v>L5;4}7*Xy>~e|&20sDdy2 z@v&a7o-}_~KhnT0vvkj+o{UmIj=I=`^*f@vCAS`$6+I{q0A+2!$5xO9d{KPI{puF` z=4XFsaqt<5v$eLFfNUo+5VCw}z;ef>@4(=yfpOO_*FJn_kmNPnc&l-%wrgeb$~A4^}d;)R~?jn8k7xty}_z%K)-bfM(+_^ zV-T#-%TC<@q8AAR{-7 zV3gZR?6dG1H!4vL5VR%8O4DkR(yNQukT;g-+_o2g96p<{^-7Cq|0&I4L!fCe)7A}juNeI?JHdlMT0+Ls zU6|gcMRm(tcdP~Bmnx(TY_*QK0z|oZrM0|Lo>PJ3TkrxmBDB+B+Ry{bavi!l)gOT$ z*A8YPQP{u=(A5U1evrO*-H?xT?!q5l(bv=HfQ_Q-?qd9g^NgcVg*kQJCCTxvgM8JO zB*(&ya%Q;PP5yfTgoaa#QiN*t&|c6VG<{9sADHt}PDPD}YDAJ+eIDM0_KA?VF**F< z{}K1c?MC4Gm6#mmSm^~Qrht3&8G=3Y-y(yuv8hVt%pCuCsE@ZA7L89bhl72-3k+KY zW;I)~;)2!~4VVLIJK7{`P4z_;{i6rlD_)dxk6;Vf5T8G61VJfo7<6#8A4_=?e9xeG zCk=8op5NxjG(BVuME^jYg7+W=?yCc8Q4KJ;9##%&-;cKSyBng{l`s6MUqT30f)H-K z<=!g!ndImWnCToNUGn>v3=2>&K&oaWHx6`XyV?J)gEN{p7Feadq{1_ki*wBOB zZw>jmJYx(X`^MnkauVYb!+EzaEx8|9$Yrm{eB=7$!A&xLJ0bW3&M;6K3}mvYKNfLW z;QYbw!xmosP3*TMxCRPs3A~J4Q~}(7M=VxPxt-MJON?NiI+87=xhyqY zjxGQSJ|fFMnwIbeoCd|yebe|iXKdJ@j_u7`i#JH3sT30Rp&O9OrzlMNZZDafM*l-O&_af zpxrB|Ll}Bg89(92cc7OIQ=t^C@`o{@o6q-RB1Aqg8!bRrSRPPM=Az@zn@H!@G5<2V zGFZER4G8xDUN(5RfL9g$)UyWU2*{VGBEHhC+pw~w2-(Lh;8dgobah<)6oySG{fE<~ z8n=^~uSPY5eAlwf-+w4{rE|KL8^dcrWK}p?b?`O_r9_b{BC8Z`nUFTXR1Ev)@@rFR z#!f-&0_kH&^g$1POrMVyU?}FG?K#iC8U3Qn$VAU?G*y#!k20ES8c1z9^w>lj^*{Gx z;%du`W9INKij@$paa#t-{LHcc!aaGoPfwXcaXp1>I~@K}3KLm|rgUv~&@S2H zl5#M@Myutb-kQ7l&gpQ+AfMHR4*mi55f<3Y=g7vM3sLgzP0R?yJM;3$rXt6nBZZNbs zFXvlPb28s{Y&SQVp6K@>($Biz}Tbn04|>m9i4Z{&<_|mA1sS<|Ksx z^!;4^qo*OpQRZ;tAHFp0Xve1^v6-mmT`8M`_@ov2?nD;*ts#c~xQ&1Jm{-i8{&@G< zZuVteXf^#=3mLS$tm^ z5;y(fQM=KND4R$8-dZ{{Agk@mt193!yGaehez4@~;04v%s2)gW?u-ik$LbBFFncck z?@}KuQL_~(X?aDu`Z#q{@bt7VIH9egak$OeEx@Bj!@=i#%BJ_q@&94Y-J{e#o!{j2 z0_ex+2UbF4&wnuIXffsfDaQ0`btdaC<0~|UDCO^619?VhOCQb^QHyDLT;ubMQ2b9| zYnLZ)o*R|8$^1?mjWnInu1<`w>i^^n}Jt)sJ(+nrSL5_v7F% z@S$FLI5ukoISx9>iw?)+%Nmyg)`r1>Bj7TCI**{oHy-z#LFvvr$fj0Xv#mBTs^G=> z^^Q1*Z-piE28zdclq#fS#HLq&wJ80=p-!e-E?s@uq+Nnc3aX=pf;e{rOT;}p(> z#lA^IYi!3|ph3RA;<#w6h~0L-sH#~1p9TEgn&$-A)}_+gj&T~&SlqI}W_-Z{I-@?-LavMt(E8{BIH9~cG)3$bc3uV9`Bsn9wLXO-_lp~>1jvPxuCFW+1Evb+zx$lHjjwScCIbt~{ z*WAO*Fbrcev+ch=pYQMY|Nb72*YSS8U+>rRe!t$=>-BtM@HQ<@yw>Bj7pK}v)u9!N z1GMHV4ZbH3cm-gy)cM`MuuQmGc*@j^ROpZS)wPO-9Jz_mZ+Tb~^S%2t*qEqWOBVfs zy`Bx3Sc-hnUb6zGR+vca?ho_Jy&V0MwXUgEf2Hh4BR9i+TNJ@Xm9`m&yiX2tGJ<1t ze}m4TzLh^p2m^sVkr%(E_8*+86vEHOtKOG03pu-ml{*tu!eET~{(@e1Zcv^{?TToz zgX6mEg(gP$Io6N|Fz`Gvm0~$uRKR=*=_G}1%^TVnYb##6?-39JEc=lQ5C;x9W!{vb z^ZO})Fr!_OFo%M`pOplXMorbh%aPUR^^)4b)Lxhan7itjF(&w(yq zVa2^kxnW@Rt~o%Ad)Qn!YR~&i(xVB}9%9;B7X9PU8j5-r%M(acwe0qBdQxOP2C7%e zt$73s$s7141NEo@Fs8PAYpO$_zJuw^dA^|*6GjrLx5@lW=_0>h^KCE!N?QP!VLk*}P~s-r8~W;N93cx!WBvh5cp3tqdzyVgHw8`T~_y1m}GPkaQl(Dt+QSAKv>GE-@09j zRN(HD(!+kTV}|Z$^C1aqp(lq;uVSGtr?w4U&WLJZ2~d_DZ~%=NQo0^XX7p6;Fsf}u z>cew?yPLZ^h?imb_lTfNSTP_=S?kepFt*?3(ZoBN#J_gy8$ z{3-dZWLPL&dba_n$4`^Ueg=XQKkh@Vxp61EJ#FOE1L4+jWYWH0!ww#|8g!kUNf#R) zbxVZ4Rre~=O&#wdELK^ysZoyhk6JCU(n2a@FCu}3&3#%Ka2T@elv{LF+5^2N>-a3+OTm;2vX?<@49Qe>-c>C^XOM=?g=0(=`lq_`X4z9?z*cKB3V`Xf7Z&|RpJ6oB~ zB&STEy&iEGqUd^k$R@EM%-^CvOaOFWfjGSL=&njC_Ki=tvyjv_#t=Ne9*r8iF|B@K zmv-=qQT-=;wRFbDG!$e1keA$5kV5%FU6~LEPJ>id&EQlxFzinM$PJPm3ZCIqF}(1c z`O5cgZgBv5AW@8C2ut-Dfr%-_*i4mywF`)3QdA;O3Fi|`$ z@Ha#bJIEUAeU!(rHjUg@@y337vCl=_$3h#=ZgXC|n3#%N3ol_7 zr@#=~&xN%^K7c})eDEFE{>&Z4M^|5yRn~$U*p+s4;&T8|r#4ezFJAnzSqS~MR;MW6 zqPzsz6kYGFa|ON+-`V)~){>Eaq|xY&?8bK$^!N9d)e{JyV) zDgd?FNrbO|9O_#J5y4N-mm7kz7qXpZrIJS|2iy1K2t{U;i0vGsuIHW3S0MK< zh#z#QI7|Wpdh^H9S}pho2(k^oD-{CAtLhSmGZqwF%VGH*g%6Y9)E?UKkm3?;oEUbC zT)v%Zwohx41~LyXC~tVQqO-Q`mD@A&)qz-z0c7Tk-yfj)BW&XrN1h6g4c_s#je=eC zeo|{OnQr&U9`2i48oT@609zEVt8f5v=QSRiW^6Y|W2mjYNO0S2EX;u5DOeTP71kgE z3tBsj345y5kodt@K#HKS{{)OF((W()rW;-v#|>mXRR9;lcXAX4I5Ys>Ioe02l1O0f z+weP-Nfo1z75W8%D3}OI-f|#)!Z^dS1xGST%-ASpJlsE1jwU~F$kp}D`xU%7P@>FL zF@~|(hI%r-_g5euG5Mc`OAuiP6aGuP8`i_&+Q6_~f}5Y#gx+i5rwT5AtH_y+0B8y0ZrgsN_Vz2GVF1)dm7^52GEqFNmd z=LffFd{#_S9@}qUkBfCw4Jc%Il%%N6Fw+~*w*JVPK}?XL%jX9*e9UVQTEo|_l9~}& z++7jnj}-D@AMu;;EnnP@n`RoQkY0^Wz+kp(__4!F>**sHr51ybTC+U1bew8vZ#rVl zY%$0o;G5{4o=Gj?Pa!;z6>+%1>4I^OB&v!cvgT1IlwUj}U1tNszZff>5eXakV}a8i ze^FTx^s_wKqZaleTag(NpMjC^x44X?Pv!wAxrpZN$u0>^uIydGR3|6k{*6hx*|*A; zX1Z;UE99#?Y%El9_G{2L;op=5V0s-D#3lKVxgVAKRX~S3?yb*f-_(?>EDB z2AaZSu*;!aP?(UWNXGhgmu`_7@i|(q0^SoLLK9WN_e(?RQBt_Z5)*G5uIq&jTh|iw?Mz{49sNIQ)hu zQQZ`gfyAp6Nl~n};c;tGa6HV~4S}(-grfy&dZS@sT=Jw&zYtLP3vEl~e3y*;$ZzXH zhLd(v;PKRfKRkDcjw3({<~bf=z5)&eW0r0cZ89+SA1Eq|p`u2tXO2xzn=$OV9}~ey z-@`&RuM?pqFTZ|sYz_k}h#?KT(?@b(I+WD)%lXDHXf=wAs*!1wM=1tC&x2_)oy=eS zL=yO8@;9uK9h9~d`=#3b^J#f^?@%nBnID*;gWMdl;UEZ;@=P(r>v570-kg|h zzKZKj$3_Vy;xuw^65g%uq*%bYU6#=A9KYag7+1@|IVwAH-(l2n?g?feeKg0Z$2FWD z8;09<;NDGH)wo`gj2lzShcjfKQ1yN&R?s28rF5C6YOFC7I1gqG-&;btugR53RnBb| zZP^J0%3@n}HhL(7{n(1dY+^~+oQg;&!sY&y-+WCAGBOa{o3tgd8@4qHfO!qrq)E}m z(T9f=ue-ny6}5Ra)Lj%={dq~8l}ajctD%Het2l<~Axi=W@^9Bnui5x%n=%~z&ZdX? zfthuMTVX<@hFzRrD3dZ+nt;&rwP6 z`u9tnFegNq_L!Q217!NHf%x#2u3&pR3tT_kG>e*tNg(ynqbV0*J+iw%=q(_N$8JM7n zDi$Bu(9)%C>pX*SpaV^3{xf(b?=cY29h^cm4+ z^#guloMNEGJH9Q0*|UDyEepidC?c(GKN_BFeS^v{K+(fZiTRS*Uz?$Fl{%OdB4@Yn zQ+Ue?_*S?26gJ!9o0F8Oc0XqR8a9h+okrrHDy$_&Wc4--QEuS&6!Dn|TJ9f2HiNh% zfhpZDT`6wft;`w%lVIz*ub9u7-Qh#fo_shV)(l%*>oX5aqu317Eon@zeUWl1_1$mM z^?Af9(4!o)PH%$HOZM>=lR<%ne*O&%B^Ogcg8-2BMR6}6wH9Ti_x)i>S5`x*JkxGR%t6Uu^wbn$afeqD7R%h;p}xZ1==LqH?qd< zN52gJnE%w_07!~z5SGNmb)@Y-VcoiYE|Ki~irfIV0qFCIA3EL`8ome6%DRg;U9!g90+43;T;%Cj^c~~#xaR#nZXL4 zgAdzgJQKbM?WZttl=ntf;V(j2j@P9O2V#{SJt;2C=NB^G+dzliajW%f5)c>BLw?7)3+<2GsNHP>k3JSGI#I4fMA-I zAa`k@g)`B>sRnP)T{W~>iC@cui&8j0Rb_>~dXPLRC2ZC#frFGy-G2x-enPH$iM-OC zUZR}W)k)n4E=(SX;cRHat*g84+(1NkSOpor4h-jN3j^Lr3zZD1*~MbtZ0YRXruGo^ zN3Wy@W)l@NXe~v`0F_kIcTFePoRRaW>4dJeGalXTwsLzOr)xZ*Pr)D7 zf82S}nI^NTo^4+B*w_kkkh}>Kek@VH;FPt-XLT)(E~rza_cHwiS3wM1TD4f z^2p|~!%*RrrUa@CVVpZ{_vM99-p#42yo@8Mb(vgHR68Q{(QVtD`|Ug_sPPATW_R`6 zdFK>wXtplQv&!Sps5v6%p7tqd@g{|DIgEYBV~~1r`Rs4(@j=iWQTsPu`%}pT=bGxc z&pUZ{_g9auw)MGXKC86TYGtA;xzYmlL5D)3eJrGU&C6nOYHGiSI2e<5$Lzc~LXI=E zY(Kx^XK$9CyLDLcWN?uEyUI&xP4lo^*J#&sgNB>vHswC$$kUNfZdR(BZhL3H@fz_@ z`{lu;*9k}dfnanPbZ+y13e`;`Hqd{HCszY(Pi;QAYI#KWC{*~W%hhi$Pi=PD<{kT| z+eSn+559412MX1JSa5kY{>4UXBDdz61tooEM8^wiTmxyaKe>duVxYaPGX zs>O?tnrGZBj83?$m9TvC^KkUQxoQzJ@f-vHvs+asUx2zmMhODrNy<4+HiFZ9q|24OTZ zVjEb#(e3t#3UlXX-}m#VP#>Nob1*z&w99Qb)b0&n^}&q|`e3bu24Ty?o!fQyG^ffW zuZb5Qo?)IX!IlNR2eLjhIfwIHVD6IhUu^?DnYp(nG%+p$?w!DZJ8lkuqniR-atSMO z>BD2nLkTO$3DI|{ZH{R^vY!Qw|oKzeT}| zQBTy!;&reLAAsng9(vfhF2yq7iBZ^_RU3m{xq|)FyL7inyR$BcGp=KquYPWlPXilu-TLVjZ z){`FV7U>*Z|CMxo&{<%B{;cYglk}*igwWF)(}RCr3M3LPduT_e^Nn35Jh9DeIW@A) z<3iP!6MecS&zc>kRLj1+f9%v}#qKP2e~v-+00G*$WnFy$hgP+o3-E|1d-bWWH2@b3 zTmL$8T=P>^{*!A_m+hKPvDHbNj#;=ocDP%64-r>=a2`d!@Lcn5*LvJJy5CP%u`LcB zsMuCvjHvm+vxWTXvNxGjAJ?j4qDI$J>okvgHf;*k{XFZV+@^u#-8sqIhM(o5Yb7Tm zzUH$(cW>8?AqOc?BP(6?tqe5ceYqkSTRe|bj5WbbJHrEXYSJ%JW7QAao+jtkr^>2p zgqXRN<@$u-BR;axc{wM9u`oHNsZU_3Y(!icWu%BZNsU(Ud{aX{Ozq;cn2%c_Gk{yvD3o;5MZ8 z$eKOJK4C3l;Bp3Rwzkgu_g)NpsM&gUZba4N=AZmldfBJ)G>NMaMrjPp(50SvZNd4A&P zr=BU!qjN3PcOtD4VroxMV+L9VEXCVc)4SC4oW}gztio(Q=F4_lrlx@Swo0Rcx5Bdd zsA_WCp4N*VztGXJvw-Nm8^5^4A;-52qeTr4?k+^}08;jx$68u6x$2%wKUW19*(x!_ zWoGn0|GDWB-E}rzDodX#%tHz~`im|wj}Ysk!kV6ZJ-8qX$nsX5H)&6L!@(nBqLJV& zG=Ef%j1OKw@&f+IVwaBoia`=Ts0i!>!x4o8$j2h^ZsJ#5#Zp|rHpy=wQh4hOqTfQ# z@(%lSNt_D+zYaEuN-fAit|RD2+CLIh+IMdP*U?j4kTS+tuguyC*A!0<<>X21EspXzpQh$U)l>tIt%s zV1(w;6g>3YvV*O9c&T$vE*t&*X$NRkhWmBh2W`7fU)#}@mqH5odou7Lyx~?yTDx_&mJr^YG4kQ+j8|0j3?QSPFPuxuLJi(JIPlxJ`AxrnsMe zZ{L@l_Aq64?gCtd0K$=GA{nU<5@p#b&T4|92n-qHF~27Pjo(MzStZ_3yQ=>CU2xVY zQKqP+jd7Cs-1_tqij%=-ArcgEc(_ceNhQ!+KU)4+7s~#X$Q#Inyx1GE)TL^`i2}Om z@pVgs3rnH~w3IWGCHlG! zbqG(|I_#{r6RMC6xJY(6e4c;k{1csg(I4sI?CX0^^xtoydk@d6332>Dc%9OJWHK`F z0iqww@h356gLBhwUSr8!<_#4`I8-DRop))U_YdZXnl>ULu!enMuWmf8x8Bk7h@aiw zJzM5cwW2V=p~jl>Pj$yO_y`+b5wT^C>05iYPuCAutIzQdpH<`t33|+lzG7>ccp~n{ zEfMUxh{9BUZd<_5R9Ir(8(#|uJE5Uf`X?Z6LA>vs&qY&6%o%^b$LxZdi70ysM>a7% zJuaaYU&C-R8&K{Y7a96J}eRG%s#a*Hgw5R)6=&d5e&rhcb34R68LQf5N)UY04vI|KSTzxkT zfePkg-&irDYq#i7n-5q`{pxs1=rfxuG6RBVN0_yL8jOza8s=~pt{UBi>c}pwD6M_X z$VdLT@CUA=OD@q^4LUmltouVXIl4P_L2!Viq?Uv6Y1vaM;mhdV0mPbB(vzpz36vgPdz4V$n)@HRNW2s6!@zl{^*^M7Df;4 zheEj(taa%!y$$0{HyBd9OgAXNaP4rk@6*48yscGySOL5la;wPZ^3FT7+|MoTdrF`3 zxu}U8VPo7R#r>Emo2x^*j}$F;Lh~#Ip(%9{+wN$&f-o~_3{MjA#awR~r*jzewD-^0 z5;;lw{UJrZ{m$LnrMp!HIW4aMJo~OiK%;$E1Ln&XWkCd~ozC){xFgpp_;vj}R?`n4S z2u*O!)sbd6t^WIb;F#p(=eAq8Z})T@Yln_|Bag|9ja{2HQnM|rhPYozglG^aFR6f<=DM3!Cwrqsond>)6#_(cWRdhrYb_va*QYrpYxs!k&+RSbOm`Op6u%_-?g_ZHG@!;2?2ivuImr5!2-C zK18?^l4}Yx_@*v`ZMo3X!s$JwB4i_-Z+Sy6aroJ9caG|g7X8Y+h5-&|MhqyLmK7Db z@RhL@m_y-NTWB^wJ>1g?|Kxmh6sj0{ri)N`S}sTJM@h4D#r7ksO28#>voOB5zXH}e z@X079(1A#F4Rsa)O)P&NI=-}38~<_L7rJ*(044QDPvBsPdna84yP_x?A{|!}ucl4a zBw57|b;GY}4}dfSwa|4gfXSCJXYs96a$?yv1=SvY>@S5+C5MTi2Xj_VyyYLZ7XHyX2%nQx=p{YKj~JzT z(?tzFn<`GW5x=T~c-Hs&)mo`yvqm_Ro@~Z@t}HpFX-yoVnc9w$5F-_Fz9Y zz#`?Nb`FKN8sBimhf4(Hku4O!ULLje$&^zNm-?E~e7^s|V*EhSb=pxA=#UQ;IvYHG3&N;2Q` zyfhhIn#Ha~rI&FsB-kCNuJ$yzbCpHLz-LaOIO;bf#u;b2-3Cuge2$ zD3s4pJKm)sY@wRAeEDTgrPoZFF_Fizn9!gq3WXouQ)>n-HKRKzj%t(WU)qUa4YJ=@H_~s@SiQA= zmmGtw6-iOtDFa@pk=muioqMO|d~@QpABa zml%ETV$m(&CE;1_mA6R?IXMegau=@jt{iR3YrKMtA=!#hby?Ner7azU0(nf#ZnqRv zJih)4YfI*n|3j{3pp6ODM$?<=u>8w!G4?Ztd_w+v0xfgUsj`4?AX&9y+plT2pz|Du zqy^Y1iclm?xG;{m?s>i6jUY2%mTT)IkeXiliP_UV;QK!Rc6;iZ-rspFd*nfkWXf)s zJ$Q%==#AQPP(lbQVwOGzGLO=0>h4|uvkPuCUB4Z4 zPg7wPk>2oFM0Z;2_bmcDe?{_<6(PyrZwbZcYiW;#%W9uHV^>zIpL+mLl5QR!oT_VU zAUw`pfD@V;9L4b>#K9AiR!@YJF2;>xwm!)F69_zFsKLW?W zI<_6B8M)}Cvw+M!_SZlk`8@4MQw#JBj>+@)ska_5R1wuMYJJtj?xaN9bZB!4Au&g^`8e@UK-WT^NiR-dD$ z>KH%^|9sO?pX4K)r-%r1JUo$UteXE!Ah$5JVH0jGfCDbI)9hUpnqjGz7Z#HU$ydXs zv%N-$Q zexgY`-p}iqG+9Y~cCbBxj(D3(jtp$fHzM6A!u0Z9f_PmpQO$Z5C)(wbBf8p|1iXK+ z=VyFay(>8^X^y)^2@QJqW*Kt?IUT(-D>yZY(fHl#;gQITvX{K8rvw=n<@x)1`epwz zt$_KFo@Loi`&$0Eh1?$B4MAJ*P$F+OEn+e()^j{FwNH_SUsXcvQs4!+FKThZO=t6y z?Y=JFWq@yzWFRLGHV<_2hxqmjFg{Mwpz*OG=ksN#DPzt2S3dPBgLud*x@YKgknWgB zerfQ}@B-0Vj{?yO-uKcXvE2haFEFfh+pG~dYG-sKW)Q?UA6ZUgacoeS4#!eU( zhMB%u`q^JiJvXwU(kUyO9P8BxT{O~;oVG>fkwY|f^bDpmfL{f%%6;*HQB6Jop&L}A zk6~intZ#nUu3*cj9~bI*jd4h;#-q2>m%BnPH~!)7ehO5cNWZi4ab_9yY$)*x-Cv!I zy2{EzKP6D{kl%iV%#-C`^KoDB0yEEQC=1$VIO0}6Y7s`d2Af1^AV}2 z*G$R-%3g-RMaKZ?Tcme;o8mns(W_Q>LL?tx?tcdfP)l;wzWYnrU6?xOw6cWf(vJ9Y zWR~BF74qPPpj`UY0|h4A@*%l&k5%K>uoIA0`K%W<8UPddd#qy9ewwEUBC~f%wx;Pl z?e*ONsWQ+N49|CXP!dd~W8|H`r)8P5KrEA|<%RXZ1Q{i=9y#C669(;z)YW2TI`OVV@&>-^yQt~+(hcPvn zUw*sci%WG6U3Z435I&hc#b3DXHv|`U`JERrnn7eU_AfhwdN{**VZC+xy;fHeRCa|r zdi!VH$1Y;w2*8Z}E#nU5p~Xp|R)zN=YReC9jEfIQW(8$k*(RP&nF70)v;;aq{7Y`_ zGe)LMiUgD2yRb$aV#Neosl1o8ZoWPk;5EkaLs|8GkgD z%r0BOD{GhTKMUh|uvU`#G)S^z*HE%4qiah2M(RQKTlm`r%^NrhA}#RtU21rR&Zp({ zqkJ^ipYQ3)cAboert~6%GCxCY8x8lw1xk_+!r$G!8Kd<@MNjH1dP01IX>pm+l)KeX zAl}~jit1NPi`d5B=H_K;{IP1qqYA7K;ZVt3ji;$t(A3%@D%axZBv03F$*V+ETTL;o zZbde?@B^mAPB1dOLLt;afYcC=XZu%6VV8-#wiRL;pcI*yG;d}vbvbf+A zvgzE{uyE_cJEgW=ko6&h&D7%npZp#BeoGz2&Xs7{B7owY>fPV5^ds!~Rs)LUUMU)> zn-TWi<`XZ)`R!t&__k$|EK0>nVlONj<<^Ai!3QMy6xMc0kZ=G$X<22Lk%d!(M$uDn#owagJUH$c0v) z!Ft?4pMP=?UgBYiw6;wbTDyqbySP7Z^Gfv1R^zE_XzkH}BCJ^@Y{hgXRLg)khuih{ zj|zx})(wawLS~Fkf{#DWBVK=nXeSwS5EFkuYKHwx6NHhSG&TcbqgQC=t!b&RMIo%O zx-TzQl&YRaW{Z7RJB>DW_2-&S-Umj%qt8B>r>vv=t89CmF?3_~HT4k6$u1v>PYd9; z8wD5F6Tjwo_Wp7AM&_KIFcI< zaEXtpJ$muj0U@N%|E4~pjvW0{Xt@jRry@+GUm`bfxn2UnE+a#SlQ!}O)^Gc2L`iUo zDCCi<=IS#Sjz3FKZ4wwlC&q-wzr_%jxu}#2Z}z6GFXV^b{FwjwYLwm^4WiPIiwG|A zQ%c5)*VVOH9#rO*KmCd`7;T8KJ$w)!-$@mn$TSahOU|8m>aI4CNzm8!>mG3Usgk~y z^GxOl06r>_HL3Eb18;)X{-HZ|#&OXoOMa84>&ref;ZpUfDdnX)bmIvqvE_*9TGING z&sIQU?hz>3J%yXo;UWE-3eJ*zGnriV+m{K>2!h%jB955t;j|Ze!xEY zp8S?0-UG_EXZ?}B*AOLy`;6hUM#FCBml9RubZ_g*0Gr95zXOVM4g4M>~?B zrT4ae!epgx*Pxkq`OGF!w1xb>{wq@Uro*^+?{E0YpCxgV1$R2a9|+VK3v^n(Ej&3U znk(+3tD?O96-#>eL-bI{k*2__GcZ|rP|rf2C@wq~wpP9O`#M}YN#=bY_Q z<%)_+DUfd_bbj4>IcGm zyJxRzF~5HHdw2V1(|sh}jc;Bymz*x5WwSX5|M+96fL;`Zm=Ib`CxjIWK)J+zSCtAN zZ{%&YE#&kUj@{ai8CN_8hJRzDMZs_6sd592Ily{nX#HZS2S0*NZ%T;Gc<6&f5?8!u zgcm1FS1=Ovq5dCE8-lEF<-y+h7jKi_d=xHt0Fh1=y^V{y4=#9MA)U&58~5fu!&zj< zUSQp&U53dT<)$NP5#FeiUs1yJc3nc`2NVf0sFAaMnzHD*L^68IN3_YWCOh`!R~;|h zva522#&6!$4q48*cLQ>HOCpB&nh9JbKDijmS8-zjbNUw|I~E%C9vT$`t>b5Mxl_I4 z&*X@_=9ST)kB8KAoj-WiCVFX4>9wfT9`8|r(CeJV&T~9|4j=wF5zZX1d z%c`t`Cr_NT6ohS7Tk++o-8k`@;BuR@{)%k*yp~OaNJaPU(E0%zuLzGuUqJ_c*_rvQ z;+yRO--bjhGRzRZ-r9n{D}Wdn9%#NAL3|Ez$-ZUSMZ! zWs1NCjgL%7Z~b#WoFA`;sZG?wPI?;7HIAyira2Tfirs%0^Pq3QYGO?%wRgbkd0?Jw z>wvD%Q@n`RW4s7gr60F?oga79WJ46JhE-2AL`_XKM0KoBcjT^3cbp|Fd9OQ*a-&UX zY~JhciBSZ7nrb~)E$Wp=HT}fw2D!mIz7oKWwhfhaz^-x5X|?5bPR-=?PtCw{>YBp& zKtZ$@th3O;O;eb~buY~CsTn6$hR3rSwONf`tVUgLM^AhJs*cnMt0Fb>M>i7B96V{m zNbE_r2K^98Ky7UPfFwjtyBW_N`Z00#6#AL5OMQa3s_2}XQi3&`P9LuMa79*?x&vE| z%lyT~u%i{Hb3*4XF1%D9?8wr#n!mWJ!-e+9t(#eKb{>%Q_9W`CqrKf>O*&=CB=&kE z4OB->l;4~fcdS4BBpPCYe9SGloO2xAHXzQz;>3${RvLIv-=&3!^2qVqoDorLqi)R1 z36ubA_0ZssGu-woYlqM}Qq0fD7x;3+b7{o2Q|N$!=u2~={4m;mepqNiEIPb6mUfxt z>e;y_7HJ5NMRsWMCq^By;rtDL)1kGn zS~`ERydsKlJV4vBcmwxsq)I3CMa;VgFQgr?quTRY4~03=M+1}{M6Gz|v%V@s5*&7Q z>#vmNw+FyOj#jL!3e+n+C^yu-YF5sHE`DKEzw}kTJ)k&5(1A1}U0-31Y`+f7WzoCp zP=Ed_sv{sdivw-2>sjyhFm~=y(Z(AB*Y0tL*imAXf&cSqK=(xoDlDER<;Ysx@O2B4 zRJ_GnSh|(b_Xl!>o;nHhc9go$7yTgn=6CV7iAx%xzYu1>5GAVzm=jt|ii;Nd&PW3j zzuKJgG?xa2576@~{FsU(w;HsFiDm(_qJI9fqBg6|fTfjYK*bms+J^>19ZLK-Ia$Ze zZrK^%v~&Gj#{0SKn21sj_*Wlp{@^Y*9!Qv1djqaNy{46yiMEb+ zH?l*#-gxAc2s%gw?{k%QTrtcWOvrmSr?X@l>G2tFS3j`Zd>l>9GZ%A|-P3%Xj0dw< zl~xV|u`WA-F%4xr8{v5T48D zM2j&WdV9_>l^qNZfNwqgnAbbn+?deQb(LX*)s+FCp1ZKKa<=|(*U1~hUA6nLNRK3D zw)f0D@DTb5^R)L27IC6Nl3_m=GKe@+QOqE=?M5@L>(i(RZZt3BmbW|w!-cM5XtR(b zI4k%MVheW44*lspa#NA>Ov_dMouB`AXJg*{aC0grTd*AH^jx{axmNoLKIx@z`bw7U z+taU)+|oX_J#BCV?A6Z(_9}?bsq$HmxG_a*#-4plEr7pnSg# zzoov+VYeVjb0G|hdM_baS|yp~Pjg$ed8&WwP}PH!-nW_}&T3sl%uots>CXj3{Zwg^ z$<)Q`zFN;+p%IzgYyCUdBKtzzB=(N-sqT#Vg!&KBF^w{PFGsp5qPSpSix6eGLC;OM z>YgINQu#N7cG}k=((tYMGTig+y@YhhGwVq`lAH7^ChO8o#SvKZ%HR@viqC;2Ik9U9 zh^T>?Rvl;507<$EW&Ry7TxX~6SIiQW#&?UX;aEQtL++$z7z z+>J8K`=pZ_dvpfPUr^GgE{6QxTGuVw>k8%iwKuGbe3Ap#EhzcLQO6ypwCfaP34!!o z^Lu!e`8iZV2=rJ@sj#o`&I&>~T9@NXx?NA1yP9&MEHyK%<<3e7_srDqEw;)%B1I(D zr;ls3AMNa>OjB;@yT5eOO~MaA`g-3|Q~|Z~FDG}*fn@iP%;G-2J~|7g`T2C0G-aD> zf|;~Tm1$(W?>~q850PE|KZt()|J$iwOaXP(RZW@I zg=>MTnE~tg7eu1+b;EkdU-BK=;#dgHS+FGTI7_4d8)aXgv+_*eA(g&3<>wkSm47z> z|LL<_nIdi<>`*TspHyIRk#U1%Ul9$7;5RahzF@bfam@&$%(hAg?y86hRqFu^a_df= zP&&gAIUbNF!a%+r10w;@XC-g5&>A(_S*?HU&DTtZUiRdPYW8X`}}R0O+Jq&9b1@Y`=z zB(69g%iQfdwxq{`d@ZI|MYm6^Do-HuGJtq2f#_nSNk5K!+wCCw7gtBJD>EcP{TfB7 zFbAW0>xy}*fb+sN5f|c$1M^fx{$D0HT#Q&4{kiJWC$j$wa`C|(mOB5r`q=zLNyn`; z(*I&=ZP?b7{=F6A#$t~|@zLqok`OAf^L5DRB&A|oG&h#&qp*h)I5b6;g4vK1nHB!c z;C~G39p^+oOM)rhdjA01-@RETn(-eoZ@7p!pSXH&ZYgt+<#7|d3zYfb!-GGVhKtetg+_JMC;2ZMw!()Q>eck z|6a(f-QXA&`~TX^wZDkl%v{qPWhtS1_o>tozmPZB(?XzyJ-q|~68AX=@@9BN88VRW zL(`be#@e_0YBt`sKt0`P%A)1UICNm&tT-DnC1`-UM-@^(jS|$A3hy+g5!@Ry54+i# zA`*I43j11j*N}17vNP^oDaR46{RiME^8r>7JD)~8e?`mVS=kf~E5=kag7 zT*MEsMgh<~K2VONrhxn}2K=?t|3UCUz-{c`KJ&Q_M7N6c%o;lg!z+O!!|? zHSP2z`+xftCD!ZwH%Ul`ynki!kCaw;75>{i&f)&i%D>u3F*W|bT}%FNSLuH>@gLgv z|DpXqW)=Y(Py9#1ceJ`z`lMA3ncw35Farffx?#10TP>Qvx^;Zgyw-?w)Gj{1rc7_eGO*5l1lV zr^=LF(oU9jnL;I=*;^E@jSYcK>3yA^*BzUt$uB3q8f8QLr+;EK<}w$IrV?PpyVK&C zsdQR7bPzNFY74Q^!&4_gYIE7F`2_f*XV1j%f8x1mkp-s^jGg!&Op>#=tgXC_bGO*h zA?ctpz;!7PLs%KZXx6E5mNo5{m+8!z#`SuatSpzx=Pq(&N<41bMp!*X3FXTKTLuGO zhLw$fdx!w_zgCi8c>oc?K)cA`xG0n6z3`16E35`>!@ZjAR|7SR5E zVuA3n5wqT!ZJKYEM!iTC4(HlzRQCk_MPhyS@GSrd!jd~0{68}estZBNu##mF2zj4j zHnEqbL9gT49l6sIM1wGC#2A$*S6PK1Z0=u7DH{$vkNZ)7vKJi9@*;agVC!E8^&bi_ zncBlWsjrl{@u6Rv7C`xymv+ zO&wL)x9P?G4_RQ+8gpBgxVWy8yX<-(X1dkQ|Nm@1Rl%r(@_&|(z+cz@ z-*7gL|DQb|x)l9yLxbKK5|H^{um*OBmF4`)BKBzicL!XDV*f`D8c(OT;{PRrEW8Gq ze<^uZ^~UNyKvw8lPWV4l1Kyq4g#7n7l`j8huACbW;jAn?Ptl2gwBCunArTE#p5^%V z>vIE%G7|Kc>R*Be3ctp8@bQVyO8rP5;eqw9aF8;>d=4`{e>39NAOvYU>N-%*cGn5k z2o~Q2TD3GE6ENW;U}QjsWqJ%e?Q3!`M4Q zE=$LtDQC*TT=xsR^~o>Fi>1b?npr>J@AahOR_19zfKw_aDFIeTSe0gF!5I&>4zhAa zquKG*LZ`>=Z99%sc)lVF7iaNUvt>T3bBDL8WO;Hvy_HuxdE%$6UWXf{h2xj(AwHbG zC-c|Ob!T2wi_WrbZJmf^uxS6|KjRg&@9&T7<=YvPyl^!I=k{K006|GDVuG!U@`#5 z@fzqht{1uKIpx}Jam`@#=g*&PD_2doU&K@3syC1o@RyfF6*vq|@K}1SbVho>-v%BC zp1uie0++*k&u#tZ+G|KCtkTjl%_ax!9pSK@jg1819docDs`w!8FgpI zeeDDuXuEaO8)=U!r}Z5nyFynZyTtnoyC(U*CY!bXYnRj$!fEAHNg~CM-;du2(q78m z$xcu<`VE!RF2*kNSVF&}$%$}pN4%+zyK@^VryWY7lDm0pPnN~+vHjaqE} zOhZ)GI^k!+WxP;|91O9h@RKqCl=RR+Yw??1W0x0yaMbiDxG>;eME% zfy#opA690>W5qaExon;?l}6V&ZEiCeMn#18|7LQGJaLWiwYnW2H^z)cj+%~M z%(@I=%oJN^Lq(09{Sob60Qmew`5rcQhnC@F?rz(_`aDKtn~f%cUwOeeh7_7HOEXrVR^bdD6{ls7UkMo z0x*^u-cpZTDkZEXcN9(BAnaX){byj+w#0N7sGO|`uzPb|O5SWuc3qM-U$97Pi`-#H zyEjwIlkUR6zae?woHr%QGCBk23H6!%ysDCND48v(HhT{vGLcZ>NysmWIk2uO)U$iv zBe?)0S(traRg!Q(Af%YF?S0Gj5K|{%1y#VW1L6)~Dw62Vs&9$&DC?`(VmaDM3s>A1-NgJs3ig6Q`2}kEeH*){dK{1-(yc~U2gcg3XjCNWI38#WZ zyV1b)+6zocsSBkC*aP(Z62(ZVi>(GsA7uS9pBY3H!B`11cmq4IlJnQ_4g1@<>KLx1GO!g2PH(75fW2c0`SK;zwch#Yd}))`>;Fqtf5=ri(yJ< zG>tm{#V70UG@2Y2w10@i%aFDic(h}abws3aFSPy;C(O!UaFf#pt5RQJF_ZKGe{AdV zm^@|MM1w&c+ig5bPw`WvFLHF-?wH@fTIx@sio-NaAD=&a4i{7!Kc$g;57CHVL~kk9 z)&FqwCOw8^i>pzhT`KqEe2i8&@ivb|sb9QXoPd@--4sC`@ibu_sVx?C=qdtd8)X2; z@`qc>TYSDBl3Tj&@oruE^y^HK;ok-H+Ldw{oZfJdwpuD*uS$9C85U2r{Wb<99yow9 zFeto;$8){9CfG>{Oz=>_^sDIU{$E}cCalN514B-nRH$b13iqsw+5WaG3%li z<1fv1l;=Jh;bp09O2Gc{vnH95cCUNf8UCCQmXblB09HELgNjApUH#Px0+a&$*Y+OQ zCa)JJ63@z=1JfSQOY-W!YV~F8(1fsE{Xm`20Cl|fBsz}q3Hrz7l{ivCmvP-~Bk|{g zP`x}gSnYhBVza?f)Ya~zpGCxaKKRJ`#b2`6Y$^X)B=zZA&*zY@1sh@SJ8|I+DZkN4 z#3be|Os?R#qRR6a7dzuKqtNWfQnc;aTQBEFmBadg-CODBybJ;yRQ{eYTQnd4x3`$M z!`VET-8{;vcvHQvmrM~gokSv^E`EbUpO_FQ%XFxfhKPWF!&h7L6uVYi^&FNaNN&s5 z+h$$%p3@#RR_kFYvk3}opeVKnjYBUSjI9Pa>FX45}B>fgEeYuKzonXi@LFQ}LN#_!Bto}#{QNPwejSuy*XSA`^_EJRglqPi>PF(oApC&Oe7kzLN<}b>gg6YF5pg^Zts{IgTN6wpEQQ)2MF;PdG8Pp~<)oaTL~{8_ICd)w1LBh=dv%H$p7(cdB@ z$@kmru=khsCv2mo{yYR13mP2-)Gn!&B4=6v>%PBl1OYF2c5@H=0h-epkDjX-n|i8$ zjJ*pcz@+0rw{JQ^y2P2UK(rnYd3xhdyV9|8m8Sb3v>)^}8B6z-(7o%I?(543GkW*d zppBPYmZn&E@Fs1>ocn!~+54*3G+)ZN>&>Z=GZf$v?w-WUC8jo*qXn4bx%b~Errt7C zmqM?^{BRa4aWtO?xzH}}Zq7x-pjP+6sn2)i!5|SiuSdjnO!!N(vE?TX^W$#c#!D*T1bhlUIWc=_4pD**xwcQo{Iq6=E18C*-an~5YOP&qtN|)c z{Ivt}HAB{(6aCMHvN%H6wFK)G9|z37hxA{t>HRqgj=DeO@S~-hi$28WsK~$b(!PWe~Z_NVKH|01)5G$y?iy~)Sf4Kwta{K)ID5p0#Ag+FIr*;$tUpDE9}J?LJXjv-0DHW4)iDOVg%Y^={*_U&gPUcj4VVp1b9KQ4<>=ktw2= z4Uq)kGkMe2OHBdLLsMMAX-y4lbD(MM-7Vt5q{IiS0n`o}dbhrb)pxhx8WMOVOl|Gi zX+=#_IL)2&hOEOC_`tD^_(0jWpz~MWAD=Ip*X#WjfR21Tx6`Ht%Jw1MxQDGvdr$?q z$2h7WfcxqcXA*)othNGPdtkY@<`{dP?Zf5}H9Hh`{Sl=*c6|b`MI^v|41``Kc(~XH zQv1UzD8aQ%@r4Q6C0+m#HIozSQ&>uxa-H=CdS4;q*Drj8 ztGey_)7(7+3siUPcEe{w!ITBkrlNPGbt%W024y+XSZo0| z)CD(6KD;G|QZ3(-`Ui`=dZBp}av?0(>z_Jd#y_t8P>;0p;Cr`c(Fd}utp&VVLKW`* z(KIOAA*$KwC3@(aGJX;C=5haKDAe=uWvD5$xv?YvWhvMn^_C7!{Hc`c55Q-n!_OzihY^w9E6jbi z%W0s=$=yuxnNZlx$6ljv`{m_9ejAGo~d{sRtE` zy{o~Kzbmd|+E1mBK;b1?6U6eqZ}6#OM{ie18WcJP-KG$B-`r$8Gn(zaTM*0T<^KbD zZ@Y9NpGiUD z)2$P(gyQ$5-E~YC+CyeeN#Gk%!xhrC^vCi$9J4=XgNo~;Pi=cIFY)3rS93-bYh@H; zjNcpkzA`7v8_p&s34J#New3D(-Fk`TQLLByV^<*`z?JybTq5Ax%y%zBZQy4`i2#Cm zd7Bc9!yoENLW!{ZV6J(2g^|yPbASr3$&ZI-HBsc1tIJ3iPP@xT&60l|-+JbNy}c zy$XArkY~9zy0>cINON3g%hqk8mseKzm9} z>d0sqy2@8Lqc(8Vj^KE-=!2-F7BHlrl6h8(2j^x^Jt@D4tRbiH!%0b2LqSAzbAgS* z%d1b?K!`mb45jm*hYx8IX2tJd|D;KomEnt+g+{|@C&S=~F)pa2yx~w!3NA%yP?M11 z!oae~DSB%nmB!Oq_*P@U(*Cm~XLLBZJ&`1*N4Svvt^}uHcueWct6{r0=?Wz%(K8>6 zKg5wR%Eq{5@fa4qWg8%#wF`}&*Lp~g3i$UF;@RJbrkp-T7l$^Gb&LEk=Tn6|JX{C# zJU|Y_{u<4r-i~|ou0lR6qNO29LWZ2VCQ1~WdDhK>_L#Clo@7gQS+_!-Z_DP;EHx~8 z7vClHBs_YTz$GjXiNWyCibzVF6-WUi2Bi3n?`kBs(; zJ4Zc!k&rQ@>qZIW)dunotTog}M0@3(vmZkd)<(P;)q~4C8?g217)L#c50j?97m0Zr zzC*aoFUbjwpq;IWiiVZB5j~`z3&Il5>0r)VZ#}?>xve|LIle9Y(8Cdg_J~{|9~H6F zARZnKOFBnBPAGZ{*;WH-Uy$18#xNAxZ!_)se2bnpcrqb}Y!`sME?n)MVqWRO@{3Vj z<$4O=juqny8S+SsexD5};K)vbMnvxtrWB%Ba?Nv;Nns81*d;BKi47w_Mbb4ujYe$W zorxRxN*nmY67^U?J*n)wsJU81G>^(LN}!N7kj&C`86qLG%5)RagT*{cVaW#*Z4`$A z+~2{p+&{s%-5G<#5Vuq+fXFmp7aB~vS_qED-3>+~J`5?wx^b_N*HxkB(c>l%(&Q!= zQsgG-C@E?;i$gnF@GE_sC6d2I8Sb&eEF$C?1}S8_&zjiLOO!j%EBF>=y<%HX4%@8E z3f0Uh((mErw&0g&3~;ph4={DODQ-5@lUnWBzXI@x9Bay6KeW@M12nZT0S1Ipr!4A8 z&(&FIk2)3d_4a=(Xb|JrX@hjkkAO#ZL<9JnV^7x*A3T!;3`WYcgr=%vxTLwshOn+VqYI> zT5p14Qf-24Qr?4Wy(BHOT4;h5NUIH`XogyV(TArhHqak!D&)~xW{n=8>doqbP4iNW zh7~nRD{h#UJ)}@ZD2p56In^G{qx93MEiM-F%G{%-psCT;F*AV zR&CW8M7Vk)FNi^WnCgRe3@-ctuj?^Oe6Bl(H@wWBhQmpV zkW#RhWTWGOY4`>W^XxwxNXy7YA8=-SUIijx@xD{f0uNyx%D(tFZWZ!^o&1F)8%DF4 zOFcL(hno?r-e=NOorC9IQiv}Q`-UhdU03w@`UaiRCh8RZSVO%AqqC%8RN~*AQ74hn zyE6a`VVdZfVqyCKP|_*IGGS3BN9UQjTBPOTLA;VDO|(JDqh$7@`UGG@ZFW7%((5od zNjBs3wWf_EXQx-W`7{EQy{Eo*61NPR-_(=#51u1U5TvciYW~Uum6)k!?pIyZ_C(oS zzbVpimWu7y9>hp4biO{|72<}8cYf4(=z6Enpa)I1s7H8(T6W?aZ}nI=6LPQGI&RHH z$;N$X=fLJa!`bypq@{iMIk=CqCa7L1b!eI{h{JR0NRQWwK5P_0aUNAGzl-phNFQLSdUB< z@@i0#h5`gv1Fr@)5r8u=K{|#b+{zsBKrnUmRes&un;7-nTdy5+L zEM|P4HM3z1&8x>7xRGisIaDe_dBE3vQa`qP@NbAI{6GvHwOigkTlU)@#y1G1BNXtv>7Fj=30B%^uPkAphBk94JOq&H-meH~_@4 z^>0f1WV%pqq~P8SEJXrit>T-dU zj8GMrO);dzoBw$FI?y}>Y52JgjP=M;AwLRB`1MR4-DCQa$q1iZ95oLq4|#R-Quu*t zNgU-dutHw^pdb`ZOT^L_T)+rdSpYPI%$!BRS%?BdpZ%8^ik7ip90Sid(LE9&5~sUPD;s+s$STl#*Y4BfzpCd}JnJZ4u<>LeG7+Q5mP z%iB^~-YEKD{WiW|42xM4Z;-zs5D|u1-{JbuYXdhUcN!igWR4u~kg~1sFql@}rzdxj43Q9X#L!$TVNSgCNC7hBZa3=z(GNOLUfNi>GN4H&HZ z_tIbyJ+Gpvh7xfC>4=2C7l|J`7A{L-BU{vev+R9~I%tYKjBEK8^HGS=2Y=9Q*|A7~ zmW;JwN!s0oXW85}a(ms*%?{X?c={EP(T~#gCb}(Hn)M}Fd0FAFZs=oPzm+~8i?Ymp z3z1|X8!t+U!z!GM#Yz&UiY6>;#1xuqe;ZKOh$^(Ek0uKC@x$?IbSG}!Y)9>!^`olu;3X37b!S6FG>uvmOVa#g{8DG1 zHqke%yU9Abik9i(+9YVWHc>YmyO9s^q#NhR_@%+0_$0tQd{SU8mk4SumoREhmndr9 z)33oc-86`I1{h$%J1+C*;*5)oJJbgWBR!yk*aV3XPO->!v!Vm%9l{1RsTs&fd723SBi81+*8^pxS7iRY1CAUuN2C~8%Knxy9sD;CRrbV08leJkWcJ_aEwTr%o*htoEUdA)8O@zSP+5C1A@ zz$u%ypeWK`Q8q(hqw!}}e7|b=_T)Sa=UBT!K2I6ke~L|9nR6&`>{THzts?%58g;mG z0Y>P=Ld2jm$I+0do~y0GU=ESGShNvB3FIMq>^k&are+*TK2)BdS#3T*RPh;SrZ^MWd)E)*_Q(sEoKh{_iAU(nv1_C zKD5xXJ)kYC1Ieizf<~3eK%*+6g=*OWk_BAXkz&qASb&jKoDJI}JisCkekYhmp9MbL z*WY0F2`8f0njBa3%TEa~-%8>m0(XnMUlFv8*nA5%{}V>d7Z)CEM~(v@;vqrQ+bxt+ zHa#dWdv&0p^&ZBp#R>DA6PUk3A#$B8!vI;8DS+x#v=X0jh^!WPa2~|xun*kllz}05 z!@&;OD35ZCx~Owb2OMQsg?-tIg$&A)2MStDuvDhk@C_b32c8URm3ivsSms1u9v}qBO(u;`Y2p3*Kk};@OM~|dbf0zYa}i|_|+sQ z7_}wy?Ca`eP7$srvPhnKtgI(3&r&zB&_Fki&}=tVM@gZd71!BUQPgOD`YU+DhI;pS zrtd&L&ak5OCJw@TJm&f19iyn%nC$m7kV-XzvuHw1P=>`UgRukh?lFMIc*8m0@0pgN zg>QTIZ3}ZI9t(XlZ>7(8#PK$qg5QX}Vcg`HKr;uU47*qcqul5+ZZb{O5A>o%H|5^H zI}R)o7|sHJ-E;i<0qUC=Eey%&3neG$OBqqycDIw-#+zkS ze8LbCy&#?cgdA-`d-3`>OZ}Mq2O=u^W;v<$L=~X2T`(J@{6ul6Cc()8YqEsqsxgW7$>mMna zKaL^c(03H>Dfoj>6ljZ-l4Yec=;I4Dcv9)1r!jkLIen!55s(z`JX6@=I_9gP73wO z$_(UR$Z^;W%J4=3y&Pc{)gML|)k8;;a_Sb=3YVY^l1qo>68s0{lCGfXubaREj16D` zN{@~>ML_xUE4$BT=siki*c-((a!|%ZVAPZXm(+N&vKJnkN@Xa!T4k7Nwg)HdGSwR7 z_JbtGrS6>I=sDbjERS+64zkx=T)=6`u2B0=f zefR)7o<{~1j1l<*tL7c)o)j zDqrb>Q@_{bClyh_t25~Eni7l$z-S4GMmSg%PqTnWl!s*!{UpPtxCa)n>V8nvOjCFU zgue!GoRA)%*)tT0gj9VhWDXKdU!7#Slq7u%*&nzH+WO#^&!PS6DyZn^V+Kg(T*Ry*5^^tv zNKgx+JMWgz$DPIsSK9Iqb@RVre@0>zyCE6+Sk+#JAP{YywlHvRGbH5WopZn9zOlo zfIbLmnrq9*FCF70%r@&>6rrWrGN6CLo=$Wl$bY}Z?-%*{&oTxvH;GgW8J#*{#HE6B zP}VbI2pg+eT2`=`Rs@2X_g7Hw;MH`86u;jTap&Nb$Ci|zDf{cc{vC)>%D}Qd?>5fF znpP&4kYp|&Zq9cZ><)^}FAame2gG005es4TpyYf~WW+xu@xe^MR2irq;2)5`aB|NU zkTZT)N3ax=GsH7#knJ@2DNacXhDl4fp4_GL zSMxBe!oJ|pdd{efL%A=rd7r0gfs!x8g%Iq%_T~&&^GI_k3gya1mQ!CHun=+e#l{8d&y2kfa6f+tGVV{?spQ+4dEP`}Vaz{PK~neYGU zYG*<#%hJ`;)#&Uouy1~C&DN&?1>o@5y#mpuaRf&Ipbw^tzRqA3K*3q{wBlHHZi_gy z&j8xwI_C1bm;bTFDX>rP0kGie_wokrdIDa4>3t4-q&ax8dEt0?Sv2E*XC(nfIz`e# zouF`A`AUH*BKr3VDGix}x;^0UVrT*mCAR?Jcj0^5$Xz@#{@u;@czE~z^4p-AA{A*@ ziq^norNMZ-lC6zM4suiRpvm*7C>qLV=y_ih!>-qaAPZz9mrXFxqxbirL&x&ZDUX6Z z3#F93LTli)6I5_fa1pKcrKQ&yK9y|;bsBFWUY%;wS!rFSZV+_{T)Z(enqOQqwd$J< zu7%4!=G{2onB1rxGaSpxby_8s%r_1-jx??`PF`e}bd7HX%z0b52>5!RCas^z<&r1y z&WisG+FhbWOCaYwy3mN6L6+rsYa$*nkvYKG&q-``N_};a*=WU(kSFW|S!OyN-$>|4 z5dnzY=jVvzh~D~9UmRQsLvAN%vcZXcq9MM$Gl4m`NcAhe^{xqL3gD~WwxB40_}%l3 zHPJ3fJ61YT4XeIUL($*bZz(9dYPSVvW_#d+fB*dpndqAi`SlX{Lim#Ld1*Vpn>*jkGyAfhMUBdKK%s62r5VFPFApPk>;-mq4v=AbM%%1Pp^a#d&qGVw@u zp*YNnz2&eO zC3V_ONBJz6(#eP1D^bwz{(d3+$YcuWqMXybdQl}(Ijvl-ohuh76gPRGGwX&O>s-v) ze%>w@U!o0uXbZhNl;LmwK61+FSo$Ro_(dqh0qBI43{o5xT-G08vIn%vrM>6|=qu>(aI$$Ci+=_r!X?qe-bB8` zCbpUT6uyNn_{~c*OHTJS#W$+{(7&JE-tS`Wr7{>x(c;Tuve>7(@y5x%4f{mW&sIZ^ zC)L{!+Kn!@h02WYLN6{={W8OEx!PKmK?V%9N(#R;3ji zQt4EuICyK+x>PNgv`lH%=2xXv8UnOglv*At7ynrx|H!OHucty$YUpw;wtfWIt+u~+ zSpD2G^kpHt%5Y8xO1U7U*YavxEWv5=$2AbYDK)=a^14f*g|Bk4w#qxlVS|ZzXHWIQ zUNxq|{tfR5JL01{H(TPs#)5bwInKeP+|W_Su}9S&F3Wo&yU-~!3D>FzVxSJsR_cCp zpsUoalJw`2TwvCzO?>a!dhDBJSZvy&Td}CP&?(!ZTe*0Jx@REfs-C~+&U=ft@SxBV ztWir?<*nF)NEjQqi53n z=}=m=nEmCtvTD(A!LZ)2?IX+19^XQzbPFE?iJ8+VzH7Hj_c# zB9u>o(xzSUHub$iuD#HE7tR7Hd>*3-a+RgeRPCxuycgjD+?)nYLKmsaMuCdC$zDC| zMqRjD0G0aGoopti!B{My*K&t_`OtbZX$zhGDDP4kog*%7_skw(63wJ;k=VCoz_s*Q z`{A7%`ha^}Y2eS1Ik*kL6;YR^)hFQ@dTJe6&{=>F36FND07 zcAnN8Bo#f8_avu#X`U#F%-~8OQ!OnZKs?ujY#I$4f1_H|yF*?XM^JtfO!MC0io~z| zcG7OpT?H`WK3NH?_AZ}w1w}ldXRqe7?~sbBeP3C%Vhn5&Gs;Qkq1$_Xq@tiWt*CJH z1H=z?*!W$O@*}?n)k>gx#*Z1$anW1jify08Fw{Juh0Z`2^~J1Kn8rf&MslYnxO^yy zv8}{RaTf5G{oEp);gO1q4oBpRqRd?}ys>!M}y>MpC zIpIUiS>i2kPsOITn8wyKG@v2p?&X5T0!Q zGC>Vb=4^{jh!w3PgQzYV{}rQ~@}^m0jp!kNzmZatbs$)m1>GzufcCOm)CJni8sF-4 zcAN$@9pu>%^f3H=`A0>;{!{SDBUfdckI?{=S!+kzO?akpVhvfWIkk ziyAJ6nZj!llgw*>^IAy4gz>vhyMnS@!-rF(t2f=t7D4F2%QEP;v=g$=_vobW=8KJ~ z1_;8f(Z}DgOSThjaow55yP^DvdQlPezoik%yhf!f=rT$nkcSb@5d-82bD6{)!5bmyCZjKj&=HSHKgX zO7jeMX*2YkQePwEJ`vo#S`k5cewDxh-o6%O!|h`m-S!Z44#r})aNoPf!pyzNeWE1i zrLPALC2PH^{-h1Xn#5VunGdLDc66wQDmqqIjZSF%98FD6z5C-xqVqb#pXD1bZ*KIq zZfSdYfN7leuPU3B)SAkoVeh?#qMu_6Ix$iUEqg_oCE22E+9uRBjAjTQ@+KSKP=G;u z<3ry`nu)vC)qKndwwkql1u8#&HG@m&ov*b}dnamH|VvCXp8qF{e?XJUD4YiE$E zNo^3n&%!WSQ};rVxpT!em9S1h=6lh$<+vzJW+;iG+NZ^>T9;p127GMVoO+W2wPWst zwGN(Ei@Q}a-o$p3Kta+7MMtaJmJt?Py>Wvy&c+(9_J(flU}nNFti4Bd4>)nZKW}5N zo$5`5gQ9erb^o8${pMw=HOn5ZzV6~0A#JiQ8l&~rQI(d}c?PSU7*f_+9G%5fJ)MVd zEs`Cf&s7ekq|WZuKMEWYa*iB&zvMhRTqtjw(VYTT7JB0hM7Yvh4tn(i+*O=Z`5AH- ziQToF-L*`PWUOTSXVsZTsu7*=5#_A284XzRxQLR-t)~yEcnhUEj>P&GttKyW5BK9W z+)wQ+67tV%$FAX*KUC!YaR3_sob<4XF$$%1snV*|t<=dwx`6MrE|-e=W^j3Mu1POQ zx+Lj%H!$H|+OgN=8tv8BX_BG}8ky?tW{H%Pb$ghy7F7k<_@6wD^*iu1=o*NdxT8e} zbYyZib$0Usjo-V3w*N>s_BP++)6;5^$Y1eTwVz{ksWMFBRr?vqgr^v<7^Cc8QLLQp zSvy*pO9SN_=5B3Qu46YNNF8a{W?sbcckhy9bD7>D?&-$f!(<*etVwo{siO10WzM59 zd>iY`Hu>|9=9C6shk${;;p#MN-4EV4EB&qgG>)YFfChRV6~h;Y@r=JVEW}Yk znV0xXBkg#W6!wAeA3D}Wa~$g*bgGKmJus;08I;l4HD$jG{bM9EkJC*u-pH@7!O5WC zSqMn@c63yA#OD%Gq-d{LxbU_&tv_0~6h60)R!w>jWmYQHto=zJ?f}tCYmsNKOG=?< z!_d*o$VeNbO?GvZwQdMl0m{s#f#ONX(A_=CBEMPNE>+AdzjJ-#ddlcO&?sc2T>o5~trb@4 zMX$EPo1I1@RR+1Fux8SsQfOG5B46ypaC&CB!Ldg}iHe&;e~qiJ-Db5|-Tr?4Qa!6& z`v{&*vO%+kjm0d5B^^{K@c=urZd_wCZEvX472>hf9eM(FuO1bOARflMN*iSljoKJ7 z=v7-+&2cwc+tzRwZ@tMh)6vr?o2ok$XwBopjb<5_QZm8|YgL#tq>JOIu3(Pi)EC7I z-%p%N-f7!|JR0L>Y~(|l1+S=d)p|?cEgk;3Al@}F?&$ETpL5Z`1E+J-^s>FU-RUy_ zY$y*P+Q*igh~_@0tir-gP4|f}NN<-D-^=Ff-5006WIf9IbIE}gc}xy@0&4Hs)mPnF z$=xJSxqEgjoJHNlwcTbhCiPK?T)0r^0w$^c0 z&o@6FX05Fr$u1tMs;(kxTDY;fFFzTb_3&&MGAm-c$WR&YGl*lgHH~9^X&^Uvw&4Bw zR6tqB>a6Brt(h%iwu8-)TZMcf+f5rBAUrm8H&*AUS6p!NvRrds84HAWz{z(t=aqiWj8%z z`|wvf>Rj_>reG<%HiHK9+rXl)qO~LtOt*jrSt)lXj7(!4o%i=_CfZb0N%?*2zoMhn zoivp=?fbH{4H|279Qp|+VvEhK4P+_|JDaoln}pi!G+5)#v|3B~^ir4D9h3HJ2dke3 zmerYE8$S)Xyl$#i2I%#F-}drfZaLr;q)(V2*`c<7ijHsW^&;ChRKH1zwrob0>Ce9Z zsUyVw&sue?{Qw~DU1!bdt(*h*c~?4 zXjpkDDK?m)usE=4V~LMBS}0(oqllDSr*i|?ZJZx9nQ<6cRE%`BC=3N^G9RlbrOlUN zRb&E`t2G~6Ok2y?>da~DLYlhDWm~OWBadvQt!HJuA{PZ~c40#_+pMtI*_c|D0O~FBVj3lQ$L{H5UF#e^EoR55 zJJVy00hInIrsb2+YXJ|DuM0Ul%>gI638K^c=eq*kd}#NgVsiQ5G`&RICO?lWPfsjX zl0H$e<@ANWr$^6oP)H~k(kA?y)L56h$Kh3c%$2h$TAZOa9Zgo*7KQ?jCn%h2G>b%@ zVb7oS=9{r&uw>{o)P3dZ5webqNt z0GS@U@;4C-t{#OV?##rL;og%~w;X(S*p@1G~``|l&?e`#j=!P#d5yFrrNb(?QJNc$_gPdqDIXcg?JixUOC4<87GVN z<#KKmDDjzvZtS<{ceBT^jqXg3H!ic0$n`EkT7*1K#6plZM?EO(MC{4RGzhEy95G8- z0oC-Z#%(VKWG=k|zstduCWzrB)zs6g9JN0e{>D?^g2sdkM8x{04b3n1_uuJL`NRxD2DMrrYlAZu ztQz;$JUFMEO_^cI3y|>^i{B7GzUgc8~5JVhj*yPXptY(8Ow>C;v~#K zrlrF?E&-`IR@1kFH7NId#vj0G30>pY`$D;hqN9ZpM`$@O4w9V7!^Yi#oDmKV=4jEs%aG2PZ>2?KS}_XujEeBj?`{k%FYfrr z=2pk;HVah8h2X<`Jfy~I_YUti>5O*c%zCk3Sh7Bax@lHmsMMtNm1M~e^CmNM2PZ$- zOEr8U-_zTvD#}FC7|%#eQz<8F++?&*Qfw@dQuvYE=vI`C_Te?@6cg6$5NNoiJ*TRp zWf0i5X>kd)tkGJjvF8)DwssoctX+v$QCg{S=3Bt)q}LgZ7s_Qd30Em~-JMIx)?X{e zF!lG{Pfea()HsyUYjphLQLbde0|yxbv0WslaCvCfS$^&iDFcxunb~33&_VXTWe{2`O7pFQPlB(C#1Irj?og{v@{m>VSY$E>w7@==t z(PxTdy5F$w{W3QBOGSD$s)SKCO>1k;^;BU!>REGL3ABh;OH1`hehY7145H&4@MN5FN=8uOSns}`p>f=C# zG&U18RuSyx{oNJww z@LC%dGF~^LtOX#xHoR|D zWMpzBOF5H^D_*P4v7%e3UEkNyt>pb_LcsEsVhBfDdtpeZ8k@zoVp!Rvy`oCfP`Ub# z6!BnmshU40p(Pf zsm*fA1NL|Y8g)!4qq}Z~M%106k~u={>zxcd_G$@s)!K~cbXsD6^ENNvqzW0*F|{-+ z);Lh@xfYP5ayX49S4c+d6WZW)yh4FxepFgsZ4p?yadx1kYqQJbOPD?U^ZHQI(WJN6e zsF?mE+?=sjFJ{<+*)-tp5q8)6r*&C1W{>bHE6)-BcHAHt5Wr#mt@W%3yO29j0USRfbc>CX+*TTLzU}(zUU>Kh zKA+|pq_a@W-S%wOsfxQem7pbQZ7*YDU>8*3VcLC+ArQ=3^Zx)xK)AnK*lu=k=^3-- z(sA~urMPNM`I1n(9$fR8ini-f885X+{!Lk&T`V>%<6TJk#`*L-=`)PlxH*$!Uld5+ zI7yGDh7YQ7UF9{folJQ>X!Y~EIL*LRQ7#yF^C+z@U(`-JgVI;laWZ1xaJ18$_$`n> zz>G8Zg7c)UJYLr1>X7sCOE zGr6?fPTLziXK;{zKM`*Vw)ot&J*R2^rf_>sEzd*hFEiUc?zQjH>a@_lTkKX#9UO>;}BL7zh?Y$BHLl3mqI%zu23sv*4HR88*TmU8tSR=3Z^jp>^N4dRX1h8=la0ZftjZ1Jb-~bXX#$^F7 z-~c{g1FV31zg4fkufAq;MEM6eY1m)YtN*`Ouikt0N(hFsP^Jlb){n)?=@?!t%_Dx~Toin$4-C4@4rs^&_gqe8L8(j*>#8vUZ)n7CI&-UxaXlS0W^R znrka~NvWHRcX|VFFs-M8{QN5kpY7H=sZK!l?Mw?$a7oyu^=>*4=D-SKl)1*OL@;0K zz;>iUmAhJkXi^DoG&9svIlWOrYwHqB1yjE+!l{ln?)pk;#F7BMaB>Dt-lwt*7Sc*0 zjw*Q-LR4eGJ+Zh%zZrgJyYj)`Q$W167D>I%wHi0sLEIvDs>S@_b1h~H;}`i`Pt7j0 zQ8*4i2r@e0UK&Fb8v^D!%~kwj73bRMLg6!f&ccofpLrzvx`7#uaS@Wp&R7Bjz4p=jfHkg#X97iUut%;?p#~E zbDa(7=hGYF&G>^GAJWCAF?;kqfw!*Nhk3DTMl9eK*oFG_hKMmW7R*?2LQZsbM?JIN zv&x^fMc2iCH3F0*gVYFB(&5Za4}PyV6hO?}hf`m36-bK}1YK^d(RU_$>Kf`wpehSX zmRL-~fTz8hORV&QdKtlUnM8iUPYNlGrRJ?mO9A*qyM29qEzVEyV*nEW9)}+0^uLCA z1Rts%hsr@F0HSGZ;7_lv7~i>iw~)zfbGg-AYA)1U-8fx3fKEUnx#v4_u6S+EJth~_ za$po;#E>V~vuobNVbKMU5LVB+Q7X|)6Ucm1UAS)jITA-Fc%-9ap1SIM%K^?@Yb;!cwST7BL4IH-uAX7n^K{P&Wm%9)G7HIaFp_7+ z0OO&HPU`7|rUZ>Cn8X>u*3^NUD=f8Hprgq@H``wC!1t4%dU$?5WA~YMeFgPk4Gu;Z z>l=vZfi(`)^CTc&LW3TX(!CT75(@8bm`s^}m|Y_PY2h~3ykF>q%maGqV&qu?s^}r~ z4OYSDb4?wW*60IkNAY&VJHm~?Arj8RJR$lt-XyguJq!qXTNkyZ%)?l`$jQTv?Tb-< z`RvHwxCL7fOiA+0KxN}J3b3^h5Ekldz|oKGvA_0F+WrmL{MnQAyo>N{Jbq?S$(u3R_J03Z-qpM z6$2l`-7^YfB3yl|@QjGy%jf46PKI>W+zVTaQmJ> zav1eajKVtz15@|qI0VSA_Ck}-Gu=As$YI)y1GOKeT*T^hTZjGU^p=?m7tTCV7w=N+ zJ>7uwgSY|Di>t{WTJgA9BSlkZ7tShJuk5irAcm--AbB$DnE_I})gb5R>M*PX%Xlm3 zvX^hW=yfW`YV(ozp=6>e(tx3u7|a;t zb9@@YNn*B};PePRO-B~iK2Q*LuRvtGLUR-XNf*G=3Abjv zoVxT_bA>TUQyN0@b>1(@h53?$&>-o|JE0?`yBZxmg3Wd}R)mQ4J0)dB4pP?jVVdT% zxCJgX8${otf>t`<#mL7reN+w+js!`PloSGs128{1c`NWa5H|4D4L*Olm~Ju3#;roc z5K8wM%R@<3Y8Fo@B{Ad%U}-p>=Sl;KM%|_Gz_l)oSRQ2-cBn3CbonvyVM}T7iv!*eDNT*w0i88D-kCUgwydnLwiMT^%w5tE>)y}MxwcQ0($G>B=3>CA zx3tF9M7BHmL~6h&GtHjkd*;}571_5tC#XN_S?23gt_vn?gwo)}@}P!sL$$nnuQk

    yW@@yG0Zd`%CvUDFi58Eit%|!MsJTv6SVJkeN`!JiFZGGwu!3`) z$+DLSIKLM8T7*JwHoFVg=u#LSCj(1buk{5FMDc!Mv8#8kvq1?xKm-Wtoqcg7xYGwO zpOV3k*KgEkX@<@<7p`X}f}G9NyXf_OI?6nuj2P2pjhsn4(5jZde>D4!O7*Dr~Hc(WzKnjAXY2X3L@Weu9~Yqkfn!M! zy$0&j5iwvPXdQG@=ktqe0CH=0y!Wa) zjMResYn{do&tW7;J@R3uUd5b+saA(81ZCwx^NlndS+pb#i3^y?qA0=hIq37HjW}{b z5uQn}1bqI6cg|!uB_r{I=NT?EE-i)ptx~)Ybr!<>jTn}qREzoajk%M#VL*wr%?QR_v&)+hBUP-Z5WYad>S8AG!qbbcZBc0|onT325b3x|A^ zZD(xd$pFiZB2p5OX|RGq7G(yNHM%UTiDZQ+Y9U7C#0AKp+GPZCl8%p zv_2kFIcf6z=AwN&ynIQ94UWK!*BZ>9p`G5dWpbEaF8}24yh5)xLYlzJVSZTf;>t7L ztHC*w#cUk67<=u>*5@1nJn>9El7M%q%ni9MB=SJ_)U`&(9L>QEJ$9*c0bQ)vg8BmZ z;S<3MpaDGvup77UCQK~#t2VKC89U!VsaPul3ZTThiH>9gOPO^Bca*N8Aobvy z3Al}dl-Tyml%PSA=ZtzUbrw;-&_L(fUMcuC>87^07d=dnRiKn9;)~;7z$T zYXkUD;?F`CnhTvaT6ZAmnp$Us@bwlsly@Pk&s`)-o4Q`b@TQ|8)kA7~3-zq)Av1ul zmaomi$hXD+MEj=k(nz3faIrOlwjX7}&NX1db{pPIjLNPlMo_k4uL}RfJKN~Sz9-um z6Lk!MJ!iE^TPXW+W%890$^B{$5DfoB7XUbrXiBYxnyle`7Od}+pL%E>))qR?A!(vX z(3AlgnTlqZx00zAMW{uNxV7$SPd~G`%=>T!Mf*z#0?H_OXrqaYS5i{thy`dtF*yX; z3-SSav7H3R_ux%M)|$(f3)>k6tk1o+v;)%E4&=uTyc{$2=A>+gl|W{)uF z3K8R)x(Nf4xPzu0UA{p<1AhTJ8Yq;wr)BDg%xPVj{(>op)4(=2Tr5lt0+7e)?v4Vu z({SoG*5So&p%r;<>H@h3C4RZz@fB;rPC~Vr% zr1OVtd&WjexmZJH3kJBK*2VgwoLZ1*F%TB*QgeBox&6gp!)i3+C%cWx?dRGij7Bcd zZc+PE;6Mn+^R#%~SFDp1z|p0RcpiEBw*cn7&`t@`A1cK28-x!aL0cXLQ1@MKtkiF@ znLg8##0O-7j<@82*b7Fa&^d}i<7$ZAsKVd?jkCCJ1I{-RvCg#DHaf7+n4mLH%n~9+ zA|&qh#0BbL=_?1nnSjwzA_oK1imk{)ef3}`Yi-0W4g_C-i{1vshhtU~wg2K&O7jJ1 zJ!;&AW(%Fj>JumKVx$CArtv{x7^_Dl3Ob8=mg_j3`TICwA~(k$&$OY=WEbXIrk;-;{aWxT$mK7CWws9XG6dY}h_#B?8sgP^ZpnFOHG=-{9GM zBh&*hu^wQ^=~sg1LH;;R(eXWneX&MYo)sIU%ZHcWilMEn|L8<}nw**>R`SIn%sEM{)LaA9E!Y*n#t*#ENPnE z`U*K$n=KQU&G``k76odXl2ShbNDvjHaF#~pU?HBt?Ixy$%26sGF$coieaK=ZQ{4yv z{KEq`yMA>6xp0@3dQM#I=iXD6uFa)$kx`cjPtc_kaWA5t1{y+h#!SJI93oF|pgaHa zpesInhudy2_D$zPwL~s=C(xCWD9qKDlX3)v^AbSP(JLUS5fTChzHc~vQ-B^Ia$wkv z=(|KYVm$6D*2RZh9h!9}O-=L=QdduAJq>jf3?w2jWg!vaNfU_}kh76UaT7)o5#9#| zk&C2q5xdVsG~){iRUVTxoa03^=};?8x0ZC&Xl^lJelZ1A5v?74FRqP%%5hJ|P6p5g zq5@Pl@nY=!B#hdK1ah*CQGjwflYvrjGR${Q1nuSlENU;B9~Gf{B0#U?r^4i#R}QMJ zCW@fY%Lo%@ zreXt~QHU<|@^s~)Vgof5B#kdg*D0;a1>9m<%Y1Z-s*w&+)=M&Qel-ae`JysbqEb@u zqFMP+!a@Sb;vghg%(c%fDyB!U*9j|)F~3$Gruc-F&k6`72R3*k7ea_52lJRCk$DPk z5kx-wr36r9gsUn>4r3C-pwnXj%ceWa%nOQVO%Xi5T7+>9%<@z^A(u}{py&OSghOd1 zAwo$ASLuW>NHHYVjk-`@!>4(|!%V!rIAqH*g)e})cI4Ij$z)iGL4ldVXJ6io7ELJI zgEauY#$*9{anuqbT5r0KfwpO6t^86p|H*YrAgIG<_loOVS0J9X(?$A*{VWA1!EHi;DS&vtTih7=J?WOuZ z3h{07;$96{Y2c;ug+{BJm<&O8(od_h5I(?hXd#eq*)KP4i63|KbE|9J4Nbg$l_?^( zNHSToB>JMr;iu0e5j`%+lxxUHjqk#FTo%0XWjV%N!A%p;3V3q1su7YmR*kTBU_G2sPg9O*y<7lr^ba=p#se|qrk&Ah5=u$;6@}!U7$V1l*z37A>Ym|Mr^I=8` zOee9EO{*AqWG$0vmtRd-~wh@Cv6$%*e%&9vx!Dz{3% zOjEB>Ptl06M_Rz1%zBuYyFgDnc%UM~5NlOki}cHg<6^sYDqCnadw-9Iv{PZx6WYp5_Ws9wfI9S|I~?-DHpYJXAP=WSOPp;Y z&^->9<@~tWN0;uOXan>#KAGU=>G#P-<2qCM_11L~wjmWmo(}%x7nRuHIgvpaKG%su zkX;W~!Q`Sb&ZJC07V9I= z(I^~=xEv^uBT)%6*%N3nlsc5nl#m4ye}TP&0xrke>vSIouu11Sy8=N;+aqIVR61vG zg3HNu$_3jk7N!z?NN?WOBS&39<(9i5hbfw;)=L&|GzFhw4FPFt! zW`fNxtIUnPS>(mVT38^906TjcNfXDKtK^gizrf{Ruvqt%AScZe2DTfWg@z$)=Gq|! z_j%yf&n$_uzKd>`1+d<in~f&eSEQ(cXWNfmvDOU&DXsXTGptq;`WOlx;dHN!0o%kyKvZ{o^O{)Uy_Az z=*vQ_KnCNy&4wrgJubP{&1!wub~YsRVY_w;(M8LNhSw0w4$XFb2*p@1t7~?G_)mCv4Sp26d^ccwK@B=kIuU1#nZxSv3EcXasMfM~OZcS+J2V>K#v!nuQx`X$J; zqafoEgKyOLE|S5|WCA6j2DxB;#F&huoNk=+e-&{aAgPC9Nt@A=CBz8}~Zhyr@n zN-qczfUawh>v8X5<&cQ$(`@jITreeZiKtr~nL79=!ZcxMoM<-0Rf~Y<+3J<|(<6bR z;evV%?BF{q`0yY6lI|2)#_V9wg1RWq=>}|M*z7L$DlG+6h~W{v0P75IL!ND~qRZ4! zAdk1Ae^bPZ_j*Xn=s&V;}A626TlUXK(u0jMG^8| zI6ZtPl4Q6|e$QdAOrJy!dIaj~RPi3-Wt2S+!3>VlP(darl)>XQf}S?EEX?)6kel_> z)f(duH){-VeledTpYpKl<+#Mrl3+TSt*H-tjOIcB>FG8HhEqunf@$S7u|ncJ98%{& z?KN8^Hl!MQ#ro%)#zRMGeT>?vP|Sep!70<^{7U<(KicQn?$Now_}*?5%2I;Diy!7P zTns<2_qI}j^Q#G9$!nCS7PxnjGayKDcKvEsy*y3M@CynIf;kiUwbg#jI-|aoxRvN; z#D1g!J+9{!pu6IL$oixS@TU9>%&MFlFdg5GU)3e}VyOv`#>#$`D~xv>1LWf=AOvh+ zuFAnCVt~^Pv|u&GgoO7j6MfGcBkIi$WPcRsr2wTos5Q~CxRtZel`N(!$9DoA7VhME9G?%+> zO3@C56t8#ZaoY_3Dgr%WA1T@;s;VeNMMi*?$OE(qvpW>hY2bB*8v$^kZ9FO^P(Q5@ z_1t7y-22bdklGWCoJCGXW@Xg8HpC z*YJqZ9RC|25ZTuklK;|hhEGc~I~JPj_bv~LDT!@HQE z@;8Lk#FqEt=}*Qe2ew|4hRx!wrYt%A@sP)-Kyu}R>Ad&2k3z0a{U&|&z@u0B&8>d- z`AnBCTQ*YR8M)WwEBGybF54W&)gtQ&;j+)Q^|Kby+Y8x*7Ad)KpjQooyVS=vuph5X!T%Q!EM9yL_DaMLhM0qlt;%M=Q)n$>$;r&6} zj3mTEct+p76#LT4Camm-NvK|+E-1wJ4L zau4^f^)+$N6UnC@FFscYT_7~|Mb#56fS5g+vcq3tNa>56Zl>@YXlyOPL$f4Q%$ybj z!ip(|&DV?hL{E-}o3c^yF+@0SF)*-6V|b`e3|E=9zX%#tq4c5CSeLsHI^)ewvVSS| z&V*-~>SEwYgVxj$jz?lGTIQ?zNLxfbIn@FMXN{J&gwc^&+X*dKmVy8oRcZ_|t|8u- z^C-X^Ls6jqRYXHPMI~^D``7`~3dmzW@z3V`yeKq%zBjf0yl+LNknl1TV!gAmmo%oK z!=G$7Td<-~s6r)QZH7)IOk~7h%Q@x~M35YeSgV#Q&;rP`sbhW$Jcw=EQ8>T%GB1oOLI~%9*q{h<( zXIrO?rE9IFSwoZ&Ji4;hD-3!r3dFl~K`s#m$&I>_&>Lwm^37VyC|0u2h`H(>_X?Zt z>EMhsIRiDaSJTzn+DkVvahrZ;GJ1_p4QPr{IeCO2sBb7dGHm97vDGpK(}AS;Ahfx* z8pDIZpHNzm(%8Zh&?FC2Lm4IbxV|ergz=8|iYYf!WF8{dDGJ?^=n@aYtzA8qr-7r8 ze+Y}2ZFyjp2GW~Kd9czqvd5K#7r=3XtPoC592TJSjXY#Q9eSW;yS?66uy`Y$u15!s z?)e6<=U>zGMGRw(v!Q7t)-sCTx1^D4zwje&c(p+c=fCBYhS%ICq)mT{Xst>i*#mPGA{yld-rx^e2 zLcL`R(tL>)umKi8B6%$t``Y=F;Hky>n(uQJZt1l)@tyYOd}bB{)GwU?608~kMwq7{ zv2qt#_jBPUNHOfZzRPC-bn$>NiUKVG5x1iVRc*Iiya*!qabZU=t!d)+vI-NR+gQ}s z(j`oEOrlyw0z<1CKrFDWXI)#t<;E>DDQO)B|C$$wDr6z*dZ>f;xHwtBW7NY; zloVVm#m5Yj$!thBTaxu`N!GKetOba=$%3M~+yQmcc{2!Ik8*CNaJoyM2-7FQ=&eo< z%-_fL0pTugRG2j!AC*@c0Qe%bAa9A$lYtR1O98#bPg_z}h*o0qF<8!xijHi;M&+kN zywzZbPXgR*2qS5R*_7-Fn7JVbI>t?5E6nYTv~L-&*{+;E6?z$$=PH5V6xe1;p01-P z;m#hKl;q01i^+0!U#>T^Mu;lL<>Uq#yY=Q6`{dFK8OMLJE{|EVWQ^Xj&Lk(f*bq$N z3p{oEq1Vj_wWXH~n_nx-O&PK_mpp8~odeJwVfBh_>STZ_#3VE}Gzwo)sITRd2$`(l z{MKRXq;uHRCI^!D1(0mKNT$MV;CXLRtF+o-cKav`;s}<~P%{%qtR~({o^4>)WB5#F z+`%4MQ7mP{dcBt$^y%m5b=y>1lY21ss5j?9`z7X^FAUoy$==8ZjkH50{_y7teLS&vlPq- zmMtvIH-ouyh0yD!wmR0!_l(-DC)cm8kd{-<1ctXXT?hcAo`4!;WuS{ikXnZBL{KBQ z-Yd0wj@~_S7uqfQik!@F>+wQj+shN;3`FK`067i8pcQFgP*t=ak32IRV%`Va>m9QE zNe&`4X_013Yl@rolIx3V1S%8dWD7AzYEdke0B>?X5!1)X#Bu6sragHP=Sp+I`wg3b zrUmL+iVbXj%}aH(#3v+qWOGb{Qs&4c2*4)2ya^VlYH;fX74hn+CVqi|8TQ`kweK>z zvo3FtD^D0}zSzWXP7Ronwebf2ja0Cj+4kZ7T;?HCyI_;0_*8u+@4shaL>W!fkk=E1 z=R56nd9+2o3$l=nj}J7_`+iNXVgd@(cq%5(9yCuMz!AGm;@SC| zs{-IEE$>ptT7F8t_m4c|cyr|O9ejb2CMoO-@ z!b5ykam_%P#Zhd>?lss&2tb3f7FUWGQ<*o_!pcG$D^j@}$lHGtKTDa!gIN&1VB=)u z!p%!1eg4H9^Oz{bUaYb+D8yId$PzNJumTC6=2UZ%cQIaCvo}6PIpGKL3I;}a;3ZUG3qF9 zojY@CYIUZ?{`r;0QWq)25b;#TZe-eSL^VyEIKnj9gKF3be(`d*lSO%~w^_VbpxCtv zCZ?_*z~%ypUONu4&Z_kXgZr%QY=iV-aPCc3C`gXPCO0*)&D#r_*$-ZEd4n*KedkOJ zJZD}N?UvL;-A(zjDRo?;d@-L&acpJF>&e-mS?KVRAiUI{htYl)gGgp>0dfKMC7j|<3IUCRWZOW+YCu*p35)Y{t0Mgnds;bB=C z#*T~aQyuttmNNMe33Mp1TwG5P^0ImYrUdoH0F}~HNKODxFk-p|Z!C2u5Z)qnpZwHE z=I6WDnwjwS!hpdsBov-60!hR^-dEU-cE#9*ObmAU%k}IHYlruNa0J^YK_#hZkw( ztg^~vd*=0)RnJBV`pofVHSab2XahC3D^3LdoAQ5xKg;(s-xua<1e~;8Y+Sj_rmz)Wk;4rCU8x-!U^~= zNNV~^pm!T((_HKNu2VOU*6bQ=APOS6yL#GdA-x>mqqDqFj!(8TR;eeZEc&2my#@2o zgAd|G81Mf`-p@W>jp!oVIph+{73B6Rp`L)v?6r-IEpgywE(xP|*NqxRX4Ee-5#+0F zu>2EwHpT9-pgvYYs9>u|D{Na)gv|7zs82Um*3e7ytG?omIO+=H<(5|<)4hbZ_$#Ou zCOB>KyaI*DJ zuPetzvVIh|OWjNI&7)J_=3JNNdNL!4FVw_9BBhqhJUv`sAV*Tu6P|mFX(AmI1DF*6 zF>y1u0@I5vtF&d6gs$V`i#{#l#SP50V3*jqn$I$o{oo~XY5_f&;_8vWhfAV2cjZ|- z2F$MWmuF`d9)IMEy_n*bnyEP3Ty6qnkw548&aJ$4Vx*L6)JFItnxUwz3Y6^ED1`5t zu^MY;?$7IW<2|!~=zK*veHQ6$+zXKFfREgU6}ao1!h zJ;Ry|@mmLbZ?Nf@DA3E^qU?&$oTj9*5r`m&GE}X1lUojC_E!dEc>wQBa=h};`K2PL zX?+V;f**>{RS;K16dnP*zGbFq8V9eTy_DtmIrv1MA;Nhq2YTeI=VQ2?v{nd zzW8!Ihlz1S9t*t*;#j~hp27t+FHI8D(B&5bPq1KJ(~-t1J6W>hSBioaMW9gBp3Xm%hXX6=E|9skhp#jaArB4U83+;yP&dX8wBP(%KQR zNoH#xS|D_=k_RTVbBmyM?47^0s?K2CSyn{gQ)%Q?^Uks-eG1V6Rx0Mu$wPvMzng1o z@mBBKs)d+l#gK)_M?C?k^K!dwljK0{*c&u?OfImIM`IKGE${MAM`*q}VAxQipXl)h zc9R($4_MTEVUD^?5B9o75qKH?L|fb2gXk6?;vk?JtVa(_UbNC4cw}eT;wFZ%1R4oo zG3OXvVZfIz0Mv}VJ+uUoDy7TS-0!sFUDjC;7cRf9dgl0=b?_yyMe30dwc{QG7qhOo z+UX2E?NU-y2nTu@4JzUDuISdMUeRO`YGn2O+-JX$J+qP$P}M$6ClGdjgxxdQ6LhS) z)KNcwiAz$nl6L|hqV)zeaT)R}7BHA(A&jlr;}M~2^iEnUYoafUe4Sv1!{1zFZlJhvlB%2gQGGMvW+Sf> zyb@{wdWTVA^9^z61xQC)p6nFm%vDp6`l9=63PkgYK9?KKPP@fmEi|eDoAp$WSJI<< zhBTX1i&Z;FoTxFyEmzg3vqbBZf_PSKl5zPG$`Lbe{M zEyljRLiTlB%*MWlvAK;@S8glSt~`UcH%`0cV8<$oiZ5oN(eru+q^!Op?mqdc56`Pb zL4Gu8p*(NoBuFUfGFbI%q7s-T&8GeInx_V3zDugMxbdc&@r$gr#(r|f~ zgD)(16&asuEuyi;xpqh{4pKxVMw+|S$|*POl^>^;uPH54Wwao`2}gMC2(%q&?ys>Q zLr}4beOc^dD;3@^I#}$v>RqZ`5PV*)7;?>lNZExpN2yk%`NgnBFG!O(3%&rPns+m0 zH;Ws7AMt3WY25kDyYO`udO?dwa-NXn%Dl@<_SkC`o^!s+-=*CwadOgui;cSFR<}UKR0ETp<5IEkdmHKIGXJ@dQXzc}?2YQHzg6+RA z0+ly$w6WV4?MvED?T)9!E_IMs&ypr|1p1AQs}OKeV$3x%f4Ygya#09%5bJg_51#zk zN8|`9z(`w#0yeB?Cf)-SY%clQeAM4+ z-1L9oKKT$1m4!#<&at{jABwMVP~MCD*Iw>9yPdxYP>n`MP%!;v+|& z2j4#91|=PcPcyWAQ|*zfEjw^QD1OwKuH1^|7o_AOw0O>U;D_!=!9u%<0zK@kxi*~l z@coCN;TrT?`|Lc9yS~O&n9vjioHa4MTPHO8{Ep0CwPpOrVa(Z^j;aYralCkH%wX-e) zPPcElE3K>TTQdFdT^FE{PjAQ!41T%@1z$2=247OEe6rCwTi?=AyS|Hs<+R+xpr`SkuzBy^I)MD*~2@G(K`#z)_6$Z+xiSnb(Yz!TPP9uo;0kl zaHt=RbTDedAZh-1eR;V78(}&YS1}!y^$1%{LQku(2D*yBXw>2isaC4wo!;W$u&g{x z36o@Cc-9)JX+JhO2pP9VtQ0`3qE%l+YL_pOWTC0a05VKjfQpdD^pcrcv=Z50=ZfIz z>2d=v)74uGP*pg*tBeYX82p@Ns#)NqzdSU0K+SPBF1kt4?IPF*;9iXpE*C^s;a*yW0nRdqurCADJ z1TSR;kdFDK)=C&>^86U}J7==J)}r@0r)PF@*4cBB?-cuKpBuk>mgaH95O1O0nq}Lx z7NEj7qq z=e=T|FuDvEMJ@}<%7fJKhXLsWJ_f`>NCVJ4$bkIDlWRbDi^l}awT;Ig@@&02G6aQq zb43#+aMUwZLykNdp>QwKFX4(hvKMsOtB^*o5^AVOw96wrK~Eg6w-(Ez1pVUjICz`G z*619dOTzi=h#%S@kTu_d{`srx8BW%c3FJc>;NIsLUaTNBXSmpO&xQ@h`)50ce+bb)VI>cp=MaOQdI*S)h z2F2~P05N|thDFy08HU%z;q$~VZ@_=> zng8WqcKF}mS@^r`T=hYB!aeBR5dA)N)-~LUYr0kV>w>%Erop}LGVo2is{omHb@!a+^csC12Y(xKn5FERP%SLrm!;AR;HyK7j8e4WcNs#uCVd;K`gw3I z0OVeZ_c-Kr$z23j2jFY;i)FSTMjif|RNe_!Idp?cTZb^W`Q=kk=|yT6N5G(IYRoMv zaEbb*MNPwAvjt(lcBC({XP11hFA=l}F|PUWMX8W&u7=s>K#z}LzEr_OOB5H=xsevY zR^WekjBC`8athHK_HyGQbe$q5HtUBDK+hM;K0y%=9mYJp^IyfzSD2D9%!w z>ITok`8gSS9N0Rwz9U0_0sObzSsHe(SsPldwU`D-o#J8M4XOifKkQ{&qD(aqDi+$hg0z3W?-U1pCpy>h!XJu4;7QEhX5Ti>r-F9H5p zBCOqwOE`18Ye07$$m7u6ev@_YnFUuy`K&_NX_?>80>*Y@cRRDyHFe9KGb=?gWRvit zw)lqZPm8ku>6YB~ltb9Sb+1so4)xpo-=3mvk4Xvcgs$nZA{ysThZgOWby`A?wL*EmrcTYz3Itf^6-){b7nQRPNM8>5O`=L$o6rQU1kA>dsxJ z4Z0yUU+}HQG%GTpFh6X8c0F%@y3s>t&g3biK+9n4rVs*sug|!q`X;kXC zw#?IG&tCDlu2SlHRCBxIpDWb1NX18`J$jnTvi*ls6(`l2U&t>~EqO9WsRy3}3T=1X zR@MXSG^W^Zixgh$St#S?J39)vR90!(#OAjD&>Q3~fXK z7p>98x+YuG1|jlAneI(mDvBBM<;D&Ct$fC*iq?B{La`z^H&pg+1E>Sie&+fVx#ukngsr?hQe zAtim5o_2f9KWfE=vXU&u?OlqYXoenyoZJ;0hc%fIF_jfgnt56!zdh$qYL#ZdXK`4b z`oUHrxv}E6GUbhALf5VsdWe_#4CVN+`!La@`%(Wq1z(xnpIq%3W`FXu_!9EG^mh80 z2|b-5v?@RI_SVNLt!}JG{(QGv>>|Fxng1c;W-Loz_;v8{UO8W-mafn)-io#fNcnKD zluEYc(mdKLO_3**OMU)KL?9}4G3|Zuudp?A%3+?hzdL8H?w)OTv@I5 zQYY85PI+$9u66oES)G`B*0UxL^{R=ck4mG}s5^-z?=4x8=a4N+trVYk3CClq2Wdy<>9+btv>+L7158{Wyh=E72dF5Jq@woObTsV(n8WEjRQ4 zEKE1_A@_iD&!36TiBIOX>x;7C2X>%6De-Zb&#KeX{TZQ#H6Em6p=3{vKe9V3s>ls@ z4^6u#_P{7bx-XuN3o_Jo?7U$Rjdly*Fgjfx0Z<=^AU$^u&Ek zpdmSC=in-p5SHQ+#a?wWKOrJ=hHzY5<5aSJfmRP~ux#aw%0$L=lNN72jk2g^jNAQ} z!acP@?aQL2zbYuLkMf?HE#3BaYsCtU!?KH6?VN9=UY>9N^}gK_kj!aB^Jtak;R5B; z5t8JVAm*;%otEVC5apueQHp@st!FI4&h_`^E9IHuG-fGJ|5*lv%9UE7{XzG)d@f3P zb#%{pzN|L=57NFgw!bWQYiyiLp|MZ(ZmiCg2Ibd++&2UV-k=ywFBZK@A)%RH(VhF2 z$+UcX$s;vwl(Ix)R9>9S0U=KlJyPVQDdHeW$)(3Ac70DMs@JG~DV^buVfsFks>%LL z-M$+6Bbm0d<&C`kDf^%DbWw~!f1HyywSVKmGEWOCO_gRXX-CDZCDR4(&F2?0echoz zzm>6xQxqPG?NtoKjN01~^Qb_q2a{*>mA4}S-MxTRr^X1>o`l`z|L~))&N=GGGszTD z==Ihvz8Ob%{v7#CA@I}XRs37^Vty7kerS;uCoF<+raV{{H_h9|5(;B(y zSh*yYSW#YINQ>-RE|!}q(z)q^5R>Ii=^*pQ!cPe6#;czp85_w znV0yLGhc1}ai6~AQ5m0Ox)NuN&XwioOcVx%HuC{_o$5j7mN6Y$mQ^8USQ5#cI}}bR z?ognY-Dl5|ZWH#-g70B_x>@mac|#C9>r8d+MyozVB1!C-REmvH88mr58#pB_SfUnI;F4kaBN zsdvxO_dKnd3$(qk%u7RNiy`mj5Z1?TP&rZfaSlHd&0bB#{lx@dl<1G%W?O=CpyGO0ESWwW z1VSrF*ST))Lhoa4aTCTF$mjC9FIUALl`6N)Rk1%eNCz{&8j5=Lt7hzwplv#4XX=4D z5Wx|d_Oks|8`p64f1X z?J{$&#W zn3*zpq+-kNwZU7?)U>nhQLUk(FrBxj599VUHfN?u<*t-SKbERg##U)i@H7R8e}wad zjp5z-GaL(N+b~qk0tx^>K)}CZRTx~zKGuZ`)C(Ot`L;=s2odwFY?Eu?V{OSiNonKw z$#7%_a=Ai;1EHn&@S+cpGt@h{z}=<&DA|xD4?RiC;|$FvR-tH^lILg=Uv@?}^5=V} zh~hrdJ8qie;bw2Qjl~}GBQ~P)Qdi|Rx%Zr<)I8I8ZTJy6#v|~UANl@zK6Oq)1n`8Q zoC`D$*C~cOgl9%X#4p0>{Py#VT>$0+D zh!9z))uGBaGYP1+_XSw%?wPlfch8)!yc0RQ=l8cSK1=Hi|ESJytEYF#`>A&(@BQwP zS#qOB{QmbyF7JKqk&yS>o71VB8#<>K_P5625NOJne`m|s-~2yKnEaZp|Gv(cIRE|4 zJLo{{|7;9-yXF0zjb{@S9_=YFzEkt2w8YgPWr?n_pQV+yss2uv;)b5XnGC-z`t8u~ z68&DK-{*incnk;Hr=R=EIh6x4$Lw+6 zZT^ns87Vnm)E~{u2mrNFenx;}8_LVA*KxL!XCE|Q{?LH#KiP)hwq6!1wTWHfz zV0ZjgucGZ$iT$WXm?B-$f+=4S#g6}QVpPK<`=fWd2V?oe?hCcN38-qKgq+w~sjDSJzRO%(Ca?kV_tI|~}XOA`x zVNc(n{n)+tqQh%2UD*{JI2+O_{TldfBv!2nq5oS{GZcm05NWf z^^5I-58AkKr4(DmI=(3#>+-61qV9sqUhjWU?7e~XW@*uNUX2d#X7#ICzXx-BCEEIV z4R*a(*>BFI@^!wfA3s3tVPh@7;@Y|zt(=A87C<7t}^q8#uU}{z1$e+)!V&W zMg70|o%|Z@_zZ9O4LEP6Dd5&R=?d8!HhC7@eST4-RXr@@mG=szn5^z5vmBKM?#Bj4 zCEv6Kr$#DJk3LU?hZ)-XDQMa^dNs}N7G=#*CH5a%6W04v<1f}+89z-@0Ot!z8avg7 z=*sfeRDZ=Pd6c)U)*rUo4PPO~vTD(3Tz{2vugjq=)TtM3TzBD~OE5i{YT*KPWJg-S z$G^(VV3SG-cot}lg?i{&h*PAv<*wkt9MWh#BeiQ1J}g{@m~dR1t*DcWBP+{oRsN4Z~# zjU4B9EfpOVFI<)Lnd}zbmUCIs_RQx0l{Vkki`HY-NAF7KhwIdyQsnP`1vDBrw5)6J z0!hqXS}c^1szZF1w^s}*N37Y+EMc%!%PQ)Z+9Pw*HIjW8D+|xvX4)WownlDjFF@`e zE%ry2}fD0#ga{-x}Jlt+ihQ z{wH$_-TGL+_kw6%Ae|L5(W>57w~pRTE)gd?rtVSrZg{A@+~~nV-v6txlPndmJfT`@3oE1*;AAwoOqGteH+5tLJ)j zEZehmS1i9i-239Vtrhd8yFx>{1-?)iF3~FOpxof{%Y7VINt?Wt4by$u?q&41%=b{{ z!>rvNt_=6$Q_6MWM;>#`zYoUC`$)Alw)a;Fio|W2`^EPe%T~J;bLv4#CsllR)!w8p zzmpwI1r=XV(6C~S;savknf+oO7g+UAu`FFhEWB#lw30ceZd9VZQW&sH{w6a_m5u$X z@m>shP>VjhAHtG|^xFEhIhU5(q$uZ^0^Jf;soG~s;gfRecHL!W;;4wXyp$BSD?2ph z4{U7HBUpe5RKGo=snf*F`HE5MK zDNV}{o36*Jf&j}JcVB6~W!)AmWb|`-*7bj%)8j_}oV>ClNv}g??+3~9`ZRg=Kv6>} z-bk3@WaGB6w$tu81$M^_X&kg^Qj|@oqLO|&o#h&5cin#CCD(f*r?%7+d%!~ZURLyi zv)l3_D_dXaRgpBSWVb8-@$(1ircApzzs1FjkrW2(-CeyYA3gQss=qGvE>}Se%HxW0 z*hVUD-K)}_I?+^lBdr;kvZNKirHAtVy-u50t=vxOR4w=jBnDfa-8-FS^DjPgXYzjj zcIdIbb3fl(S+HoNA$3TC-d=ut`Q)`X%2bYFQN8n|I0$SGV<4@gowk3n*XdGeTRq&=GF8q*FbcT$lY1~RQMul) z)@jodIV>s)7NL~5NzI$+kI|?~~*8>x1tUap3X>Mt3hKX-4va{D!y-`{1GCCbvt9%~xXs`pf>r9v zmW(A^Dr(R+uUA%2`570+7H^O6g}}P+bDir&R))JPA2(cs^%rE$-~PLvi2m-Siv>%r zGPn%ef0|^p`ryP^ysJ1b3US7)MR+%OQ699k%ndi9FNM0He}h+n1|J~TgW&o%@OM|q zlf-$gj@b76t|FZ4MQ!&ORrh*aEH2BYOFj@b_$>TA53QmL1Bdv^GTF1bgU_1bH72oJ za6DxPAMI50>;v})Q}*+pOr?5nD&|bc>8|)4lw=;`@n*PKfIyrh@nZ()w=X!j_Z1&N zxDcmE#)$Gb#(6&B!rL$i!(1ZRIL9-s9OqaDa!2v01bjN#jptuJa!2B0ryIkW!P*Zk z^F*r(dEJq?N8N~8*K!IH=Rwj?)Z`_LVU)r;Mjy_wq0mlOMF@Pi zeg}C~d6mU!A|g6O*07nv-sh_Hxplf=r(7>cgo&oY^qENap(t^%#H3X(w9D&(gfdo& zM-(_y>ojnyLRP3Y&4#l^ZLG{T)MuuY#J%G3uSd?BA;xr{c6l4kMP=GbPg~$twIDHN zuI%<$M|dAPb>1n_SUJX}GRKLDH8(`|haa7F;n{`WuPr9-4L?xSY0Av<$t%UWo;oOx zM`Ir(%Q`bGxr+KCukBxED9p+$suttfw=YsQWMjdz4Cu|>9(?bmD;{I2UXM@58tBkH z%kl12rYmaA{^xtGsArR(m^cjoBbxSFaQxtulE5|_yY<@BZ!?EjRqG-B61;t9I7a(T z7wjUXD)?nKKJyb+tr2Bh-~$k87I|Q8q)zS)I(>=${^p;iMxiX@{c1XPrzP*F6&9&ZmL^E6mdB~} zoi~2Xdd3V?ey7qYqE=^kcfaZptu=qcVXATtIsd%Px%@djdSUpp#kk>>JVmc+KO|_8 zb)uZkIDK#lay%YTNXXkgl7jA9yPLgI?Y*AbS1YdgFlnqGbx4icSejO&HVVAUc$n-v zP&i%VeN3O?*{zcN&U4e*$4l%RT2>J{)k(4XjH+qGlZJU0%#^mA%cwI3+n!9a%ZinG zO30*hy^w*X*%hahC<(@G$=_VFCtEcM6qk%`f`#7HF-{|tSfm~AT-rA;L(=FikG6KZ>E(N5 zJQgx%&Na#(%;*UEw6sa_shOaFq-nzDc^%}?k4Hxe@u}|F_zgciX+ao*BgK-(&#IJH2MjwUg0?m|5(C>-n2|y>h7e` z>-(AA{+#sEucf=@?VY*uJ6s>9u9=w3(ghd#NZ6cuB+EGxrR>Pro z`XLe2dwhyZd-oy#U-mo8{h)*M^W6;m`kcp6sjI%4XHoq!;H%<$gP)<*i+Q9jP(nA| zucb0GAl@8~@nfjM@du1=)9nfNGV1YvV z3wukSf1B+RiTJqA$k^RmZhXxD1@{qmqL23id)H*|eQ{Q172CTABhi0)B!|?1l>7MJ zQlD{bv+#C%4VfdioAx2-^S!tCN}PI+?L{$|Xe92j&a*b{9_u_SYjx$eQeTPt`ZiO` z{N8iT1DleyIQNqJs`Oay;IzjvJ5Qq6#oJh&x+-T0j}oT&=w5pdTfg^~m%QdWr3wM5 zdl-m0cE1VN!!X4zJos>o>SLq6xqo@F^rhDgF|*%3`Xpi0Yp!UAH$||7JTl?26qQok zN7Lm$?k^40<0XPzhdz=aF}AHULB#AWX6=3VJyCT+go8^ zP3AHw3=Mv$^sZ1U-zA|8+jI)#`~nLb<4~^WcE5eJTkUW!46CjoWyHGwOdYohbvQu} z!1OH|S=irxP4>wAewV>2ENY9+eYF3+3MrxOL;uSCEBO6Y_p7uErPaRJDnLk=)8?j? zbe&S%bgcB4(eX|t$k(D4Vtt>3ePy>A>(N*1ZH1Fq^GDsI@cTac{iOR8{epY&li>Ok zxjt25dpzAHJ!|QeDKt}MS+u&Bwn-Ntb4`(p_u}_k5g_Wlzy18uk{QIVsl2ttmP->~ zb#f1sy$bRK_4SM3vacAsBe>6)hrLSP&P_kB8rXh$&HSsT41;fXd96OJgC4Uy+~%vh zUk1-FG+UjZo?=s5B2+mcLFqemP*TgM1Ra!Z6?^Ws5|p04{+=hKbi>bVjvp=dz-b?^ zcmXGL{?-}UuaO$FCfvhqtym+y%(z_swSoT3149+=VN=O*=f;+5u%f?HMp#*kS-bb1 zE+BltRS&>r^QW)5QnEe0{d$?v9nrUF-B|RV>}R>_SZh+Rlv@HuHA(t@YWvg`lh=|d zD^J*|+4q8kYdPH?z4g@Nx|a1(XeU0$z-_m=6w3(hwtW=ZZcU?CuH1f(aZg3LZvJU6 z@n=Yw=i?W-gRI@QkQ>Hgo+%~M_yIQ_lB?7p+l*)`EcExFaEF$Vs{gZyRq+SE=cM=C z63YBl=4!e_<~iw4^fJ8O``%LJqh-6LeH)9*v@eyF>Dd+Uz7*03 zA#IJSJb!~8HecU;li#hNMM1V{Y?xW?_D#y&nHVv?2MXYe$$DK zyZ-v_RV}`7VILVNZ${t+gi*xGhgA?R{Ie;i{p_-s!<6i_&8__|^c+p$G z&sY{)FUt%z)wJWCExw15dl+Q!JdpG8)JPk{%ZtL4;UI+CrQLfhTzxECEUH;>BDo!W zj%pXK%a^TUcgFTszKk2WT}WeE7sQnha}@`vdU*P5S=?{5=f6*rH{C;uF63{{zteRVW7+#RITk2cH}K zMdxPYygn}k7V=kFrKU@*z3!=gR&IGf_Ve(%C8m|@Z-aNk-%01D?t(DA?03J*oRxc4 z#_y86R2|3-{t^((za;f_58UPST_TpkvS7OlIq?aFk4UNtRylN+Q)O&-$6d)dWyiy( zsYG0Ai>_fz4Tiape>JS-RC`}ZQsNdJGUxa4lern=j-7OTZ=>yzguCOUR}xsH`M}pO z-Jz2{XLsbJTN9}t_5%7dLoK=Yo^;{jE-R+bQheUdZ@<-LC`wzO$+INC9%q$0e1_vD z-h@TcvQ42%;FcBjG>JSHBCRoAv`@n#vKokZujrku2j-lw3oN3~>~_&(H~NhiId|mC zyEmZtT3~*IwFg)=y>ykf23AQ)@d6|KGX6f7!&RHF_FJ*CT|ZPRUwF`e@2$GT6ax1a zRPuUEW$*&cBhIo{dtyV5VLK=>{&8GU+b>!M-SL1*e=#7xF$*mhDsk+1196+b)$bA9 zYIHG1S@#%VFI=23v9Y`r;h8Irrb=zi+ZPPlPM@5%JGb6!EQ;(>M_S%G`50W5W517y z<~ye8w{=woQq9f0@lVUT)%miRTi>j3#1v)I=NKyo1?Bhjee=uG!WdhrlHG|?MsIPB z^lRi&(K8KSA5>jA7xc8b120t7$4^mAd!U{1;#y0>JVZBX0?$)#QL-I3_w(s`@n+a{ z5f|;y-A=E|xv{%R2*RUY)^{P7UiA5CSN<{w^1tZXFPA}Kx zHMnENwxWQ!_@rT(u=}*1JBrV8FNr;qGLII-H#mYDl*6LiO?%#sYEYd>8Mlew)LS(> zI%AL1K|}dMzqzDMlI3!Hv^+ONcQ>P43#m6>vWJoU644`(9d0|d!m{8=*^w&5n_w)7 z=aM1`*XGxX55aZ`vrG%xUN$4Sc>Vm4%)drq%( zf2)p~O+T`#f8tbuKAM&-V^?%Hh${8}Z;BOrCSt{2maUula4Zs3Wg6?lgXM0y@!``R zIvyoOum}C$eU4RVahGO$Ige7~*BxIiUZEIIn&SrZWWp}=D1@0)HQczlY%e zMescc=^utaxA}kH?(;P`g3nM|=9)9D(=eM>P?9b)kHWEb@AyTh4->a(MdGZu9<9yz zwdPP`oEw#`v9~w2HfH{2403aj$MaJ(=395X^WE_n;S0Pd^V8HZhxV^yY{*Y#XB<24 z@SGNjaE{FuVRu+#{g<6y9(9|)GvngBF}{CPn)DCpTLSr;0gOL;H@D2}s2$xDQ*6rVqK^+DszU`QR+ocdevXS*N*8$62c(mPHmyyga{UFE=Zr7}DOKjX*IS;LgzkN8sCnwQUQI8h&2IRT@ zg@M|{_Ths7nyO4f1u+u`Z5%%4eDF1F^F*^snH+;|alYP_k!ix9 z$2dBw)0NuP#P(N5ros0$bRER*p@JYGW>0P?9Q$YrUDg`o$e0Ock&=*&YiFh1rAJXKLnpa{v6=X5PuHxr^=sU{*3Tvls|{~bC^G4@PUHI zH@^f97_;#W0t`S?(Lr50vHiE;c6_&J-6}Sv z3Cj-~GO_s=T-k4oZ~m3<#6Oo#{Bvm4_zN&uhoS4nU#Q_ao*F!e`Tb3eKjIsns2&`~ z@A%^J@y)-hj4zHaB2N1@xDHZgi?~8C2-iAC8FUWEV4ya>y#*bNxNQ8T@Az8$q156J zhXpdpIZgT)e_YisLxyR33=dZa_&Zpw4AimRbSXxks8-=KHB_4#8sB_{eqa_%4Gp;p00*Xq#;SwV?jeeH zklm2~5ati-43N<%WrgL8QH94Kcua~PBY-V=?68jxD@j`XCFn2s#Y7bRB>~q=Lhv4` z9?&+9Z;WqlaR+WdjmI~z78~pz!&H!D{3S@WF%~)ol1PDDv`=kNVOs*K*<=s{CRPoX z7vK|I9={0-Xn6SNs6S{=%YP3!KsS%@zr#l>gLk^4cRKukbhM&zbnNfus^6{tqwGJb z{-0(4&#M1j?0=W~53~QU`ls1H?dQ_hrJ-M^#kP)Xx+-5-mlG$eyd9n7jTXNY{rBbj zJ^B8LeE)#+9~SRlab8=0IbE#+CgQqs4Y^)4>!34F-i;BySQ3GLCbs?q;hZm?ua0r2 za95Z#)6y0w3i3R=ODtI2!xJY*tG?55H=Tq%P5b5#yz5WA>-W9ud)lYNgkXN?1OAFJ zz{JTT)q}KHYUA&sX*lc#r-r5mhldZlA);XLZ+PI~@F-xBVL&nP4`vfMtJCNnhMeIC z^B;fd2e=Yn`oSPB(Lu!W;I192jzIX}@ZjLUAgp=}9Hc~pgYY{zh{&9r0|SExs|SXM zYlA;uy<>2A5~eB4T0n!tFV_h74-NndnjWlR3t(e`8o|agNwnPHFrtk?S|~3Q7C1aA$Y*@>Rhc!f;=a7~ zJpOLJ3eBp)-yy(T6WcrdZwO}Q_6~0SZ$Z!hw@0fZ4h zZw?I?!5Xr4!iCEb><7> zM`>sNb_l<-3U%2U!48Ihkjd9=X z#3VHgsY=6;5W%CyDDD(g^Z-&*_f1xZsDe}DJ5K+YYJ~}KaFpO9KE?t3!R55$6dx^O z{5ZVgl1`;-~nN^4JKge$U1zLk6^gBwwhv@ep{Z{FBkbZ~g_kb+XSJtXO zLt#XiQV1oZR32w@=9D*OP3xVylQ&@5P-PRBoCOE)=jDmbe*}tiqB$uAzdTI168;-? zL&H-;gf@{pd<#z_&WTGP73`>Q(TQ#xx|^ooF`k9TD#xY|^{sp0A2T_^0Z>QRcgrk&6q zIL(8%GUEACV`hs5%rY7{R!ARhHOIGJg!Kv($j&1n2u~?it^yMiDpTrFbiKwkF-w`zvoKe+2 zB1L~hGW>#O^##m|<9tlwd`#lJs&QToaXu+=J}Gh5wU^d?l#>$Wq(u2WZRPKA_*n@* zE8$<#V!jlL`Lx9Ow8Z)MN2UiU&cC1H!5wo0Iv_sL6O!l&NwlRIZ)tZuiCj)z2^8>6 zoK6I#I(`#J-G+{e14-DeZ{ksY2RAP$m>8R{kK%UrP3-O_Qgh8=^#2iZIjfxVwWGLD zzbgASjtWKjDqwm!iNJ)F?frGwU?4RNAQksI@vLZ#P+?y?NWqiHi-N7}m>Znfd6dG> z@v&v=^`j1^=D!e({x!$3#-}9stA2HS4gMX&4ga-V-PBD?i!siHTJV~QMLWYeYWmlx zlo54Kj!yILT|>^ao7ld8Y(2028#|gE5+# z#3_I$!x25Uj?@m0(ua=Pm7~Ypebr%{Du-zDL9CBd*mmaw-zc3 zWcI}N&|#{G01k2-{?OJ(P@D`be|ewA1ZoY5o!ZnS6UdX}!gHPEgXY%vgesqu{@eN< z^(RlZadlA4W0JI{034g@P)&ymhQ3CWBodY~P?f3L)L@O8=Ht}3B#p$?2Sjub&kuvR zFuw}36Q}G>9es$Nze7p=Ur!mpQFCte#sXN`nhyWXW*m|8jkMi7p{fNPzQ-bn#PRS}0)cjTHN-Bv< zRb>6u;}L3A4E(Mt(9}D(@c7cCx~}u_k3fTP5};z5RLonnNqkkyX5jb6iFLEHN+%%d zKw=a#vKgZg^^I4De2;Q>9pj^=hn>^RA7yuyuqvDrrs>Q&1*g2BNjVNpG~onNnLLWZ zTG*cC#6+i1XxW=Jz&I7EF-9gl1pU^8sXIA2HHiX~S1(Q`R6w|Blsb9?8Dj6f6&7?-9zr~U0*TAdwVggN|y z3d(R)Mhf4FDz8D|+YG{gyqpGkxefkoiiIY}*g<9+4KmvZIj*(g!NbU%9jpxyk7Cpz zefx1_`NA5S8kqP3u}NS>Aao5NKobXzgfi1SaC<-wX^46RUT7N{8nj9-ez(meH^HOzzBy7I1UDe>_aQ$Sr_~{XQ2B3uq$-^Dt+xb?Z{LHv*;`7r zycNEL<=&DoN}^SItM)!+8&U>$7FeWrR&X1Fh_w(4i>bw>9)b;USW+s+eM>R!TZ$&$ zLc9kZ*(9p*Eok)=v0vajQ3vNB{K4dfHX~iLJ&v{Bz8~-)td6P40TjyAhwF$Lk~0Hz#|_uS!!@J*f#!!pSz{+kd} z$Lmd8HSnPbJAXE;!}li7s5iBL-_*f>lh)Orb57?Vr=!SmcmogoFOP4&BK(3c4LQ_7 z09t)&5C-tTFptLYK|1RXA0;gI^)Mx>;vG3C?2#JBL@Hx&5T)&iO$JA3^VBo7@KMOg z+(jr4&~5eLvC1UiT@Pk%0LK;<4D%gHQ=vi|=Qzs8Y3a=>^F8TUu3hX7mrZdi8wo!I`kcQ#4P z&5Moxeb28n6!dTy&Yo-d($7?i~0bg&A<2h*i%QWH8gA~^2ac17Wp%|B($FZ-jjBj6<*m`JU`x*F0 zJb64uy^iN+2n1AnVHoK#IzMjy1?(}T>>?*<>UlWa(wF!WAJb|5U7gn7Rmd9(d4pB~ z?Oxy2{p`ECpM4htdHBAotNObk!5f<34NdR{VJlN9!YahD-mc>&+8CVJZca`fb`^pk z!|R`qYT)Vt3YPg9Nd6R9Du(em}%o1$c^3n5_rep?;!k*!ruY-I}CqS_#639 zby(2}%MlUJ@N5=*;=d@dajZIsx^Rb8@_3k7$S{~3hEndsRIS5@i0cq!S|rgvJc2Uz z!^5n}_|jW&Dn;_|k84Ow!vy+1t@=l5gcIsW!U5>yBuPSW34VQI`&*R7w@@>$%K9{< zGq&~jnA6FLllN99YAF2J{@wAtyhpq0FOwgL+=My;B@9K^j#dv&LPMaSM~EJOWLP9n!&LWS zY|aQDg1$d6`EF7ritvS?^dr?6#ZzBBGC2iX&E|if9G*A{#0JXnp`ob!0lC7z`>IEV zsnG&dX zlqN}z2PICdOuh&5+4`@;tkDJY=_HTpNz81udKaJL@qqNhsmaNjpLRR{jTiXN5Aomj z;mPrxA8?27`~d!O^CgI931s;9C_Dr_g@ejtD&h&s#Upv<@Eoq`vF?X_tovbA^4BBV z4~Ml5o@9i$)DS9o;v^ksc0O7?Oo#r+!!w%p4O*)i) zA0R-{!ZgEW^etYKsD;Nn9L$72gBgkHJb0d)e55)yJgfr*U17AEj~k_C`OqkSf1p+s z|Ifi3+CGq|*XE!9Om!6J<^ayvha`6tK~<|H5Ecj>?Qww((4rYQg6G3;z{tEZzWpjh zA?!sD*j~@eHL7k8dz_j0a*m z9@Eyi{qbRffZ)qGp!&n^3eXyM>LcZXL!9I%tZ{!qqlTG8<4iLf#wgM4IKhcC$r#44 zq62GKLBWABjNsx*bkF~sd*7?>bfTkiX8o+ZiT7zY&L&YW$X7;29 z0XkJEA?!-TDI&cYa)r020Fd`Mcm;3Zs)1!Bq zOFf#Qs>c~@dNdkGwaS zFtJ$~-SUi|&%Z5wQVK7&Y`?n3DN#D?T0LP@dW=0Vyb;@Y)r{v3UAsa^d-M>C04QgbVFcxK*MwP_!!+O!YJrhVw*K%i=tWa?xK`<&sq zUYMDtVB$jPTghBFsfwmD2Zvk^gI$lR!cmU`*i!LWn<@_7@ehFIi)JPSSyRK89#Y|X znl^BusuX9|;;9^kJySUfxs{a$oR&1eO=m!o<9aplb}UhQdBA}O9kLq0V9J4!!#5gHwkV>P0=$O4%mNJ1Y*@Na%sVo<+M?ZsVmS4GwEol_K2-i(`L0`I`H??rX zNA6RUcBsyL2QRJ{^E!`Qx!Y0z``a0F`!wxP#q~I;{XK#6SDM~G#-_)WNd~O%DAO~u zRgrSBtNTyRCQNBkvyj0$;(ApS;RAygEGyw9{iV1y+v$bf1w%05V@H}3xN&JzWek0Z z@2JQ|#)-N>jiqO>H2TmaXHl%QizZ)07%rEcbd0r5xjh3Dw(mu!d z@~VAO;=!FHibh>mVt2)t7z!&A%BAGTa!joDeRcdc|tONVXG zOZh4+EEn{VWp$$+Q89T=1RmB zjk-Ft7cfjKCe?ez%qM+yivls*H0x{lCKs4c`I4XJbi6mjY?Fne{3Aq&?}G3>K^zCu z0!pGQinbL4O`XSP4r~JW2C9WkDRJK(12d@b$P0E zpL#9toIu#b539G=^tUJwwe&{H;~vX$Hhe`9UQOn}q@@EcyV=5p8!H>$ivmH?Vr8FB zC|Y_w9xGeaVfyG_rC+9AxCVdquMCS(85ViQ^qS=W zs4X;p?6fh%e_gE0hCUZ58&S2);GW_Hc`<_lA6WN~#_q-$RSn+-s;4~E*Tk}VufE2q zB;|S}QQj9TKZzqI=7U!pfi!SrnLl7>th@k&Qu$(L?KWbSD324Dz`lGjHnz(b+ss2) zz8IU&6awBCvbs2~LtO~9d@;lId~3J7n9K6w3n)-|p-pC**HawKloBg;ae#%Kz+#(O zT)-}XbQX)Y5SxmXooE)Z$}T+@-{r%>-<*IItLz3cS@J@*@DB>&MVA#bwNR?d) z8nY{V2q22rgCW6j=YE(L^#LE+rgOT9NJ2~?8{F76;PK9CrgvPvh}&E`H0g%P<}GX( zu&2Pyg>NhsgS`1}6I5sT&?_qz<*?yZeKZ?<(Q)lkOD^LY2LG~Zd+PF?@D45_#GLFF z7ZIk+R$g3WJNOqDap|{F=`*ib7q_LIxL!sTx68)0EU=cByXJz|hbv5%bLp|%rRq=@ z#+Pyz^-r;Nwk_F-^9Cx>^%A}TTUjXDV$qsJYqMz%7Avn{Rsd>6-PppVBx98>W*~}{ zm$8vF2_Qz&c(b9rjH^$t#ZL6knc%zPl@%z|!d^A~DC~`u^O$}xz%v_O`YO-eTmzOV z&lHt-W`MUSm|3&HymJ&oVXrgQBzGXP*3w3Bt8*rN&}^LIRMtx4sH~+f1tyy%5>(bQ z-(s21!^(F_gXYdP%wPM~r|1uAD^_W+tIdSuL6fFs};8s@B#qTJ$*vnf$mW zOphFs(oNg4r$r%~3W#S)czbFDaq6He`>9A{<$+i^SA{>VAHi#(w_~~U8jO|GTwEYQ z#tz6)yDh&9(I1USYAO}_AtrSh3mcv67*MVO@UxHyzEV=bcA3Wx5!rDq5^xv_?t|gd z25gI#VWJZ#zNZdd*Z~SWLbMv;x;df=I%3WbgjA9y?@fbkhDWI|&I=hQ`a*1A6GwND z_w_0K>cG5c`9!RIK#}7({d4eG`CzTG+t2@#`v0&1(y7GCM=&_e!3e0F_(!`ca zWs)pn0e`f7iU1sekVdLEVbsI}c3rf*yS^q~U&GfpKoIgx9*VbM(pytUHKcG1cSQ8{ zl=25c3FlT=Fo7YO@7o3}@o4G0wd8}+sH4xvS+jIIJgytZac#3-+wAuR%%CNr2xc2< zIN>cK+!w@JsMl6UNrZ!0Ex^{;vAA5vWO%;sEe7N+?Pl>b_AaAC~pvf>eD zGR(S+b^*mKD}0W#jYz;V*J1fnyAfNqFf`xq5&~w&3tvVNKXVeUwd3)EvxJ)yn!!@o z4;56>*P6f?v=Gy(xbWP~R(y4{6>j9I({v&*%A?C-6cL--=i>8q50sWvQ1^oN#uUlLb9^M z`r-#S-gIH>$$JaCj0J|_D;UQ8hGF0X8^@9KX%U$zUcK`J4SELgQzr82?H|w_Fdt>u`Yo7Xu@1D2(c-zD`JAZWd z#J3mz-M{{I%inzYtJXx5XU8Gy!Uqm*TX^u+bsx)L`}qgQx)1!>=*=%)@ObPWzVhf_ zeWrNL-T&~TpFdds+{b1$N8b6>`i0Re-}hL4x%sy~h;8zDpa46c*8pBUh8|b@+{w_5xrw_7p1sY>9S*xb}z02?+4POluKa>C|=ILMhHdCrT3pPP0 zAt<#_!cgj<*idFci9m@$>4DM(B?e_SlsQo5LYW8U0x0vLTnOb2P~He74y7K-MNr-Z zB?0APC~t=H7AOm#Tmt2-P%eei0A(R?4;Y=AK8u+)i0a`?haT#Ph13$r8DQy+)HUzuLM-Ndtq!6#w#QRioWNna_5!4ZiPFq^qpFd&nw1mEk3UpPi-83bbg~23D=OM zD9xnrcN;x&a9)XX4U1tPP|=@P;!KSinD?LGj%g-ws~8k|&u1=XN+kWeP5`;c{jO@# zObL$sdnSh5nHOW)6Ee&?!z49m_!qFGO>2P?H6B`EXu-ST1y!PO?FCb0$6vI*>apGR z#`HHqV(X_oAp(pn9qpW%o=gd46%iF~c4-XY^1VLqy`Q z%ATa)TG&&w7Zdj$Bg2w!A;&!?aa3Db`kA_je)B>G-oW!R#Fl1zH@kh>s6Y4MbhlRKw%<1U!}}=m~jhJz-Cs$M($fL_ASX%=1gn9~b`Y_e0Qo;g$a%AHFDt|L`P4 z6*cDl;YElU=@R9B_1Al~#lC=&+^a1nBt{FtwwZpf4+kFVX$H!oISRt@L=@F&RSNa^KCjwebtU`1Wd%+?U z6_HJ9`{y*UUjutI@R*9j(iXcdxlbQkuEz(7p&TVL znv}g9jZV9RsO1*x6JxfFMi&8iU~SMU8Y^}K z->AlS%RR8$5Eg{wW-Tt$FNgIGD7$MlYA0h^+@M|!+tZ-UR{)_VLFzT&7l}~ILCYtD zetn%&r&I-?_PAHmM zO1GWlUW1?4wXqBiv$9d^khroF{ZEr?QCtM_egWQ=L0JI>HMg)=Q>vVY-C8K?;P9~N zM++ zL2Ir&59K(Nr=Wlwl@~2VE)#S)j!0ft*Y9!qYFC{!+U7K)jjqFjNX3m%a!$CQt-<1R zh_|>G3b;_WY;#|TIt2=BT-eOEBC?WlnMZ>%II3k5vS_x0=1X2th;A4 z{*_&f?>>za^TfbrLi;Flj<~W`PU(J66WcwHpKifqdBq{qgbiWUahB-7Z$%Uih)~c2 zY&a~2!_4!@(}9rT(L&V0bP55K%o!Gm&S&J{U5F>YsLtndJgq#|fc=pY^Ptg@@S|i-fi>GHO{aJ^@HmEPJgZ|i%ZInJfcF7ZnC_b!j5=sa|kkCb6~UE%vT|Mn58UR57c7U#}+Yz z9L+VQ%I#vqK`|WUCklF*&8BdSs+SqZujt7<9xa+Uz_$%6i_cp!=QrH&fiy)+%knh?{P>7`r7QP}} zz_F27&PGW?CtIq?1QKxwhVxy@`7YP_F6CS+SD)OciVlmYO%~-*cu6w+61yA`mm}=* zg1EfE)Ok+OeU1(L#ju|Zd&IB@w2~K-gr2*_em5RoxrSq(l-MWP`7v>R48ay~umu1k z3`PJZ7)-Elx$T0cZ^Sm^Lh5F2!KMIQ?+P!+!JQk+u}H31jvucnyd2908qrK+IS8ae zb$x3hK)xbW$m)Rw(dLL2X3dJ&3HEl52OuQXSL05D$O`moTpnzJ9T-NJ$Fg-)Ld(^{ zLU9il_iH%^G=tQa)2L@i7;4=imI^fHI?p|zOkPG+#0rF~FaRV-edCspQRAss?=U1x z%Y;fAIGxEAjG^+rf$4=}3R$7$(FWlV(yMRzrYA5KD&M#*Lga71TgT1GO43HQ?7kKm%S4 z)M&sLQUKn6(crjiS#-gzF1Vcqt`&CRG6%$w7IvZ%S<*!SNw0JXVRXiDeT~fnk%x`FRZe3FZ{p-4<}f2r`(q` z2^ESP-1aXZHtp<$2^)@7^){=Ph0C?Yie2@V1tH?awt85KfQwjG-T^DNDWUck^E+V% z`dDPbxX-q(@9ho-I5ZE3ObZ*fxu0;RP_Qmf5ZX+2V1C=+BCX^TN{*X6Q2o zip0VFzQxieONl|x`XO+uxULqw@z1l2EvpI+iNJE6&v+eq+IUXHRL_Z^9eT_NM9rHN zmK&v)Gq626j>|5^_s{~wQlh`-16KlSAdH=yP3D8$?q|THxI>{D_y`fTXeFMfE{qJ2 zU|!5arg(sZ7hZv^adt-A#%n>4J?@zBBoMiZsZivbBH9oUw@8Q#+arXUO38xR#!E1T zS20I~|2c*qdDbr@u)Ok!C4>O>K7LaL^kN(G5SgW7z}ym1kQ-qfvG6CQo>Y>=23@gY zn)NWu_XssxBHoO1U%;zP_;A^4 z!0oWth6iBKDSe_ojuC+22c4jw=9&~M9@BDy<$UeFH4%nr|p1EQ)ml*Hp$Q6>b%t)e~X z$J`9l6tArY6^JxIU4c;;EYZS3TKGQ5Vd(9qgi0?iB7;Ey?hP5z@_euxKEw;{BMixY8L3S3ev)EeJ zSqzHhT-TCcFF@bO&Je0)=<1SXdjYA_ikOOwJoza;0b$*!K2KOyP}vl_Iql*TQ9}f3 zMd)7wQ4eYg%d=|-ag1J>Ob{ruiFz;5TH8`NlNYK4lU^1~QE$#OEHq!+E7t5SQtu5y z{*l*|6`EBWHOy&u+mub6t3b+sU0oe0dkDfpW5vfHJ9{>ve~3l59?~{c0*A1!C|zjt zLd?RI0A2$@bm!EjaC&MzKaDz!yHgNk(hVVt5L`y9J(M)fX)y^ll+=@B4t1m za`AA*bQ1x+StsJt0Uo_h$E7Gv$KwGJ{%2Y|9-cPMS%&G#8iZ&`@c^;3yoihkc$FA8 zv6!p}5M&{j5HC$=%Y>6IX)4O%<)AiWwm803Ai4fVKbhDDAmh@dm)9FC z{}+-yc_p%gWu?DJjVs}C%Y`SAlmukA`!I(WYi?I$AugyEk%YdDABMRU!R-Xz&cdTM z3GTwC-xacKI>4vg@UFokV`vnvdjb2GY z$5jWS8Sm$0XH{h*i!&hvJPM((k{zm_guB zjwjP>Gyyz}x#c7if3*;QHC`Aktt9{;9FPLI~8(mw%0 zZzRYZLKehoB7!$7l=}p{gvG+<{%n?#zM<|*V2%JsI7O#Aajb?u1aZNWl4N&47Kd?5 zEe+$`KAwWGOaLeOg&;#6m^cHnTw5%>E_9IxYa_C%io^`hw6hd@wri!&Q6M9ks?bYz z1ltr0Q5I45^HJkUVLvai<19s+7r!h%kmkKLc$UZ;=a+CmIJ|>NHg!<^P(o0AP{L3G zP=Ziu<4%zrbc^I5=iw5e$0cldRt(Rw;dwDU&jwk+7LT&wpcoE1vF>wY-KY0#;?7dd zO?|@kHzAXlZf6ohkkr#1^7d?4$O;WR-I!id7X^`qyz?C`@zb2K&9d}IYpF%mnvjZb zC;S*kUW~^U@hgXTH7SSp1yEuM%r;7sWKn#PTQ-4n5&`ys-UZF@1RARJj1WA=I2B)< zMM*3d!A9)kjfo&61n@{!9WWA)*l&PaZbqkhYTIP0lO0BFKCZB!&Y}vTxGc*FlSBQilHV9V_X$(T{0khoA}5wk9VJJHI@Rz4|v{18OWu47@T5)rBk#9D|c zN(CYTEjd0hXG^|I)zSoodZxvqUtf&RMt6?Qs*>fDp<`E7uCo&?*~qN6qizmQ^o3c_ z9xPB2af!f`NT;~jym>*@F%J3aA-zpjTA;wG`1qW3sHRDDQWsD!s2=EjHi%1--8Fvd zgr=MO@zyCrhapK%VuXN5jmunRRa`8^KFzkP+BP=L)~dIh?9C9kbg$HqX;Ho;bwx)B z@f?S%N$Ge@O2rggs%Ew-h={4S5G^bzIi)an;H5dz$IKUv$Jr7DfkIyfneEsP*@bR{ zY?fo4fIY{0T9101BWvoTdD=y?wYUEhUkV3-ZBPcP~frd4LO_2yj1}zKKr?&uJuQN<7u#HJ; zvh+C_4#85u809TRLOZAlXjhTDx0>9&OxNBzP)|S1+9QS9t4Y+$#igXQL4uhGeR2f< zi5#~`!t2-$NI{}P3|NQ|_;Xkt;Q$x2a3M%BYuIpD5)__dkZQpU3aVN#%;*nD0S<8F zNTt?LuXGSB1M&cm#65OI`VPCQy75-(4knwpN%Oi{N%tzKNgqLI5;5LJDBZ6laPiBI zhPIhdiSC)rYjxKXi_S7U)9q$Ydz6E{O_QiZc6ILKM5vb$)0G$>J41$iJQ`6lxg4ti zhq%ayYTVt8U{o8K9+h^;-nlfc9jbBdK;wFn8`lnLTsv&Xg8P&bP5@P7tB);bI#0$G z@g~J+!DuOIXJoxkq+v~l)U{lA!Tudz?qy_lvVfI(>D6{BWOfQN?BQ|Io)GOjqU{px zG124*uk?)MYgdRxgz`P&P@^Mu%#l{X-His#U_wc(Gf^unWu@*QJN@A#KL;7-BT~vV zFIaYPV+EqpBksaz!#RdbGdcb6h-t!2e1ZuzVGF%%br>RLu}5Wpk6RXdq%8J0WwA%f zVvm#sqM$h@^($Z(Dn^*T2Jf9ab5TY7i#^iSxttBowkpd9b+%PuvZg$gXiK*oEj=au z&Qpx-gu-@$u?+~(WD3gFft(IV_7AfEgRvZMl<_Gfl@f|Z1o{!CHlO74kaj|PVHSWU zqYxO0Ox}4R%=l4Ec{B8}OSR!%H(Z?ydL;@=G{0y8(Ue<_Xg)WP z<$`_}47gy83;Lvh88KxQa>209RTXwY7p#?}>qHBS78I>kBCfB|QEaWw?N)8Oz1nuW z*g}++a;{W6S0rX`5Uk;pkAa$yA=08KZ(`$fZK^=kNJ6!aO>{i$!Z>$u4fnd?>Li?B zw18-q>uv=EpK;eJkZ7Yw*y&;@HH5tVXSG+VTwXtk0mb{@G?C_JDO+FqTH z?b>#0we41JtCL`tpxRFTvm8us=7Z_1oNHrQ$L(m6+YvW+$nt%XyO%`-K;R<;g0O>G z)p^;x7ouQOzhMYIDoV{GN28Nf6C8+z+@-cSwn;B{LNO%7ozdY0wp!)f%xgh>TO2ag zu*c^!qvZ?Zv@~SOoZwCJ(uq35kpV}Z!9hWTuqbT6Mw%gFe;?Iw&g z=Yju5;~~Ldje}P;SO~(eJL#1TH@&hvB6&heK;>VosjXtNO)WOZC%-w!H`^@lKj%;# zDm&#pGg|xAU{gQKY%WclT)Bz2s~4$dP`Qi#xfsh&#>#EAYPD2ulcAxEMXyX+3tvE% z%XtxemDhr=@>=i}AoejL#t|jyN@mpMWul4LqVfvSx+Uhl&NRN9M;j>TmE0;aCX^&3 z39ybw%||2{zphulQCx0h!+XT=9yZ(}hFjQ>6hl(S|FFdIFgs?%QE6GpXk5qwaZ^D| zy|v&eWEGM^nNF}XXE9>{i)9*wzbZ3i91UI|Od*b0Nr|!}hJUI(PxNz6aN9{8WQ9e- zR6*fB7?ynq312JAcs5`bN(CTM4BD=@L8c_ebUUW|02Y`P)nyYcDza@7Z9mU>EyeLf z6Ak7N;refpt9Tmc>3jKZlR^tPZt93C!aP_$VWG-KqUGIO8&5Fd_siS`si?_a`M3-2 zmtF;aNjEv1FbI`*^AxZ~VvCi9IjMZuM_m?IyV7y#iH-;L8o|Wugk_Bj6Nv5uv91X@ zvl#S%N^X|P#{pY>yh(J3MFKq**U$ML!ed&@fe|s5}8eZ;$ zsav#5WQUE<1!$SJP;8%3??y+fgy&SxpZKA2%{t4c1eR+gEOEpg((r@vDnjnDWRI~l zp`U%Qo!O)ZN4H+?%k<$o!#H&3z1F3&*Sb^?;&X-a4r!F=PO4{`Se4q2K~SIYHW(It zCVjTA!JrYW0W7TzU}k0YaM051t8CuI>Oofbk>{v*o`70DMbUU+IUmX#DB(bZumG~R zZR7y~!1mVw{y2tTV)zKdFR;JoSl!R+9z-L-cLT+1*!Lt`JO;M~P$EzgY&jWh(Cl6e z31e4-!`KCkaLUH%9Sv#Ev{G*XYbDaiaYRRa4G{PY@Fd5?oG}jM@i*X=HUqvmQ^jQz zR(s&%`38MFZ#AgH zVD&}dyBzrlW z+VyB~cReIJ+1!9XQE#qoaCQ&4PSd=sfeoT@Jt%#H{XQaAwxz0q9cpk^dhG2fE>y1F zC2lb^-GX|brP8)EV7u77#$H}`ENI$-@F$=$O!E+iM;Ko1kfoewYf;y7&3J_28(Do1 ztGBS4WHrNT7SR-MK`pD{7$qfcbu>f(mK+=pYU-IB&PuHV#`%ckCy8DG}e*xcHPUu!38U1Dl%Y;SB9 zK-}A!+ge(iTAJXKt()ZQZ)GtNX#+K&3)~3c(I@RCY*`8@@ z=}0xUwRSYO_ILF6CmWmETU%P&`rDiPS~Bge&5g}n>5gP)V=C3s*3{M1+11w8(%hM9 zO{PTl`HBsf&u2izWxv#yYCDqcG?8`KE_B9fAOrA$HG`DqTQcWG{rl#gprZ3&s*VmkE z?rdu9>`13FnPflt?QBUVyILCiTbi31Tl)JlP3h*Yrl!{Bw!Tyw#Ydz`br7X*B}yl! zQ+h*YEI;-KLZ4ScXNl0M>4d&&d?-1XO`T6tr~1;J>9!VRBAp?$n);iXJ39N@TiP?J z*7oL9e^;uxt+lJGiLlJHw`cnLn%ao2oo($coyoSQj?T^wB3EB0kto%d>TgW9rP})Y zJNh!6ZOL{bVOOT3y)E6COm(EvMAr7sbdrdd>7X)dYiZ1MHa8O;nwlEB`kUHXlYLFC z$*$I>RBIQ7XliRqrJK^N{i(iWV}G)bDgu>qUu%ZSzpbmKud%5umFy#^Bb{t%YU*h2 zCxW(jq#L_3>2$KSv9+(0%7h5e(%;zLoXm7Ir5pR2Gp(&HoqZjxsZ>)_I@M(uD?P>) zx-Us&#}diJ$neOfTyiuqkiB(a@knO0e|U5-Ih4vI)~vto+C=|oaxin}@aXLcvQJ14 zR0ENB#w?E!a*NC`8a&2ZRt}Ghk5WAO#MkyF)=KZ^et}fYHnNHnM@}aw-V6sZ%w&aY>Nh!e4ld!k+b+ z(QGo8{b1(0zS}aX{ED&hp%iE{+&4Cy%j7dl5;u-z68V8lVncH5_9d&5sr>Nh_>%Sc zTjpI9F4Vbh4Bjy)~1cnyKOvns+pCnlgVz z(%EzplkmhqaxBr8$qXe1hwsQR(%C#^_0FNhNHTSM@>a_2>O68kmM0u<&5b8UGpXUh z!OTz^-UpKT#Q5;0M0z+eG@MUR9HXPzbS80iCNF6b;@Kg18RbY*f_-LGM~hIK#we=3 z@q{yCCx_BRs9cUPqvQlLN@#3&FhexW4&@Oi3ZQ>ee$yzSxKc-Z>6qX&BO)B-SblgU zfsqkI^_>Hh^DHBx(pf^4V1g>a=dQ~1CpYEt6mx!*O5=tM6+T7U&^J7sTR3xd7)fH( zB`k88u`y(oXtoIj$r(x|2@gViERT5yh41G;DU|>rASrMa(KJhrjL@V|iV9PcVOly3 zCUc3Z84O`O?lJPedHJr-WD*1U{K(~(U3TZ4cP<%nC#Y1=m)%B%GA7Xifx+R?3^mPs zGMgKtlv_Q0pBchzW$f)sZ{nJMMf&~kZ))moHVm4)H2%s!sz^Ch zD?(lFG1_JfwFYIB%noHn-@cTJo0@xyYG-mN&q=nl8b-UvXqq{wv>p!EJ+x^sGn%C0 zLa?@ub7XGKhT+>YLmX-a%96rxTCId;lgC(e&Oj^rsfMi2@*Q#tT zk7DS)E0fxk&xnzcHjL{$#+qLvp0(8IvLm_7uZ-^+kFoOCh;Kc$pUhd~X`&Ll(qk+; zcSNhQnOyo@xUBIQ-M>Z@I&bHS>Q`g4Zc}D-{9IA2@EA+a9mV=oa_C$!bbE~DGskfK z=rHv?`SG_qP)~MjrUpdSZJo#H*)Tv|B?elzCrW2VXbhpDE3LcnE75n2jbu{Ue%0AY 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%0D4>XC{rvituJ` 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

    HTc^I~*xR9GvK%yGsHm|kBqp5!v<-R`V3 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%0AT#%qGRt$4Ng0@;Q z%(R`gO^RWr?X2xo3^RKd?TliW*}G^S36jlO^ml5aR#366i|lEMT99Ix*^{(T#W1rc zX|E}U6(L!RRtzgbvQ|s6CF=^Mb=4XvwuV-ju3BrwFlVJ`LlncDm7ieawnsqIk=b6rpExMG;kdTEao!+h3Dd!`uX!QNV_E|Os$?5$N+40GKZT7qJj z>)z0MnT+PMKH6Z#FrW3&aumay)mQsKG0a(gwe8I0`R`5bq?GZT^`>^!Vnx&5)bvD| zZdOjIw6`>G#oo_}AQr}Kj2QPo6K`ux6?@vjPOO_^*9XU>_0#Soael(*)7ok2+Os4n zyAq~}ENyJEWUWdJte&OKv{=)$L0UkHWY>VcJM$p9$=}M`+Ge$*}hx zp-oZ@d*Kn?PTAVooi)kJQAjd89T)G3>oZ zY6}#@E`6l7wvSA=YP2RsYQ_3W7Frr?ykbY@H6ylDF>NVi*A;tj>2!Uh*0P^uW3^q`k`=n>FUDzakCx1SabVhbZK7fsy%+dR)P7KG(}o3pleF+0$xdzPmNr@Y zLb02DG%-c{O|cJ0g9VL|?61;bwH14>D_AeZ%0B?xuGs6$Z0|_+s2EtscVurK=5+E} z*BuRaDyC@LSa!z?r-CWkMa6Iqn4;a5Ry;plGAwP1<{0Z5D^s)rV_joqidI&!o0AS0 zQ?-hU{W{4mrfN+T!>N3l)dA~PZpRUbPETmO4F+*FZSa>Uc zVyh&hQ9LSbruKNOtY4$yn#k4YxMkHgS8J=7aSp7vVm)tzja01AmO{j~Fgq$*(#dU> z=09G_&bBEeW@|Mp_B3#gwvO2mJ%GGtp7zmr)nmKCz8Ej947>nVXM$vJt^jML*wZ>- zNfTtcQQ70u=4pK=$Q=B8w-WQUfr_0aFIb>WR4lj**fPa_y^gno zwrTyR$o4Ei^U`*0s$%)yXkK``_N~QcrR~s~PnG^TWZ9*(om!4!xx_x!b};+Q6IXb4 zX@?cVHJx4BX~l55-lcu37{)#|Fs_dT+Y)UPSEm6zqET-o=Iu5fweKVnb2vf?d(` z&Ns93Y_j~``|G}+XG$_NnHhFB1VLYuGJ4|*4Ap}na3uo~;vIty)qDr+s4v#*M{q;g${9+-K?4^eS#HwTuHPZuP_@x(8L|A?DD4f^ zhZ?aHf8oAu@)(tQ9@O!%xuhb!X0czE=c#Y1h|Mqxrcct|RE6u6&Tf{*^-a}oh>h2) z?iMVxH@&H92ts?)o2s55v^Tw_vIn8P=`GbX5ZasGR(XQZ-t@LA3552McT|}mw2!<4 z&(Q@nny>GwwnGf%4;lqu~-@2RRlXg7LK^<6Lg z3G01TqpkXT$DatQ`fkO2gg$S*uSx)+&s!g;szB)T)(7yDf&vPyV-HmS=wtX(zXvMy zHY~J`Jy6vGbu31z4??Tj1C)u1{5ScNkRRTA^CL1GhxPEHCYIRjI6C?Q4~G zC%*T7ZnU;a^$Rq--wT)bD(78TjimMOgK9dc*VHKO2URxcsOt-tkI=XIDzs{Ul7&{^ z&$7_!s|c;WpH;cL@wMETUg7##m9+=%U8?VkYAFbibP~Q5HpfH_`(4Y9kG;`@={}-G8dC%UbFFkCEou{ZiePWlsESly9&5e?~gw{@dtU z7Lo+1#1iaOMvAs0Nu`EdcQsiq>o}z`Ql2|SDrM%o(?+`D&X8|q1-h~%zt^B7El0MM zHCxM*LuD=23Z$Q`HSQvrDQk;+Epm&j9BpkfU)CnA3HeOcF0Cm^?lb7Hwhq}$)@f~B z(m_^%wjSv&>u;?YnI!9;)|^}`>zTGbc}iBLwgLG-)_1K1`BRpc$sc6x{RWk|H`Mt-q79h{v4V#UJlc@U zK(%}-T-%YGK-;A&Yfqj6wZEexY{-jx;rZHzyrvia%-@DI{tUhYY5W;{2h#X6_>SZq zT&5%|kIv-FBl!N7yS4S`Mt+mk)1xQ+e5!ylnKHnm56K_JZDu`Us7F82_}h4UvhGns z4N30yq%9V)e84)p{$$EAEHr-(BrocfO1#a##||WKA5*S+F!@qe%UXlUe`NKlZ-Z`^9py%n6(GiTv&CrgvtBERz<1+3#*&)jSVIR+_ZUZNL7iM8JSLF2 zpwauHJtmUc6Idf|q}5BS)OVqo>aKPac6}HpsE!w?{D9<}}t6U%@ks^goUBjjJ&8j4<>=t<&?| z2pzfew4q(BJayzfS*<-I$8A8l*qqKYCd^RR+fsEBCN4#b}KP(_nIAaR+WDu$ek z#f^E8r;a0cf$F?=BI3v*NZBdCLlsA|XRvzhX{(ASJD$N$&fDExh7_mZ4L4hNNutF4+tjt7wrT|MWLE+7+!-jY&{el0SO^gf4sv!g?Q z&v|5mEGN(TWHl&#aD>M~^6`1B9T{Ui7m@GI<0}i_I>mD_>3;#oiXZuSE+MNg;MlcC zVV=v$?)g~#lHxtHNz($HvQ$dBhMZ7V2=4A4g1dWI zSlm5maCdk21;XO~;0}u|4#C~s5AS#WRL$JgQ!`gjPhUMW{=hBq1wPZGC}Dvf{I@^f-KcDYo7XX8xBl64H(|knuG2ZS!$q=n zvffMz&9JpXS=P}$*2qHk4v(dzZUw0pWyeVcw1!mc117j}8`r6gDn29yLAQT;;>M?X z)CKD&b+RO^h<7_E-L)ya!2zq&&)iZ#`jvBjF(m4d`X2u&I@H<}Yt;gScNc%v9-FZ! z$(lvS+%VAi2js>@+%Qm{o}0`I=lpXEnj4k7Zj;4Z?<;ADcg^acV(d9)dDMXl)vAGs zuK06}j@P^cqy>>hhHzn3h!ttf#V!OuZu}W z$|GvJ+MPy;k3gLo-t*s`RQsYl2PF%L9D83_sE1GM7x2~8V;lGP^lGg+5O!YgHEaEc z`|{;^Jv_0jFX^?Q8?2o&jm(yFiZQ&^EMAc|bdg-QdvjV-sMbe@`fH`1s~Yt^95~&o z_xU!$kOj{Xth4s{c&_&_&wn1-LjF5&T34K(kLM6w=vyK3Q!r2&JC7lr{%LsC%Qh*| zu~NP<+6HZ?&h)a1pKQ-*t1x0MetZgr7@Zb``E}v>?!Pz3k`8WZ%{rF82i5MrHZ9Ut*`Qj1lbVznhH{YHj?1Dz?*u(u=S{CVv? z*&{Vz3!a7Sn8*RBY4z#UZw&2i+;XwTzb|d~bh>F;>(^u->6~=m=Da%$ zM&nQJ*OPV^|A>ormW}9v6E8DZ(g3e><3sAu55FODUM1kFPG-%`BUh#^*`KkxEncuJA(knflS~qdKK~Kry-wJM3cxft0m)r*o+vG+ ziz@aKtXJZ6#2NR~r7J}LyfwB1$%^jYf~nCfdE(U50<|XUKzaGO7lbxX*>AT=b7A5b zV{6B>RVzL{g?Xh5%9`g0@TvRIDHVM`DLo0e?C%qt^OEB4LR1qLRj)wis=Si*PgiYr zE5B;m4j5NYtA*-+TTk$U5SyFQS+(?ihP>X(Qy=rJn~3CH+EahWKG7Zg7ZQO6t=!Ps zwviRRGMe%C+FbIk)_Vx}UVR|#^#Ic3eKa`;gAqBNYZ7(rI$LsjU8pMBT~x`7Ioid% z9-chumi1My^(piP&_*#^@0HDD>Ce-MraU!OGW$!&E0CSmYbw43*_?Z>4p?NhU9*DR zTHi!g=3~JhzKH{1L6ISguqRy0v4mX_!FkU2J8u1ozu*kDPD*<0`)#O> z*d%ja($O2{*f@RC4qV;6+DWq4*ZvkwU?Pn;XtGORq-@?E^SGl{ArYg$M$zXqsSG`I z@i`)o`j7%@)o+u>dE^<6MtZ5MCeZ)(#p~2XOBf$;8z?HThg@flX#be4zArX@Czeq> z!T0mU{`bUw$8zZ0P&nDh`=f!1MFJo6Sh?rE@WcQ0;_9gj{>USLG>6#-W&X@MWz{s~ z=vQYd7W;yrOx+hE5bwhCGhRiQn%pS%tt?TRv)!8K2KKF+%6Qvh7wBLt0NCe%6nj5mEyes(J_m*D8(zWzl(v3Tgo7Jn@A!J$qzl9k9lxIWx=xY#1 z^JAA*EdsSn9q*B#&Xe$-{w+@D1=)4=vR1!@_qfNAE#|VOR;7O+qy{XvR+uVYxZr(@ z^nv-QNRL|Y->TYm#Jv<7Y0I~+C?Bmg=BI4kJ^87fSH%FeYk;Cv*Wy?iVLsjE-G82v z$**2Zn|Rm{3LP4~K9}pS8*b!1t%c|r=aoF+my7N44OeXXgS}9_cB0;4w7xq-^o?T% z`N&IDuXHO3ViM2mSxuAAjg6I(&>A;HI?Kpv2~8s#eXw?Et<}U1UeR$T{2(N0%YLPq z){w9=47($1h2vk$j((Qv%CiVxU0b{IGH6=R&qP-csmiz^pz@-I{1EdbqZT)2t`MF6 z6Jo_zCa&c+os~>GT4F05*YG+n+9{uvSEXSsCPCn@0NBjAwR<#nYg_4MnCNMDNI~Odc?9f)>J4lX-z+^_ve*NUvy=? zCj<-x1?@)V!JX!ebid^6G`%N8AYIisFScAmVzf<4X|8zv4k#am)#>3f9J1&?Y-i`? z^Z`0+IkJAF-1j$fz^s#O=0p1aOk;zs1=(u^04Zxt%FU93)#D`5GD)*q`ngi~WM*kT z!N#kfA-AuXXqgx9Ndch=I#vH^y0P-aSKa*=FB@}Sm8YgW^WU%}@-l5_3(D%q3HgiuldQc z)h}f>%Upw%noH9ghMY=JH_>Vu0*#Z|z70v!Ww_&txSZ}Z8hF=bi}3E+(yup*7RlY+ zgLU+Cj+S8mc$z_EUvAYYjMYxnM<- zX{suD{48a|!!-mXqc`3oFRKV$d>FBL+2)>R{!2r?xR+Nxf-o=aJT9usIY3n9dqMrK z5!21h0(>sWdOOTaPi4z8*Lbk7Mh~)ozOxpPR$oPq+lfQDnsebU$$!UF={Hd1r`yZH zVOPGcNii|dewvznDblVijxI&v0@w&8Za?|n8b^k& z-Mp()HS{p{7M7DZmz0_iXFIEESd67)HtB$-+LUc$OHqb-s}0mdA@eWFCkzu5@vpN& zw+u0yR8%b&iMDxvBNz({>(EMc>8}8QpJSRLDVs2Y~P+a2M%tJuAXVo9( zOg>#Z*e09Q;Um1i`t{POzW>2Y+%~n4mp^R63~}LNdfRxbxJb-)kwRk*!gy%8JH^R) z6_NN#2w~bVo5$Z9ej<(%urX68Ct>J8rl|gb1`C9>Dvu?zP%?A!UF?GveJ1!-B8sCj zXYN9uqtNLf9S#mH-3Nap6q$)784Y<`3!VP5gYf!njOQO#{*f`>kr}niP`Us22(Wc{ zHk{QNmP2i+se@-u0t{ppfU#laxOynADF)w5Y0w+K=UjGI>wX$dANFXiTKY6vS8eO1 zTu=Iy1L*#r?}VbtzyMMlVkT`qY!en426qZY*hdYBI4)6fS(I-=qg)Eopq`nI8y!=G zr&oZ}e>jSqkcMcaIA=v^6@W?bkh-EMWD^gIY>G=#oVf}N%fJ;S-Uq&i@0d3@uuKm* z*6UpO8X(fpf_Wh>>E0XJ%#8d1Voz}s{8v>P0lNBQtw^j({@Ksk7Kjz_Zp|U?98L2HvYV#)&qWdSy6ukzoDFn z#T?jU63<1nO_Qbp{9El+@Q>KbZ^ZiYYkq1&8On)o(E;l3u@?tQub&3cKe+g`@ZbIj zEHYtwPDq={TA-Ke68I$WN$pv@%#P4se-vEyrgu}-Bs>qM1zFR_ir;CZ<%Zr;wsgV* z9g>|taaWXWT4`Xx(s^`VMd%eZCBf2(^79B;Qlu0tplC)rkg$hWB7{7aVg^9LmFZO-9zLX6>;^Ec<@NlddQ zoe}|>`KtH{T>-B66V$If3P%TXS)_GQocb>af)D5n~Emn_4z_$tKW=GW7vnm!0teN} z#X!Yhk~RGecmba@te-w*v)V3{lyV{EiQ!WGfj z@c+@mmq70KI{OtmP2L9^xfMNT4Ii59B0;t{M( zNg4SHz5YAy&OEokhASa6)f!VrdRk?YFO!8laXm%1nXgLS{2C&bR`2ya*K|%yTH&vL z-SElO2VR^D%Te^(Yp-gR_c}i3HhK7PtR+ox15>b1vF?O!$iZDjuSpD~Rna@PN6$LD zqhNa1O3}9;7haA$^9WHBc6&cS1p+}VT%2ih79@TG&@(zTBY89kW6D}nk;05)xF%jZ z)^WKLCY4+^b*tF8dkJw}?p0v=tek~x52oaXnM1zo|7X~g?rkABbqSg9ZL7ToGZK(Y zY+e9Pl%tg&)nPjAv{OOvg-zn1jilzpyEx8<{<41)Ukl!A|5*P%vAEEpQl(rm zE3ohiW12G+1Qw93Fr(Z~8|jw6-w|t64ehm2hV3j83!+dJWSo~Xab54K!8>A*({z51 zQ(xF5OCM>}9I9x?L;*Q|Q&NeeOw~1EImEq5zjmSB`hE)oNXpBSe}buNBF+w1Pqr3{ zMO*yE5H(V*KC59E-uZqS?HgJSC@vzIZKtF{eR=5 z=FA|a;g^XG`SX;slE`%akWEZ~*|v&M+Onpj#IASLyt=P}5DO+w$(rFKb~=$_89aVV zrH}GUKGZ)S@xoTQMwiqrRcBBjZK?NJex-c)AXsL9**a)`3j4=-L1>Wszzg!D#AA>_iH~u` z?|e-94Q*@0^1S48Vof+A`rYTBoiMm(EgLt2nq#=f&{$*2jfy*pEW;y+btQ56M+K!s z<^xY0+AYLgq_(wwgBb#CAnIH3Ui&8Pkg&P=u;?6)irQEP<-6KinQ2Y}pu2)erR%Hu zG;ThvAYNFxmA*$uWLGRNO37ga1w(-oon%sisY6#gn6MeF}jX3G@*vEZ6A%{?ZZWwokt-O`3? zt&Dnw!-CvU{wiZj(l!Fuor(V-Z8wgr2BVEZlGHKRz1nvlC7oqijO0+DMV%eVcpzy+ z?@ip-V`xNy`ORlYy4_pB-i_bK)c(|P5OYkNn1i|ehYU6|BZqJ~-soR-v8_Vwz)T+2 zOz`?=35#H^g8RTh9adyJIdb^lI{PvL+tsTPk!7K`v;CA zWXY>No9cQBV0Bu;%#F+%BofliFT@-uHh*TmbxWO_B^PBZE72hrAORe}rHb4jV+sV6 zV011S>$X14w7;gLRI&QP-LRbewiJEh3P<&4t@yM<@Wwfp+J)|nq8+w0;~{QZ+!;#x zO7NBLl>6jBJO6aEvG?QcX$DRwT(G;D(oN;3 zRex$K?_ji&nD=i)KlkD3l(*U1!$Xv@^eiX=LFtOOSlQ#3}gaYLJs$P{=>AAzN; z(f_?o@W4H4?yu|(Ib|s0HM&blb={4_bo;clgcH3W0vuxN>_7qE9lN7bdMXQYUmd!j zb8p8-kBvs(CaU$;@w|6(j)&Rf1mLE7vW=%rW(F+8B95f>N*t(jI%a*5m+S4dn$6%V zS%A*`Me<^|G`{TlE3?c+WU~#@Hu=(^$dvjNPve8P#!qHV0Oj(bG)(>j^zXEI$aB5_ z0onux_0}JXCf2<39TC?nsb3zHdGP7HkU;e( zEhzYzc$I65aE+fhif^4|i@I7rWZuvEJ-oSLz*+Y&%JVydJ9DuAZ+0F zOROJ5fP9D3+Pt52*%?;rXHrY}`vEFMrS%ql)tT7#7}m`h<>_NZhwfw%Vp& zw}E(w|6s^CQ6eD*NqC&kFv z97kP?y4~F@3U^YVq&qhpjHXw(_tkMvL9u9I8!VcfkYTiFA-38^#n@xpvElJtKxN&# z@FN%j{^tBlP!*)Z%xFJ>WSTnW#YvU8KZ0kNo%qH1x13E(H0P_u5<7`teXG@ zQ($D1wG_8!EVw?_BfDwSQ{W1GX*_wP7JMf9AR``mPQ(KoZ z@~ME6tBGA+>;N^!Zrlq~z}r-?o;Y}NeQ`4T)5k39&X$IHD>a_#`hh_fM}*)%n!9t5 z|F5~>csGS>=pf5azL<~?*@Vs?2q95>hSvW;vQlECoPxSA!cP(wmM6fU0Usi7!jDMr zW&k8L3II5Yx@xI@TV>|73Kt$p4d#x*`^M zz{at|iXE)|XF6_)>9x(8<^*5B`{tY>CMlPuv#_neh17ZJk(~iAVd0SdD>V?ZL`<8G zM&ZgcAZw2C@l;NU{1w`5To|EKLIbPAoa5=LiIqU=NudcY{vg+YA7#)T_E-v6>`7gk zPr;K}{8LNMnImxr$vWc-F_0N%@>mdT^A3}q>wu1%-aOh3KXlvFFUv2uPFegR>XnePg653NM^9lnzK1Sx`t3^mb<UPIbo8u)bOpadE^yZqoBN3LY$3s-m8d7*Jz={DB*;Zh|8#kP4K0F$*1S+j_&mp|A;f zW;L$?m7KkEw40^0ybpaH`S3c(s(>rtCHm6jj)mv7qB`LIxqvr8*8MwDXM_S+oZ^Ot zV`LKX1DZck!t}z?oiIw#Todcl3V>uyaWNY8NjQki+6rQN5vQ3;|AAz+p%ObQ63R0P zVg#?FnJrB$Tqq<%k0umSnNx0oG*dinvD{NJGxLCzVUFpHzt^?fO9(mjMrnrV68oS9 z;6fmT|M+&1nZk9_OW2*YJm&TfCg&Ypd6-))G+G!IV2qB$ZowKbZoFqXu>^qBMZ-|u zE~!C2vP9eYHjyNIdW*@x-f>&5pOV%?vo*(ZLQ7J za=;lW8H*K?<(&y_Zzw7Jvh$+Bj9L7`Gzl2?7#&&ETF&*?t9UG7k{jugBV-s=S+*|! zX;-l^XHi2X%30o!)}6(2t6Ig-!kvD2J5_1MItaZ1>Spr(IfUeZ!HRcy(;9s#MHtn& z>q8Mx`NIpT&1^S*Z83`Cok_ir*qd~2j3Mk~avf%1i7F)kZzT(RZ7D6E{A0MZGYTI>%Cvfw$S;76 zdH?vL(KjzU&?16MdF%8@#^=!h@(!jGRz6Dm!?|riw|D<=*M7PC5o(>lhveT{xCvPBw3FDJ&e67E+1{xa1Ap|< zr?e&5CV*JmR6%=$*z4CZ=1F;*xj)M^V$3Z>`#hp1Ye*+pLJ0)wtx>bk*j?RE3EZjr zA!Ih8E0QFh2Uv-*t8ok%ICEE`Ln* zr-E)a!^J#`8~jp~sv4E2;S^j3)XtHgZQv%{&~>f|SJMTJf9wSr_AFLupuvRMr6Tb1 z59_5UaN7?ruyKC!p5)0lU!AJ`d}{ZEt`j5`#47OwzmGvX*T0znV|&l5<3XbsiE17r znui1=rEssVvoPZm++;qZ+W(h7OlW(ne{gtNmmmObQ2Q-V_>s*n6n9Ei?OCob(t@SJ zyTk;3G(6hejuDL!VjvsDn4(D&N~&7{;$S~1mIJ0l0L!!)suY-xwLc&yTb&Z{Xn!4h z$|wWQRH?>?KuEAmO&5s0Nc{mN{Z~`T1>#Wp@vXgL=I>~_{IaH%4lq0X`<+UONeX+K zYvo7N#HE)HwX){5njcpqd$)f;YKt84{%?uH8h7w?9R4ZA_o1nL*OS6Aul97;3i@_L z@*0F%!4nCGO!`0_tULKibzu4}ueAAJe+@$O*Vn{MZ9=W6*@XHzo4KngG^UCTp6LwYSLW0{80pHA6LNsGLRG>qh^Mj;A!#%Mm7^EN(Ffp|EMshZg-H~uVl71m^dL{e8V!j`gNUZ&X#U#(C*V^+ya)$$Y#|d5YaGlEo z@rKJdV5Usu!pDfN3R!b|6DNC={+`pjTeElpfn>lDdQ&xzl?F=)cm3K2qE_0i0mARN zQ#h6%2c5`u!>_`HJYZhR)V2-r8A-{mAgV&1x(^$Kr(wh>+#WQaoX~eSK z3BaJVcu#dj_xQYpdf3UO&>fu9z3nH{tVh%sWmtm$gbp;Evv;5MC^5YID_FM(|Ezy} z_ZRVY^w+}qIm2PG>S(8JozcO@-6D2lnw^?mc=f`mDQTtC*ts>6HOAi+r)WNgLkht? zW0L3W4#6YLEDYqtI}7QhllQ-?G}*BNgGYX*^NRG*0zH#&b~;#o?RniQ0HwdVK5F)i&U)tQ!x0m@Yg} z9(bPsu*;Y{Y)O6dCQ=)zo&vh4A*`!Dvwjt1;Gx?(pS#JWkv8cQ{!ZlLlpV7hDjs82 zAsVte4`5CbzyUa*%xu~{>`X&eUus>9V)l60dq8Vz0m;`bXmf6ACNduLs_HHp)0Nis zD9Qu3QcRv&xx#0$9=qMRK;?qw3wB&?>RxLD|W5q>+uwblViiX?YNaG*ANDhI~xa#oMHz?8Zxv z`FPs&TY_0=M~!913f$gE4b>S++7r2-3+`|H|2|UO`Iy{b+!4tb@Oh* zIXQri1m~GbNlOo%cUN1b^nlHHiCFwoyW;n{o-S|M3`G0v8rUf zOk7Rv2`v@8w$o`=%^}II$LXc3S9&^QQtq4`XE;Ck9RK=ZKfk;;$5vq}`c zMAH?1_+LiG7Ki_OZS>)IBkuq`Bad&yVXqr(28|$&A>T_h5c@Pq^M^J8JU+pVkn1jj zgj`&}0ch;`lWx!NOttY0foFjZO;wHN12RnZ_h7lJVdWE>6_oDi&?0nQ^x8F~or!#%QvB zLs&aKf$xI}oY`RwyC0s2!R;t@Rc|5Fl6=)~0_qVC>y4(_Ey-Sdp-N6f3=3>Vl_mtu z*nk6tGLuy;Oo3S|J`cEHB`4?9W63hUm}JdYwgOU-CS*rywEIC1Cyi85kjo9!8Y}t2%wAyE3b#xtG6aUJy`uXFHqP9iyx5U;@jsL zJ=B`vpV|5XOWih+3&y)Mvj*E7f53uF6AfC)(2|$tVu%@zBPU~AQgB7x1oo-MG935S zi0H1%Qdho6DAysTVMt6R@b23cj9+)HhKpW2bgXxXgG4R(iq5nggBCxrJYfLw(0BeB z17@e50t~LmAHJ}O&V1*I&%!t|n%A14grslFn+CQ-iY7k_gxk!jWYh+=UWA51Pf3VJ ztF0_`q`U`0od(d*uHD`jkM%*QwmxJc)uRM=D#m#1pt<$k8#I zOiU>$-($1PBWgLvn_X-_?=#EeXAO6LhJU6Rpm7mpa_V-lfim*Mm=bSesoe?$*bF)AS{gnkc`s=YRx`F}X*pu3jgr)~r*PeRG!j3=`DU zA^SbNF)z~g5KgPu{VCij?*aR5(CsKijnF%Gdk~64>AIn+ZB0{i;jZ6C2IYDm@C!T?_jcWeD z+Q;xRuS${&fR;d#ykfGV#^(G*-g%o5)L0@j$?kdY#cQc&)(2T@g6nO=Ze6TBSJ5WX zcDNY@&S-eMNy%{X97>1QHpxaai9OO#92_7sEowCq(B&3y0}tXLo}snt>Qzj`-*L8RN)}=xsOqsha-SHQc>pL1EsS_8eA?p>lm;2KSQ$+n(&Tp z&|4Y0x(sA6k-at>QN|?oIENt;Ye%vfL(mQH@&QkF4US2*pRV zCePe+6*a=y=nbkWKY+^{-AiJ9dol%gG-8%jx4+T~i#php_xxElF&_t0~|Tt@~aT!arS6V1_&ZziV17r~{|{ z@)Th!Rjm8`u;+eo=Dn*7Q561vX11U>vhdpL8_;B(@B^xDK!orkGUT|P6WjY*6P$?s zeDQviQY-O1<=4T7wBT{>klL_2fw-A$I2dwt;>j3)XkgJBI|bjEX_I0(r7uV{CpY5* zxj?ZoeY&Aj0OD z4jn;`JIzO?8MY-2IF38_fC6=4YTTm`tv%MdpvM_XPdABfM3*hn?0B_^VY`rNr5E&g zc~M#boj>xN6EwBIz$dFfrz&+Sig3_IT;z3c0Ck@?h-GT#F#D0ej}p&~%?U0~*x;}` z!RO7fVIR*|PW9CS~R0l+2d2B#F^SHzWxfly#f9kZu? z+xw0HA@CFFhtwtxUg75_1I|q&wjcDVE@W8lM3VRdc;6PhX)a-y~b(W4K<9$lr|OZ#P8}*x%$*TT-hb2gCoTR!uvrzdqDy zH13_AacV8EmUEecHR)4V2#E14z{gnk@l5FaTVpz#QT zt^g+WZ>bJ6j2ptS=ijROg>%Vijw8K4pEHbQ$n2=!^!l67TslH4-#Ayz{GJJfj#=I4 z6&3cvVi%?;`;!Z=`ng2lZ|<|xA_zOCz8fGvMNvj!WCUAm4tj`Cn_sHt`+pOqp4?0l zhaVBe-oJ7Y%jTZBl5J6lis+^WDhxge6ll%(y!D&Cd@br0#Jkw1-QLH0jdg)BhFjh` zWg4+YJ`-)QF&fUxM9`+Gc8Yq$n03r>yCR}t-pgty*b_f4F7dIz&&KeDHb#5E6il_H zUUQ0Bo_A&&{|nrQN~x|;SEmBC&XxTHlUwPmF6Z$+{ z2IxmhPLs4QO${%FQCaU@4JVZ073naNcMcA6X4S4xb~1u_-DVv(!c>i5}grgD9z= zR?T@uv4gwnmnM`sMw`oicKLRotHpM3aaxh*{i%)4@uHWVVdCB8U!FP-tBM`hz(RZ& zn62vt?9-6`llJ^Izn+len$8Nxo#+~Tz7ymIRgxmv4HCy#H=`xpHT10`nl#FDjovto zlX_~w8uDbvv;mr-|Bm)R?X@P#GIfvM_>@_1A+N@Ajv4J%rrA^+OQ}=pRNC+4=ZR#5 z#iG2C;u`3I)-!dwdq|t8)WcHyN8;2ubZUMm6~|^wK5_DL(1K_0I-mf;sOJ0lf~wM+ z8_=evPNCUaFj(B7R z;C7jXjgg9=y53ADmEJ!V6UucV`s|@nZ@~Jss&;X-?xwYC-usP;axv^?2pM;0p8e1e z%V^PNcwi_><~E)Bot5E9W_xGho3!u4W@%@hvxDywsnnX9_Od6ltG9kZT$sX9Wxd+x zy-xGfIMOff(P*8uKyCec7Lcqaa=FglGKAdmto%MG3Wr8_EczYE~73>E0$EV7yo{tEe@lt7~%imO>vVu!TN@V z)M;@Y^^RTD(BJLjm+g!Z%qAjUVMz5rOGnS$+XqKYP4%Lrp@#f9D|ltOvse>M(LzK2 z_(MDiw8M$DPR)34q|DZ(&sm@zIRiECg?ugf$|?ScW;nEiAfbS4KP4;gMf*;fUJ4js zAxvMDNl&VrTlm2TUw1wITE>e{Q*7ea!7k7m0^v7oO-<#lDM^8dk~S}$3@IgMi}A-z zP{+Wm4ZD5QLs1v2b(x_4UCdb0fYm#j;%!NlT*{~oHS$a>m|K@EpHxwE#{*f=)3<+l z{-ECTEtBhkLP2X8si0y1{~C5gz@U9a`7=hFlC_2%KX8paIOWzjRT`WFO126ZK?m1N zEKm!MGPLBx3-!w!jwpd?EZs)>qIVKbY*nghoA;^X65W_N!!%qe7Il92lm-|2Z95N7 zgG1wz-kRb=_UhTey|Xcm%@K9E8*JFO117TI!Z-JokveBN*QWzMUFvP_*RRxq`|**b zq~l6ju21*LIgYn%4PUH){z(MzO%5{dgQRO}-W^oM6r;)%Z!HDZM$5 zKu0S)qth|)nH)ndkO0TyS?O!;zsugjs@(4y|1%5P3ClhpN&Jsu1TT9fQkVk@nsS+5 zU_KyS%N(on&0kkv3-J3@#*}eM#LIWfkWK%O&i)@2&v+PBK~cgrH{0^QXmJtxT^Y}` z;P_JwulPr`pdwvQNjZcrk0v<)Lg#_C9{531Of8e!M>Rp8OX}?srQU2mf+;@>JrTIsGd>l@M>G z@XufS6wFjls1NjqJ0vA3fDl0!)RJ=bt>AqZNAE&f3ZwFVdVa2&?GVqGPM)wDPNRn} z>>7F4lFCKjG}^zpN?!(AvrLAa$)qA1$_Hj+3&%u!7R29RKAkN4PPA5C@%_40j*;Fub ztNTLX&r17E(hY{3~o1S@!E>ZWi?x5scaaN_s`LJtSi>R`dpi z3`ULdp;3>sWDetW@TaQXbR~L}kmwK{mZ|4rCOkRuSVU5_RHPFCll33T(Y)Tb-BE^2 zD%&@lA%VweIbB8)qX4(9yPIT138)+>aHW8LC0KvSlXrGRm=jnFp+OuxKEl)g?mctUshPDe&Bo`c<(<3d+bz66 z*KiO6jsko9Khlxi8`CcYo8~i0&sX@P0Ets_#GGPs#3C--sO*oMC`%0@E?6yp$-K^C z2dtaPEb-lj{)#AhpF1yw;024^w$tChNsWV*I_Xi@f^9@oEpxo&54v#ASSx*x?0Wne zl@5JC7Sm;6QD z;~(v>sOB`;jDM|tj`Kz|aUsC?s~LUTt%$!wH%Ha2#S;{_F0_RPi)dgUdzQmt^b*5d z3HD^zHtL(%Y-1|bw%F~ z^FTTd_fcH0Fa#rt+)V^IB@9hFHT_9dg|tVYB|cHE0wdF% zY5pzgm&*@A_`Kbm$y29@io6g_X-9J4s%%=rmxhDb#$v<#T$tZSti6x>z7f2? zendHjnD#fByQp;|k2)CRsCT2(#{J8vUC5H|qoYcZNL+OwMf7etCX-{pk4_uy@c<=x`qYvq3}_jbYcf24Xw`VTTvmd%HBc^tKtdii z3H(;^X|nQlbs(R6EdaT$_Nsmq3s`P-C0v#E(&gA;7dWG}3Y&R<1GA*WG;c#VEz-m_ zUpiQROp%$}`>N8j7f<>|3&jI;>&nl+58Cdg6JK`MMPRn~R=ycCeFdxpSJ;#Gm#bfZ zqQx6&0}6-I<>)Pfl;k)irJb-2+PFAfzt)SV_Y^rPi_PmNQbemWHq)LqaO`Xt~1 zRiF8yQr}Hh;*K>H zLE|e{I%dh-qrdivBf4LgY#8smC!1Qd@(!;S2hzAN=Q@MDeFg1U>u~6Txn+-;?_d?# z?9!pquH$_R&OS5p;99=VKa?ah<1Jdib>hBK=R!gfkY@5Gz&9jcP5|RuM%ez9$ZzJ^ z6KjLAPEWWaeTrfkj@a9Ga>JnH)WQq|oxLun=Td46%^zruRb@bzN3T%tNcp@HD zBtPUa^~g#3*Yj)d;}h#NOvwagGcl~))T!zBqi3M#+%@CktIi03BZV!^}WzBAeVJ_eD=4mpo1bvLN?;y0{YXjQ6t^$!F`*I0My{0reR zn4*$QAHiznSj6;Dfhf~EHCwZoMY=k|{?dgHU6ns=8x~;!)g?Yf1Jn6lZg=T16$#Fu z1GG8{`?#e=qB1&n>6^|;@pGB?1N?K^R zB6gnGNz2zP4Jsbp?~|L00D2x>TTi9K6?$$pB`kgMQU7p@+p=(XuL6HV(_hOPP8@V{ ziBSX&8j<=jYODQADx;_~{1b`>aDW3Rt6AW0S!aB0qLjjF)kv)u6t&XIl^0dcJ<7A7 zMFWxQ0_m9aG#$7)l-`O^BS6u$9NId!npafyRA01idtFeorT6-UM)mPAmC^vJi0Fd`4CBF#5j@N~OrKljkSh{6G;IA~hK}YkGx7AO@M!Kr7dXmQu#65NAJaVhQ=9D)WXfA0HvzUzJ8|GIYPtjx}tnX|iRvS%|( zX2N6{t1CrU*xHw2m;8k(k*hvn4)~YkQ(qNH6?sqfe*Y(`ILL*%essKTF6VD?x$lMf z5uMpD9lq%|7hy=`#7(}n+e%|*c|WW-{5g%8=UK?iz~>>7b7}vXvCnBnOeTqQyNpx) z_J6DGdbYzi8D^5s)kX+q-p?vad~vh?oz7|{T~?%RwIHs}rFQHLijF^r0V@TR6*X(S zUb8y}mYLPXO_I(0Y4}*n)=?Gl!EQX4s;bu<7_R4v>|bdKkkfMa@3>3nw+;>D$6#Ag zXBgm2AaBjid- zOs*N{b^fLO-g~i@-Hq%9#yu0{ad63v7#f;z%5NQLg}B|H8BaLGlM{&m&p1KeO0}|s zcN5~CqeShk`TFl*uY_ZgYo>UeQxfI8p|yl=iMEj*z}cj9(WZs8mdhHrtK*QmUwGYmjeAJJYrm%Jgx`YVcJ3V_&Ct zckwXqi&d|H zBY4^(;A^a8GUBaDtQyF#*F4R?<0r*SXJb*+W+AQRCOPiV>*Hr|&(&ZP92o*@=_KF2 z-f^4`RX47^DeZ5#g*pE1yWMg;AG-UfRM;9bA~kmN5m=&|P8}0X5m`KsRw%EV z|7rn!5SV=f{6uH3#OCbdHgZ~3Uos~)saUWG3018fD-N{{yq_w~II&$-ks8WaX!uIW zK0CH_ql3>=S&`&(B8NVNi$u$zQWfqxdHWZ6cyjoZ&1={Pma{NOT3X5{y@ zKl0_ey4E|MXpV)E*(w%F=u6QJK|zVYIHcSu|Me-kYsuja-QPonYF>Pa`jI zHWBu`iM#g8AV)w1?Ioza=*qrSQFaP`o;e3`ZSQ;TkYfll`LbXnKbyOOYQbC z=C)Gk;U}$ov9`y@nC34^Y}0u>)5pBicgzVS;lxD&4j_XE=V0~ zZ7q{|)MI>~Rp$6)%x*dN-?!l1a*1M6+6e=oM%r2a%0iqzA}JTIJ7y)xdlKTuT9?jy ziO85bYrDu429AgnLm%>2+Ts?-27{5!E*hMfs-C-hlqT`J^4RQ+hy+K2W+ug(L;>8J9= zUM6PWPrE!?yku7ANM{v)AwJK?Ps&D$cKYD16Cx>rzkes);`#*we^w6XgSOGtO7~yf zf=)`|>4_enA@Fo9e0VAfNm<*3nkRkZvL0Bv&vU1rP@#T=kuXcmEF z3@u*L=-srZF*Wc51m5b={_&GZ`#jj7&HJA$;`lkV?HqJzG_I(!i-LoL-^XZ<&x26J zSCW!-*fl1bgTnZEZH!d*QMC@Ny@0#k0amZfNR6zKq2YV=15bUaAN~_gQsoMW$V3l) zDIs241=WLJMw70Cmlo%-2#=;VBBRMRwpj&OtjUxQt?bD8;H7%gZ+Fo=1;0-R?(#9P zSfTAG+9AvGlYe33hZtBj!YBk)qFg*>(R4^2nfa{BaHdvKB5`Qp_rH)S!G|lU?hutW zsWU>Q+wF$h{#x8Px#ewrDcO?yN~Bc5ub0fRZ;}8 zF)H~7LQ5`nD{L%K5H$Ov^dDHCg}S$qn2$;f%=4(w4aLq~Z|;sXSG)aTEA0?mf6`kb zakXyh993aIih}+&mOGcakK>9wyH)o&S|;NbH!}PtQx-Sfykrvi<~K4gT8jG5!V-Pd zV_^7>XL1sWQnfq0`&IYF2}UR^&C+{Rg=+NlZXI$@rzP`Q9kLj63Y95dHp-iQEcD|nPOeAdPyP8fxxw1Nn%ZWk|o%^1mrCrc^3CatjKX# z;1-s`g~#rk;%!kdFnP=hr;rd3>zLeRm3UiYB3jc6bev!`g*w!GK}LN-wn8!WTU9ya z1rCp}t9vx@CN#_ntSF_65i_};Bbf&Zu}V$ww1-|-f7U`+>vN-=Zj5D`M#7tzdN%Gq zWl1n3c1!J@GxuzWnOuk`^D>b2y+(9!b=aC#u6}}DZ54RCcsdg?b1u-2cEA>G+{dO-BL8`*%!7tr;RcU` z{lsPusq}YSyt5;hcG`X36N?^3+PWj1sI$}+Pm)OMxkv>PN~JM;LYBjz%{HPoqcNDu zgHLz;bDl-dTA%3h4mvzq-=12+cjQu*AKw0%kCX=avv?6V&8AlMn~Xn%Pw35lNHRD? zmr5eP=g&gEq@_YYl16+rk|GgC_+q1%xt|fuWtG4|X{O4Zns6JFho0$!@QLpDnn#uD1CfrY#cwYq)xxX{X}oq&vIRv{(9$s3%*`J&eL4nY(8FUA8f*;?Ai_@ z{3<+sq5TjFWeFX#?!NBN$BjC(3Q`dV=Z51l75i}q5-Wb{*EIY(SqybM14z#a&*KQU zsyT(rS{XW=w881e2Y5oeNq$WB_>1UW)zzE(D{D7r?lx zo*gN2HXHzD5d_toI1o!QB7qxq7-VXOcQ$3h4lidJVdh`|-dDE0?Bl|<&-EUaoNO>C zU73a6P@f#&R+3aFs~a3+DGx8x@1#!xKchM^nLT9Jz<|kt#=srVYug@vT?#BJ4XnPW zF(?><=xhisSQ%|{MlRp&P#QZMr>7S)8Fmjk%upI>dh$pB`y$U)cm1G7_Ew3&ryraP zzwV{>6}o%RJU#g$i4cGS1ad(?vn?2d&m$n61^2 zBMA4vssa}^b6+I**?M5-F~q@?*?@yfP%9oZWYJpc6H&^<}k|T{>ZnB zryR6|{PeB>S>WY3qd%VR@v8PL(Zxait-amOW6L8%2jZ!9I(=t<(cF_tFYh)g%4XoD zXksn96|f>XC20Kc=;+VuFO}!PJ|Wdyc71)djf4O0w*Tb#{pw1EZ04?pIK>YcQ4J*`dpq^ zp#Ee+Zsv|x)B&I=S&Vd_Y~i1n9r)!O+}82(Oz*}HbGPneJ}ywaQI%QN9~kfERyauAJomGd5cW58jNTOn5=Bj+G)CT^ZBzGtg7GKRbLHE7LsIMML3I~n z$;HQG(4v@!v7XVo+=^0u9jqgPzC9Tm^qs}^&1g{$0jr_E_gxKbz0xoa!wY2F*|JEB zd_gdc;qGzVEQ$wt}>A570CtmbMAsPGm2sBu*cshcs) zp83vZi!d1{(URwx&-rwu{Z|u8gxp(1LYInOMFC&sk=g7_>EXA$_94OQrfB=c@Vefs zio4tzpBTRt4U@oLcNikNF*5Dm$OP zv>9;Ir{KFzpzH6HxmP*?%V2^k1P)IUUsP|jk8zYA{W<2Tq;Xo;pB3KGij-OkKI>AnkQ6QXb|vPm@orkQ4NK($$JPMrZVffZQP5M7)sBqN z#u!hg#5S?Xy2g@7!USHvHNQjSwB~-b*_y}a za3A`Osk*^`fotZ}BvN|G7B$OAY7q)G4fQs2Bd1G^qgTed&Q|xL{a45Q$$M)s0QWzD z%I42_v{?aTio5vh?zeKSedO@CMo3jXwnW(p4iL?nw^b@TH~JSCuqv$8!^dNO;^&#a z(O5x<`p`VKL^?(N1}ov=0`uCr5f|~{WF=A;3H=rBmkpl}E60?Ge_Odv_n5LnU9)xY zHjVF-m6Z?Ywv zx`^0x>#%H7?*z+T=uYJ<{EGD6pk{~)+PHH1tQbTaq5Dksb+*o4*%z@ZJNM2wd(sE$ zc?CZ+Nq>nd4=6sg)E>0*Bz2edGU4~}9rx|+_VlcTM~^z(UQ^B2oq7U?@KgQR4+g8^ z@yP0*r5eY*&sPkQ`aW5IV<4pp8@!SF)hCXORp4o-B%Mt$lwa`TMe6z4T|AStl^xUi zcwaPy)86OE;WV$@9qM3Ee>X77M2QT6k_E^x;p}ctI0lB$4YXTf@Q-{%B`w{`Dc#GP zW$8SWAW)Y3Eq;F|ajUA*K*90%@HlL!i2V0M;Qh?>y~$kkk_fmn;p>qd(k&ec?($Tg zi?ZgcQYH38@5P;hI5vd=FAYzv943VzzIB}6)X9$3yz@$c+?y>*SAH9so=H6WUG z^3v;^Hh63KBRnSj{V5`{(ZH)*IKy{Ukmzc)r$x({QoAVuZpcY~>-e_>2~tA3?Y0bQ z3143&>o6gXHrU9h++`f`HxvyoGQET@*3pdG2rn{@+&AwF;T(5~?t)iWaL16JO1F0h zq;%2#>}g{XNRYbejedN4AJT#GVk1gV2eOD}1Zwpa+(3*wK-jD-)FVFo=_f zFRk0Kub`bzPbKu$EK|pnBh>e%!;}416Nt{oJu7Y(UO>Y|&m@d^D})(zatN>LNHPy9 zsv0)kXiiybcubCHRpeINWl}QH4V5+*sdXBzaz#>o1-mqsJfVBv!R92sI!{i)&2Sug zfwn7O`TIH+ul5~{EAC&-&Uw<&#?I!gvK2hYWgvSS?e{Sue<(G(W~ANFijc9?LbJr$ z;$kit-{8jbP!{WfA9mHi;a*f}oe~4o`M?(_Zvz6MZ!IzDI0MBisQFp;9+2n6K1b$d zAzZ#ehvl=LWqv?Ng?#ODpmU8X@D8p}a(w;x_ln}u+qL|P0)i0QtdYEOkW-RNC*QCi zb2}}|ITo48K)UyrdPo6*c`*EUKA}c_JP|;>uuvmskB7gTL$f=BA#K&5_K60ReRG`{ z>+BNs{Q>Ilmo~O&;ck66ZC$MiF@H$dHipD!wnTZU;*y&L3es&L9m63$uV+)CxkhDZ*ACN-9u@G<#GHL~D+R>W&iEZyXTI%nyAqSV zxZVd6yGIMFPacq`NIW+ArK^t+;9+E`k`ZFx`78732q|LY?%M|pv9Bo}e>SMmHXi&P zx2FZo1qtS!XMLQ3zI9YbL!6(s#p$|V8cCR#jmLO#?B5xGf4>UHi*U0)f{S^<;=E|5 zjv$DPymln`+@A`1mFk-XK*Do%-PVj)C|AuicV7vuUd@9?&PS$K0hgD59~;|n>ZB?T z{B#&Fb?RrLFUcZKN#SpR+Fq6^U-?wON5gM)rkJg!>IB>^h?~rNK{YfB8mZ@FzFoj3 zqO?lt3(qyJ0pX2hTVI*8=X4}jq9I%r0=+={uCx<1uqtUtUjxswMvhx_5p>DTy{SGl zW=e3uSm#`|-Ty)L=%8(Y{zOU#(pKO-aRqMXU1=PnZn$5y%fM)NJ_h2?yZ4#2oq~Qs z&hT#i7ch_uyIE&9s)Uf*qVnR7%lq?hY+_{a@`#5;&ujTrDB;>s>{tfc`nrH*onA2f zyZ`lX;~%4;{(A|fQC<*%4tzgtq8X*6gRxS_b`p4tTL;s#VVuSwnlo zTJ@zgxXysvN5;kuJT-HTn7rJH0@41`8?pCi1xf^zWv_H_95-e@`tTd}O`I-tlZFk( zZrbex^`&t#7N-HpU=qp{@;D4lw7bFD-gticK)d84Zr3B$jqZ0q)DMQg zGF^T3WjP~3ytJOB1PtR@dLDU4F>9Bx`$;_yUW2j9iuvLEp=3e*=2#Tjvb(5J1#D`2 z;J7!Af(y?aJbM1Zi2>i8h_P?@;jUf@^-lk2q^>91DTlvOKOM9{1slw|Q{t!n&RH>6KeCaBB1HZ}+^*=t^Q^_+j6r^wI$N!y%{6 zl%7AtAFdf3NOx+=qTR|1cV=3Gca534#-{s(GErRfXP-qOIn2kb5o>kJeXf zmoeFoNI5pr41LJgo%!xRtf6XUDWNCvh}IPA#d+b8XuXBO(d@}#)itw8fpX&RURojrL1gU zsX{jQ+{K|U|K{BP{qEm9crY*FAi>*^c`#dZH-{zk%b#{DE9|D9%h42LOZm{YJ|bzk z=Wm*qMB1GEo}*BzbC4sK|Siu^n1eLw?Gi8`lBt4^^2WyhuRAf zr0(wt!#0EF4FBV;EJ74^pDS&oIJhR{Tw4fy&<9u+si5w6-)!WGIEeipkne-SjLjEK z=T2{^KJ~5bb6fVZ<@tvuYLNwDT+x!01Wh_PhP`_>E7~~P>Hf09&BX|3HvfNss}aX+ z{(k}0Y(Bu~zd(7d`MIHR-~o%v^3#g6Kkmd$PK>k4Tg?%MR{}{{+h>0bh4`| zG2@rxwkqPt_*prR9g35P=*{~9`flV;aC~7_)F#FC8a=o{;!XT!k7&2Z<6Bm+du&~A zo`{N*M7V{|yjLQp1$1eV3rxHtBKr9D+14?277Y85Jhvg_EbPvBtI=yHvMd6(on0`a z_xL&`Z|LzEwf$V}1c%_Sbtz@5sw{Ab8zpF&G0lB-PDPP#jn}pECJwnK^01Ym@iN%P zZLUW&ukn5;T`WJr!RRZI!u8l9r(OpuyWtF(>IODa4#?bc6iC9Z5xVq|66I`HN%EH0 z3gN6F0%{!V1)L@d|JJzB{;{GsVZiRgDd(KOTTUghW$vKk^;+k5)ej9Kdg|BX3OUwz zus6@Q#DiOl#H98+C5`t*00jNyO5OQhlJ7ogpxY6t#Ra6wPQA`$Ar$nUyaAH^;m<$+ z6bWNQOl~%vxm@P=>kOSYwi?q8!J=LNt82zl`Sh?xHE6@F1h_q{opq`)OFTQ=mWpD< zw|4~0dO;@l92yWWCyn}Q2-bzx%UsKMqhsIpwtjzMHlk{FWK_6LXxX#L3iSGXndpbw z-tUrjYA^O`r5zCxqAa`ivKb$ZO|Sk0BRazN{E34+ZcUk{3Kdn)lqfnX@!;knh9 z`lrY+iDwU6*;x*fK_zC);BCcw{~|5B%MZDloo)bd*D!L{k;3O{7m!lm+$HsSjNlsQ-<& zAQ;(E*-78W)}A{|Px(wz+lj4DBlh&PR;mftGBRJ4L%HOup=fr9{*O%Zv+4%G2tK7} zv1L)ypQugEX%56r<<6Ai6wPL8zG02+rgj~bpq62c>WG$3y2RkA&I(3O-zuGW{;}2; zp_K*k<_QQd3Yf4+`-XZ5;521=U{~obxVw&HSCPGqV~6|J=08DT%BE;SjW{&*&D8fC z78=3zqUQ?ABzC!K#389RqHX?-Buw3Z>>7RMzEZ4u)qZ~eS@yI1XPM6m>0ryqlLk}Q zY4=vB8CRQsCOhQ=YaUWIo>(2MAW92+8c(dIA|r|i+j~2_^KI&P9*YbaQyt_CU-LIW zJApkrgRlO+Ai!`B7G96mJzZ1(h!#6h)6)r)&wmh=-$Jiv$9$N>qQ>As*>3Gagy5FQ zvd&0@CS%*PPfwx_GoMhLKA<)Ea)AN&zB-~;xI01O&q1XEFjuT5L0yt{V?3`QeI@faI$lq9wE6jp3WU9 zisADKefSq}>~pN^)(g>fnp54l)zLKtvW9f~QH2r3!#H$G?a>dE;FcrT+ny_Lp5ZN{ zB3^mF;?}hT7h6cq&2XMwaVz7Ifg2@QkOt1`WwcfpM+kmUjA|v?Ebh53MNLl8Lvb1y z7SWn2mRKLyK^5zdFEH%K{mTHZ(@vSxCj-yHtf~(**qjDxYIvFD71_^%8SimL1Vlb+ z(u0%(Ex2|3td1?D&2VI?D*}WmlBT7PqDJxPT<>8=_`$C?m16vfNb);G*%WUqM{}}| z-u_v%6rq#LYp}u8e^nm7c@u9%pp2Q|exw9$ERebO{8*6rYxGUq} z02^ywdZ;Va;2v9Hp7<-+9$V7-KS3wgFv3-EaGK3J+Yf8O+Cs`YQWUb5uJCWKP^e|- zV`8DVieN&w9PlbRv*uQ!)UvDp%CznBFcQAZ%_$1rILkMFsU$g&mEjX*(GBv2ec|cP z=itNL9`?X|6PoqcdzB-grBWvnV5kT%^f1GBwwz#UuZ_=XBf9LitiKD&r#iAHN!GFQ z?oW1xaZ+0h?M^l}n z1wk53i9<(s4ps7$^3cYZ%?-`4^7Y0m?0%?%$gxBh08ThM&U*a53-FA{o=eI*KB?Jz zid_)r;73<;E-qAQ)Kwxr`fY$^Jes&HrB&jzu9@FsFO@}rWJ-Txv=fDR4>sGU?bDH9 zN37(5^JMS)qt5fWnr8}6mHLpBqC(eigH2@GqwYR~GOAAl*UImsqy$A)PL^^O%Y_aD zMdn37lnp8FYtXeSuby60=N^jeG2(GI@&1QS_OqhdQjwRAAW@Ot>z#mrpWkYi292}C z!!5!9tAp&W`@i}>XlyBreszf-%-Xs3Gx=$9h;$9tt9aMD!&>jtcz<0Wjq7msA#|wQ zAV~ZmrQyR_ypDWemfo1di-?4Iil68FlK3fLXndfc6@wMEX^$K3n+^7}U^o5`+POQv zvTT;mx!(_=%V@`D44qJiVq#q%b&+`AWL}S_e1SJ*UWI&Up?$gRbnW)OQ9zSc1Jmbv zxup2a=o4e6#8Sc5R@Jx#*Vd=DQEJt%>3Ac8eXrX72<9*Hx-He7dV+aRv@R$Nf<%BC zE>H`H-uYXa)no!g)z}V=4U35;+O;(w7jRo1ZM^cfm))K0&#MBrboVv&OtFIw2PaYX z9m@*#qlA9JRoaz7nENj$u9mQ!f+Nw+D)_Sif2*wZMsr^ow~7+(mnHaO1C_T+v=$%z zfMKptcpowDb7o)4#r7So^QS{>NA{I8lJKujEk#cJAh*3(=T|S4su~c$)eWCZJXOa4CLj)la*WE)xmcrgWUG18?6ab1oB+#ckQpLt$~ zYV~DYmf{(u`3(?)I_u?!%>dIKJD+XlNHOj!ocL(t=lG_aORHWGQII~J9pgTXXAGfHjDca-A@*m+kIZhLqdSZL2CZq(67$RT%$AL88ojTA)e`EFaK ze`!zL)3AGQzqwpZN$&<~7`oaw@;(i>b|3&DG>l5@TW_WehmNoGqEwNT7J|^T$?82? zbxf9%q~lucvb~9-fB(KPn6k;ovCd84FuW=F6Ipt7 zwnS=sUqU(7r5wNQ`*8SsDa$Wl5r0f_h3)f*FC=z0_GaZqUh8Z(u*o$cJ$)Erem##M zf?VAghxXyKH6(=!332|k*QTE>dw=`|cKJ0NvG%7Rx{w2{aNlhNKW^W`fw1*USfSG< zwx7n=^mOquKpW1^E;^~F6GvH*_pTd+?;@Bzx}ns(@Z#&9hLdeIOn7CGUf4v!WtU*} zg^`VK>nYFSy7`6L58A;>cYbD>GxH{mSB2k&insh0W0~$(oG(oz{a==KR_j#yV*ggF0XMgFNNgN-N`2C2hqxzf-+&cc4lNOUTq9 z9+%Vx*Nr&5OE=LRwoMJcWT7&lGx=kAeYyVC(4fAW`Mf=$q53|j$+ely(l@Tb{@oy@ zE(ZqF@Y@19+ZnE*>*cPrRLeX`>Pyk^sy;_IXXpA!Y`O(-x~B< z-Z#w-bgnn&iF9t?SK-Rt6gW{Q2hb23O`GrMMmdC|o*{iKqI7N&>6i5u#~z!1(w$Qs zg}a7C1D-r&;sVUN@}-${G|f9q9~ndNTbB(`;!-3l@+$UNHm8JDBD;bS@G zYKD2c7S(zgpJC>yz#$JU?A(#d_|>fGG3g<5@N*wqPU_oBdLd1a^H#$dpT#zXh`qth zOBaqTYPZy`hiEO|%;98_NM#tsyf4elTdhoTwESaVsxA2O`fNE%x>P~u!*;45u`yxt z+CJCt>%J-D(=X>P#8cFkL^_n6mMy8>m%WpHsn0#{lBt86gf2|^BP8sgv(NaFNtLLR zs6DwVX3@cA1>p_!2wBvRE-C=}MlIQ?u9)oG+4T3=ge=KxA3we6^ob2{XEr|?&;?Q@ zD)uiF=E1(zw*Fy(eY4fGbXY9}DkbaOH)~}|HJJ?IIsij$@A|@;#C1<{hi!HZJL?+@APny@k|eTTnxoDi6MDb+u|w}1 zZIh@y0iS~obk5&EnSq&_0(`RSBp41e1@ck}k3h(O6&iX=y)|dHd&wc=SRWodc%ByK z61Bh&-YhIer%j<@RBhPeYn%27A|PA-9mUGfAFx2d_R^TDGtN z@lp;)@9Bbl>v+jq4gPgMC1S(;#ECNC?~-oisy>|?AB~7SLq{SVfyV8j`h06A4xQAC zS3P#)i=-D;*d1aiXd8CexBOgB?C@W79FW9!tG5NYPn$Xj&aF^so_IybVTLDgmw8su zyrO5MG-OcFTKCRT1jwKA|2i8f6^rNSeP>J15`LFYQCo|-=0p9&`bSkGvKF%=B{$=F z1@AU{DI-qaHhZOh*X17t^;5KQ=jXaYl22}xb2%el-QRMim=roVr!sUJW%NAR4ctP- zo+ooMEase(YFXf0fvLhA&^v?-7D7h%$%QJ}pdQ-zzQgc{v@+=Z=rv53oSw}5^&(%a z5gU14>#NOS{Of%+NI^c@>4R83kGwLP-C(2DXZyymrfhd+p9=XgxxSx;p@J&bE_DW! zE?4~r`h}Zd;a69E322q}-}@7}!;E3(oNbQ&t!_qPbv7$SzPNMP32> z8`yiA&j?=-2=Z5$S~cqAt@CQySv6YZrK}q(CsQsEIg#bf@1-mUs#~=#T7@ofR#n*W zUuZ;8!o$)|+tMlF3{N{U?kV^$3#t?mQw|%a$bPaqrH*@*j>7 zSAD^SXOXaX;_^%V7~LGle?Da)QqZWR+ShVnyUTzlAxpXb(oU=?*io|m7W8$a330Tw zZ3xB*sAFDUk`#n?f9t{R;o^@{s;6|V;p?KADw7o*!p%!j_4)atQVw&@0uyzZ)Y@pW zJ}sS*DM*O>6UW*S)hnZLzqi^Pw2~1+0|^|(6BV()6Mn+|P7#Y?rjQhB`Bz=))g@)o0M7S`VN-N7C+oZ&np(q%#2X4# z5PgqHfFPM^G^ULn0e1Q5Kks;U-0zfi5(HLLJZ1S5o4kFAPD!Vu2J{y)()1Pix=QSJ z)r}9e;1J!CCxlzP`a$BehGe@&e~tH(167$h)HUrwuXn0ml%tDjSrpqvm1DU`%bczCwEoWrH#^*H?Z5!Xh@$TCZzHIiDCE4YWC=J=?Z7NvIuF+RtLrghY3+WY|xPi z%JiAA;;N|FlOBJE2h{4eDYQt}yy0lhIag#6Fy)VfR7riq!aYQvD^L=n%q;(UvV>{$ zHfTn!;G>@O&SvmCYfSD6P@xjpZHkKPAvnXxJQ`(ixXmAwdw&*^Hx3@VwyUh563?aU zIFDo?s5po`edos^-||yIP>>}oDV4b9Ew((r6!!7xbR|tgk2cnNTqk|Xsu@O27~%te=;CmXj}De!BV75||1=R_WFuprK3NA-`V9mp z=ma<1EdajT=Lx5>H+-{SM2e6DS7;53gA{cdiD^ zgF9*9AgA)!FL#ya2=a_(h}GE!6gR za@V2DW!`G3ng%SxuNEawBDbCJ*n0I9s}eQJJj-x^v5HaURGVcliDvbffPzrWOl4UF zb~n&QuqbO_Hvi7&%d_=kbn83P2@BnNtV=9B&sS8t=O;Y51+b|0DW=ceMq!~>qJp}C zd4jDtGEtMJM|k8q-Xa=8c-!wu4c^|5%yA&50?Vt$ky*X8n`aE*?bAYwO~IwB+y>c; zxBw7>YTTp2_e?!Vq5CUo_9(!3DF} zKb`3ayGn2yyZNHRpNLNoogBzCxt7%;Z<2fp%#LiS#N(PBo;Z^eo`3E-FNlU*mTfc^ z6n-C@5K3;7Xsxm)<{?KcbzFrl`h>cATaW3ow;sBI3p0@=J96DWY7K94&6M@A4_;gP z-FS};6*WaseUccqPnxRdej-+fZDw`(%Twj@bANr>wEHg^@8V!4JZORa$_@+B3$0F> zA{^Qe(-Rm6R|}>-q3}kbWRH^>LG?w@c(o3ek4;db@_6-geJ2>-)zP%<(ISw(pK>}_ zmk_M-I>uK3f;xzY>X4|=zOk@tBIe5~RVTz+a7pvmcEJkk7FRmyFT389%QNY}R~SRN zI_A)4%Di8p7JvGa&jrPKZCoTd#@Db%X4kN}r`E8SD?05^lgZyIWP`m68Jq0bNtyLe zZjI%)K|@|4jq~3YG46fHBuMhYG-{=6ZX;%mf2=T0_pBVi%zto4!(ExC7rkmx^d;I> zuo?+Zje5Al=@>xfoZZ)+W?L<9wpBR96ApfNX*Q|s-vGa8M@T$5BZi{!`{?9Z2_1(? z^EcA2y+~esqLh!-plNbT|4a~aiRI1R&&)dLL&x7q%~aKj90JaoLaTIj@DQJ(v33rq z4pXRTGITF9lHG4+Oi(*ZLQaA^yhc|RIzSdm>$>qZE43gR+$h^j0Pn>nkGx)`EH{#2t z3Dm9*$E@m=Q9)kvY?6*!HnWn|IB1*H#8x{vty-LkDOq1~$Lge~PhVB1S6z^Tqi@?M zJs~ucI|*&%>MI=Wg3eB>YL@%0dVWK&k~5uKMa2hx`&-(0Yk(*-rzt@sYJv|uIDPx#&_apZMT^${Gw7E8j?a>)ovdO@ zLfZ^N2K^eU&(Y)%-SS80I&H)5P3%!4d34vqBx%&n4@?hsEY8ed<(2#sYBOb(tj}dc zhjChdxg3CjUFaoKk=%D7VFq>Kl>siC_c*SNq@ZY#CH+p%SL-ulT~_@e23gp}dt^>V z-Jb00GkyK!0A;N_W}0;!+wO9g;};E?AAsZw0=#Tdk*M{hvdXN8zUJJjM4Jn`=*PSX ze}UU5dFP2;ZYro;UKR!C3U3#GBi_T@c+3cnwL#it?@yiw)K*G7>A%-rkOGu(Ueg7y zCSTXgEI+ICR;E_i+$XdO(0k<^VjSJjb(_te{pr0jx*huUYUBe(a-Z=wMX0MqJd+yu zgD4dY%+_D2BeI}op`a{ohgAck3CocrytGiuib9!Zt1-9Vrc@P1aHmAnM?W-C!CtV< zX2X~-vIny9rEz5(qA0)=ffONgWPDUrOy>Bq)VW4j&Zlp$>7r7f_Lzl7&{!sNLH3<3 zUy8=qbEqRzH~+tl!TWh{NGoJa2|>paP4fKNlcFylMTX~4BmK(Z69|nNhBLY zH8Cd}{Ag0Z8;`TZ+Wi#M*$2#;;g3&x zyISx8xu~^^^di0Wuf%!C%Km`F*UUi@ql*5)sK$AKt3B%qFO?BpfxO&It^jX{$i3X4(_Dw+07lfKy~ ziL?l84&7Ybr>1!^txVHU6hhNbY9LBxv8Ysels|{an?u-5nY{PI+vf#9f8|qp_890j zS7DnAJ>u|DBflp{hoXsF<$1rSccUuDD2qy=0th5K!6;0rder%syZL%*6D*R8*WYv6 zJEZpUEqxj0>zcCrnIM;vxji@YE!m=$-KR3aUBJ>ciZ5ehu6xQoJYoJbuUl=}s9Th9 zbmQ_MR+^A2jn!nRzFw{^RX<;W26&)g?kVVd>I}tAWegZ_M8R-J=ARqU4FIG;MLC_KB`3Q8NLocSeH4v zhA09%89UL+FmQxGE1WXMkiTbX4!0^K%`8zq85L8^66*z@o&8#%y?%1F_cFZ;ptJTF z3`DOHA$!KNrAxHCp-Xkm*WZ;bL(}jyW35qQ7d;;57EcjV5E_?+v)@rAva14SmR5D) z!t=@8oXF0n848+ly?A=GtxI|FsvjQ2<5u<(r*&wM=c(YjE-}f-sfL;fSSJX}?dyUr z7>hgFA^`DPK^d575ndl}k&M9V@6#vjcX5>J$37D1XFH86G$Rg@B{2X3ntB#uHq{Sa(F~Oh(D3T9y0x17r8B(%f%6zd zvMk=82!Zuau4rU}{AmiRi`KLrv}T07)?C_DpVJOkS)3fvSOgJ^Ah6rw^0>X`T-s={ zVkn$UfsOfrq;5(Woa>2L+JoG9hinZ3mDOu4qCP?Wu4T9?8`nlBUf}7@E7w+n^sXuv zk%Z0swdXXDr>Yx&KG3e&V5bc8(Qh$;_5U!@$b2Yp#eI>|XU~h>>8604DfZ!Hi7;pf zOd!55lfCK@^1l7(c_4`MB`Q7-B;>*iBowDYXVN7@XQCkd0gO;PnGqssl?w}M0Ozc6 zvyil2Vq-ejtDRWkV>+LrN(hI*oz(-nGl7QxEI=ocaK>5#PR{Jx_?h)Jcw5J1bPFKD+(+i-K?vEt zXT0-jN}Ckp^K)nlncT@LaE#T(l2q(pC9QpBO ztC3WUG{+jNBupg4O9(&qW+&ZMo85*>tgBSwGq-I^8d{uLpI^ZU;zXfp9M{p8y&vY7)YJY||4dVgSS-S*2f(l;Ow#Aph2zO~$;nr$ zaKz%Ir8>58qXUaSDjDp%qJCKcw<*T%}Nag9N`wsNrWJK{njYa;mT3VLnS zd8q*ZjV~LYH>P{UA~?en(u&3ZZ^6tL@c*c1L))>4=0AGko+rFw{fF?%CqwD7+C10) zXe~mA_+P>cn%*d~{}NsJd%6_3&)`8&NF)})k3!HP;GFnE_rGo<(Q`=FN!U{!e)L}= zMm?nw%P58Un9-3fOl1f{)@L*Xf%$vC{GY9e@UabLy}mzQMTR z>f9E677-af6p_C|V(t76Ni24Y?LjPdNFoI=6u)8OVNJwRYwZE_u=mtNoQIETXJ+L0s5+k)DfMASel!=EC)sm>_)xRw#Uu}hn#59JB zoT=>3ipe2+)!&88eY%~GA7uhJM)n0Z?((Ecb;~Zu845&gFeip;LVFPFUwHHX=@Tt% zQZbYN630GMpixNwAfEOQsm63&s!yMs=C040`XDQq9{jo<#ibZ(P-LLgZiHgZX@k)mpHJ$K9JJ?OnX2OE zHn*7+B^@UenK5do?A>%4edEfKj&6Ir8ZnQ;!|8CZQ6W=&X|TY zt<>ASM1u#36~yIEQP}^#+ibX+BLwQ=M1oLcPtN$wB}F1Qvj~r3{^VZT^X%zK) zoKPaPHA&QZQ0V_O(DQPG#GIASKn~V=h;pWg8a@AI)BB5) zU;@)W66r}!%b+Ck^5*`Jj0$CiuKx>>x=0+w7>Y%YHfhj5BK?0{y>(n$&DI7A1a~P= z+@U~$Qi6Md;!ujaQ{3IPP_#gS;=xl621)BQ6cn)0+}fydd%0%j zqnz6C@k7?)?7#T=?=akd{I`vN%^$1szvg#hQU3pSDJcHG&NTmDXSyf+Z)-~bzt*h& zZS7yrZ_~UGno0iyYPoaezo}pwgXn+U<0tL^f3x}Pe)a$D=vp|5sh&U(7B2sKGqd3T z_3~c}TL15`AA-(DRYYK3&t!V}A4_AvnmtxD%m-FoNb6+(14s>thqwP91oDY8S20k^ z)npIgR6Q{boHX?)S^a}1@)xqBix;>Di2UJ4*-Jo`pv?Mxo%~^1Pa#B4dAPLa3Tc5X za0$YIz3DBVIdCSgO@MZCB8e*q>!kFz(O+vXM<0IkaO&G}TBALpQL<6G-_B=pZvX)~ zZDgHbPau|h&hWb8Xc8W!#2=O4UQxH#O^#&^;w=b%O7ql2QTgMK(d(8jBkfA`WXa_2 ziX1>Fum6_@Kdl&ROA=TAA5N5s-`s3g53;KTV8T|pC_L{kn6pPZ+l;N@Ki!c09Lrl- zljyEpiykRqo#VsMUb>13n|`{dX6dgL39D&>eX@9)UD-3(*%v)Z!vPF4B+^F=f5Uaeii{oj%rpZ}KpCvN53{{u;hVFNm!fBL#3rKsrnGXq=Sa5z!c z!nI63_RZ!c^dPLo(ElOb*~^gN6Yb-VzSzhhbMgNW{9@cYi}}Zne{_?4#EWR>wP&KN z+>evQq9K@>(fQJDBe+UXTH~e7ls5x-+c{b>mYi^XQUDuU}RIl-F<&0WE(V#7H2V_5TSE1bl&`C&|O<8Tw z{HG&^Ba{)?Bh)zyw7U9w_bTj$RlS?|1q*3Ty+-V9fTHx-*7q0T#1omFc9H zHjaiNail+ZKathj@qvxKyIa2Ua_>VerSjNfo-HTy&ieY$6qoHjPj7xmL{<#v_N&~h zExbtcAHPf~JW3OuK7?3ArME8I`qivkjC9d;p?qB-^!K>kJWc6t2oJzFAopj~v!a|7 zs`bj-K1%bj^RK_#+Ws6hOoXA+GO->)#H1rxZ#z-#F(jxPYt5gxMaITk*E0S&){pq>b|2<}RujdF;XIl1mzG>PiWcd_3%2$bvgzwQhV_lmuXWsY zG1h|RN5l0MwMP^7uFae7iVGeN4i2LEPvGmDhJgI1zH6WPYI)j|+RL_iB>KNntek)wHh3v)1l;$0 zrFY^p69tM~vnKB#e`*AGTn(1ITy~TNQ(V~(9$j`S*&E!y?TuGNen=}@89dp@HVy0Oif(b&SW>sE!En` zG}RqWx9OhPcQ+Nd`utibwI6lUh1$tBJlZ?BF3cQxHdHk0A2Yf+%nIlFq#su;@w%^! zFD*S;-b^gnG&LNIRrUX*jJx#A?Vk|dzS5f5D5K22;+x-4h^rBPJ{$vHU(Z6SMtdy! z%VYfnuWb)cs&a%EE)S12x`Z?Z7kdPuizWPhu?erQ~u zF5K0&N{Lh1uZ8B5L19XA2=s|Gd?zyEZ?5DXHez96g^lr}T1$72e_AQ69~t&{h|Y0& z+lbl-tQ4Y)t4qSRWcIa#?a$Xgehex1vEHIt5Q=(j)~Jt@ZYNAvbB_zui|dRoC-PL@ z6!6YUkEfT)%n!KBI#iA3E7~^Hrc%T&oA>8`aR1<)otYqFR8+t=OlN0KI38a5dA_eL z*}c*sKW?reA>EIOucFiQaB!&ZgXPv0Nh32{}0=T6glBAxchLs~v}^apRUE%eQBqT+|NHSaJF zXf!JgoEd5$hBeFQyrmV7Y*C5rrcawJJYph4$Pm%$&ht^*pO0i@G&6}Ghcff4&f%D4 z+vG_(a8izwq~(~;Et%EZbknHgl8#gQWpM^&KR0E(6@D9+QaErU7dMD))s#Ui%w8nN zwF$IJ77`!)&LpQilt^FnSPM)a{kf7t0onXgi4>T**w6PTh7WSK9Tb59UlGlWl0MqD z##h5Jn@>}o>7Bfh9M0~1Sa(DmdqF2==!Zj1hEZT)^7|W`7}u+_3F6!DHE1e@Zv#fz zinPGnznQQ2v&2UYm92)iPR81QHEgR#aG?wxle$-HVA2*(-PEo&CQneW1dyMWF{tPz z-aG2Xc2hQnZ4|}1ZhJmEoxar0IQg>) zc6z!Xzwst=j82R1KD)DO)U@m6oiNz&yj+_KsFRUooxkG04suPrn3AGUjX}7 z;Nn4+byhQFD_XXjF8w+&+c^c2vEe1HB%vPiGO1e7jx-gVLdKJ*-bya_0B=fAOl3wA zqLX{|OV?JYNV`kMqwucBp=y@7?XU($|F_hbtg5N|hriI5ZE!;uvL=6OR5ByVvkhX$KE z^;|}q@W?gWQiq+oiwO9tQ>gz$TSsgL%@mqE#<|#@G7p&k5j#%R4n*_I+Dy~9=y2{U z3T&o>f0=!ket?BS^Q@VSbz9;vq$7ST_$y%Xg1mtwK{VTRa|w48Bk6nkCHE>E@oFOq zJX2dx6-{9qd>V!_ywZ~i=S;LzMit|YwwAhq57BgL-DsD<1y4U=UgyPQJh;vHII_-& zAM@zI?&bT&+n#f~z>rVNEl;Yk5BBV9w|kf!Z+|d>9!HQnq*opjHaPW|9P|Sshjwt4 zV?$t%BM$v+M0*(Loy#8z;A8 zG~+oi1_jQ&5vP)dveCqjxOLuHuDh}FqttL1A?E$d0rSyz7in1DsSz=IKqOx&;p#@& z$4S^X-v%a!1}{*anP&I9@+p&6Le?CuEniKmDxJuyi+k35EkH%P$&CJ4d7Vi^8t->$ z9~Sh=7j3?_p3=7I!EK-IbNznb(QSSeC{tMpoahjO?;a|MZ)jAmDRZWdVk=)87vkIV zGg7krg_{7HjO58lAm=8IL$GLcL2mL*Fm;FBk8&NywY#Z!J$5}Tt~Vp2$7O{D@d@(b zJMXJt|NDne8+6(e;6g?Io>Qg03G&SJ&V{4i@9ED%MjW>CN>m+{=}z^$9PRsFcP})@ zcB^^6{yd#=B_1+r2TQ7KDyqCHL!fC+*Az3Vk)=jQl))u*(|2cr3|jCW+6G!ml@Utr zt5?)nm+4rS)mi_pYpYW)nYOkmt24OLS+UlwGq9Pmt}}4BdJ(R0v2f>^H9UE70bB@= zUSxb3%}C|v81>42ciDS%ZsVNEQKRP3caPC<^0cRw_DC!BwD&Q<8{&Q+T|3RU8e397 zQ3Q?@9>ZGLyI2NgWs0UeAD-{+F5MA(9r^G&6s;{nx*8M19;q>ooQOz!589hwi4Z3KItFS0^58$@%Av#Oq_j?~T>yW8zk+~9Av7+T7^x58H>+zfobwe2Vy=7Ucf zFB?|;mwu;<_%8j<@np-Jq1)Ox#T!WyE#fLHZz)0MyKr;x&3Zjs_!POna)VJE&?T() zGO+&K(U@L{peiM>u|KvX4cC4#OukxAoUw9VwCj^9SAKuTbCv9=a9QN@NKUFNY>3$4 za3OQ+&?q$cJ$&?}_hM$Qy@+|O$%i&Vc2`OchaGg=mBQ@*5Q`+Z$(41Enn`wDr|T0~ zhEujA-d&WyguJU)6^n77#MqF`-*+yG zGW4EL1|I~pha@xA>Is}(iyncv5frO#s=fIK-i9AJJSP?Q%?PL~s@&*CCdL*R+iQJ1 z>$Q(`Ykv|1#yucMc8<-QC3nIG#bH+n;#lpm~?h@N4W&<{;Tm`ak}dpT@!d)+Q6YSo8UAC(UnFvJW2KuF!@Yv>HT z;<;P(&#ZJ5AcR*2^YRK-F0n^^1vcge8Kzw_SgSnR==Y2uS$mqL4qb@TcVA-51Yt8I zVI(}ugasL#-4lSKv!FKCJ&IW3qPVyC3K|fiZ^pLU9K_fdUJ7`U0Ll7GDj`0Zf@F^w z4)!2Ho3B=%=;0sHWD%&SnO8%4g105a5+8|4;GP(v^Z|?{-uG0nwDX2@U_p$acNfGLSMtnptZV$|XcBF~ejL`Cbhqi{EzyQU;{aTP?zS1EBQG8|+Xk zknHZA2XYS6a;jO!E#9s;NcMeSD@YlIR+RLHz-_1 zvrLeV7KNkYHb8n_^rX1O*ue6}hq<>MxQzJ32TR{CBRnC(Ql4exCwf@Qxs3Gm3fH{! zj#BYxdnHhPI~-V-PBk`(EosdwiX6-JBCZOS9oj=HH2!Ipt1T|Q3L8-eCLEmw;XCVT zINf2VQ#+)z{1I}T3_8@jI8L0vKeQlOqI8sC0|cP#a0WsXg=GSmAIlX5 zO0T~y4oZPpXE+1CiOe#=bVNd&3PsY(oD%sSnR+>nALBOEi~e+GTcu-Xc&=k-q!H=` zZ<&xX?A4Jn^6vD;;?*rm4O&|O3>NA&NS8J+3^&XnXJ}Tz&8j(JR@Rwt`ZYzqcHIV? zy&`m4O^8%7`qKM(pc#gM^4-F-Qa)^OiwTmWxfD)ikqNh>x)jH0ZDd`CKH)*2VKE<` zr);lxs3SA3xqmM+hy##2Tp<(KMjr9LofhpLoqF&w^3`rh;F}B9w@^)h%C;tEU>ow^ zOu)Us-^>`0$3NPjHcHEcX4dl#UKSqlb3?Jj7MSS_Utnm|C3M}q;(#es#ijLEkkU3Q z2wi)wgsBI!2f4(l;3e-=y@)Dv&TWmr=Xz;METegQ`RBeyrd!ynTSk-K4)o}h18UPz! z>tMQAI}DvGEDp&2pS)P( zLDFJW$Uw+iQ1%1|z9*)qRY6gqIPBA!Fm_H@} z>L6YO;~6B_>okI#zHbKpl1A7N#{sCsA%0>{K)}6{F*010F`}hUhb>p6d~laF$!{Fpa_O#f?bdmXcW1N5tAJ8UXR+gs{<3d16wzGJ90pyFy8Z7eFqf`WNf5< zhjFO{l4ZvvNAo7eWsqHc10{wxRz|i6X?q<}&G3%+vOw$yTaedZK-;2)iW_1}Dq%{B z8^TycJ%|x%2=nv47{+b|jC~YASeJETiF(9ZaQ6o=mcb?m+>^m%DlN?Wbl5_J8xizO z1f}OiUI(>f0U?S(O3)Sfw9V~~&(H=K;+DjCcZFdq8HXeJ?m{5roxc&%?gDHn69=JO zQiy4N4VvnJbQ;JM!o_<8+raQZdxAI;TXXG8gC|Xh5(t21FJJOK6~Y)aOd?aGLO7 zWfl>eNFuzsEJN&(axKte1G8`>TS*oXylHT+EF525(o&!6oGL)&0|#t6Ys4A=@iW0+ zLXP2RE09K!mXIV3FtSi!5bbS|(7TI3W6Q;JW*tGD2?v#ycnuJbT|nc|-i)d9vS%= zgnG7m%O~ znZ1NA)~UtqK_d7OI)(cZP-z%e zU8kgh44Qrls_$``8~3Sz41oBA5|ILCl87IA=4#ach%90ra4;Cj|f4(sE3I=0ATMjAVl)R#=Wa5 zMuV;YmeOih;w@JlF9jwK%@cs?foQ}%sn76IPe5Y;2O1mpKlCdQ^==bm- zS;~@qT>gS$lw02^YZ(JLT06}vgcr3sqFY1tgFpw3Ow`g61Ds61 zAj=DlYy=^&0DOi@CgPt`rOumo)N=FI7@m?>aHj+Nn2t(UAC17?s9>;w@`S_{V;W_k z49*mfB954E|32R8*_7@sZ!u+oVa~n6>ev06UCm!2>HbI{*{>y|Nd8s#LaW#N7eRu> z9&jAx%V?SMFvhC&Cf*G|$yF+CL%rM*YiZq&3ewatM2D!0Y0Xciz*qckBlonsBJ8Np zG(=ii5}Tcx(hO;%jHs8r;_lEbsR-F@7HhfNU+P#Wu0YY4S%k~baiMe68By%GPfHKF zu(3yC|1}5D({dp@{h7896lHx3XJ6hJ<$sgr6KMGB4)22qPQ>lZqWlI<&rC%l)um?O zuYMa!xF>b${j;=iu>dSst`O$E4)wa;1!@czlzyf7j{l!MxzdO!$N@PwtIUi15(ZnZ zU)yLy(n+(N20#J z5TcSbZ<|9;0LG>>EeQ7jYPlRJl~^1~E;p$+;Uyw<=_2$1_!PPf+GDz8+>}O8c@AAh z@Oy>3rMzpmdI)U>>W3`@{$M>}&EnpFFRX$}cgXCT8UZhHj7)b`jZ_DI0cBl&<&IOc ziA@gWz&ZN=LI+c;0q#Cfx5-$NJ33hkIm%ihY;uBR=OrG3V*&9d5(Gi|Ie{(!y>b!5TaQrMMQwaUp0B>PZ9qYSSi7`}~A z1{GQrdxJ@iDYcdk-xZ6+4PTQ(wEF267MQsfP79R+P%9A?)cXmO4?hyX8!ix}`#~PB zOM|*}`V;TzFx07|<^wDB3bN!K!9IKzfew}s?5~2jJk%rnJ?JmNO6SCY0$@9? z)*Kq>4Sf822`{K9d~O->JfbhNnZ)^fTsJ36#7kDO$@Uz!4&D!W9qpli5ZfpOFm9E0 zZFgHRB>hMQh%bG_^1Gp4AW^tnY^+Qi7<=tQq1aF=fQrvocLY(iqu@o+629+>R-b4wOOR-kgz@pe*8o&w>R$t+d}nF*aS$bIvlljOx4{0d~B#d9>4ui zf0p{a{#oG{T39uo4Uo2>%G)ctc3Q2UXTtq6Czk(xo+(JsIvc@2?E!eYKK~^sWkv+0 zCHLBkv|*k&XlAMnvnA)6a5bhb0M5VtT74DA+7RU#e2um0SLc90RqlszD|58au`=0) z@fbIM6UZ_798(xNj}ufe<&XHNdenazHS-L(wLdEAxUq?WJ7j?E|HuvDGv15f{#5d} z7-p3Ij+G>C)KpD6Ye+&Xohv1jJ}j+k!G5|BP76?l4)!0dTIy0i0I-f|SPL)4kYFgN=AkyH=e#IFK~qUf5;}^`kbg4QGczmt)sGg4cl%6t6 zjH|-}WS*W&sHYK4Y#pOhF$i(xf&_d;$8U}NmgYKSmV}HTkc~CmaE+H8C=o3`t9ltixTryd$ZhGzLrB4p7E>HALCpY9xS(I$kZXmcVYtrw~ z-DgMeZ#Xttz1e3+@^3$WzlyWZjE2G!(ezXf_;`(hKz37t z%yUAFP=C^pzW5RS`^v{i*oQ~r8Q^@{lMbO8;K2DQ|16UQ|21ZX(v$YI0I-vQ)aRc# z1GvfdMc?CWd*{V-8kLyXfx%Q1XqaXT|6+IktwWv>2kyo1T(5fmmK3N-HuJ%y?hMPa zoTm+KWU8+L)Hr|315>XASyVVN0exbcbLMOodGCBzl|gehLZ~AK8%2p8Z~@388!<1T z+h=_aIbJPil_cF?wLpMqsMZ*1VU_l65p&w(6kMUn3+ERI0(YX@v5#uO=BXHFI3F1GDfTBq`n&m`*iJwTXek+wdmrb@KAoOZJA|(DRBYJ zgBzKMh7sNfA0VxWBs+ZDs*eYjl>r#ZKa;X#j5&fTkP?63vhqbsligSWr2^T5EXHp= zEDNJ6#JSA%Fh+iyDZ&H?nBYs6#=Id2RUl~)5nJ9kE@hsY zZ624;y2;Fm=YhpdfDtpjhB6ABUdjOX^uT1-C9yQynq~BmE3)!34uh$Wrq~8AN zNquNI2^f4%zZP|P5xjZXcy__o^6%INv^jUsp|p5)gv!Rt+A!K>xnAUlGd+2YX941} zefKwmAPY<{{^tRT&qme!1r~Badh>*CaK}be0rM08S%Hip5(9D0gmw7{n^d1 z*;(YsEKI zxhw8#%)oPe9&Nv*0A1L?-B^Y67v5MNgK1C2jfWTyUQy`d&bFUU7aMWyW9inn#Q3Po z3WGz-6Vk;>+*bL{W4N*ZaqlNZ6uY+TRIbC@`{mqb;wS4djHu_f-N0THwyZkOr}YV9 zVqypF$Kmw`V(Dc1WV7UqRpPxf{UXMpycro4UQKH@FoOU!}kZ179S z0abpKZ}5StUe7KqGCP4LQn{QSyq>t8I=I+rY88ErG`wV5ORkTsKiE0LUsVb)C*q~nB+?u?s0ov-W`Kw zmK@J0y()k|v*Sn+c3`Pj<22IAO{^(g?gb`w42y}O4`z)l!P6utx6oq)>%`EETfmM6 z>96a!rPa2~P>$`aL!B|vlaJ1%|5~yH{?X&)_BthAX@fN%W9IV)OZ6}~&6RBCyJ^e; z#0i|dp%Y}oP)?~=;#k&K*9VRtaogpxH@P6+eH-r9=P`iRM>(tGV_WCX{8iO4 z)A|vPXehH%>Nq&biFeLu5kR(1Y0Uvz4uIpn4}pERO+wO>)afQr9@B?GZ_^_4)p5&l z%L$9D;=3Xky)XM)Oi6?d;*5o!uA^NqcjN)4-k0_JmNQEJp^ro@3)$=NQO z#VMHEZB2paQZ(&>hrUxr$0-v(+CL4n_bfs-64I#S^u({(*HI#LlFZ*=*60Iyjee+*loU(B3(Dz6NTW^r>*LA)EgS>t^eRHjPsoq;{p#1H^WN$78QG#_O%) zKu4~w%z7%1FYg)>TroVt95uVSqb+;c@(b3}!Ty0m?{@3T*1b(FDsjPVo~>h_Y9@qO zYcXcb!R)*%X!`ITx~rK`r5fW!doFJK6q2%8bB!r~5$NYCteN{rs>7P!>vevVrSlqR zD!u#<&(*~R>zZKq)C%#epWq<{1@hmEB2KEkM+6?}+t1A-?aDfa#^hR4>lu*d z5qZWFG)dOr+Y!^CUe)4~WW_lv5w0zjP+rd4!O3r(9z}o93k!wOUkq38NjCF31&dZt zZkWK77%lJoluw&NjstB|yml^|S3ef(vXD9nliU8DRTJNksTiebS!h{Xy&`O&Y+-WT zxl|+^Rk-^AvgkA4ZdMhQycHZtjuZs7qm0&0l%`gp_zU7Kn_FDa2_yxw%^=GDw%h4i<}}9EFKR zth!FRS(zTuW}4Twz_HnuQC)tH%4w%czi_ILP+hh{siaPRdD&$j#AxQFv-ndj z+tma8^&~dVly*ILAM*+e)+f>?(vy!o>@I?G>?LnIHOxU%w8oLi)t;u}$i;q&E{gIsahZ&| zXw7bH+MBkqY~mxH65-1umi1H_} z^-WgmPrdTAVEjy3k1gu_~3fy?<%3FWHzsBuPU|Z_(-Y=V)oSGj*dh{`}c=p@5h; zhjG_-vbb(xoM-8kZI(R9k@*!Uwv7`p(Y{ZO-A<55eHGU^xcS|4s;hxDoxHM+L#&q~ zIkVb%&#ZiRV3sxdGmFSiNFjzsY%A#3$ZBvS&*N>$4ek-uN^ zk)tgCgl|PC_Cw_?xL`1-&Yh9B1M#k_Nx{icy*ltR==FI*FRxI5RbEA{>{2=&K!bDb zPwjbp2I4MN>`A)SwcnzJ*N_EXz1(@*eOs4fl=mLnd)~a3N_5$~VqM>pGJm2Z(T&D( z!I|t6mQD2_f~zMlwWkcc1N78fhJdvPfT1yXiuX_>iCj0c)9z|ZU{!%hB6Q-VL=VtT}Ee!kRX=Xie4?bI+LC7fRNfhJMuBAVV{ zVqUNM-8`4VNvNkKCD_+@S_^VnRd1rbJn6a9d(n{hO|Z07-8E`Tesc2Btd)`^Kq;Te z8oHhnIoSWPsT8>b?G&vFK>7Smv$WjFLgv0 z#j!g5dN|H(f@S5VbDvFCWvQ{YZYnddCD))~z^gM)FX1gF@cXu-gl27PYhJV zimODG)U3$!_(qOs#F{XW4HD7^X~z zzXiY%>icC~HF|%x(Ytz3AAY_zHm3-^F`)>RA15G2-=IF^!R{(f!%3;wUQ5!O`~k9$ z@BKCb+gZ3Y`f@^Cz)*a47TQ<739OqJ39fT+Ypqidpaq>5$_mGbi8wv zXYk{fBO`)A^@tfsbaQVNx2T&p?sAM<*gC(Z(1T5vY?WzZ?lHr?NYveS0j1PN)& zGHE(-D7Gm-Gd-RznZaeRR2|fy;eUV*Su7o?${Rc6+_nP-t32K;SXAFq50r$ z7S~!c(K4X%E8EZOZjdX->v)GNTzXN*I8aDY$~#lstL8iN4JBMt7d54PIm~?q1#+g$w^%tw&wm*Nyn=!t!fJADev6DH0hA)c>f|k{K{wvbr$44%K=~?l--2;y%$%)B%QX9#fv7%=i>sS1BjVjxd+aI%3 z*ZPbIJ%9~$l3i6_Ev4n9C0tDN0gYuPIR*UlbGS$Q=pJr$4ZP$15FD3gvbc#|ReIpL zw5?j)tPE)rDJgALVf`OZ7a(OEH+Rpftv-@@11~nI(cO=Y!p?Dwd76nbeZvv@;<7yB{d~w zB#~QrA@AtQ%IrqUs$!@63N7>LD31=UkF5`^Ee|3ZfUZ&|XIc{U%lHnA`dDi+E}EM1 z((>|PRw9RJ4<2bU-TB?s&n+dt+2$jPP&b~wxpGhI)0NRrPma%z;T|1YV)F9x)Jvvy zS6RGDTeBo^JKo{ZNrOdRBq~LdLnkix6Fj>Z199K}+klB$GBIK7a<%z9z z7lwnS{hqCL1P^yD4>$KJXF4eN#r*_K*hVss z)S5GU1eyeBGuJ$A0Oc~Orr_Us0IG^A*6}I)Z((^yW7GAPe56eB8}#F2W27;4^}Ibg z-w_4qGOPG#=b_Wk@%iPjkETHUBC7I`TDOng`tg0`+kMH~h2@@arzhv9!&phJ4pAF= z7Mj-eN2T^78i1>!g#>>X(hIS){S+>ZH$~*{&rg$CmR*{>o_$spSFIdjO>b z7V^MSKJtQD<=o5jlZ&wa=VVtTYFU@btq$p{EPNB+jVM?BDW7Kd?e$cxtz(#mMi$!J z@R8cZhUw-gCTCaKk{G=T_(sTzTFkwm!{3EstdU@!ZgTP_vMA^Nm{OWEUg;*j?r;W8 zQBDgfS;jFghh__fSku{3LO@nSM>p~f;Nq#*dtR<&=ZGMA5YbA|>}@8|E1NgyX$+=H zL=>OhUM^p0A-(OnWDNd6Vbh|d*_BHa#^)f5CQG|zVKpQ-&f}pRG2xE-z(!{)i&;te z+e}B6P{L0OGbyFpDN&UqSz+7m@;mT>qFFSeZ4=qV0i@1{;Wahz)%I&*b!zWXa?)MK zX-)s>5Od^Ls2#>fdIV!9{IO_)jQt`Ngz_V`J9lB98x}PKcD!tMtMwTY#mDBHZ~8Lv zTeYOe3iG{L&vjCr(iL%=eb~yG+`0)9rGZPr6-%-4@LU- zzOEW*>cxPVe96Q@R4MnB;NFT?BlrS7qCl1eBj!L+Qm}izc5kH!6=j84EF-Nw7tUvE zFUn8Pb~83u1!1PY_6k!b52Wyiv4+nqX0}on3-3)Eotl49-d)rz`wbpplIsj%{%tbwu}s>v~gBTM9HgGlPfNcIcQAN~7~jj_n7d z%vavMBF&CGft)o=SQRC76WN%JUw2Y-n~&3{Dluh5$XRug4m#BP3VAyhR39hZnG^=p zPSVA*;EgRn?B9%zw3wvQx5BpN-x%Y>zRg-t+1jx)AOe}Y_D5zzE@Q^A9mFSaDkrD- zM?^xUd)`a@PL{6a`NB%dkPtyY<})}@6wKYGf*6sl11UA~#DT-n7+>NcbB{mN`N3vF z9rcTb&49Q(jBrTXV4YuRs1kcf-e>uNRnDigQb5J&t-lO}T|b37evJQFD6-dvgHJDa z^)uPPmU=|6QYFFiA0clpeAxg!3 z(pteWWY~?FFBjXxuTt`z1~H`sBte`-hSk<+b`^s!o~Sxo)ZLEX%-*mYFONjRhsUHE zr+~S>#Jzg^*55~}n*jhDi9E1WtX(WNj@ zF!p&r&o=pU#rt}x-zFYSYJE}rpBtMu-&~z6MYRtc`Ns`##VcRdX6$YZUHmi*Tz*t3 zo=CmGbB9vV$`A&QDjrn{{bu7#MyOL-hn+cpBRGMr`*L!4GLgc3|7}k%`7<+z=mZe? z8GX2;0ey>b)AN%TmJT^_bsp~R107n~NR_eILhgkAV_hwR5!Rs}r^0>(>p|{&&TaS2 zSvlLwG9dn7z42FV5{Bg8oew@fR304re-@tSXof*roGZ! zD@bc!sm>pv1I;U&N3u=Ry#I>tvm@d_ovK)MEtlq=d;3cKSmnSOT?gT!S=wG9;6(aJ z9{V;x&LZX1q*ahjQ7v0DwtsI3Q@h{X+0+suq-h{g_^qmLmzuz*(Nr=*lhS7lAHZT_ zS=f@rf|;^&(QVrQ%vD@2M}*>sFi=oUXJylvM0R>%0AFHkY4)qs!};Ln^5cw1-GIho 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 j`5OP<)%&(%{M{8_Q3ev~cQI7pe=Z~l2p*u diff --git a/source/packages/Newtonsoft.Json.8.0.1/lib/net20/Newtonsoft.Json.dll b/source/packages/Newtonsoft.Json.8.0.1/lib/net20/Newtonsoft.Json.dll deleted file mode 100644 index 7bfc219693a3caa575a041cb7f7615a7358e7644..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478208 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%0Db#2oZtK+fV5iRJ!RtH} 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⋘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

    +SH_tzxpVlZGzxa6Z}weexQiIABa!j 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

    Dry-#MA=+`*_Xm^ISXOb;=A0BcklV1<^3 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
    IqO1D_mU zzbLI))%FT3zWukFL9p5`yJvM&uL(|o}kGI0Q?+B7-V(P$2 zgW-_prrl#x$f$o{^kYas&K@~bS%Ni;%9|`N!65k)*HPU+JsCq$fkzG=NmIwCGtuuD zwY9^fRokTLW0OaxtK%-I)WpXR@0?8FyrDWhy&s7w?wg*T9G7r~n(xX)pL!GOXAG8T z;Lc2R+ppX}K+)vH61D#)ndtUkyY{7lzbzB({gtb~@z}8=$CiM5S0>sCg&J?%jAU#w z%pyM7Ib}nI3}Q);WNV6#4`rh3k;Fls?g@f+0U1jW-*9ZQipWi8X;$;WOtk&u@#L7Q zu9X*5Ni&mImJ(!wB(D3IIOA8W<`bFdW147ho}Ae@>eBayBZrP6==V=ePa#ScPP_>4 zYCO?a=)rMm4a^{6vWCc`?{Cfg^_{zZ`T7U{_&@*lhadinz4 zzxyx#=Ved)>E0jzRnK2t@elv^UtIg&&-~tpdJhe~+VQ(PHcp+n@%F!Z@2yAwLH~pA zf8{SmpSa@w_5a&-|MLGRegDtC_?^G~^MU{D{Z~IVfB(P#Uk-ido5THG-}wCZ|MITi z`Dca02M50Pm;dd$fAYD1+x=|!GyBH>;2&KN2+@D|e*KejwKOavvtPe67rp+092Z&c z+*^I;p7o!5vV8M@*&Y4y==ZMq0Ljq}@4I8?$0v{9p?=-* z+pZtnk*IIBhz#-T_Dcyi*7y~oBEWjV6{GodolW;P5j%(4FH#C`$#8}M)2r**%j z|NEr;l@MxmZ%XBhqEFv&5o;X4o8QMkE6m&uAi8mwj#g0hB^k=t&Og;@H?VwqixY|MenqbKXgCgHh!Pt zcaq;%`2BN!-{bc)ekBHTgdciCbeLcGr*iM-_dEPf@cTo4Pw;!0-@oNoBrh9J(arpH z6XD&H6(anT+@%#{e{rmIIzx@x={dDK$&_@&Z1D48ln7D4%iX(7#^2<ps*W+sw>}!d9f`I^8~D$X92#0dIgO$&0X~MSn@khv+rhp*1|L8EjOJg7Iqw|cxdt`a?J7Y;7Fz<2_>8mDIowib_-px9<((^_WX z2rV@}WAG=M7Cky{{nItSC&9;3<%eT>@ZSIZ^EVa)dvZ`k6deo#_cs>MzX$C92@L$- D%=uma diff --git a/source/packages/Newtonsoft.Json.8.0.1/lib/net20/Newtonsoft.Json.xml b/source/packages/Newtonsoft.Json.8.0.1/lib/net20/Newtonsoft.Json.xml deleted file mode 100644 index 68267ff..0000000 --- a/source/packages/Newtonsoft.Json.8.0.1/lib/net20/Newtonsoft.Json.xml +++ /dev/null @@ -1,9631 +0,0 @@ - - - - Newtonsoft.Json - - - -

    - Represents a BSON Oid (object id). - - - - - Gets or sets the value of the Oid. - - The value of the Oid. - - - - Initializes a new instance of the class. - - The Oid value. - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Gets or sets a value indicating whether binary data reading should compatible with incorrect Json.NET 3.5 written binary. - - - true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. - - - - - Gets or sets a value indicating whether the root object will be read as a JSON array. - - - true if the root object will be read as a JSON array; otherwise, false. - - - - - Gets or sets the used when reading values from BSON. - - The used when reading values from BSON. - - - - Initializes a new instance of the class. - - The stream. - - - - Initializes a new instance of the class. - - The reader. - - - - Initializes a new instance of the class. - - The stream. - if set to true the root object will be read as a JSON array. - The used when reading values from BSON. - - - - Initializes a new instance of the class. - - The reader. - if set to true the root object will be read as a JSON array. - The used when reading values from BSON. - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Changes the to Closed. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets the used when writing values to BSON. - When set to no conversion will occur. - - The used when writing values to BSON. - - - - Initializes a new instance of the class. - - The stream. - - - - Initializes a new instance of the class. - - The writer. - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Writes the end. - - The token. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes raw JSON where a value is expected and updates the writer's state. - - The raw JSON to write. - - - - Writes the beginning of a JSON array. - - - - - Writes the beginning of a JSON object. - - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Closes this stream and the underlying stream. - - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value that represents a BSON object id. - - The Object ID value to write. - - - - Writes a BSON regex. - - The regex pattern. - The regex options. - - - - Specifies how constructors are used when initializing objects during deserialization by the . - - - - - First attempt to use the public default constructor, then fall back to single paramatized constructor, then the non-public default constructor. - - - - - Json.NET will use a non-public default constructor before falling back to a paramatized constructor. - - - - - Converts a binary value to and from a base 64 string value. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from JSON and BSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Create a custom object - - The object type to convert. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Creates an object which will then be populated by the serializer. - - Type of the object. - The created object. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Gets a value indicating whether this can write JSON. - - - true if this can write JSON; otherwise, false. - - - - - Converts a to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified value type. - - Type of the value. - - true if this instance can convert the specified value type; otherwise, false. - - - - - Converts a to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified value type. - - Type of the value. - - true if this instance can convert the specified value type; otherwise, false. - - - - - Provides a base class for converting a to and from JSON. - - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from JSON and BSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts an to and from its name string value. - - - - - Gets or sets a value indicating whether the written enum text should be camel case. - - true if the written enum text will be camel case; otherwise, false. - - - - Gets or sets a value indicating whether integer values are allowed. - - true if integers are allowed; otherwise, false. - - - - Initializes a new instance of the class. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from a string (e.g. "1.2.3.4"). - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing property value of the JSON that is being converted. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from the ISO 8601 date format (e.g. 2008-04-12T12:53Z). - - - - - Gets or sets the date time styles used when converting a date to and from JSON. - - The date time styles used when converting a date to and from JSON. - - - - Gets or sets the date time format used when converting a date to and from JSON. - - The date time format used when converting a date to and from JSON. - - - - Gets or sets the culture used when converting a date to and from JSON. - - The culture used when converting a date to and from JSON. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Converts a to and from a JavaScript date constructor (e.g. new Date(52231943)). - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing property value of the JSON that is being converted. - The calling serializer. - The object value. - - - - Converts XML to and from JSON. - - - - - Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produces multiple root elements. - - The name of the deserialize root element. - - - - Gets or sets a flag to indicate whether to write the Json.NET array attribute. - This attribute helps preserve arrays when converting the written XML back to JSON. - - true if the array attibute is written to the XML; otherwise, false. - - - - Gets or sets a value indicating whether to write the root JSON object. - - true if the JSON root object is omitted; otherwise, false. - - - - Writes the JSON representation of the object. - - The to write to. - The calling serializer. - The value. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Checks if the attributeName is a namespace attribute. - - Attribute name to test. - The attribute name prefix if it has one, otherwise an empty string. - True if attribute name is for a namespace attribute, otherwise false. - - - - Determines whether this instance can convert the specified value type. - - Type of the value. - - true if this instance can convert the specified value type; otherwise, false. - - - - - Specifies how dates are formatted when writing JSON text. - - - - - Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". - - - - - Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". - - - - - Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. - - - - - Date formatted strings are not parsed to a date type and are read as strings. - - - - - Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . - - - - - Specifies how to treat the time value when converting between string and . - - - - - Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. - - - - - Treat as a UTC. If the object represents a local time, it is converted to a UTC. - - - - - Treat as a local time if a is being converted to a string. - If a string is being converted to , convert to a local time if a time zone is specified. - - - - - Time zone information should be preserved when converting. - - - - - Specifies float format handling options when writing special floating point numbers, e.g. , - and with . - - - - - Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". - - - - - Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. - Note that this will produce non-valid JSON. - - - - - Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a property. - - - - - Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Floating point numbers are parsed to . - - - - - Floating point numbers are parsed to . - - - - - Specifies formatting options for the . - - - - - No special formatting is applied. This is the default. - - - - - Causes child objects to be indented according to the and settings. - - - - - Provides an interface for using pooled arrays. - - The array type content. - - - - Rent a array from the pool. This array must be returned when it is no longer needed. - - The minimum required length of the array. The returned array may be longer. - The rented array from the pool. This array must be returned when it is no longer needed. - - - - Return an array to the pool. - - The array that is being returned. - - - - Instructs the to use the specified constructor when deserializing that object. - - - - - Instructs the how to serialize the collection. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - The exception thrown when an error occurs during JSON serialization or deserialization. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - Instructs the to deserialize properties with no matching class member into the specified collection - and write values during serialization. - - - - - Gets or sets a value that indicates whether to write extension data when serializing the object. - - - true to write extension data when serializing the object; otherwise, false. The default is true. - - - - - Gets or sets a value that indicates whether to read extension data when deserializing the object. - - - true to read extension data when deserializing the object; otherwise, false. The default is true. - - - - - Initializes a new instance of the class. - - - - - Instructs the to always serialize the member, and require the member has a value. - - - - - Specifies how JSON comments are handled when loading JSON. - - - - - Ignore comments. - - - - - Load comments as a with type . - - - - - Specifies how line information is handled when loading JSON. - - - - - Ignore line information. - - - - - Load line information. - - - - - Specifies the settings used when loading JSON. - - - - - Gets or sets how JSON comments are handled when loading JSON. - - The JSON comment handling. - - - - Gets or sets how JSON line info is handled when loading JSON. - - The JSON line info handling. - - - - Specifies the settings used when merging JSON. - - - - - Gets or sets the method used when merging JSON arrays. - - The method used when merging JSON arrays. - - - - Specifies how JSON arrays are merged together. - - - - Concatenate arrays. - - - Union arrays, skipping items that already exist. - - - Replace all array items. - - - Merge array items together, matched by index. - - - - Represents a view of a . - - - - - Initializes a new instance of the class. - - The name. - - - - When overridden in a derived class, returns whether resetting an object changes its value. - - - true if resetting the component changes its value; otherwise, false. - - The component to test for reset capability. - - - - - When overridden in a derived class, gets the current value of the property on a component. - - - The value of a property for a given component. - - The component with the property for which to retrieve the value. - - - - - When overridden in a derived class, resets the value for this property of the component to the default value. - - The component with the property value that is to be reset to the default value. - - - - - When overridden in a derived class, sets the value of the component to a different value. - - The component with the property value that is to be set. - The new value. - - - - - When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. - - - true if the property should be persisted; otherwise, false. - - The component with the property to be examined for persistence. - - - - - When overridden in a derived class, gets the type of the component this property is bound to. - - - A that represents the type of component this property is bound to. When the or methods are invoked, the object specified might be an instance of this type. - - - - - When overridden in a derived class, gets a value indicating whether this property is read-only. - - - true if the property is read-only; otherwise, false. - - - - - When overridden in a derived class, gets the type of the property. - - - A that represents the type of the property. - - - - - Gets the hash code for the name of the member. - - - - The hash code for the name of the member. - - - - - Represents a raw JSON string. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class. - - The raw json. - - - - Creates an instance of with the content of the reader's current token. - - The reader. - An instance of with the content of the reader's current token. - - - - Represents a collection of objects. - - The type of token - - - - Gets the with the specified key. - - - - - - Compares tokens to determine whether they are equal. - - - - - Determines whether the specified objects are equal. - - The first object of type to compare. - The second object of type to compare. - - true if the specified objects are equal; otherwise, false. - - - - - Returns a hash code for the specified object. - - The for which a hash code is to be returned. - A hash code for the specified object. - The type of is a reference type and is null. - - - - Contains the LINQ to JSON extension methods. - - - - - Returns a collection of tokens that contains the ancestors of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains the ancestors of every token in the source collection. - - - - Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains every token in the source collection, the ancestors of every token in the source collection. - - - - Returns a collection of tokens that contains the descendants of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains the descendants of every token in the source collection. - - - - Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains every token in the source collection, and the descendants of every token in the source collection. - - - - Returns a collection of child properties of every object in the source collection. - - An of that contains the source collection. - An of that contains the properties of every object in the source collection. - - - - Returns a collection of child values of every object in the source collection with the given key. - - An of that contains the source collection. - The token key. - An of that contains the values of every token in the source collection with the given key. - - - - Returns a collection of child values of every object in the source collection. - - An of that contains the source collection. - An of that contains the values of every token in the source collection. - - - - Returns a collection of converted child values of every object in the source collection with the given key. - - The type to convert the values to. - An of that contains the source collection. - The token key. - An that contains the converted values of every token in the source collection with the given key. - - - - Returns a collection of converted child values of every object in the source collection. - - The type to convert the values to. - An of that contains the source collection. - An that contains the converted values of every token in the source collection. - - - - Converts the value. - - The type to convert the value to. - A cast as a of . - A converted value. - - - - Converts the value. - - The source collection type. - The type to convert the value to. - A cast as a of . - A converted value. - - - - Returns a collection of child tokens of every array in the source collection. - - The source collection type. - An of that contains the source collection. - An of that contains the values of every token in the source collection. - - - - Returns a collection of converted child tokens of every array in the source collection. - - An of that contains the source collection. - The type to convert the values to. - The source collection type. - An that contains the converted values of every token in the source collection. - - - - Returns the input typed as . - - An of that contains the source collection. - The input typed as . - - - - Returns the input typed as . - - The source collection type. - An of that contains the source collection. - The input typed as . - - - - Represents a JSON constructor. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets or sets the name of this constructor. - - The constructor name. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified name and content. - - The constructor name. - The contents of the constructor. - - - - Initializes a new instance of the class with the specified name and content. - - The constructor name. - The contents of the constructor. - - - - Initializes a new instance of the class with the specified name. - - The constructor name. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified key. - - The with the specified key. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Represents a token that can contain other tokens. - - - - - Occurs when the list changes or an item in the list changes. - - - - - Occurs before an item is added to the collection. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Raises the event. - - The instance containing the event data. - - - - Raises the event. - - The instance containing the event data. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Get the first child token of this token. - - - A containing the first child token of the . - - - - - Get the last child token of this token. - - - A containing the last child token of the . - - - - - Returns a collection of the child tokens of this token, in document order. - - - An of containing the child tokens of this , in document order. - - - - - Returns a collection of the child values of this token, in document order. - - The type to convert the values to. - - A containing the child values of this , in document order. - - - - - Returns a collection of the descendant tokens for this token in document order. - - An containing the descendant tokens of the . - - - - Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. - - An containing this token, and all the descendant tokens of the . - - - - Adds the specified content as children of this . - - The content to be added. - - - - Adds the specified content as the first children of this . - - The content to be added. - - - - Creates an that can be used to add tokens to the . - - An that is ready to have content written to it. - - - - Replaces the children nodes of this token with the specified content. - - The content. - - - - Removes the child nodes from this token. - - - - - Merge the specified content into this . - - The content to be merged. - - - - Merge the specified content into this using . - - The content to be merged. - The used to merge the content. - - - - Gets the count of child JSON tokens. - - The count of child JSON tokens - - - - Represents a collection of objects. - - The type of token - - - - An empty collection of objects. - - - - - Initializes a new instance of the struct. - - The enumerable. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Returns an enumerator that iterates through a collection. - - - An object that can be used to iterate through the collection. - - - - - Gets the with the specified key. - - - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Returns a hash code for this instance. - - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - - Represents a JSON object. - - - - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Occurs when a property value changes. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified content. - - The contents of the object. - - - - Initializes a new instance of the class with the specified content. - - The contents of the object. - - - - Gets the node type for this . - - The type. - - - - Gets an of this object's properties. - - An of this object's properties. - - - - Gets a the specified name. - - The property name. - A with the specified name or null. - - - - Gets an of this object's property values. - - An of this object's property values. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets or sets the with the specified property name. - - - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - - - - Creates a from an object. - - The object that will be used to create . - A with the values of the specified object - - - - Creates a from an object. - - The object that will be used to create . - The that will be used to read the object. - A with the values of the specified object - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified property name. - - Name of the property. - The with the specified property name. - - - - Gets the with the specified property name. - The exact property name will be searched for first and if no matching property is found then - the will be used to match a property. - - Name of the property. - One of the enumeration values that specifies how the strings will be compared. - The with the specified property name. - - - - Tries to get the with the specified property name. - The exact property name will be searched for first and if no matching property is found then - the will be used to match a property. - - Name of the property. - The value. - One of the enumeration values that specifies how the strings will be compared. - true if a value was successfully retrieved; otherwise, false. - - - - Adds the specified property name. - - Name of the property. - The value. - - - - Removes the property with the specified name. - - Name of the property. - true if item was successfully removed; otherwise, false. - - - - Tries the get value. - - Name of the property. - The value. - true if a value was successfully retrieved; otherwise, false. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Raises the event with the provided arguments. - - Name of the property. - - - - Returns the properties for this instance of a component. - - - A that represents the properties for this component instance. - - - - - Returns the properties for this instance of a component using the attribute array as a filter. - - An array of type that is used as a filter. - - A that represents the filtered properties for this component instance. - - - - - Returns a collection of custom attributes for this instance of a component. - - - An containing the attributes for this object. - - - - - Returns the class name of this instance of a component. - - - The class name of the object, or null if the class does not have a name. - - - - - Returns the name of this instance of a component. - - - The name of the object, or null if the object does not have a name. - - - - - Returns a type converter for this instance of a component. - - - A that is the converter for this object, or null if there is no for this object. - - - - - Returns the default event for this instance of a component. - - - An that represents the default event for this object, or null if this object does not have events. - - - - - Returns the default property for this instance of a component. - - - A that represents the default property for this object, or null if this object does not have properties. - - - - - Returns an editor of the specified type for this instance of a component. - - A that represents the editor for this object. - - An of the specified type that is the editor for this object, or null if the editor cannot be found. - - - - - Returns the events for this instance of a component using the specified attribute array as a filter. - - An array of type that is used as a filter. - - An that represents the filtered events for this component instance. - - - - - Returns the events for this instance of a component. - - - An that represents the events for this component instance. - - - - - Returns an object that contains the property described by the specified property descriptor. - - A that represents the property whose owner is to be found. - - An that represents the owner of the specified property. - - - - - Represents a JSON array. - - - - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified content. - - The contents of the array. - - - - Initializes a new instance of the class with the specified content. - - The contents of the array. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - - - - Creates a from an object. - - The object that will be used to create . - A with the values of the specified object - - - - Creates a from an object. - - The object that will be used to create . - The that will be used to read the object. - A with the values of the specified object - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets or sets the at the specified index. - - - - - - Determines the index of a specific item in the . - - The object to locate in the . - - The index of if found in the list; otherwise, -1. - - - - - Inserts an item to the at the specified index. - - The zero-based index at which should be inserted. - The object to insert into the . - - is not a valid index in the . - The is read-only. - - - - Removes the item at the specified index. - - The zero-based index of the item to remove. - - is not a valid index in the . - The is read-only. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Adds an item to the . - - The object to add to the . - The is read-only. - - - - Removes all items from the . - - The is read-only. - - - - Determines whether the contains a specific value. - - The object to locate in the . - - true if is found in the ; otherwise, false. - - - - - Copies to. - - The array. - Index of the array. - - - - Gets a value indicating whether the is read-only. - - true if the is read-only; otherwise, false. - - - - Removes the first occurrence of a specific object from the . - - The object to remove from the . - - true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . - - The is read-only. - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Gets the at the reader's current position. - - - - - Initializes a new instance of the class. - - The token to read from. - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Gets the path of the current JSON token. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets the at the writer's current position. - - - - - Gets the token being writen. - - The token being writen. - - - - Initializes a new instance of the class writing to the given . - - The container being written to. - - - - Initializes a new instance of the class. - - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the end. - - The token. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Represents an abstract JSON token. - - - - - Gets a comparer that can compare two tokens for value equality. - - A that can compare two nodes for value equality. - - - - Gets or sets the parent. - - The parent. - - - - Gets the root of this . - - The root of this . - - - - Gets the node type for this . - - The type. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Compares the values of two tokens, including the values of all descendant tokens. - - The first to compare. - The second to compare. - true if the tokens are equal; otherwise false. - - - - Gets the next sibling token of this node. - - The that contains the next sibling token. - - - - Gets the previous sibling token of this node. - - The that contains the previous sibling token. - - - - Gets the path of the JSON token. - - - - - Adds the specified content immediately after this token. - - A content object that contains simple content or a collection of content objects to be added after this token. - - - - Adds the specified content immediately before this token. - - A content object that contains simple content or a collection of content objects to be added before this token. - - - - Returns a collection of the ancestor tokens of this token. - - A collection of the ancestor tokens of this token. - - - - Returns a collection of tokens that contain this token, and the ancestors of this token. - - A collection of tokens that contain this token, and the ancestors of this token. - - - - Returns a collection of the sibling tokens after this token, in document order. - - A collection of the sibling tokens after this tokens, in document order. - - - - Returns a collection of the sibling tokens before this token, in document order. - - A collection of the sibling tokens before this token, in document order. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets the with the specified key converted to the specified type. - - The type to convert the token to. - The token key. - The converted token value. - - - - Get the first child token of this token. - - A containing the first child token of the . - - - - Get the last child token of this token. - - A containing the last child token of the . - - - - Returns a collection of the child tokens of this token, in document order. - - An of containing the child tokens of this , in document order. - - - - Returns a collection of the child tokens of this token, in document order, filtered by the specified type. - - The type to filter the child tokens on. - A containing the child tokens of this , in document order. - - - - Returns a collection of the child values of this token, in document order. - - The type to convert the values to. - A containing the child values of this , in document order. - - - - Removes this token from its parent. - - - - - Replaces this token with the specified token. - - The value. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Returns the indented JSON for this token. - - - The indented JSON for this token. - - - - - Returns the JSON for this token using the given formatting and converters. - - Indicates how the output is formatted. - A collection of which will be used when writing the token. - The JSON for this token using the given formatting and converters. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to []. - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from [] to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Creates an for this token. - - An that can be used to read this token and its descendants. - - - - Creates a from an object. - - The object that will be used to create . - A with the value of the specified object - - - - Creates a from an object using the specified . - - The object that will be used to create . - The that will be used when reading the object. - A with the value of the specified object - - - - Creates the specified .NET type from the . - - The object type that the token will be deserialized to. - The new object created from the JSON value. - - - - Creates the specified .NET type from the . - - The object type that the token will be deserialized to. - The new object created from the JSON value. - - - - Creates the specified .NET type from the using the specified . - - The object type that the token will be deserialized to. - The that will be used when creating the object. - The new object created from the JSON value. - - - - Creates the specified .NET type from the using the specified . - - The object type that the token will be deserialized to. - The that will be used when creating the object. - The new object created from the JSON value. - - - - Creates a from a . - - An positioned at the token to read into this . - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Creates a from a . - - An positioned at the token to read into this . - The used to load the JSON. - If this is null, default load settings will be used. - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - Creates a from a . - - An positioned at the token to read into this . - The used to load the JSON. - If this is null, default load settings will be used. - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Creates a from a . - - An positioned at the token to read into this . - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Selects a using a JPath expression. Selects the token that matches the object path. - - - A that contains a JPath expression. - - A , or null. - - - - Selects a using a JPath expression. Selects the token that matches the object path. - - - A that contains a JPath expression. - - A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. - A . - - - - Selects a collection of elements using a JPath expression. - - - A that contains a JPath expression. - - An that contains the selected elements. - - - - Selects a collection of elements using a JPath expression. - - - A that contains a JPath expression. - - A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. - An that contains the selected elements. - - - - Creates a new instance of the . All child tokens are recursively cloned. - - A new instance of the . - - - - Adds an object to the annotation list of this . - - The annotation to add. - - - - Get the first annotation object of the specified type from this . - - The type of the annotation to retrieve. - The first annotation object that matches the specified type, or null if no annotation is of the specified type. - - - - Gets the first annotation object of the specified type from this . - - The of the annotation to retrieve. - The first annotation object that matches the specified type, or null if no annotation is of the specified type. - - - - Gets a collection of annotations of the specified type for this . - - The type of the annotations to retrieve. - An that contains the annotations for this . - - - - Gets a collection of annotations of the specified type for this . - - The of the annotations to retrieve. - An of that contains the annotations that match the specified type for this . - - - - Removes the annotations of the specified type from this . - - The type of annotations to remove. - - - - Removes the annotations of the specified type from this . - - The of annotations to remove. - - - - Represents a JSON property. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets the property name. - - The property name. - - - - Gets or sets the property value. - - The property value. - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - The property name. - The property content. - - - - Initializes a new instance of the class. - - The property name. - The property content. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Specifies the type of token. - - - - - No token type has been set. - - - - - A JSON object. - - - - - A JSON array. - - - - - A JSON constructor. - - - - - A JSON object property. - - - - - A comment. - - - - - An integer value. - - - - - A float value. - - - - - A string value. - - - - - A boolean value. - - - - - A null value. - - - - - An undefined value. - - - - - A date value. - - - - - A raw JSON value. - - - - - A collection of bytes value. - - - - - A Guid value. - - - - - A Uri value. - - - - - A TimeSpan value. - - - - - Represents a value in JSON (string, integer, date, etc). - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Creates a comment with the given value. - - The value. - A comment with the given value. - - - - Creates a string with the given value. - - The value. - A string with the given value. - - - - Creates a null value. - - A null value. - - - - Creates a null value. - - A null value. - - - - Gets the node type for this . - - The type. - - - - Gets or sets the underlying token value. - - The underlying token value. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Indicates whether the current object is equal to another object of the same type. - - - true if the current object is equal to the parameter; otherwise, false. - - An object to compare with this object. - - - - Determines whether the specified is equal to the current . - - The to compare with the current . - - true if the specified is equal to the current ; otherwise, false. - - - The parameter is null. - - - - - Serves as a hash function for a particular type. - - - A hash code for the current . - - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format. - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format provider. - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format. - The format provider. - - A that represents this instance. - - - - - Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. - - An object to compare with this instance. - - A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: - Value - Meaning - Less than zero - This instance is less than . - Zero - This instance is equal to . - Greater than zero - This instance is greater than . - - - is not the same type as this instance. - - - - - Specifies metadata property handling options for the . - - - - - Read metadata properties located at the start of a JSON object. - - - - - Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. - - - - - Do not try to read metadata properties. - - - - - Represents a trace writer that writes to the application's instances. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of Info will exclude Verbose messages and include Info, - Warning and Error messages. - - - The that will be used to filter the trace messages passed to the writer. - - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Provides methods to get attributes. - - - - - Returns a collection of all of the attributes, or an empty collection if there are no attributes. - - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. - - The type of the attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Represents a trace writer. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of Info will exclude Verbose messages and include Info, - Warning and Error messages. - - The that will be used to filter the trace messages passed to the writer. - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Contract details for a used by the . - - - - - Gets or sets the default collection items . - - The converter. - - - - Gets or sets a value indicating whether the collection items preserve object references. - - true if collection items preserve object references; otherwise, false. - - - - Gets or sets the collection item reference loop handling. - - The reference loop handling. - - - - Gets or sets the collection item type name handling. - - The type name handling. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Represents a trace writer that writes to memory. When the trace message limit is - reached then old trace messages will be removed as new messages are added. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of Info will exclude Verbose messages and include Info, - Warning and Error messages. - - - The that will be used to filter the trace messages passed to the writer. - - - - - Initializes a new instance of the class. - - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Returns an enumeration of the most recent trace messages. - - An enumeration of the most recent trace messages. - - - - Returns a of the most recent trace messages. - - - A of the most recent trace messages. - - - - - Provides methods to get attributes from a , , or . - - - - - Initializes a new instance of the class. - - The instance to get attributes for. This parameter should be a , , or . - - - - Returns a collection of all of the attributes, or an empty collection if there are no attributes. - - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. - - The type of the attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Resolves member mappings for a type, camel casing property names. - - - - - Initializes a new instance of the class. - - - - - Resolves the name of the property. - - Name of the property. - The property name camel cased. - - - - Used by to resolves a for a given . - - - - - Gets a value indicating whether members are being get and set using dynamic code generation. - This value is determined by the runtime permissions available. - - - true if using dynamic code generation; otherwise, false. - - - - - Gets or sets the default members search flags. - - The default members search flags. - - - - Gets or sets a value indicating whether compiler generated members should be serialized. - - - true if serialized compiler generated members; otherwise, false. - - - - - Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. - - - true if the interface will be ignored when serializing and deserializing types; otherwise, false. - - - - - Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. - - - true if the attribute will be ignored when serializing and deserializing types; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - If set to true the will use a cached shared with other resolvers of the same type. - Sharing the cache will significantly improve performance with multiple resolver instances because expensive reflection will only - happen once. This setting can cause unexpected behavior if different instances of the resolver are suppose to produce different - results. When set to false it is highly recommended to reuse instances with the . - - - - - Resolves the contract for a given type. - - The type to resolve a contract for. - The contract for a given type. - - - - Gets the serializable members for the type. - - The type to get serializable members for. - The serializable members for the type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates the constructor parameters. - - The constructor to create properties for. - The type's member properties. - Properties for the given . - - - - Creates a for the given . - - The matching member property. - The constructor parameter. - A created for the given . - - - - Resolves the default for the contract. - - Type of the object. - The contract's default . - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Determines which contract type is created for the given type. - - Type of the object. - A for the given type. - - - - Creates properties for the given . - - The type to create properties for. - /// The member serialization mode for the type. - Properties for the given . - - - - Creates the used by the serializer to get and set values from a member. - - The member. - The used by the serializer to get and set values from a member. - - - - Creates a for the given . - - The member's parent . - The member to create a for. - A created for the given . - - - - Resolves the name of the property. - - Name of the property. - Resolved name of the property. - - - - Resolves the key of the dictionary. By default is used to resolve dictionary keys. - - Key of the dictionary. - Resolved key of the dictionary. - - - - Gets the resolved name of the property. - - Name of the property. - Name of the property. - - - - The default serialization binder used when resolving and loading classes from type names. - - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - Specifies the name of the serialized object. - Specifies the name of the serialized object. - - The type of the object the formatter creates a new instance of. - - - - - Get and set values for a using dynamic methods. - - - - - Initializes a new instance of the class. - - The member info. - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Provides information surrounding an error. - - - - - Gets the error. - - The error. - - - - Gets the original object that caused the error. - - The original object that caused the error. - - - - Gets the member that caused the error. - - The member that caused the error. - - - - Gets the path of the JSON location where the error occurred. - - The path of the JSON location where the error occurred. - - - - Gets or sets a value indicating whether this is handled. - - true if handled; otherwise, false. - - - - Provides data for the Error event. - - - - - Gets the current object the error event is being raised against. - - The current object the error event is being raised against. - - - - Gets the error context. - - The error context. - - - - Initializes a new instance of the class. - - The current object. - The error context. - - - - Used by to resolves a for a given . - - - - - - - - - Resolves the contract for a given type. - - The type to resolve a contract for. - The contract for a given type. - - - - Provides methods to get and set values. - - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Contract details for a used by the . - - - - - Gets the of the collection items. - - The of the collection items. - - - - Gets a value indicating whether the collection type is a multidimensional array. - - true if the collection type is a multidimensional array; otherwise, false. - - - - Gets or sets the function used to create the object. When set this function will override . - - The function used to create the object. - - - - Gets a value indicating whether the creator has a parameter with the collection values. - - true if the creator has a parameter with the collection values; otherwise, false. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Handles serialization callback events. - - The object that raised the callback event. - The streaming context. - - - - Handles serialization error callback events. - - The object that raised the callback event. - The streaming context. - The error context. - - - - Sets extension data for an object during deserialization. - - The object to set extension data on. - The extension data key. - The extension data value. - - - - Gets extension data for an object during serialization. - - The object to set extension data on. - - - - Contract details for a used by the . - - - - - Gets the underlying type for the contract. - - The underlying type for the contract. - - - - Gets or sets the type created during deserialization. - - The type created during deserialization. - - - - Gets or sets whether this type contract is serialized as a reference. - - Whether this type contract is serialized as a reference. - - - - Gets or sets the default for this contract. - - The converter. - - - - Gets or sets all methods called immediately after deserialization of the object. - - The methods called immediately after deserialization of the object. - - - - Gets or sets all methods called during deserialization of the object. - - The methods called during deserialization of the object. - - - - Gets or sets all methods called after serialization of the object graph. - - The methods called after serialization of the object graph. - - - - Gets or sets all methods called before serialization of the object. - - The methods called before serialization of the object. - - - - Gets or sets all method called when an error is thrown during the serialization of the object. - - The methods called when an error is thrown during the serialization of the object. - - - - Gets or sets the method called immediately after deserialization of the object. - - The method called immediately after deserialization of the object. - - - - Gets or sets the method called during deserialization of the object. - - The method called during deserialization of the object. - - - - Gets or sets the method called after serialization of the object graph. - - The method called after serialization of the object graph. - - - - Gets or sets the method called before serialization of the object. - - The method called before serialization of the object. - - - - Gets or sets the method called when an error is thrown during the serialization of the object. - - The method called when an error is thrown during the serialization of the object. - - - - Gets or sets the default creator method used to create the object. - - The default creator method used to create the object. - - - - Gets or sets a value indicating whether the default creator is non public. - - true if the default object creator is non-public; otherwise, false. - - - - Contract details for a used by the . - - - - - Gets or sets the property name resolver. - - The property name resolver. - - - - Gets or sets the dictionary key resolver. - - The dictionary key resolver. - - - - Gets the of the dictionary keys. - - The of the dictionary keys. - - - - Gets the of the dictionary values. - - The of the dictionary values. - - - - Gets or sets the function used to create the object. When set this function will override . - - The function used to create the object. - - - - Gets a value indicating whether the creator has a parameter with the dictionary values. - - true if the creator has a parameter with the dictionary values; otherwise, false. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Gets or sets the ISerializable object constructor. - - The ISerializable object constructor. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Maps a JSON property to a .NET member or constructor parameter. - - - - - Gets or sets the name of the property. - - The name of the property. - - - - Gets or sets the type that declared this property. - - The type that declared this property. - - - - Gets or sets the order of serialization of a member. - - The numeric order of serialization. - - - - Gets or sets the name of the underlying member or parameter. - - The name of the underlying member or parameter. - - - - Gets the that will get and set the during serialization. - - The that will get and set the during serialization. - - - - Gets or sets the for this property. - - The for this property. - - - - Gets or sets the type of the property. - - The type of the property. - - - - Gets or sets the for the property. - If set this converter takes presidence over the contract converter for the property type. - - The converter. - - - - Gets or sets the member converter. - - The member converter. - - - - Gets or sets a value indicating whether this is ignored. - - true if ignored; otherwise, false. - - - - Gets or sets a value indicating whether this is readable. - - true if readable; otherwise, false. - - - - Gets or sets a value indicating whether this is writable. - - true if writable; otherwise, false. - - - - Gets or sets a value indicating whether this has a member attribute. - - true if has a member attribute; otherwise, false. - - - - Gets the default value. - - The default value. - - - - Gets or sets a value indicating whether this is required. - - A value indicating whether this is required. - - - - Gets or sets a value indicating whether this property preserves object references. - - - true if this instance is reference; otherwise, false. - - - - - Gets or sets the property null value handling. - - The null value handling. - - - - Gets or sets the property default value handling. - - The default value handling. - - - - Gets or sets the property reference loop handling. - - The reference loop handling. - - - - Gets or sets the property object creation handling. - - The object creation handling. - - - - Gets or sets or sets the type name handling. - - The type name handling. - - - - Gets or sets a predicate used to determine whether the property should be serialize. - - A predicate used to determine whether the property should be serialize. - - - - Gets or sets a predicate used to determine whether the property should be deserialized. - - A predicate used to determine whether the property should be deserialized. - - - - Gets or sets a predicate used to determine whether the property should be serialized. - - A predicate used to determine whether the property should be serialized. - - - - Gets or sets an action used to set whether the property has been deserialized. - - An action used to set whether the property has been deserialized. - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Gets or sets the converter used when serializing the property's collection items. - - The collection's items converter. - - - - Gets or sets whether this property's collection items are serialized as a reference. - - Whether this property's collection items are serialized as a reference. - - - - Gets or sets the the type name handling used when serializing the property's collection items. - - The collection's items type name handling. - - - - Gets or sets the the reference loop handling used when serializing the property's collection items. - - The collection's items reference loop handling. - - - - A collection of objects. - - - - - Initializes a new instance of the class. - - The type. - - - - When implemented in a derived class, extracts the key from the specified element. - - The element from which to extract the key. - The key for the specified element. - - - - Adds a object. - - The property to add to the collection. - - - - Gets the closest matching object. - First attempts to get an exact case match of propertyName and then - a case insensitive match. - - Name of the property. - A matching property if found. - - - - Gets a property by property name. - - The name of the property to get. - Type property name string comparison. - A matching property if found. - - - - Used to resolve references when serializing and deserializing JSON by the . - - - - - Resolves a reference to its object. - - The serialization context. - The reference to resolve. - The object that - - - - Gets the reference for the sepecified object. - - The serialization context. - The object to get a reference for. - The reference to the object. - - - - Determines whether the specified object is referenced. - - The serialization context. - The object to test for a reference. - - true if the specified object is referenced; otherwise, false. - - - - - Adds a reference to the specified object. - - The serialization context. - The reference. - The object to reference. - - - - Contract details for a used by the . - - - - - Gets or sets the object member serialization. - - The member object serialization. - - - - Gets or sets a value that indicates whether the object's properties are required. - - - A value indicating whether the object's properties are required. - - - - - Gets the object's properties. - - The object's properties. - - - - Gets the constructor parameters required for any non-default constructor - - - - - Gets a collection of instances that define the parameters used with . - - - - - Gets or sets the override constructor used to create the object. - This is set when a constructor is marked up using the - JsonConstructor attribute. - - The override constructor. - - - - Gets or sets the parametrized constructor used to create the object. - - The parametrized constructor. - - - - Gets or sets the function used to create the object. When set this function will override . - This function is called with a collection of arguments which are defined by the collection. - - The function used to create the object. - - - - Gets or sets the extension data setter. - - - - - Gets or sets the extension data getter. - - - - - Gets or sets the extension data value type. - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Lookup and create an instance of the JsonConverter type described by the argument. - - The JsonConverter type to create. - Optional arguments to pass to an initializing constructor of the JsonConverter. - If null, the default constructor is used. - - - - Create a factory function that can be used to create instances of a JsonConverter described by the - argument type. The returned function can then be used to either invoke the converter's default ctor, or any - parameterized constructors by way of an object array. - - - - - Represents a method that constructs an object. - - The object type to create. - - - - When applied to a method, specifies that the method is called when an error occurs serializing an object. - - - - - Get and set values for a using reflection. - - - - - Initializes a new instance of the class. - - The member info. - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Specifies how strings are escaped when writing JSON text. - - - - - Only control characters (e.g. newline) are escaped. - - - - - All non-ASCII and control characters (e.g. newline) are escaped. - - - - - HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. - - - - - Provides a set of static (Shared in Visual Basic) methods for - querying objects that implement . - - - - - Returns the input typed as . - - - - - Returns an empty that has the - specified type argument. - - - - - Converts the elements of an to the - specified type. - - - - - Filters the elements of an based on a specified type. - - - - - Generates a sequence of integral numbers within a specified range. - - The value of the first integer in the sequence. - The number of sequential integers to generate. - - - - Generates a sequence that contains one repeated value. - - - - - Filters a sequence of values based on a predicate. - - - - - Filters a sequence of values based on a predicate. - Each element's index is used in the logic of the predicate function. - - - - - Projects each element of a sequence into a new form. - - - - - Projects each element of a sequence into a new form by - incorporating the element's index. - - - - - Projects each element of a sequence to an - and flattens the resulting sequences into one sequence. - - - - - Projects each element of a sequence to an , - and flattens the resulting sequences into one sequence. The - index of each source element is used in the projected form of - that element. - - - - - Projects each element of a sequence to an , - flattens the resulting sequences into one sequence, and invokes - a result selector function on each element therein. - - - - - Projects each element of a sequence to an , - flattens the resulting sequences into one sequence, and invokes - a result selector function on each element therein. The index of - each source element is used in the intermediate projected form - of that element. - - - - - Returns elements from a sequence as long as a specified condition is true. - - - - - Returns elements from a sequence as long as a specified condition is true. - The element's index is used in the logic of the predicate function. - - - - - Base implementation of First operator. - - - - - Returns the first element of a sequence. - - - - - Returns the first element in a sequence that satisfies a specified condition. - - - - - Returns the first element of a sequence, or a default value if - the sequence contains no elements. - - - - - Returns the first element of the sequence that satisfies a - condition or a default value if no such element is found. - - - - - Base implementation of Last operator. - - - - - Returns the last element of a sequence. - - - - - Returns the last element of a sequence that satisfies a - specified condition. - - - - - Returns the last element of a sequence, or a default value if - the sequence contains no elements. - - - - - Returns the last element of a sequence that satisfies a - condition or a default value if no such element is found. - - - - - Base implementation of Single operator. - - - - - Returns the only element of a sequence, and throws an exception - if there is not exactly one element in the sequence. - - - - - Returns the only element of a sequence that satisfies a - specified condition, and throws an exception if more than one - such element exists. - - - - - Returns the only element of a sequence, or a default value if - the sequence is empty; this method throws an exception if there - is more than one element in the sequence. - - - - - Returns the only element of a sequence that satisfies a - specified condition or a default value if no such element - exists; this method throws an exception if more than one element - satisfies the condition. - - - - - Returns the element at a specified index in a sequence. - - - - - Returns the element at a specified index in a sequence or a - default value if the index is out of range. - - - - - Inverts the order of the elements in a sequence. - - - - - Returns a specified number of contiguous elements from the start - of a sequence. - - - - - Bypasses a specified number of elements in a sequence and then - returns the remaining elements. - - - - - Bypasses elements in a sequence as long as a specified condition - is true and then returns the remaining elements. - - - - - Bypasses elements in a sequence as long as a specified condition - is true and then returns the remaining elements. The element's - index is used in the logic of the predicate function. - - - - - Returns the number of elements in a sequence. - - - - - Returns a number that represents how many elements in the - specified sequence satisfy a condition. - - - - - Returns an that represents the total number - of elements in a sequence. - - - - - Returns an that represents how many elements - in a sequence satisfy a condition. - - - - - Concatenates two sequences. - - - - - Creates a from an . - - - - - Creates an array from an . - - - - - Returns distinct elements from a sequence by using the default - equality comparer to compare values. - - - - - Returns distinct elements from a sequence by using a specified - to compare values. - - - - - Creates a from an - according to a specified key - selector function. - - - - - Creates a from an - according to a specified key - selector function and a key comparer. - - - - - Creates a from an - according to specified key - and element selector functions. - - - - - Creates a from an - according to a specified key - selector function, a comparer and an element selector function. - - - - - Groups the elements of a sequence according to a specified key - selector function. - - - - - Groups the elements of a sequence according to a specified key - selector function and compares the keys by using a specified - comparer. - - - - - Groups the elements of a sequence according to a specified key - selector function and projects the elements for each group by - using a specified function. - - - - - Groups the elements of a sequence according to a specified key - selector function and creates a result value from each group and - its key. - - - - - Groups the elements of a sequence according to a key selector - function. The keys are compared by using a comparer and each - group's elements are projected by using a specified function. - - - - - Groups the elements of a sequence according to a specified key - selector function and creates a result value from each group and - its key. The elements of each group are projected by using a - specified function. - - - - - Groups the elements of a sequence according to a specified key - selector function and creates a result value from each group and - its key. The keys are compared by using a specified comparer. - - - - - Groups the elements of a sequence according to a specified key - selector function and creates a result value from each group and - its key. Key values are compared by using a specified comparer, - and the elements of each group are projected by using a - specified function. - - - - - Applies an accumulator function over a sequence. - - - - - Applies an accumulator function over a sequence. The specified - seed value is used as the initial accumulator value. - - - - - Applies an accumulator function over a sequence. The specified - seed value is used as the initial accumulator value, and the - specified function is used to select the result value. - - - - - Produces the set union of two sequences by using the default - equality comparer. - - - - - Produces the set union of two sequences by using a specified - . - - - - - Returns the elements of the specified sequence or the type - parameter's default value in a singleton collection if the - sequence is empty. - - - - - Returns the elements of the specified sequence or the specified - value in a singleton collection if the sequence is empty. - - - - - Determines whether all elements of a sequence satisfy a condition. - - - - - Determines whether a sequence contains any elements. - - - - - Determines whether any element of a sequence satisfies a - condition. - - - - - Determines whether a sequence contains a specified element by - using the default equality comparer. - - - - - Determines whether a sequence contains a specified element by - using a specified . - - - - - Determines whether two sequences are equal by comparing the - elements by using the default equality comparer for their type. - - - - - Determines whether two sequences are equal by comparing their - elements by using a specified . - - - - - Base implementation for Min/Max operator. - - - - - Base implementation for Min/Max operator for nullable types. - - - - - Returns the minimum value in a generic sequence. - - - - - Invokes a transform function on each element of a generic - sequence and returns the minimum resulting value. - - - - - Returns the maximum value in a generic sequence. - - - - - Invokes a transform function on each element of a generic - sequence and returns the maximum resulting value. - - - - - Makes an enumerator seen as enumerable once more. - - - The supplied enumerator must have been started. The first element - returned is the element the enumerator was on when passed in. - DO NOT use this method if the caller must be a generator. It is - mostly safe among aggregate operations. - - - - - Sorts the elements of a sequence in ascending order according to a key. - - - - - Sorts the elements of a sequence in ascending order by using a - specified comparer. - - - - - Sorts the elements of a sequence in descending order according to a key. - - - - - Sorts the elements of a sequence in descending order by using a - specified comparer. - - - - - Performs a subsequent ordering of the elements in a sequence in - ascending order according to a key. - - - - - Performs a subsequent ordering of the elements in a sequence in - ascending order by using a specified comparer. - - - - - Performs a subsequent ordering of the elements in a sequence in - descending order, according to a key. - - - - - Performs a subsequent ordering of the elements in a sequence in - descending order by using a specified comparer. - - - - - Base implementation for Intersect and Except operators. - - - - - Produces the set intersection of two sequences by using the - default equality comparer to compare values. - - - - - Produces the set intersection of two sequences by using the - specified to compare values. - - - - - Produces the set difference of two sequences by using the - default equality comparer to compare values. - - - - - Produces the set difference of two sequences by using the - specified to compare values. - - - - - Creates a from an - according to a specified key - selector function. - - - - - Creates a from an - according to a specified key - selector function and key comparer. - - - - - Creates a from an - according to specified key - selector and element selector functions. - - - - - Creates a from an - according to a specified key - selector function, a comparer, and an element selector function. - - - - - Correlates the elements of two sequences based on matching keys. - The default equality comparer is used to compare keys. - - - - - Correlates the elements of two sequences based on matching keys. - The default equality comparer is used to compare keys. A - specified is used to compare keys. - - - - - Correlates the elements of two sequences based on equality of - keys and groups the results. The default equality comparer is - used to compare keys. - - - - - Correlates the elements of two sequences based on equality of - keys and groups the results. The default equality comparer is - used to compare keys. A specified - is used to compare keys. - - - - - Computes the sum of a sequence of nullable values. - - - - - Computes the sum of a sequence of nullable - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of nullable values. - - - - - Computes the average of a sequence of nullable values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Computes the sum of a sequence of values. - - - - - Computes the sum of a sequence of - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of values. - - - - - Computes the average of a sequence of values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Returns the minimum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the minimum nullable value. - - - - - Returns the maximum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the maximum nullable value. - - - - - Computes the sum of a sequence of nullable values. - - - - - Computes the sum of a sequence of nullable - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of nullable values. - - - - - Computes the average of a sequence of nullable values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Computes the sum of a sequence of values. - - - - - Computes the sum of a sequence of - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of values. - - - - - Computes the average of a sequence of values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Returns the minimum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the minimum nullable value. - - - - - Returns the maximum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the maximum nullable value. - - - - - Computes the sum of a sequence of nullable values. - - - - - Computes the sum of a sequence of nullable - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of nullable values. - - - - - Computes the average of a sequence of nullable values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Computes the sum of a sequence of values. - - - - - Computes the sum of a sequence of - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of values. - - - - - Computes the average of a sequence of values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Returns the minimum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the minimum nullable value. - - - - - Returns the maximum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the maximum nullable value. - - - - - Computes the sum of a sequence of nullable values. - - - - - Computes the sum of a sequence of nullable - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of nullable values. - - - - - Computes the average of a sequence of nullable values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Computes the sum of a sequence of values. - - - - - Computes the sum of a sequence of - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of values. - - - - - Computes the average of a sequence of values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Returns the minimum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the minimum nullable value. - - - - - Returns the maximum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the maximum nullable value. - - - - - Computes the sum of a sequence of nullable values. - - - - - Computes the sum of a sequence of nullable - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of nullable values. - - - - - Computes the average of a sequence of nullable values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Computes the sum of a sequence of values. - - - - - Computes the sum of a sequence of - values that are obtained by invoking a transform function on - each element of the input sequence. - - - - - Computes the average of a sequence of values. - - - - - Computes the average of a sequence of values - that are obtained by invoking a transform function on each - element of the input sequence. - - - - - Returns the minimum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the minimum nullable value. - - - - - Returns the maximum value in a sequence of nullable - values. - - - - - Invokes a transform function on each element of a sequence and - returns the maximum nullable value. - - - - - Represents a collection of objects that have a common key. - - - - - Gets the key of the . - - - - - Defines an indexer, size property, and Boolean search method for - data structures that map keys to - sequences of values. - - - - - Represents a sorted sequence. - - - - - Performs a subsequent ordering on the elements of an - according to a key. - - - - - Represents a collection of keys each mapped to one or more values. - - - - - Gets the number of key/value collection pairs in the . - - - - - Gets the collection of values indexed by the specified key. - - - - - Determines whether a specified key is in the . - - - - - Applies a transform function to each key and its associated - values and returns the results. - - - - - Returns a generic enumerator that iterates through the . - - - - - See issue #11 - for why this method is needed and cannot be expressed as a - lambda at the call site. - - - - - See issue #11 - for why this method is needed and cannot be expressed as a - lambda at the call site. - - - - - Converts the value to the specified type. If the value is unable to be converted, the - value is checked whether it assignable to the specified type. - - The value to convert. - The culture to use when converting. - The type to convert or cast the value to. - - The converted type. If conversion was unsuccessful, the initial value - is returned if assignable to the target type. - - - - - Gets a dictionary of the names and values of an Enum type. - - - - - - Gets a dictionary of the names and values of an Enum type. - - The enum type to get names and values for. - - - - - Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer. - - - - - Determines whether the collection is null or empty. - - The collection. - - true if the collection is null or empty; otherwise, false. - - - - - Adds the elements of the specified collection to the specified generic IList. - - The list to add to. - The collection of elements to add. - - - - Returns the index of the first occurrence in a sequence by using a specified IEqualityComparer{TSource}. - - The type of the elements of source. - A sequence in which to locate a value. - The object to locate in the sequence - An equality comparer to compare values. - The zero-based index of the first occurrence of value within the entire sequence, if found; otherwise, –1. - - - - Gets the type of the typed collection's items. - - The type. - The type of the typed collection's items. - - - - Gets the member's underlying type. - - The member. - The underlying type of the member. - - - - Determines whether the member is an indexed property. - - The member. - - true if the member is an indexed property; otherwise, false. - - - - - Determines whether the property is an indexed property. - - The property. - - true if the property is an indexed property; otherwise, false. - - - - - Gets the member's value on the object. - - The member. - The target object. - The member's value on the object. - - - - Sets the member's value on the target object. - - The member. - The target. - The value. - - - - Determines whether the specified MemberInfo can be read. - - The MemberInfo to determine whether can be read. - /// if set to true then allow the member to be gotten non-publicly. - - true if the specified MemberInfo can be read; otherwise, false. - - - - - Determines whether the specified MemberInfo can be set. - - The MemberInfo to determine whether can be set. - if set to true then allow the member to be set non-publicly. - if set to true then allow the member to be set if read-only. - - true if the specified MemberInfo can be set; otherwise, false. - - - - - Determines whether the string is all white space. Empty string will return false. - - The string to test whether it is all white space. - - true if the string is all white space; otherwise, false. - - - - - Nulls an empty string. - - The string. - Null if the string was null, otherwise the string unchanged. - - - - Indicating whether a property is required. - - - - - The property is not required. The default state. - - - - - The property must be defined in JSON but can be a null value. - - - - - The property must be defined in JSON and cannot be a null value. - - - - - The property is not required but it cannot be a null value. - - - - - Specifies reference handling options for the . - Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement ISerializable. - - - - - - - - Do not preserve references when serializing types. - - - - - Preserve references when serializing into a JSON object structure. - - - - - Preserve references when serializing into a JSON array structure. - - - - - Preserve references when serializing. - - - - - Provides an interface to enable a class to return line and position information. - - - - - Gets a value indicating whether the class can return line information. - - - true if LineNumber and LinePosition can be provided; otherwise, false. - - - - - Gets the current line number. - - The current line number or 0 if no line information is available (for example, HasLineInfo returns false). - - - - Gets the current line position. - - The current line position or 0 if no line information is available (for example, HasLineInfo returns false). - - - - Instructs the how to serialize the collection. - - - - - Gets or sets a value indicating whether null items are allowed in the collection. - - true if null items are allowed in the collection; otherwise, false. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with a flag indicating whether the array can contain null items - - A flag indicating whether the array can contain null items. - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Instructs the how to serialize the object. - - - - - Gets or sets the id. - - The id. - - - - Gets or sets the title. - - The title. - - - - Gets or sets the description. - - The description. - - - - Gets the collection's items converter. - - The collection's items converter. - - - - The parameter list to use when constructing the JsonConverter described by ItemConverterType. - If null, the default constructor is used. - When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number, - order, and type of these parameters. - - - [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] - - - - - Gets or sets a value that indicates whether to preserve object references. - - - true to keep object reference; otherwise, false. The default is false. - - - - - Gets or sets a value that indicates whether to preserve collection's items references. - - - true to keep collection's items object references; otherwise, false. The default is false. - - - - - Gets or sets the reference loop handling used when serializing the collection's items. - - The reference loop handling. - - - - Gets or sets the type name handling used when serializing the collection's items. - - The type name handling. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Specifies default value handling options for the . - - - - - - - - - Include members where the member value is the same as the member's default value when serializing objects. - Included members are written to JSON. Has no effect when deserializing. - - - - - Ignore members where the member value is the same as the member's default value when serializing objects - so that is is not written to JSON. - This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, - decimals and floating point numbers; and false for booleans). The default value ignored can be changed by - placing the on the property. - - - - - Members with a default value but no JSON will be set to their default value when deserializing. - - - - - Ignore members where the member value is the same as the member's default value when serializing objects - and sets members to their default value when deserializing. - - - - - Instructs the to use the specified when serializing the member or class. - - - - - Gets the of the converter. - - The of the converter. - - - - The parameter list to use when constructing the JsonConverter described by ConverterType. - If null, the default constructor is used. - - - - - Initializes a new instance of the class. - - Type of the converter. - - - - Initializes a new instance of the class. - - Type of the converter. - Parameter list to use when constructing the JsonConverter. Can be null. - - - - Instructs the how to serialize the object. - - - - - Gets or sets the member serialization. - - The member serialization. - - - - Gets or sets a value that indicates whether the object's properties are required. - - - A value indicating whether the object's properties are required. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified member serialization. - - The member serialization. - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Specifies the settings on a object. - - - - - Gets or sets how reference loops (e.g. a class referencing itself) is handled. - - Reference loop handling. - - - - Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. - - Missing member handling. - - - - Gets or sets how objects are created during deserialization. - - The object creation handling. - - - - Gets or sets how null values are handled during serialization and deserialization. - - Null value handling. - - - - Gets or sets how null default are handled during serialization and deserialization. - - The default value handling. - - - - Gets or sets a collection that will be used during serialization. - - The converters. - - - - Gets or sets how object references are preserved by the serializer. - - The preserve references handling. - - - - Gets or sets how type name writing and reading is handled by the serializer. - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - The type name handling. - - - - Gets or sets how metadata properties are used during deserialization. - - The metadata properties handling. - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - - The type name assembly format. - - - - Gets or sets how constructors are used during deserialization. - - The constructor handling. - - - - Gets or sets the contract resolver used by the serializer when - serializing .NET objects to JSON and vice versa. - - The contract resolver. - - - - Gets or sets the equality comparer used by the serializer when comparing references. - - The equality comparer. - - - - Gets or sets the used by the serializer when resolving references. - - The reference resolver. - - - - Gets or sets a function that creates the used by the serializer when resolving references. - - A function that creates the used by the serializer when resolving references. - - - - Gets or sets the used by the serializer when writing trace messages. - - The trace writer. - - - - Gets or sets the used by the serializer when resolving type names. - - The binder. - - - - Gets or sets the error handler called during serialization and deserialization. - - The error handler called during serialization and deserialization. - - - - Gets or sets the used by the serializer when invoking serialization callback methods. - - The context. - - - - Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text. - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling during serialization and deserialization. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written as JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Gets a value indicating whether there will be a check for additional content after deserializing an object. - - - true if there will be a check for additional content after deserializing an object; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - - Represents a reader that provides validation. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Sets an event handler for receiving schema validation errors. - - - - - Gets the text value of the current JSON token. - - - - - - Gets the depth of the current token in the JSON document. - - The depth of the current token in the JSON document. - - - - Gets the path of the current JSON token. - - - - - Gets the quotation mark character used to enclose the value of a string. - - - - - - Gets the type of the current JSON token. - - - - - - Gets the Common Language Runtime (CLR) type for the current JSON token. - - - - - - Initializes a new instance of the class that - validates the content returned from the given . - - The to read from while validating. - - - - Gets or sets the schema. - - The schema. - - - - Gets the used to construct this . - - The specified in the constructor. - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream as a []. - - - A [] or a null reference if the next JSON token is null. - - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Specifies the member serialization options for the . - - - - - All public members are serialized by default. Members can be excluded using or . - This is the default member serialization mode. - - - - - Only members must be marked with or are serialized. - This member serialization mode can also be set by marking the class with . - - - - - All public and private fields are serialized. Members can be excluded using or . - This member serialization mode can also be set by marking the class with - and setting IgnoreSerializableAttribute on to false. - - - - - Specifies how object creation is handled by the . - - - - - Reuse existing objects, create new objects when needed. - - - - - Only reuse existing objects. - - - - - Always create new objects. - - - - - Represents a reader that provides fast, non-cached, forward-only access to JSON text data. - - - - - Initializes a new instance of the class with the specified . - - The TextReader containing the XML data to read. - - - - Gets or sets the reader's character buffer pool. - - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a []. - - A [] or a null reference if the next JSON token is null. This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Changes the state to closed. - - - - - Gets a value indicating whether the class can return line information. - - - true if LineNumber and LinePosition can be provided; otherwise, false. - - - - - Gets the current line number. - - - The current line number or 0 if no line information is available (for example, HasLineInfo returns false). - - - - - Gets the current line position. - - - The current line position or 0 if no line information is available (for example, HasLineInfo returns false). - - - - - Instructs the to always serialize the member with the specified name. - - - - - Gets or sets the converter used when serializing the property's collection items. - - The collection's items converter. - - - - The parameter list to use when constructing the JsonConverter described by ItemConverterType. - If null, the default constructor is used. - When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number, - order, and type of these parameters. - - - [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] - - - - - Gets or sets the null value handling used when serializing this property. - - The null value handling. - - - - Gets or sets the default value handling used when serializing this property. - - The default value handling. - - - - Gets or sets the reference loop handling used when serializing this property. - - The reference loop handling. - - - - Gets or sets the object creation handling used when deserializing this property. - - The object creation handling. - - - - Gets or sets the type name handling used when serializing this property. - - The type name handling. - - - - Gets or sets whether this property's value is serialized as a reference. - - Whether this property's value is serialized as a reference. - - - - Gets or sets the order of serialization of a member. - - The numeric order of serialization. - - - - Gets or sets a value indicating whether this property is required. - - - A value indicating whether this property is required. - - - - - Gets or sets the name of the property. - - The name of the property. - - - - Gets or sets the the reference loop handling used when serializing the property's collection items. - - The collection's items reference loop handling. - - - - Gets or sets the the type name handling used when serializing the property's collection items. - - The collection's items type name handling. - - - - Gets or sets whether this property's collection items are serialized as a reference. - - Whether this property's collection items are serialized as a reference. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified name. - - Name of the property. - - - - Instructs the not to serialize the public field or public read/write property value. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets the writer's character array pool. - - - - - Gets or sets how many IndentChars to write for each level in the hierarchy when is set to Formatting.Indented. - - - - - Gets or sets which character to use to quote attribute values. - - - - - Gets or sets which character to use for indenting when is set to Formatting.Indented. - - - - - Gets or sets a value indicating whether object names will be surrounded with quotes. - - - - - Creates an instance of the JsonWriter class using the specified . - - The TextWriter to write to. - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the specified end token. - - The end token to write. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - A flag to indicate whether the text should be escaped when it is written as a JSON property name. - - - - Writes indent characters. - - - - - Writes the JSON value delimiter. - - - - - Writes an indent space. - - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes out the given white space. - - The string of white space characters. - - - - The exception thrown when an error occurs while reading JSON text. - - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - The exception thrown when an error occurs while reading JSON text. - - - - - Gets the line number indicating where the error occurred. - - The line number indicating where the error occurred. - - - - Gets the line position indicating where the error occurred. - - The line position indicating where the error occurred. - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - Converts an object to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - - Gets the of the JSON produced by the JsonConverter. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The of the JSON produced by the JsonConverter. - - - - Gets a value indicating whether this can read JSON. - - true if this can read JSON; otherwise, false. - - - - Gets a value indicating whether this can write JSON. - - true if this can write JSON; otherwise, false. - - - - Represents a collection of . - - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Specifies the state of the reader. - - - - - The Read method has not been called. - - - - - The end of the file has been reached successfully. - - - - - Reader is at a property. - - - - - Reader is at the start of an object. - - - - - Reader is in an object. - - - - - Reader is at the start of an array. - - - - - Reader is in an array. - - - - - The Close method has been called. - - - - - Reader has just read a value. - - - - - Reader is at the start of a constructor. - - - - - Reader in a constructor. - - - - - An error occurred that prevents the read operation from continuing. - - - - - The end of the file has been reached successfully. - - - - - Gets the current reader state. - - The current reader state. - - - - Gets or sets a value indicating whether the underlying stream or - should be closed when the reader is closed. - - - true to close the underlying stream or when - the reader is closed; otherwise false. The default is true. - - - - - Gets or sets a value indicating whether multiple pieces of JSON content can - be read from a continuous stream without erroring. - - - true to support reading multiple pieces of JSON content; otherwise false. The default is false. - - - - - Gets the quotation mark character used to enclose the value of a string. - - - - - Get or set how time zones are handling when reading JSON. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how custom date formatted strings are parsed when reading JSON. - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Gets the type of the current JSON token. - - - - - Gets the text value of the current JSON token. - - - - - Gets The Common Language Runtime (CLR) type for the current JSON token. - - - - - Gets the depth of the current token in the JSON document. - - The depth of the current token in the JSON document. - - - - Gets the path of the current JSON token. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Initializes a new instance of the class with the specified . - - - - - Reads the next JSON token from the stream. - - true if the next token was read successfully; false if there are no more tokens to read. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a []. - - A [] or a null reference if the next JSON token is null. This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Skips the children of the current token. - - - - - Sets the current token. - - The new token. - - - - Sets the current token and value. - - The new token. - The value. - - - - Sets the state based on current token type. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Releases unmanaged and - optionally - managed resources - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Changes the to Closed. - - - - - Provides methods for converting between common language runtime types and JSON types. - - - - - - - - Gets or sets a function that creates default . - Default settings are automatically used by serialization methods on , - and and on . - To serialize without using any default settings create a with - . - - - - - Represents JavaScript's boolean value true as a string. This field is read-only. - - - - - Represents JavaScript's boolean value false as a string. This field is read-only. - - - - - Represents JavaScript's null as a string. This field is read-only. - - - - - Represents JavaScript's undefined as a string. This field is read-only. - - - - - Represents JavaScript's positive infinity as a string. This field is read-only. - - - - - Represents JavaScript's negative infinity as a string. This field is read-only. - - - - - Represents JavaScript's NaN as a string. This field is read-only. - - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation using the specified. - - The value to convert. - The format the date will be converted to. - The time zone handling when the date is converted to a string. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - The string delimiter character. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - The string delimiter character. - The string escape handling. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Serializes the specified object to a JSON string. - - The object to serialize. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using formatting. - - The object to serialize. - Indicates how the output is formatted. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a collection of . - - The object to serialize. - A collection converters used while serializing. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using formatting and a collection of . - - The object to serialize. - Indicates how the output is formatted. - A collection converters used while serializing. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using . - - The object to serialize. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a type, formatting and . - - The object to serialize. - The used to serialize the object. - If this is null, default serialization settings will be used. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using formatting and . - - The object to serialize. - Indicates how the output is formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a type, formatting and . - - The object to serialize. - Indicates how the output is formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - A JSON string representation of the object. - - - - - Deserializes the JSON to a .NET object. - - The JSON to deserialize. - The deserialized object from the JSON string. - - - - Deserializes the JSON to a .NET object using . - - The JSON to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type. - - The JSON to deserialize. - The of object being deserialized. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type. - - The type of the object to deserialize to. - The JSON to deserialize. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the given anonymous type. - - - The anonymous type to deserialize to. This can't be specified - traditionally and must be infered from the anonymous type passed - as a parameter. - - The JSON to deserialize. - The anonymous type object. - The deserialized anonymous type from the JSON string. - - - - Deserializes the JSON to the given anonymous type using . - - - The anonymous type to deserialize to. This can't be specified - traditionally and must be infered from the anonymous type passed - as a parameter. - - The JSON to deserialize. - The anonymous type object. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized anonymous type from the JSON string. - - - - Deserializes the JSON to the specified .NET type using a collection of . - - The type of the object to deserialize to. - The JSON to deserialize. - Converters to use while deserializing. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using . - - The type of the object to deserialize to. - The object to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using a collection of . - - The JSON to deserialize. - The type of the object to deserialize. - Converters to use while deserializing. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using . - - The JSON to deserialize. - The type of the object to deserialize to. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Populates the object with values from the JSON string. - - The JSON to populate values from. - The target object to populate values onto. - - - - Populates the object with values from the JSON string using . - - The JSON to populate values from. - The target object to populate values onto. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - - - - Serializes the XML node to a JSON string. - - The node to serialize. - A JSON string of the XmlNode. - - - - Serializes the XML node to a JSON string using formatting. - - The node to serialize. - Indicates how the output is formatted. - A JSON string of the XmlNode. - - - - Serializes the XML node to a JSON string using formatting and omits the root object if is true. - - The node to serialize. - Indicates how the output is formatted. - Omits writing the root object. - A JSON string of the XmlNode. - - - - Deserializes the XmlNode from a JSON string. - - The JSON string. - The deserialized XmlNode - - - - Deserializes the XmlNode from a JSON string nested in a root elment specified by . - - The JSON string. - The name of the root element to append when deserializing. - The deserialized XmlNode - - - - Deserializes the XmlNode from a JSON string nested in a root elment specified by - and writes a .NET array attribute for collections. - - The JSON string. - The name of the root element to append when deserializing. - - A flag to indicate whether to write the Json.NET array attribute. - This attribute helps preserve arrays when converting the written XML back to JSON. - - The deserialized XmlNode - - - - The exception thrown when an error occurs during JSON serialization or deserialization. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - Serializes and deserializes objects into and from the JSON format. - The enables you to control how objects are encoded into JSON. - - - - - Occurs when the errors during serialization and deserialization. - - - - - Gets or sets the used by the serializer when resolving references. - - - - - Gets or sets the used by the serializer when resolving type names. - - - - - Gets or sets the used by the serializer when writing trace messages. - - The trace writer. - - - - Gets or sets the equality comparer used by the serializer when comparing references. - - The equality comparer. - - - - Gets or sets how type name writing and reading is handled by the serializer. - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - - The type name assembly format. - - - - Gets or sets how object references are preserved by the serializer. - - - - - Get or set how reference loops (e.g. a class referencing itself) is handled. - - - - - Get or set how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. - - - - - Get or set how null values are handled during serialization and deserialization. - - - - - Get or set how null default are handled during serialization and deserialization. - - - - - Gets or sets how objects are created during deserialization. - - The object creation handling. - - - - Gets or sets how constructors are used during deserialization. - - The constructor handling. - - - - Gets or sets how metadata properties are used during deserialization. - - The metadata properties handling. - - - - Gets a collection that will be used during serialization. - - Collection that will be used during serialization. - - - - Gets or sets the contract resolver used by the serializer when - serializing .NET objects to JSON and vice versa. - - - - - Gets or sets the used by the serializer when invoking serialization callback methods. - - The context. - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling during serialization and deserialization. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written as JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. - - - true if there will be a check for additional JSON content after deserializing an object; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Creates a new instance. - The will not use default settings - from . - - - A new instance. - The will not use default settings - from . - - - - - Creates a new instance using the specified . - The will not use default settings - from . - - The settings to be applied to the . - - A new instance using the specified . - The will not use default settings - from . - - - - - Creates a new instance. - The will use default settings - from . - - - A new instance. - The will use default settings - from . - - - - - Creates a new instance using the specified . - The will use default settings - from as well as the specified . - - The settings to be applied to the . - - A new instance using the specified . - The will use default settings - from as well as the specified . - - - - - Populates the JSON values onto the target object. - - The that contains the JSON structure to reader values from. - The target object to populate values onto. - - - - Populates the JSON values onto the target object. - - The that contains the JSON structure to reader values from. - The target object to populate values onto. - - - - Deserializes the JSON structure contained by the specified . - - The that contains the JSON structure to deserialize. - The being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The of object being deserialized. - The instance of being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The type of the object to deserialize. - The instance of being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The of object being deserialized. - The instance of being deserialized. - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - - - - Contains the JSON schema extension methods. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - - Determines whether the is valid. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - - true if the specified is valid; otherwise, false. - - - - - - Determines whether the is valid. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - When this method returns, contains any error messages generated while validating. - - true if the specified is valid; otherwise, false. - - - - - - Validates the specified . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - - - - - Validates the specified . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - The validation event handler. - - - - - Returns detailed information about the schema exception. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets the line number indicating where the error occurred. - - The line number indicating where the error occurred. - - - - Gets the line position indicating where the error occurred. - - The line position indicating where the error occurred. - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - - Resolves from an id. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets or sets the loaded schemas. - - The loaded schemas. - - - - Initializes a new instance of the class. - - - - - Gets a for the specified reference. - - The id. - A for the specified reference. - - - - - Specifies undefined schema Id handling options for the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Do not infer a schema Id. - - - - - Use the .NET type name as the schema Id. - - - - - Use the assembly qualified .NET type name as the schema Id. - - - - - - Returns detailed information related to the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets the associated with the validation error. - - The JsonSchemaException associated with the validation error. - - - - Gets the path of the JSON location where the validation error occurred. - - The path of the JSON location where the validation error occurred. - - - - Gets the text description corresponding to the validation error. - - The text description. - - - - - Represents the callback method that will handle JSON schema validation events and the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - - An in-memory representation of a JSON Schema. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets or sets the id. - - - - - Gets or sets the title. - - - - - Gets or sets whether the object is required. - - - - - Gets or sets whether the object is read only. - - - - - Gets or sets whether the object is visible to users. - - - - - Gets or sets whether the object is transient. - - - - - Gets or sets the description of the object. - - - - - Gets or sets the types of values allowed by the object. - - The type. - - - - Gets or sets the pattern. - - The pattern. - - - - Gets or sets the minimum length. - - The minimum length. - - - - Gets or sets the maximum length. - - The maximum length. - - - - Gets or sets a number that the value should be divisble by. - - A number that the value should be divisble by. - - - - Gets or sets the minimum. - - The minimum. - - - - Gets or sets the maximum. - - The maximum. - - - - Gets or sets a flag indicating whether the value can not equal the number defined by the "minimum" attribute. - - A flag indicating whether the value can not equal the number defined by the "minimum" attribute. - - - - Gets or sets a flag indicating whether the value can not equal the number defined by the "maximum" attribute. - - A flag indicating whether the value can not equal the number defined by the "maximum" attribute. - - - - Gets or sets the minimum number of items. - - The minimum number of items. - - - - Gets or sets the maximum number of items. - - The maximum number of items. - - - - Gets or sets the of items. - - The of items. - - - - Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . - - - true if items are validated using their array position; otherwise, false. - - - - - Gets or sets the of additional items. - - The of additional items. - - - - Gets or sets a value indicating whether additional items are allowed. - - - true if additional items are allowed; otherwise, false. - - - - - Gets or sets whether the array items must be unique. - - - - - Gets or sets the of properties. - - The of properties. - - - - Gets or sets the of additional properties. - - The of additional properties. - - - - Gets or sets the pattern properties. - - The pattern properties. - - - - Gets or sets a value indicating whether additional properties are allowed. - - - true if additional properties are allowed; otherwise, false. - - - - - Gets or sets the required property if this property is present. - - The required property if this property is present. - - - - Gets or sets the a collection of valid enum values allowed. - - A collection of valid enum values allowed. - - - - Gets or sets disallowed types. - - The disallow types. - - - - Gets or sets the default value. - - The default value. - - - - Gets or sets the collection of that this schema extends. - - The collection of that this schema extends. - - - - Gets or sets the format. - - The format. - - - - Initializes a new instance of the class. - - - - - Reads a from the specified . - - The containing the JSON Schema to read. - The object representing the JSON Schema. - - - - Reads a from the specified . - - The containing the JSON Schema to read. - The to use when resolving schema references. - The object representing the JSON Schema. - - - - Load a from a string that contains schema JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - Parses the specified json. - - The json. - The resolver. - A populated from the string that contains JSON. - - - - Writes this schema to a . - - A into which this method will write. - - - - Writes this schema to a using the specified . - - A into which this method will write. - The resolver used. - - - - Returns a that represents the current . - - - A that represents the current . - - - - - - Generates a from a specified . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets or sets how undefined schemas are handled by the serializer. - - - - - Gets or sets the contract resolver. - - The contract resolver. - - - - Generate a from the specified type. - - The type to generate a from. - A generated from the specified type. - - - - Generate a from the specified type. - - The type to generate a from. - The used to resolve schema references. - A generated from the specified type. - - - - Generate a from the specified type. - - The type to generate a from. - Specify whether the generated root will be nullable. - A generated from the specified type. - - - - Generate a from the specified type. - - The type to generate a from. - The used to resolve schema references. - Specify whether the generated root will be nullable. - A generated from the specified type. - - - - - The value types allowed by the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - No type specified. - - - - - String type. - - - - - Float type. - - - - - Integer type. - - - - - Boolean type. - - - - - Object type. - - - - - Array type. - - - - - Null type. - - - - - Any type. - - - - - Specifies missing member handling options for the . - - - - - Ignore a missing member and do not attempt to deserialize it. - - - - - Throw a when a missing member is encountered during deserialization. - - - - - Specifies null value handling options for the . - - - - - - - - - Include null values when serializing and deserializing objects. - - - - - Ignore null values when serializing and deserializing objects. - - - - - Specifies reference loop handling options for the . - - - - - Throw a when a loop is encountered. - - - - - Ignore loop references and do not serialize. - - - - - Serialize loop references. - - - - - Specifies type name handling options for the . - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - - - - Do not include the .NET type name when serializing types. - - - - - Include the .NET type name when serializing into a JSON object structure. - - - - - Include the .NET type name when serializing into a JSON array structure. - - - - - Always include the .NET type name when serializing. - - - - - Include the .NET type name when the type of the object being serialized is not the same as its declared type. - - - - - Specifies the type of JSON token. - - - - - This is returned by the if a method has not been called. - - - - - An object start token. - - - - - An array start token. - - - - - A constructor start token. - - - - - An object property name. - - - - - A comment. - - - - - Raw JSON. - - - - - An integer. - - - - - A float. - - - - - A string. - - - - - A boolean. - - - - - A null token. - - - - - An undefined token. - - - - - An object end token. - - - - - An array end token. - - - - - A constructor end token. - - - - - A Date. - - - - - Byte data. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets a value indicating whether the underlying stream or - should be closed when the writer is closed. - - - true to close the underlying stream or when - the writer is closed; otherwise false. The default is true. - - - - - Gets the top. - - The top. - - - - Gets the state of the writer. - - - - - Gets the path of the writer. - - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling when writing JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written to JSON text. - - - - - Get or set how and values are formatting when writing JSON text. - - - - - Gets or sets the culture used when writing JSON. Defaults to . - - - - - Creates an instance of the JsonWriter class. - - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the end of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the end of an array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the end constructor. - - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - A flag to indicate whether the text should be escaped when it is written as a JSON property name. - - - - Writes the end of the current JSON object or array. - - - - - Writes the current token and its children. - - The to read the token from. - - - - Writes the current token. - - The to read the token from. - A flag indicating whether the current token's children should be written. - - - - Writes the token and its value. - - The to write. - - The value to write. - A value is only required for tokens that have an associated value, e.g. the property name for . - A null value can be passed to the method for token's that don't have a value, e.g. . - - - - Writes the token. - - The to write. - - - - Writes the specified end token. - - The end token to write. - - - - Writes indent characters. - - - - - Writes the JSON value delimiter. - - - - - Writes an indent space. - - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON without changing the writer's state. - - The raw JSON to write. - - - - Writes raw JSON where a value is expected and updates the writer's state. - - The raw JSON to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes out the given white space. - - The string of white space characters. - - - - Releases unmanaged and - optionally - managed resources - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Sets the state of the JsonWriter, - - The JsonToken being written. - The value being written. - - - - Specifies the state of the . - - - - - An exception has been thrown, which has left the in an invalid state. - You may call the method to put the in the Closed state. - Any other method calls results in an being thrown. - - - - - The method has been called. - - - - - An object is being written. - - - - - A array is being written. - - - - - A constructor is being written. - - - - - A property is being written. - - - - - A write method has not been called. - - - - - This attribute allows us to define extension methods without - requiring .NET Framework 3.5. For more information, see the section, - Extension Methods in .NET Framework 2.0 Apps, - of Basic Instincts: Extension Methods - column in MSDN Magazine, - issue Nov 2007. - - - - diff --git a/source/packages/Newtonsoft.Json.8.0.1/lib/net35/Newtonsoft.Json.dll b/source/packages/Newtonsoft.Json.8.0.1/lib/net35/Newtonsoft.Json.dll deleted file mode 100644 index 78591ba40425e5cff5b2c2a96e5f5933869bbfef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 441344 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 diff --git a/source/packages/Newtonsoft.Json.8.0.1/lib/net35/Newtonsoft.Json.xml b/source/packages/Newtonsoft.Json.8.0.1/lib/net35/Newtonsoft.Json.xml deleted file mode 100644 index b1d5cb1..0000000 --- a/source/packages/Newtonsoft.Json.8.0.1/lib/net35/Newtonsoft.Json.xml +++ /dev/null @@ -1,8760 +0,0 @@ - - - - Newtonsoft.Json - - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Gets or sets a value indicating whether binary data reading should compatible with incorrect Json.NET 3.5 written binary. - - - true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. - - - - - Gets or sets a value indicating whether the root object will be read as a JSON array. - - - true if the root object will be read as a JSON array; otherwise, false. - - - - - Gets or sets the used when reading values from BSON. - - The used when reading values from BSON. - - - - Initializes a new instance of the class. - - The stream. - - - - Initializes a new instance of the class. - - The reader. - - - - Initializes a new instance of the class. - - The stream. - if set to true the root object will be read as a JSON array. - The used when reading values from BSON. - - - - Initializes a new instance of the class. - - The reader. - if set to true the root object will be read as a JSON array. - The used when reading values from BSON. - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Changes the to Closed. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets the used when writing values to BSON. - When set to no conversion will occur. - - The used when writing values to BSON. - - - - Initializes a new instance of the class. - - The stream. - - - - Initializes a new instance of the class. - - The writer. - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Writes the end. - - The token. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes raw JSON where a value is expected and updates the writer's state. - - The raw JSON to write. - - - - Writes the beginning of a JSON array. - - - - - Writes the beginning of a JSON object. - - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Closes this stream and the underlying stream. - - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value that represents a BSON object id. - - The Object ID value to write. - - - - Writes a BSON regex. - - The regex pattern. - The regex options. - - - - Represents a BSON Oid (object id). - - - - - Gets or sets the value of the Oid. - - The value of the Oid. - - - - Initializes a new instance of the class. - - The Oid value. - - - - Converts a binary value to and from a base 64 string value. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified value type. - - Type of the value. - - true if this instance can convert the specified value type; otherwise, false. - - - - - Converts a to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified value type. - - Type of the value. - - true if this instance can convert the specified value type; otherwise, false. - - - - - Create a custom object - - The object type to convert. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Creates an object which will then be populated by the serializer. - - Type of the object. - The created object. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Gets a value indicating whether this can write JSON. - - - true if this can write JSON; otherwise, false. - - - - - Provides a base class for converting a to and from JSON. - - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts an Entity Framework EntityKey to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from JSON and BSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from JSON and BSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts an to and from its name string value. - - - - - Gets or sets a value indicating whether the written enum text should be camel case. - - true if the written enum text will be camel case; otherwise, false. - - - - Gets or sets a value indicating whether integer values are allowed. - - true if integers are allowed; otherwise, false. - - - - Initializes a new instance of the class. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from a string (e.g. "1.2.3.4"). - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing property value of the JSON that is being converted. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from the ISO 8601 date format (e.g. 2008-04-12T12:53Z). - - - - - Gets or sets the date time styles used when converting a date to and from JSON. - - The date time styles used when converting a date to and from JSON. - - - - Gets or sets the date time format used when converting a date to and from JSON. - - The date time format used when converting a date to and from JSON. - - - - Gets or sets the culture used when converting a date to and from JSON. - - The culture used when converting a date to and from JSON. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Converts a to and from a JavaScript date constructor (e.g. new Date(52231943)). - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing property value of the JSON that is being converted. - The calling serializer. - The object value. - - - - Converts XML to and from JSON. - - - - - Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produces multiple root elements. - - The name of the deserialize root element. - - - - Gets or sets a flag to indicate whether to write the Json.NET array attribute. - This attribute helps preserve arrays when converting the written XML back to JSON. - - true if the array attibute is written to the XML; otherwise, false. - - - - Gets or sets a value indicating whether to write the root JSON object. - - true if the JSON root object is omitted; otherwise, false. - - - - Writes the JSON representation of the object. - - The to write to. - The calling serializer. - The value. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Checks if the attributeName is a namespace attribute. - - Attribute name to test. - The attribute name prefix if it has one, otherwise an empty string. - True if attribute name is for a namespace attribute, otherwise false. - - - - Determines whether this instance can convert the specified value type. - - Type of the value. - - true if this instance can convert the specified value type; otherwise, false. - - - - - Specifies how constructors are used when initializing objects during deserialization by the . - - - - - First attempt to use the public default constructor, then fall back to single paramatized constructor, then the non-public default constructor. - - - - - Json.NET will use a non-public default constructor before falling back to a paramatized constructor. - - - - - Specifies how dates are formatted when writing JSON text. - - - - - Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". - - - - - Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". - - - - - Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. - - - - - Date formatted strings are not parsed to a date type and are read as strings. - - - - - Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . - - - - - Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . - - - - - Specifies how to treat the time value when converting between string and . - - - - - Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. - - - - - Treat as a UTC. If the object represents a local time, it is converted to a UTC. - - - - - Treat as a local time if a is being converted to a string. - If a string is being converted to , convert to a local time if a time zone is specified. - - - - - Time zone information should be preserved when converting. - - - - - Specifies float format handling options when writing special floating point numbers, e.g. , - and with . - - - - - Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". - - - - - Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. - Note that this will produce non-valid JSON. - - - - - Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a property. - - - - - Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Floating point numbers are parsed to . - - - - - Floating point numbers are parsed to . - - - - - Specifies formatting options for the . - - - - - No special formatting is applied. This is the default. - - - - - Causes child objects to be indented according to the and settings. - - - - - Provides an interface for using pooled arrays. - - The array type content. - - - - Rent a array from the pool. This array must be returned when it is no longer needed. - - The minimum required length of the array. The returned array may be longer. - The rented array from the pool. This array must be returned when it is no longer needed. - - - - Return an array to the pool. - - The array that is being returned. - - - - Instructs the to use the specified constructor when deserializing that object. - - - - - Instructs the how to serialize the collection. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - The exception thrown when an error occurs during JSON serialization or deserialization. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - Instructs the to deserialize properties with no matching class member into the specified collection - and write values during serialization. - - - - - Gets or sets a value that indicates whether to write extension data when serializing the object. - - - true to write extension data when serializing the object; otherwise, false. The default is true. - - - - - Gets or sets a value that indicates whether to read extension data when deserializing the object. - - - true to read extension data when deserializing the object; otherwise, false. The default is true. - - - - - Initializes a new instance of the class. - - - - - Instructs the to always serialize the member, and require the member has a value. - - - - - Specifies how JSON comments are handled when loading JSON. - - - - - Ignore comments. - - - - - Load comments as a with type . - - - - - Specifies how line information is handled when loading JSON. - - - - - Ignore line information. - - - - - Load line information. - - - - - Represents a view of a . - - - - - Initializes a new instance of the class. - - The name. - - - - When overridden in a derived class, returns whether resetting an object changes its value. - - - true if resetting the component changes its value; otherwise, false. - - The component to test for reset capability. - - - - - When overridden in a derived class, gets the current value of the property on a component. - - - The value of a property for a given component. - - The component with the property for which to retrieve the value. - - - - - When overridden in a derived class, resets the value for this property of the component to the default value. - - The component with the property value that is to be reset to the default value. - - - - - When overridden in a derived class, sets the value of the component to a different value. - - The component with the property value that is to be set. - The new value. - - - - - When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. - - - true if the property should be persisted; otherwise, false. - - The component with the property to be examined for persistence. - - - - - When overridden in a derived class, gets the type of the component this property is bound to. - - - A that represents the type of component this property is bound to. When the or methods are invoked, the object specified might be an instance of this type. - - - - - When overridden in a derived class, gets a value indicating whether this property is read-only. - - - true if the property is read-only; otherwise, false. - - - - - When overridden in a derived class, gets the type of the property. - - - A that represents the type of the property. - - - - - Gets the hash code for the name of the member. - - - - The hash code for the name of the member. - - - - - Specifies the settings used when loading JSON. - - - - - Gets or sets how JSON comments are handled when loading JSON. - - The JSON comment handling. - - - - Gets or sets how JSON line info is handled when loading JSON. - - The JSON line info handling. - - - - Specifies the settings used when merging JSON. - - - - - Gets or sets the method used when merging JSON arrays. - - The method used when merging JSON arrays. - - - - Specifies how JSON arrays are merged together. - - - - Concatenate arrays. - - - Union arrays, skipping items that already exist. - - - Replace all array items. - - - Merge array items together, matched by index. - - - - Represents a raw JSON string. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class. - - The raw json. - - - - Creates an instance of with the content of the reader's current token. - - The reader. - An instance of with the content of the reader's current token. - - - - Represents a collection of objects. - - The type of token - - - - Gets the with the specified key. - - - - - - Compares tokens to determine whether they are equal. - - - - - Determines whether the specified objects are equal. - - The first object of type to compare. - The second object of type to compare. - - true if the specified objects are equal; otherwise, false. - - - - - Returns a hash code for the specified object. - - The for which a hash code is to be returned. - A hash code for the specified object. - The type of is a reference type and is null. - - - - Contains the LINQ to JSON extension methods. - - - - - Returns a collection of tokens that contains the ancestors of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains the ancestors of every token in the source collection. - - - - Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains every token in the source collection, the ancestors of every token in the source collection. - - - - Returns a collection of tokens that contains the descendants of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains the descendants of every token in the source collection. - - - - Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains every token in the source collection, and the descendants of every token in the source collection. - - - - Returns a collection of child properties of every object in the source collection. - - An of that contains the source collection. - An of that contains the properties of every object in the source collection. - - - - Returns a collection of child values of every object in the source collection with the given key. - - An of that contains the source collection. - The token key. - An of that contains the values of every token in the source collection with the given key. - - - - Returns a collection of child values of every object in the source collection. - - An of that contains the source collection. - An of that contains the values of every token in the source collection. - - - - Returns a collection of converted child values of every object in the source collection with the given key. - - The type to convert the values to. - An of that contains the source collection. - The token key. - An that contains the converted values of every token in the source collection with the given key. - - - - Returns a collection of converted child values of every object in the source collection. - - The type to convert the values to. - An of that contains the source collection. - An that contains the converted values of every token in the source collection. - - - - Converts the value. - - The type to convert the value to. - A cast as a of . - A converted value. - - - - Converts the value. - - The source collection type. - The type to convert the value to. - A cast as a of . - A converted value. - - - - Returns a collection of child tokens of every array in the source collection. - - The source collection type. - An of that contains the source collection. - An of that contains the values of every token in the source collection. - - - - Returns a collection of converted child tokens of every array in the source collection. - - An of that contains the source collection. - The type to convert the values to. - The source collection type. - An that contains the converted values of every token in the source collection. - - - - Returns the input typed as . - - An of that contains the source collection. - The input typed as . - - - - Returns the input typed as . - - The source collection type. - An of that contains the source collection. - The input typed as . - - - - Represents a JSON constructor. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets or sets the name of this constructor. - - The constructor name. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified name and content. - - The constructor name. - The contents of the constructor. - - - - Initializes a new instance of the class with the specified name and content. - - The constructor name. - The contents of the constructor. - - - - Initializes a new instance of the class with the specified name. - - The constructor name. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified key. - - The with the specified key. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Represents a token that can contain other tokens. - - - - - Occurs when the list changes or an item in the list changes. - - - - - Occurs before an item is added to the collection. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Raises the event. - - The instance containing the event data. - - - - Raises the event. - - The instance containing the event data. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Get the first child token of this token. - - - A containing the first child token of the . - - - - - Get the last child token of this token. - - - A containing the last child token of the . - - - - - Returns a collection of the child tokens of this token, in document order. - - - An of containing the child tokens of this , in document order. - - - - - Returns a collection of the child values of this token, in document order. - - The type to convert the values to. - - A containing the child values of this , in document order. - - - - - Returns a collection of the descendant tokens for this token in document order. - - An containing the descendant tokens of the . - - - - Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. - - An containing this token, and all the descendant tokens of the . - - - - Adds the specified content as children of this . - - The content to be added. - - - - Adds the specified content as the first children of this . - - The content to be added. - - - - Creates an that can be used to add tokens to the . - - An that is ready to have content written to it. - - - - Replaces the children nodes of this token with the specified content. - - The content. - - - - Removes the child nodes from this token. - - - - - Merge the specified content into this . - - The content to be merged. - - - - Merge the specified content into this using . - - The content to be merged. - The used to merge the content. - - - - Gets the count of child JSON tokens. - - The count of child JSON tokens - - - - Represents a collection of objects. - - The type of token - - - - An empty collection of objects. - - - - - Initializes a new instance of the struct. - - The enumerable. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Returns an enumerator that iterates through a collection. - - - An object that can be used to iterate through the collection. - - - - - Gets the with the specified key. - - - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Returns a hash code for this instance. - - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - - Represents a JSON object. - - - - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Occurs when a property value changes. - - - - - Occurs when a property value is changing. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified content. - - The contents of the object. - - - - Initializes a new instance of the class with the specified content. - - The contents of the object. - - - - Gets the node type for this . - - The type. - - - - Gets an of this object's properties. - - An of this object's properties. - - - - Gets a the specified name. - - The property name. - A with the specified name or null. - - - - Gets an of this object's property values. - - An of this object's property values. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets or sets the with the specified property name. - - - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - - - - Creates a from an object. - - The object that will be used to create . - A with the values of the specified object - - - - Creates a from an object. - - The object that will be used to create . - The that will be used to read the object. - A with the values of the specified object - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified property name. - - Name of the property. - The with the specified property name. - - - - Gets the with the specified property name. - The exact property name will be searched for first and if no matching property is found then - the will be used to match a property. - - Name of the property. - One of the enumeration values that specifies how the strings will be compared. - The with the specified property name. - - - - Tries to get the with the specified property name. - The exact property name will be searched for first and if no matching property is found then - the will be used to match a property. - - Name of the property. - The value. - One of the enumeration values that specifies how the strings will be compared. - true if a value was successfully retrieved; otherwise, false. - - - - Adds the specified property name. - - Name of the property. - The value. - - - - Removes the property with the specified name. - - Name of the property. - true if item was successfully removed; otherwise, false. - - - - Tries the get value. - - Name of the property. - The value. - true if a value was successfully retrieved; otherwise, false. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Raises the event with the provided arguments. - - Name of the property. - - - - Raises the event with the provided arguments. - - Name of the property. - - - - Returns the properties for this instance of a component. - - - A that represents the properties for this component instance. - - - - - Returns the properties for this instance of a component using the attribute array as a filter. - - An array of type that is used as a filter. - - A that represents the filtered properties for this component instance. - - - - - Returns a collection of custom attributes for this instance of a component. - - - An containing the attributes for this object. - - - - - Returns the class name of this instance of a component. - - - The class name of the object, or null if the class does not have a name. - - - - - Returns the name of this instance of a component. - - - The name of the object, or null if the object does not have a name. - - - - - Returns a type converter for this instance of a component. - - - A that is the converter for this object, or null if there is no for this object. - - - - - Returns the default event for this instance of a component. - - - An that represents the default event for this object, or null if this object does not have events. - - - - - Returns the default property for this instance of a component. - - - A that represents the default property for this object, or null if this object does not have properties. - - - - - Returns an editor of the specified type for this instance of a component. - - A that represents the editor for this object. - - An of the specified type that is the editor for this object, or null if the editor cannot be found. - - - - - Returns the events for this instance of a component using the specified attribute array as a filter. - - An array of type that is used as a filter. - - An that represents the filtered events for this component instance. - - - - - Returns the events for this instance of a component. - - - An that represents the events for this component instance. - - - - - Returns an object that contains the property described by the specified property descriptor. - - A that represents the property whose owner is to be found. - - An that represents the owner of the specified property. - - - - - Represents a JSON array. - - - - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified content. - - The contents of the array. - - - - Initializes a new instance of the class with the specified content. - - The contents of the array. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - - - - Creates a from an object. - - The object that will be used to create . - A with the values of the specified object - - - - Creates a from an object. - - The object that will be used to create . - The that will be used to read the object. - A with the values of the specified object - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets or sets the at the specified index. - - - - - - Determines the index of a specific item in the . - - The object to locate in the . - - The index of if found in the list; otherwise, -1. - - - - - Inserts an item to the at the specified index. - - The zero-based index at which should be inserted. - The object to insert into the . - - is not a valid index in the . - The is read-only. - - - - Removes the item at the specified index. - - The zero-based index of the item to remove. - - is not a valid index in the . - The is read-only. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Adds an item to the . - - The object to add to the . - The is read-only. - - - - Removes all items from the . - - The is read-only. - - - - Determines whether the contains a specific value. - - The object to locate in the . - - true if is found in the ; otherwise, false. - - - - - Copies to. - - The array. - Index of the array. - - - - Gets a value indicating whether the is read-only. - - true if the is read-only; otherwise, false. - - - - Removes the first occurrence of a specific object from the . - - The object to remove from the . - - true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . - - The is read-only. - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Gets the at the reader's current position. - - - - - Initializes a new instance of the class. - - The token to read from. - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Gets the path of the current JSON token. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets the at the writer's current position. - - - - - Gets the token being writen. - - The token being writen. - - - - Initializes a new instance of the class writing to the given . - - The container being written to. - - - - Initializes a new instance of the class. - - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the end. - - The token. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Represents an abstract JSON token. - - - - - Gets a comparer that can compare two tokens for value equality. - - A that can compare two nodes for value equality. - - - - Gets or sets the parent. - - The parent. - - - - Gets the root of this . - - The root of this . - - - - Gets the node type for this . - - The type. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Compares the values of two tokens, including the values of all descendant tokens. - - The first to compare. - The second to compare. - true if the tokens are equal; otherwise false. - - - - Gets the next sibling token of this node. - - The that contains the next sibling token. - - - - Gets the previous sibling token of this node. - - The that contains the previous sibling token. - - - - Gets the path of the JSON token. - - - - - Adds the specified content immediately after this token. - - A content object that contains simple content or a collection of content objects to be added after this token. - - - - Adds the specified content immediately before this token. - - A content object that contains simple content or a collection of content objects to be added before this token. - - - - Returns a collection of the ancestor tokens of this token. - - A collection of the ancestor tokens of this token. - - - - Returns a collection of tokens that contain this token, and the ancestors of this token. - - A collection of tokens that contain this token, and the ancestors of this token. - - - - Returns a collection of the sibling tokens after this token, in document order. - - A collection of the sibling tokens after this tokens, in document order. - - - - Returns a collection of the sibling tokens before this token, in document order. - - A collection of the sibling tokens before this token, in document order. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets the with the specified key converted to the specified type. - - The type to convert the token to. - The token key. - The converted token value. - - - - Get the first child token of this token. - - A containing the first child token of the . - - - - Get the last child token of this token. - - A containing the last child token of the . - - - - Returns a collection of the child tokens of this token, in document order. - - An of containing the child tokens of this , in document order. - - - - Returns a collection of the child tokens of this token, in document order, filtered by the specified type. - - The type to filter the child tokens on. - A containing the child tokens of this , in document order. - - - - Returns a collection of the child values of this token, in document order. - - The type to convert the values to. - A containing the child values of this , in document order. - - - - Removes this token from its parent. - - - - - Replaces this token with the specified token. - - The value. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Returns the indented JSON for this token. - - - The indented JSON for this token. - - - - - Returns the JSON for this token using the given formatting and converters. - - Indicates how the output is formatted. - A collection of which will be used when writing the token. - The JSON for this token using the given formatting and converters. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to []. - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from [] to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Creates an for this token. - - An that can be used to read this token and its descendants. - - - - Creates a from an object. - - The object that will be used to create . - A with the value of the specified object - - - - Creates a from an object using the specified . - - The object that will be used to create . - The that will be used when reading the object. - A with the value of the specified object - - - - Creates the specified .NET type from the . - - The object type that the token will be deserialized to. - The new object created from the JSON value. - - - - Creates the specified .NET type from the . - - The object type that the token will be deserialized to. - The new object created from the JSON value. - - - - Creates the specified .NET type from the using the specified . - - The object type that the token will be deserialized to. - The that will be used when creating the object. - The new object created from the JSON value. - - - - Creates the specified .NET type from the using the specified . - - The object type that the token will be deserialized to. - The that will be used when creating the object. - The new object created from the JSON value. - - - - Creates a from a . - - An positioned at the token to read into this . - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Creates a from a . - - An positioned at the token to read into this . - The used to load the JSON. - If this is null, default load settings will be used. - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - Creates a from a . - - An positioned at the token to read into this . - The used to load the JSON. - If this is null, default load settings will be used. - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Creates a from a . - - An positioned at the token to read into this . - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Selects a using a JPath expression. Selects the token that matches the object path. - - - A that contains a JPath expression. - - A , or null. - - - - Selects a using a JPath expression. Selects the token that matches the object path. - - - A that contains a JPath expression. - - A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. - A . - - - - Selects a collection of elements using a JPath expression. - - - A that contains a JPath expression. - - An that contains the selected elements. - - - - Selects a collection of elements using a JPath expression. - - - A that contains a JPath expression. - - A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. - An that contains the selected elements. - - - - Creates a new instance of the . All child tokens are recursively cloned. - - A new instance of the . - - - - Adds an object to the annotation list of this . - - The annotation to add. - - - - Get the first annotation object of the specified type from this . - - The type of the annotation to retrieve. - The first annotation object that matches the specified type, or null if no annotation is of the specified type. - - - - Gets the first annotation object of the specified type from this . - - The of the annotation to retrieve. - The first annotation object that matches the specified type, or null if no annotation is of the specified type. - - - - Gets a collection of annotations of the specified type for this . - - The type of the annotations to retrieve. - An that contains the annotations for this . - - - - Gets a collection of annotations of the specified type for this . - - The of the annotations to retrieve. - An of that contains the annotations that match the specified type for this . - - - - Removes the annotations of the specified type from this . - - The type of annotations to remove. - - - - Removes the annotations of the specified type from this . - - The of annotations to remove. - - - - Represents a JSON property. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets the property name. - - The property name. - - - - Gets or sets the property value. - - The property value. - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - The property name. - The property content. - - - - Initializes a new instance of the class. - - The property name. - The property content. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Specifies the type of token. - - - - - No token type has been set. - - - - - A JSON object. - - - - - A JSON array. - - - - - A JSON constructor. - - - - - A JSON object property. - - - - - A comment. - - - - - An integer value. - - - - - A float value. - - - - - A string value. - - - - - A boolean value. - - - - - A null value. - - - - - An undefined value. - - - - - A date value. - - - - - A raw JSON value. - - - - - A collection of bytes value. - - - - - A Guid value. - - - - - A Uri value. - - - - - A TimeSpan value. - - - - - Represents a value in JSON (string, integer, date, etc). - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Creates a comment with the given value. - - The value. - A comment with the given value. - - - - Creates a string with the given value. - - The value. - A string with the given value. - - - - Creates a null value. - - A null value. - - - - Creates a null value. - - A null value. - - - - Gets the node type for this . - - The type. - - - - Gets or sets the underlying token value. - - The underlying token value. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Indicates whether the current object is equal to another object of the same type. - - - true if the current object is equal to the parameter; otherwise, false. - - An object to compare with this object. - - - - Determines whether the specified is equal to the current . - - The to compare with the current . - - true if the specified is equal to the current ; otherwise, false. - - - The parameter is null. - - - - - Serves as a hash function for a particular type. - - - A hash code for the current . - - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format. - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format provider. - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format. - The format provider. - - A that represents this instance. - - - - - Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. - - An object to compare with this instance. - - A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: - Value - Meaning - Less than zero - This instance is less than . - Zero - This instance is equal to . - Greater than zero - This instance is greater than . - - - is not the same type as this instance. - - - - - Specifies metadata property handling options for the . - - - - - Read metadata properties located at the start of a JSON object. - - - - - Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. - - - - - Do not try to read metadata properties. - - - - - Represents a trace writer that writes to the application's instances. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of Info will exclude Verbose messages and include Info, - Warning and Error messages. - - - The that will be used to filter the trace messages passed to the writer. - - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Provides methods to get attributes. - - - - - Returns a collection of all of the attributes, or an empty collection if there are no attributes. - - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. - - The type of the attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Represents a trace writer. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of Info will exclude Verbose messages and include Info, - Warning and Error messages. - - The that will be used to filter the trace messages passed to the writer. - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Contract details for a used by the . - - - - - Gets or sets the default collection items . - - The converter. - - - - Gets or sets a value indicating whether the collection items preserve object references. - - true if collection items preserve object references; otherwise, false. - - - - Gets or sets the collection item reference loop handling. - - The reference loop handling. - - - - Gets or sets the collection item type name handling. - - The type name handling. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Represents a trace writer that writes to memory. When the trace message limit is - reached then old trace messages will be removed as new messages are added. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of Info will exclude Verbose messages and include Info, - Warning and Error messages. - - - The that will be used to filter the trace messages passed to the writer. - - - - - Initializes a new instance of the class. - - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Returns an enumeration of the most recent trace messages. - - An enumeration of the most recent trace messages. - - - - Returns a of the most recent trace messages. - - - A of the most recent trace messages. - - - - - Provides methods to get attributes from a , , or . - - - - - Initializes a new instance of the class. - - The instance to get attributes for. This parameter should be a , , or . - - - - Returns a collection of all of the attributes, or an empty collection if there are no attributes. - - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. - - The type of the attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Contract details for a used by the . - - - - - Gets or sets the ISerializable object constructor. - - The ISerializable object constructor. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Get and set values for a using dynamic methods. - - - - - Initializes a new instance of the class. - - The member info. - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Provides data for the Error event. - - - - - Gets the current object the error event is being raised against. - - The current object the error event is being raised against. - - - - Gets the error context. - - The error context. - - - - Initializes a new instance of the class. - - The current object. - The error context. - - - - Resolves member mappings for a type, camel casing property names. - - - - - Initializes a new instance of the class. - - - - - Resolves the name of the property. - - Name of the property. - The property name camel cased. - - - - Used by to resolves a for a given . - - - - - Gets a value indicating whether members are being get and set using dynamic code generation. - This value is determined by the runtime permissions available. - - - true if using dynamic code generation; otherwise, false. - - - - - Gets or sets the default members search flags. - - The default members search flags. - - - - Gets or sets a value indicating whether compiler generated members should be serialized. - - - true if serialized compiler generated members; otherwise, false. - - - - - Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. - - - true if the interface will be ignored when serializing and deserializing types; otherwise, false. - - - - - Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. - - - true if the attribute will be ignored when serializing and deserializing types; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - If set to true the will use a cached shared with other resolvers of the same type. - Sharing the cache will significantly improve performance with multiple resolver instances because expensive reflection will only - happen once. This setting can cause unexpected behavior if different instances of the resolver are suppose to produce different - results. When set to false it is highly recommended to reuse instances with the . - - - - - Resolves the contract for a given type. - - The type to resolve a contract for. - The contract for a given type. - - - - Gets the serializable members for the type. - - The type to get serializable members for. - The serializable members for the type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates the constructor parameters. - - The constructor to create properties for. - The type's member properties. - Properties for the given . - - - - Creates a for the given . - - The matching member property. - The constructor parameter. - A created for the given . - - - - Resolves the default for the contract. - - Type of the object. - The contract's default . - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Determines which contract type is created for the given type. - - Type of the object. - A for the given type. - - - - Creates properties for the given . - - The type to create properties for. - /// The member serialization mode for the type. - Properties for the given . - - - - Creates the used by the serializer to get and set values from a member. - - The member. - The used by the serializer to get and set values from a member. - - - - Creates a for the given . - - The member's parent . - The member to create a for. - A created for the given . - - - - Resolves the name of the property. - - Name of the property. - Resolved name of the property. - - - - Resolves the key of the dictionary. By default is used to resolve dictionary keys. - - Key of the dictionary. - Resolved key of the dictionary. - - - - Gets the resolved name of the property. - - Name of the property. - Name of the property. - - - - The default serialization binder used when resolving and loading classes from type names. - - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - Specifies the name of the serialized object. - Specifies the name of the serialized object. - - The type of the object the formatter creates a new instance of. - - - - - Provides information surrounding an error. - - - - - Gets the error. - - The error. - - - - Gets the original object that caused the error. - - The original object that caused the error. - - - - Gets the member that caused the error. - - The member that caused the error. - - - - Gets the path of the JSON location where the error occurred. - - The path of the JSON location where the error occurred. - - - - Gets or sets a value indicating whether this is handled. - - true if handled; otherwise, false. - - - - Used by to resolves a for a given . - - - - - - - - - Resolves the contract for a given type. - - The type to resolve a contract for. - The contract for a given type. - - - - Provides methods to get and set values. - - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Contract details for a used by the . - - - - - Gets the of the collection items. - - The of the collection items. - - - - Gets a value indicating whether the collection type is a multidimensional array. - - true if the collection type is a multidimensional array; otherwise, false. - - - - Gets or sets the function used to create the object. When set this function will override . - - The function used to create the object. - - - - Gets a value indicating whether the creator has a parameter with the collection values. - - true if the creator has a parameter with the collection values; otherwise, false. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Handles serialization callback events. - - The object that raised the callback event. - The streaming context. - - - - Handles serialization error callback events. - - The object that raised the callback event. - The streaming context. - The error context. - - - - Sets extension data for an object during deserialization. - - The object to set extension data on. - The extension data key. - The extension data value. - - - - Gets extension data for an object during serialization. - - The object to set extension data on. - - - - Contract details for a used by the . - - - - - Gets the underlying type for the contract. - - The underlying type for the contract. - - - - Gets or sets the type created during deserialization. - - The type created during deserialization. - - - - Gets or sets whether this type contract is serialized as a reference. - - Whether this type contract is serialized as a reference. - - - - Gets or sets the default for this contract. - - The converter. - - - - Gets or sets all methods called immediately after deserialization of the object. - - The methods called immediately after deserialization of the object. - - - - Gets or sets all methods called during deserialization of the object. - - The methods called during deserialization of the object. - - - - Gets or sets all methods called after serialization of the object graph. - - The methods called after serialization of the object graph. - - - - Gets or sets all methods called before serialization of the object. - - The methods called before serialization of the object. - - - - Gets or sets all method called when an error is thrown during the serialization of the object. - - The methods called when an error is thrown during the serialization of the object. - - - - Gets or sets the method called immediately after deserialization of the object. - - The method called immediately after deserialization of the object. - - - - Gets or sets the method called during deserialization of the object. - - The method called during deserialization of the object. - - - - Gets or sets the method called after serialization of the object graph. - - The method called after serialization of the object graph. - - - - Gets or sets the method called before serialization of the object. - - The method called before serialization of the object. - - - - Gets or sets the method called when an error is thrown during the serialization of the object. - - The method called when an error is thrown during the serialization of the object. - - - - Gets or sets the default creator method used to create the object. - - The default creator method used to create the object. - - - - Gets or sets a value indicating whether the default creator is non public. - - true if the default object creator is non-public; otherwise, false. - - - - Contract details for a used by the . - - - - - Gets or sets the property name resolver. - - The property name resolver. - - - - Gets or sets the dictionary key resolver. - - The dictionary key resolver. - - - - Gets the of the dictionary keys. - - The of the dictionary keys. - - - - Gets the of the dictionary values. - - The of the dictionary values. - - - - Gets or sets the function used to create the object. When set this function will override . - - The function used to create the object. - - - - Gets a value indicating whether the creator has a parameter with the dictionary values. - - true if the creator has a parameter with the dictionary values; otherwise, false. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Maps a JSON property to a .NET member or constructor parameter. - - - - - Gets or sets the name of the property. - - The name of the property. - - - - Gets or sets the type that declared this property. - - The type that declared this property. - - - - Gets or sets the order of serialization of a member. - - The numeric order of serialization. - - - - Gets or sets the name of the underlying member or parameter. - - The name of the underlying member or parameter. - - - - Gets the that will get and set the during serialization. - - The that will get and set the during serialization. - - - - Gets or sets the for this property. - - The for this property. - - - - Gets or sets the type of the property. - - The type of the property. - - - - Gets or sets the for the property. - If set this converter takes presidence over the contract converter for the property type. - - The converter. - - - - Gets or sets the member converter. - - The member converter. - - - - Gets or sets a value indicating whether this is ignored. - - true if ignored; otherwise, false. - - - - Gets or sets a value indicating whether this is readable. - - true if readable; otherwise, false. - - - - Gets or sets a value indicating whether this is writable. - - true if writable; otherwise, false. - - - - Gets or sets a value indicating whether this has a member attribute. - - true if has a member attribute; otherwise, false. - - - - Gets the default value. - - The default value. - - - - Gets or sets a value indicating whether this is required. - - A value indicating whether this is required. - - - - Gets or sets a value indicating whether this property preserves object references. - - - true if this instance is reference; otherwise, false. - - - - - Gets or sets the property null value handling. - - The null value handling. - - - - Gets or sets the property default value handling. - - The default value handling. - - - - Gets or sets the property reference loop handling. - - The reference loop handling. - - - - Gets or sets the property object creation handling. - - The object creation handling. - - - - Gets or sets or sets the type name handling. - - The type name handling. - - - - Gets or sets a predicate used to determine whether the property should be serialize. - - A predicate used to determine whether the property should be serialize. - - - - Gets or sets a predicate used to determine whether the property should be deserialized. - - A predicate used to determine whether the property should be deserialized. - - - - Gets or sets a predicate used to determine whether the property should be serialized. - - A predicate used to determine whether the property should be serialized. - - - - Gets or sets an action used to set whether the property has been deserialized. - - An action used to set whether the property has been deserialized. - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Gets or sets the converter used when serializing the property's collection items. - - The collection's items converter. - - - - Gets or sets whether this property's collection items are serialized as a reference. - - Whether this property's collection items are serialized as a reference. - - - - Gets or sets the the type name handling used when serializing the property's collection items. - - The collection's items type name handling. - - - - Gets or sets the the reference loop handling used when serializing the property's collection items. - - The collection's items reference loop handling. - - - - A collection of objects. - - - - - Initializes a new instance of the class. - - The type. - - - - When implemented in a derived class, extracts the key from the specified element. - - The element from which to extract the key. - The key for the specified element. - - - - Adds a object. - - The property to add to the collection. - - - - Gets the closest matching object. - First attempts to get an exact case match of propertyName and then - a case insensitive match. - - Name of the property. - A matching property if found. - - - - Gets a property by property name. - - The name of the property to get. - Type property name string comparison. - A matching property if found. - - - - Used to resolve references when serializing and deserializing JSON by the . - - - - - Resolves a reference to its object. - - The serialization context. - The reference to resolve. - The object that - - - - Gets the reference for the sepecified object. - - The serialization context. - The object to get a reference for. - The reference to the object. - - - - Determines whether the specified object is referenced. - - The serialization context. - The object to test for a reference. - - true if the specified object is referenced; otherwise, false. - - - - - Adds a reference to the specified object. - - The serialization context. - The reference. - The object to reference. - - - - Contract details for a used by the . - - - - - Gets or sets the object member serialization. - - The member object serialization. - - - - Gets or sets a value that indicates whether the object's properties are required. - - - A value indicating whether the object's properties are required. - - - - - Gets the object's properties. - - The object's properties. - - - - Gets the constructor parameters required for any non-default constructor - - - - - Gets a collection of instances that define the parameters used with . - - - - - Gets or sets the override constructor used to create the object. - This is set when a constructor is marked up using the - JsonConstructor attribute. - - The override constructor. - - - - Gets or sets the parametrized constructor used to create the object. - - The parametrized constructor. - - - - Gets or sets the function used to create the object. When set this function will override . - This function is called with a collection of arguments which are defined by the collection. - - The function used to create the object. - - - - Gets or sets the extension data setter. - - - - - Gets or sets the extension data getter. - - - - - Gets or sets the extension data value type. - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Lookup and create an instance of the JsonConverter type described by the argument. - - The JsonConverter type to create. - Optional arguments to pass to an initializing constructor of the JsonConverter. - If null, the default constructor is used. - - - - Create a factory function that can be used to create instances of a JsonConverter described by the - argument type. The returned function can then be used to either invoke the converter's default ctor, or any - parameterized constructors by way of an object array. - - - - - Get and set values for a using reflection. - - - - - Initializes a new instance of the class. - - The member info. - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - When applied to a method, specifies that the method is called when an error occurs serializing an object. - - - - - Represents a method that constructs an object. - - The object type to create. - - - - Specifies how strings are escaped when writing JSON text. - - - - - Only control characters (e.g. newline) are escaped. - - - - - All non-ASCII and control characters (e.g. newline) are escaped. - - - - - HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. - - - - - Converts the value to the specified type. If the value is unable to be converted, the - value is checked whether it assignable to the specified type. - - The value to convert. - The culture to use when converting. - The type to convert or cast the value to. - - The converted type. If conversion was unsuccessful, the initial value - is returned if assignable to the target type. - - - - - Gets a dictionary of the names and values of an Enum type. - - - - - - Gets a dictionary of the names and values of an Enum type. - - The enum type to get names and values for. - - - - - Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer. - - - - - Determines whether the collection is null or empty. - - The collection. - - true if the collection is null or empty; otherwise, false. - - - - - Adds the elements of the specified collection to the specified generic IList. - - The list to add to. - The collection of elements to add. - - - - Returns the index of the first occurrence in a sequence by using a specified IEqualityComparer{TSource}. - - The type of the elements of source. - A sequence in which to locate a value. - The object to locate in the sequence - An equality comparer to compare values. - The zero-based index of the first occurrence of value within the entire sequence, if found; otherwise, –1. - - - - Gets the type of the typed collection's items. - - The type. - The type of the typed collection's items. - - - - Gets the member's underlying type. - - The member. - The underlying type of the member. - - - - Determines whether the member is an indexed property. - - The member. - - true if the member is an indexed property; otherwise, false. - - - - - Determines whether the property is an indexed property. - - The property. - - true if the property is an indexed property; otherwise, false. - - - - - Gets the member's value on the object. - - The member. - The target object. - The member's value on the object. - - - - Sets the member's value on the target object. - - The member. - The target. - The value. - - - - Determines whether the specified MemberInfo can be read. - - The MemberInfo to determine whether can be read. - /// if set to true then allow the member to be gotten non-publicly. - - true if the specified MemberInfo can be read; otherwise, false. - - - - - Determines whether the specified MemberInfo can be set. - - The MemberInfo to determine whether can be set. - if set to true then allow the member to be set non-publicly. - if set to true then allow the member to be set if read-only. - - true if the specified MemberInfo can be set; otherwise, false. - - - - - Determines whether the string is all white space. Empty string will return false. - - The string to test whether it is all white space. - - true if the string is all white space; otherwise, false. - - - - - Nulls an empty string. - - The string. - Null if the string was null, otherwise the string unchanged. - - - - Indicating whether a property is required. - - - - - The property is not required. The default state. - - - - - The property must be defined in JSON but can be a null value. - - - - - The property must be defined in JSON and cannot be a null value. - - - - - The property is not required but it cannot be a null value. - - - - - Specifies reference handling options for the . - Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement ISerializable. - - - - - - - - Do not preserve references when serializing types. - - - - - Preserve references when serializing into a JSON object structure. - - - - - Preserve references when serializing into a JSON array structure. - - - - - Preserve references when serializing. - - - - - Provides an interface to enable a class to return line and position information. - - - - - Gets a value indicating whether the class can return line information. - - - true if LineNumber and LinePosition can be provided; otherwise, false. - - - - - Gets the current line number. - - The current line number or 0 if no line information is available (for example, HasLineInfo returns false). - - - - Gets the current line position. - - The current line position or 0 if no line information is available (for example, HasLineInfo returns false). - - - - Instructs the how to serialize the collection. - - - - - Gets or sets a value indicating whether null items are allowed in the collection. - - true if null items are allowed in the collection; otherwise, false. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with a flag indicating whether the array can contain null items - - A flag indicating whether the array can contain null items. - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Instructs the how to serialize the object. - - - - - Gets or sets the id. - - The id. - - - - Gets or sets the title. - - The title. - - - - Gets or sets the description. - - The description. - - - - Gets the collection's items converter. - - The collection's items converter. - - - - The parameter list to use when constructing the JsonConverter described by ItemConverterType. - If null, the default constructor is used. - When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number, - order, and type of these parameters. - - - [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] - - - - - Gets or sets a value that indicates whether to preserve object references. - - - true to keep object reference; otherwise, false. The default is false. - - - - - Gets or sets a value that indicates whether to preserve collection's items references. - - - true to keep collection's items object references; otherwise, false. The default is false. - - - - - Gets or sets the reference loop handling used when serializing the collection's items. - - The reference loop handling. - - - - Gets or sets the type name handling used when serializing the collection's items. - - The type name handling. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Specifies default value handling options for the . - - - - - - - - - Include members where the member value is the same as the member's default value when serializing objects. - Included members are written to JSON. Has no effect when deserializing. - - - - - Ignore members where the member value is the same as the member's default value when serializing objects - so that is is not written to JSON. - This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, - decimals and floating point numbers; and false for booleans). The default value ignored can be changed by - placing the on the property. - - - - - Members with a default value but no JSON will be set to their default value when deserializing. - - - - - Ignore members where the member value is the same as the member's default value when serializing objects - and sets members to their default value when deserializing. - - - - - Instructs the to use the specified when serializing the member or class. - - - - - Gets the of the converter. - - The of the converter. - - - - The parameter list to use when constructing the JsonConverter described by ConverterType. - If null, the default constructor is used. - - - - - Initializes a new instance of the class. - - Type of the converter. - - - - Initializes a new instance of the class. - - Type of the converter. - Parameter list to use when constructing the JsonConverter. Can be null. - - - - Instructs the how to serialize the object. - - - - - Gets or sets the member serialization. - - The member serialization. - - - - Gets or sets a value that indicates whether the object's properties are required. - - - A value indicating whether the object's properties are required. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified member serialization. - - The member serialization. - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Specifies the settings on a object. - - - - - Gets or sets how reference loops (e.g. a class referencing itself) is handled. - - Reference loop handling. - - - - Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. - - Missing member handling. - - - - Gets or sets how objects are created during deserialization. - - The object creation handling. - - - - Gets or sets how null values are handled during serialization and deserialization. - - Null value handling. - - - - Gets or sets how null default are handled during serialization and deserialization. - - The default value handling. - - - - Gets or sets a collection that will be used during serialization. - - The converters. - - - - Gets or sets how object references are preserved by the serializer. - - The preserve references handling. - - - - Gets or sets how type name writing and reading is handled by the serializer. - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - The type name handling. - - - - Gets or sets how metadata properties are used during deserialization. - - The metadata properties handling. - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - - The type name assembly format. - - - - Gets or sets how constructors are used during deserialization. - - The constructor handling. - - - - Gets or sets the contract resolver used by the serializer when - serializing .NET objects to JSON and vice versa. - - The contract resolver. - - - - Gets or sets the equality comparer used by the serializer when comparing references. - - The equality comparer. - - - - Gets or sets the used by the serializer when resolving references. - - The reference resolver. - - - - Gets or sets a function that creates the used by the serializer when resolving references. - - A function that creates the used by the serializer when resolving references. - - - - Gets or sets the used by the serializer when writing trace messages. - - The trace writer. - - - - Gets or sets the used by the serializer when resolving type names. - - The binder. - - - - Gets or sets the error handler called during serialization and deserialization. - - The error handler called during serialization and deserialization. - - - - Gets or sets the used by the serializer when invoking serialization callback methods. - - The context. - - - - Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text. - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling during serialization and deserialization. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written as JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Gets a value indicating whether there will be a check for additional content after deserializing an object. - - - true if there will be a check for additional content after deserializing an object; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - - Represents a reader that provides validation. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Sets an event handler for receiving schema validation errors. - - - - - Gets the text value of the current JSON token. - - - - - - Gets the depth of the current token in the JSON document. - - The depth of the current token in the JSON document. - - - - Gets the path of the current JSON token. - - - - - Gets the quotation mark character used to enclose the value of a string. - - - - - - Gets the type of the current JSON token. - - - - - - Gets the Common Language Runtime (CLR) type for the current JSON token. - - - - - - Initializes a new instance of the class that - validates the content returned from the given . - - The to read from while validating. - - - - Gets or sets the schema. - - The schema. - - - - Gets the used to construct this . - - The specified in the constructor. - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream as a []. - - - A [] or a null reference if the next JSON token is null. - - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Specifies the member serialization options for the . - - - - - All public members are serialized by default. Members can be excluded using or . - This is the default member serialization mode. - - - - - Only members must be marked with or are serialized. - This member serialization mode can also be set by marking the class with . - - - - - All public and private fields are serialized. Members can be excluded using or . - This member serialization mode can also be set by marking the class with - and setting IgnoreSerializableAttribute on to false. - - - - - Specifies how object creation is handled by the . - - - - - Reuse existing objects, create new objects when needed. - - - - - Only reuse existing objects. - - - - - Always create new objects. - - - - - Represents a reader that provides fast, non-cached, forward-only access to JSON text data. - - - - - Initializes a new instance of the class with the specified . - - The TextReader containing the XML data to read. - - - - Gets or sets the reader's character buffer pool. - - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a []. - - A [] or a null reference if the next JSON token is null. This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Changes the state to closed. - - - - - Gets a value indicating whether the class can return line information. - - - true if LineNumber and LinePosition can be provided; otherwise, false. - - - - - Gets the current line number. - - - The current line number or 0 if no line information is available (for example, HasLineInfo returns false). - - - - - Gets the current line position. - - - The current line position or 0 if no line information is available (for example, HasLineInfo returns false). - - - - - Instructs the to always serialize the member with the specified name. - - - - - Gets or sets the converter used when serializing the property's collection items. - - The collection's items converter. - - - - The parameter list to use when constructing the JsonConverter described by ItemConverterType. - If null, the default constructor is used. - When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number, - order, and type of these parameters. - - - [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] - - - - - Gets or sets the null value handling used when serializing this property. - - The null value handling. - - - - Gets or sets the default value handling used when serializing this property. - - The default value handling. - - - - Gets or sets the reference loop handling used when serializing this property. - - The reference loop handling. - - - - Gets or sets the object creation handling used when deserializing this property. - - The object creation handling. - - - - Gets or sets the type name handling used when serializing this property. - - The type name handling. - - - - Gets or sets whether this property's value is serialized as a reference. - - Whether this property's value is serialized as a reference. - - - - Gets or sets the order of serialization of a member. - - The numeric order of serialization. - - - - Gets or sets a value indicating whether this property is required. - - - A value indicating whether this property is required. - - - - - Gets or sets the name of the property. - - The name of the property. - - - - Gets or sets the the reference loop handling used when serializing the property's collection items. - - The collection's items reference loop handling. - - - - Gets or sets the the type name handling used when serializing the property's collection items. - - The collection's items type name handling. - - - - Gets or sets whether this property's collection items are serialized as a reference. - - Whether this property's collection items are serialized as a reference. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified name. - - Name of the property. - - - - Instructs the not to serialize the public field or public read/write property value. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets the writer's character array pool. - - - - - Gets or sets how many IndentChars to write for each level in the hierarchy when is set to Formatting.Indented. - - - - - Gets or sets which character to use to quote attribute values. - - - - - Gets or sets which character to use for indenting when is set to Formatting.Indented. - - - - - Gets or sets a value indicating whether object names will be surrounded with quotes. - - - - - Creates an instance of the JsonWriter class using the specified . - - The TextWriter to write to. - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the specified end token. - - The end token to write. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - A flag to indicate whether the text should be escaped when it is written as a JSON property name. - - - - Writes indent characters. - - - - - Writes the JSON value delimiter. - - - - - Writes an indent space. - - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes out the given white space. - - The string of white space characters. - - - - The exception thrown when an error occurs while reading JSON text. - - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - The exception thrown when an error occurs while reading JSON text. - - - - - Gets the line number indicating where the error occurred. - - The line number indicating where the error occurred. - - - - Gets the line position indicating where the error occurred. - - The line position indicating where the error occurred. - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - Converts an object to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - - Gets the of the JSON produced by the JsonConverter. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The of the JSON produced by the JsonConverter. - - - - Gets a value indicating whether this can read JSON. - - true if this can read JSON; otherwise, false. - - - - Gets a value indicating whether this can write JSON. - - true if this can write JSON; otherwise, false. - - - - Represents a collection of . - - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Specifies the state of the reader. - - - - - The Read method has not been called. - - - - - The end of the file has been reached successfully. - - - - - Reader is at a property. - - - - - Reader is at the start of an object. - - - - - Reader is in an object. - - - - - Reader is at the start of an array. - - - - - Reader is in an array. - - - - - The Close method has been called. - - - - - Reader has just read a value. - - - - - Reader is at the start of a constructor. - - - - - Reader in a constructor. - - - - - An error occurred that prevents the read operation from continuing. - - - - - The end of the file has been reached successfully. - - - - - Gets the current reader state. - - The current reader state. - - - - Gets or sets a value indicating whether the underlying stream or - should be closed when the reader is closed. - - - true to close the underlying stream or when - the reader is closed; otherwise false. The default is true. - - - - - Gets or sets a value indicating whether multiple pieces of JSON content can - be read from a continuous stream without erroring. - - - true to support reading multiple pieces of JSON content; otherwise false. The default is false. - - - - - Gets the quotation mark character used to enclose the value of a string. - - - - - Get or set how time zones are handling when reading JSON. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how custom date formatted strings are parsed when reading JSON. - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Gets the type of the current JSON token. - - - - - Gets the text value of the current JSON token. - - - - - Gets The Common Language Runtime (CLR) type for the current JSON token. - - - - - Gets the depth of the current token in the JSON document. - - The depth of the current token in the JSON document. - - - - Gets the path of the current JSON token. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Initializes a new instance of the class with the specified . - - - - - Reads the next JSON token from the stream. - - true if the next token was read successfully; false if there are no more tokens to read. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a []. - - A [] or a null reference if the next JSON token is null. This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Skips the children of the current token. - - - - - Sets the current token. - - The new token. - - - - Sets the current token and value. - - The new token. - The value. - - - - Sets the state based on current token type. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Releases unmanaged and - optionally - managed resources - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Changes the to Closed. - - - - - Provides methods for converting between common language runtime types and JSON types. - - - - - - - - Gets or sets a function that creates default . - Default settings are automatically used by serialization methods on , - and and on . - To serialize without using any default settings create a with - . - - - - - Represents JavaScript's boolean value true as a string. This field is read-only. - - - - - Represents JavaScript's boolean value false as a string. This field is read-only. - - - - - Represents JavaScript's null as a string. This field is read-only. - - - - - Represents JavaScript's undefined as a string. This field is read-only. - - - - - Represents JavaScript's positive infinity as a string. This field is read-only. - - - - - Represents JavaScript's negative infinity as a string. This field is read-only. - - - - - Represents JavaScript's NaN as a string. This field is read-only. - - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation using the specified. - - The value to convert. - The format the date will be converted to. - The time zone handling when the date is converted to a string. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation using the specified. - - The value to convert. - The format the date will be converted to. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - The string delimiter character. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - The string delimiter character. - The string escape handling. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Serializes the specified object to a JSON string. - - The object to serialize. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using formatting. - - The object to serialize. - Indicates how the output is formatted. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a collection of . - - The object to serialize. - A collection converters used while serializing. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using formatting and a collection of . - - The object to serialize. - Indicates how the output is formatted. - A collection converters used while serializing. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using . - - The object to serialize. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a type, formatting and . - - The object to serialize. - The used to serialize the object. - If this is null, default serialization settings will be used. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using formatting and . - - The object to serialize. - Indicates how the output is formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a type, formatting and . - - The object to serialize. - Indicates how the output is formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - A JSON string representation of the object. - - - - - Deserializes the JSON to a .NET object. - - The JSON to deserialize. - The deserialized object from the JSON string. - - - - Deserializes the JSON to a .NET object using . - - The JSON to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type. - - The JSON to deserialize. - The of object being deserialized. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type. - - The type of the object to deserialize to. - The JSON to deserialize. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the given anonymous type. - - - The anonymous type to deserialize to. This can't be specified - traditionally and must be infered from the anonymous type passed - as a parameter. - - The JSON to deserialize. - The anonymous type object. - The deserialized anonymous type from the JSON string. - - - - Deserializes the JSON to the given anonymous type using . - - - The anonymous type to deserialize to. This can't be specified - traditionally and must be infered from the anonymous type passed - as a parameter. - - The JSON to deserialize. - The anonymous type object. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized anonymous type from the JSON string. - - - - Deserializes the JSON to the specified .NET type using a collection of . - - The type of the object to deserialize to. - The JSON to deserialize. - Converters to use while deserializing. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using . - - The type of the object to deserialize to. - The object to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using a collection of . - - The JSON to deserialize. - The type of the object to deserialize. - Converters to use while deserializing. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using . - - The JSON to deserialize. - The type of the object to deserialize to. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Populates the object with values from the JSON string. - - The JSON to populate values from. - The target object to populate values onto. - - - - Populates the object with values from the JSON string using . - - The JSON to populate values from. - The target object to populate values onto. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - - - - Serializes the XML node to a JSON string. - - The node to serialize. - A JSON string of the XmlNode. - - - - Serializes the XML node to a JSON string using formatting. - - The node to serialize. - Indicates how the output is formatted. - A JSON string of the XmlNode. - - - - Serializes the XML node to a JSON string using formatting and omits the root object if is true. - - The node to serialize. - Indicates how the output is formatted. - Omits writing the root object. - A JSON string of the XmlNode. - - - - Deserializes the XmlNode from a JSON string. - - The JSON string. - The deserialized XmlNode - - - - Deserializes the XmlNode from a JSON string nested in a root elment specified by . - - The JSON string. - The name of the root element to append when deserializing. - The deserialized XmlNode - - - - Deserializes the XmlNode from a JSON string nested in a root elment specified by - and writes a .NET array attribute for collections. - - The JSON string. - The name of the root element to append when deserializing. - - A flag to indicate whether to write the Json.NET array attribute. - This attribute helps preserve arrays when converting the written XML back to JSON. - - The deserialized XmlNode - - - - Serializes the to a JSON string. - - The node to convert to JSON. - A JSON string of the XNode. - - - - Serializes the to a JSON string using formatting. - - The node to convert to JSON. - Indicates how the output is formatted. - A JSON string of the XNode. - - - - Serializes the to a JSON string using formatting and omits the root object if is true. - - The node to serialize. - Indicates how the output is formatted. - Omits writing the root object. - A JSON string of the XNode. - - - - Deserializes the from a JSON string. - - The JSON string. - The deserialized XNode - - - - Deserializes the from a JSON string nested in a root elment specified by . - - The JSON string. - The name of the root element to append when deserializing. - The deserialized XNode - - - - Deserializes the from a JSON string nested in a root elment specified by - and writes a .NET array attribute for collections. - - The JSON string. - The name of the root element to append when deserializing. - - A flag to indicate whether to write the Json.NET array attribute. - This attribute helps preserve arrays when converting the written XML back to JSON. - - The deserialized XNode - - - - The exception thrown when an error occurs during JSON serialization or deserialization. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - Serializes and deserializes objects into and from the JSON format. - The enables you to control how objects are encoded into JSON. - - - - - Occurs when the errors during serialization and deserialization. - - - - - Gets or sets the used by the serializer when resolving references. - - - - - Gets or sets the used by the serializer when resolving type names. - - - - - Gets or sets the used by the serializer when writing trace messages. - - The trace writer. - - - - Gets or sets the equality comparer used by the serializer when comparing references. - - The equality comparer. - - - - Gets or sets how type name writing and reading is handled by the serializer. - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - - The type name assembly format. - - - - Gets or sets how object references are preserved by the serializer. - - - - - Get or set how reference loops (e.g. a class referencing itself) is handled. - - - - - Get or set how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. - - - - - Get or set how null values are handled during serialization and deserialization. - - - - - Get or set how null default are handled during serialization and deserialization. - - - - - Gets or sets how objects are created during deserialization. - - The object creation handling. - - - - Gets or sets how constructors are used during deserialization. - - The constructor handling. - - - - Gets or sets how metadata properties are used during deserialization. - - The metadata properties handling. - - - - Gets a collection that will be used during serialization. - - Collection that will be used during serialization. - - - - Gets or sets the contract resolver used by the serializer when - serializing .NET objects to JSON and vice versa. - - - - - Gets or sets the used by the serializer when invoking serialization callback methods. - - The context. - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling during serialization and deserialization. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written as JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. - - - true if there will be a check for additional JSON content after deserializing an object; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Creates a new instance. - The will not use default settings - from . - - - A new instance. - The will not use default settings - from . - - - - - Creates a new instance using the specified . - The will not use default settings - from . - - The settings to be applied to the . - - A new instance using the specified . - The will not use default settings - from . - - - - - Creates a new instance. - The will use default settings - from . - - - A new instance. - The will use default settings - from . - - - - - Creates a new instance using the specified . - The will use default settings - from as well as the specified . - - The settings to be applied to the . - - A new instance using the specified . - The will use default settings - from as well as the specified . - - - - - Populates the JSON values onto the target object. - - The that contains the JSON structure to reader values from. - The target object to populate values onto. - - - - Populates the JSON values onto the target object. - - The that contains the JSON structure to reader values from. - The target object to populate values onto. - - - - Deserializes the JSON structure contained by the specified . - - The that contains the JSON structure to deserialize. - The being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The of object being deserialized. - The instance of being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The type of the object to deserialize. - The instance of being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The of object being deserialized. - The instance of being deserialized. - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - - - - Contains the JSON schema extension methods. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - - Determines whether the is valid. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - - true if the specified is valid; otherwise, false. - - - - - - Determines whether the is valid. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - When this method returns, contains any error messages generated while validating. - - true if the specified is valid; otherwise, false. - - - - - - Validates the specified . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - - - - - Validates the specified . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - The validation event handler. - - - - - Returns detailed information about the schema exception. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets the line number indicating where the error occurred. - - The line number indicating where the error occurred. - - - - Gets the line position indicating where the error occurred. - - The line position indicating where the error occurred. - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - - Resolves from an id. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets or sets the loaded schemas. - - The loaded schemas. - - - - Initializes a new instance of the class. - - - - - Gets a for the specified reference. - - The id. - A for the specified reference. - - - - - Specifies undefined schema Id handling options for the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Do not infer a schema Id. - - - - - Use the .NET type name as the schema Id. - - - - - Use the assembly qualified .NET type name as the schema Id. - - - - - - Returns detailed information related to the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets the associated with the validation error. - - The JsonSchemaException associated with the validation error. - - - - Gets the path of the JSON location where the validation error occurred. - - The path of the JSON location where the validation error occurred. - - - - Gets the text description corresponding to the validation error. - - The text description. - - - - - Represents the callback method that will handle JSON schema validation events and the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - - An in-memory representation of a JSON Schema. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets or sets the id. - - - - - Gets or sets the title. - - - - - Gets or sets whether the object is required. - - - - - Gets or sets whether the object is read only. - - - - - Gets or sets whether the object is visible to users. - - - - - Gets or sets whether the object is transient. - - - - - Gets or sets the description of the object. - - - - - Gets or sets the types of values allowed by the object. - - The type. - - - - Gets or sets the pattern. - - The pattern. - - - - Gets or sets the minimum length. - - The minimum length. - - - - Gets or sets the maximum length. - - The maximum length. - - - - Gets or sets a number that the value should be divisble by. - - A number that the value should be divisble by. - - - - Gets or sets the minimum. - - The minimum. - - - - Gets or sets the maximum. - - The maximum. - - - - Gets or sets a flag indicating whether the value can not equal the number defined by the "minimum" attribute. - - A flag indicating whether the value can not equal the number defined by the "minimum" attribute. - - - - Gets or sets a flag indicating whether the value can not equal the number defined by the "maximum" attribute. - - A flag indicating whether the value can not equal the number defined by the "maximum" attribute. - - - - Gets or sets the minimum number of items. - - The minimum number of items. - - - - Gets or sets the maximum number of items. - - The maximum number of items. - - - - Gets or sets the of items. - - The of items. - - - - Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . - - - true if items are validated using their array position; otherwise, false. - - - - - Gets or sets the of additional items. - - The of additional items. - - - - Gets or sets a value indicating whether additional items are allowed. - - - true if additional items are allowed; otherwise, false. - - - - - Gets or sets whether the array items must be unique. - - - - - Gets or sets the of properties. - - The of properties. - - - - Gets or sets the of additional properties. - - The of additional properties. - - - - Gets or sets the pattern properties. - - The pattern properties. - - - - Gets or sets a value indicating whether additional properties are allowed. - - - true if additional properties are allowed; otherwise, false. - - - - - Gets or sets the required property if this property is present. - - The required property if this property is present. - - - - Gets or sets the a collection of valid enum values allowed. - - A collection of valid enum values allowed. - - - - Gets or sets disallowed types. - - The disallow types. - - - - Gets or sets the default value. - - The default value. - - - - Gets or sets the collection of that this schema extends. - - The collection of that this schema extends. - - - - Gets or sets the format. - - The format. - - - - Initializes a new instance of the class. - - - - - Reads a from the specified . - - The containing the JSON Schema to read. - The object representing the JSON Schema. - - - - Reads a from the specified . - - The containing the JSON Schema to read. - The to use when resolving schema references. - The object representing the JSON Schema. - - - - Load a from a string that contains schema JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - Parses the specified json. - - The json. - The resolver. - A populated from the string that contains JSON. - - - - Writes this schema to a . - - A into which this method will write. - - - - Writes this schema to a using the specified . - - A into which this method will write. - The resolver used. - - - - Returns a that represents the current . - - - A that represents the current . - - - - - - Generates a from a specified . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets or sets how undefined schemas are handled by the serializer. - - - - - Gets or sets the contract resolver. - - The contract resolver. - - - - Generate a from the specified type. - - The type to generate a from. - A generated from the specified type. - - - - Generate a from the specified type. - - The type to generate a from. - The used to resolve schema references. - A generated from the specified type. - - - - Generate a from the specified type. - - The type to generate a from. - Specify whether the generated root will be nullable. - A generated from the specified type. - - - - Generate a from the specified type. - - The type to generate a from. - The used to resolve schema references. - Specify whether the generated root will be nullable. - A generated from the specified type. - - - - - The value types allowed by the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - No type specified. - - - - - String type. - - - - - Float type. - - - - - Integer type. - - - - - Boolean type. - - - - - Object type. - - - - - Array type. - - - - - Null type. - - - - - Any type. - - - - - Specifies missing member handling options for the . - - - - - Ignore a missing member and do not attempt to deserialize it. - - - - - Throw a when a missing member is encountered during deserialization. - - - - - Specifies null value handling options for the . - - - - - - - - - Include null values when serializing and deserializing objects. - - - - - Ignore null values when serializing and deserializing objects. - - - - - Specifies reference loop handling options for the . - - - - - Throw a when a loop is encountered. - - - - - Ignore loop references and do not serialize. - - - - - Serialize loop references. - - - - - Specifies type name handling options for the . - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - - - - Do not include the .NET type name when serializing types. - - - - - Include the .NET type name when serializing into a JSON object structure. - - - - - Include the .NET type name when serializing into a JSON array structure. - - - - - Always include the .NET type name when serializing. - - - - - Include the .NET type name when the type of the object being serialized is not the same as its declared type. - - - - - Specifies the type of JSON token. - - - - - This is returned by the if a method has not been called. - - - - - An object start token. - - - - - An array start token. - - - - - A constructor start token. - - - - - An object property name. - - - - - A comment. - - - - - Raw JSON. - - - - - An integer. - - - - - A float. - - - - - A string. - - - - - A boolean. - - - - - A null token. - - - - - An undefined token. - - - - - An object end token. - - - - - An array end token. - - - - - A constructor end token. - - - - - A Date. - - - - - Byte data. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets a value indicating whether the underlying stream or - should be closed when the writer is closed. - - - true to close the underlying stream or when - the writer is closed; otherwise false. The default is true. - - - - - Gets the top. - - The top. - - - - Gets the state of the writer. - - - - - Gets the path of the writer. - - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling when writing JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written to JSON text. - - - - - Get or set how and values are formatting when writing JSON text. - - - - - Gets or sets the culture used when writing JSON. Defaults to . - - - - - Creates an instance of the JsonWriter class. - - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the end of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the end of an array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the end constructor. - - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - A flag to indicate whether the text should be escaped when it is written as a JSON property name. - - - - Writes the end of the current JSON object or array. - - - - - Writes the current token and its children. - - The to read the token from. - - - - Writes the current token. - - The to read the token from. - A flag indicating whether the current token's children should be written. - - - - Writes the token and its value. - - The to write. - - The value to write. - A value is only required for tokens that have an associated value, e.g. the property name for . - A null value can be passed to the method for token's that don't have a value, e.g. . - - - - Writes the token. - - The to write. - - - - Writes the specified end token. - - The end token to write. - - - - Writes indent characters. - - - - - Writes the JSON value delimiter. - - - - - Writes an indent space. - - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON without changing the writer's state. - - The raw JSON to write. - - - - Writes raw JSON where a value is expected and updates the writer's state. - - The raw JSON to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes out the given white space. - - The string of white space characters. - - - - Releases unmanaged and - optionally - managed resources - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Sets the state of the JsonWriter, - - The JsonToken being written. - The value being written. - - - - Specifies the state of the . - - - - - An exception has been thrown, which has left the in an invalid state. - You may call the method to put the in the Closed state. - Any other method calls results in an being thrown. - - - - - The method has been called. - - - - - An object is being written. - - - - - A array is being written. - - - - - A constructor is being written. - - - - - A property is being written. - - - - - A write method has not been called. - - - - diff --git a/source/packages/Newtonsoft.Json.8.0.1/lib/net40/Newtonsoft.Json.dll b/source/packages/Newtonsoft.Json.8.0.1/lib/net40/Newtonsoft.Json.dll deleted file mode 100644 index 0f00ba69868e6c2f861308da24aa8c59171f4196..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 482816 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 z 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.zO5{;dp^ei@vnuXGINt$DP6xHe_{1!3dKOE!#(sJXD=UX3u-r&4;17tFIKpmx%B#OH(qpHGC{Pq=$W3 zfLQN>hK=^CAH^OQ`lab{p${d4Ja}k=&bW?v8Lv9yQ+eEYkA+4A_ZroE7#1E#4vZIq zyNmN=`Ihn+-*3pGqP~Shps(DOE~obZ#dFxn$fm5w(je7%+_TbMl4!WmW0Go(eD zQJWnltR&kFXplS*fw`=cfMG&TVyxQVBu~KTVgnS~_^W$xVNEMQPNg1Po=z%Iu9N_f zFQwlkg<`T3j)}T)b>z8AX~#dL=V)w90I(5`zHk{drg0F$ zsvA=|W7AWo@KG|r@UceP>=InCIdelxph6fpScTm$fvSlk0U*e6B#F~N-5T@PV4-1u2O9U6yA8VEPBdh5e`xKh0wc(E<1^%zeIb^;1OfIxWemO$tEGR-_ z-mlv$lQ;?*#n9J;E)rvIhmssB5{2>0*_6nVHXN^9!aNo^f>5YV3C zY8!03V>ui2u&5|EC!0^pi>HuF`U3YD=Xm;@YHOe=cx7XALJcuyTpDW_jcOpQfrdR( zB$H<>n-a*!syrJFNAE|$V1j~Jak77ypPtKno#vC=57Yb>s9}2LNu~2iPM|~954gFN z4f8;_!H|nf$zm)n+>OH9-^W(kYXF;kc3MJ1wk1w#gE)vS@d?u;Y6;Lj^o?Mz$l&^j zv(k(jg|sIghTZ|!xpAS-rE`g{%F9X8N}(@l1wXkoX&n^5T{b51;(oOzpr{IxGxM}c zo++YMZJJm#$*1fB`+k0hN>j<&r>7=mgWdy^2%jWVz0AY>c9=rBNu)aKYgu-Ua?v}3 z1dRwPmo9oVZuFdA`jp5G2E@q&@M6HO@3z`*Gq=#S-k+A z7=Ze4xL;2IT4eViDWDs=BltmR8YT#cxq}vEWFY1zD3&Hd5ARShK#Q-*q#DjtMLBV1~#i4(i2RD;{GD4L>g1E zrePQ+Z)=D~3=N5Ci8s_W8rP1-&EkZ$r16MLjqBAj4XekHhVe9Lx7^DgW}8=1bR5*9Lo)kB$`;A6R2@LQAwkf zP1iyiCqbrh=ayhR_$rwxJQPTk5gj1YpozeM1{lMMZERKEe0R(U<^(Bb(Dour+6bJ#LraYnyL$i`M7JL zrZ_e?Pz?+3(jdmE0r=SPx`jsM*$dvBvb3&L!D>x=lx?$z33vSf#_!4(=R6lF;la7k zAJ0U$J};blwCWU4L*sb|#<+(|2>6&mxecQg=7A*85tSKU5rnXRz9MYfbKUpCkYvK{ zRo33*wPf2d@W3p|W|dHdfSYzK&S9bQ8l3sb=$g`4W?EWzN?q2gq-8(kOF-61(01;5 z=A%Ss8qzK&hcaef#Wp6Xb~g?e8a~Xl!D&sAtBy)a%^uzq@2I-rG2kQ2i=s|TC#gJo zg`qcrWZorMC0$2VSmti%4J5>+IUmfpECUHgpL2{^Xd?i?J_I1v)N!#5^3rEahM*wi zMn4>N5)a?;5b~nAU(E*^y7Jm{&$V}U+G8Ch4q

    8(PzNBHt$|RM7g#i?)Q*+B-(^ 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 diff --git a/source/packages/Newtonsoft.Json.8.0.1/lib/net40/Newtonsoft.Json.xml b/source/packages/Newtonsoft.Json.8.0.1/lib/net40/Newtonsoft.Json.xml deleted file mode 100644 index 1499a11..0000000 --- a/source/packages/Newtonsoft.Json.8.0.1/lib/net40/Newtonsoft.Json.xml +++ /dev/null @@ -1,9067 +0,0 @@ - - - - Newtonsoft.Json - - - -

    - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Gets or sets a value indicating whether binary data reading should compatible with incorrect Json.NET 3.5 written binary. - - - true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. - - - - - Gets or sets a value indicating whether the root object will be read as a JSON array. - - - true if the root object will be read as a JSON array; otherwise, false. - - - - - Gets or sets the used when reading values from BSON. - - The used when reading values from BSON. - - - - Initializes a new instance of the class. - - The stream. - - - - Initializes a new instance of the class. - - The reader. - - - - Initializes a new instance of the class. - - The stream. - if set to true the root object will be read as a JSON array. - The used when reading values from BSON. - - - - Initializes a new instance of the class. - - The reader. - if set to true the root object will be read as a JSON array. - The used when reading values from BSON. - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Changes the to Closed. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets the used when writing values to BSON. - When set to no conversion will occur. - - The used when writing values to BSON. - - - - Initializes a new instance of the class. - - The stream. - - - - Initializes a new instance of the class. - - The writer. - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Writes the end. - - The token. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes raw JSON where a value is expected and updates the writer's state. - - The raw JSON to write. - - - - Writes the beginning of a JSON array. - - - - - Writes the beginning of a JSON object. - - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Closes this stream and the underlying stream. - - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value that represents a BSON object id. - - The Object ID value to write. - - - - Writes a BSON regex. - - The regex pattern. - The regex options. - - - - Represents a BSON Oid (object id). - - - - - Gets or sets the value of the Oid. - - The value of the Oid. - - - - Initializes a new instance of the class. - - The Oid value. - - - - Converts a binary value to and from a base 64 string value. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified value type. - - Type of the value. - - true if this instance can convert the specified value type; otherwise, false. - - - - - Converts a to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified value type. - - Type of the value. - - true if this instance can convert the specified value type; otherwise, false. - - - - - Create a custom object - - The object type to convert. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Creates an object which will then be populated by the serializer. - - Type of the object. - The created object. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Gets a value indicating whether this can write JSON. - - - true if this can write JSON; otherwise, false. - - - - - Provides a base class for converting a to and from JSON. - - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a F# discriminated union type to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts an Entity Framework EntityKey to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts an ExpandoObject to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Gets a value indicating whether this can write JSON. - - - true if this can write JSON; otherwise, false. - - - - - Converts a to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from JSON and BSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from JSON and BSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts an to and from its name string value. - - - - - Gets or sets a value indicating whether the written enum text should be camel case. - - true if the written enum text will be camel case; otherwise, false. - - - - Gets or sets a value indicating whether integer values are allowed. - - true if integers are allowed; otherwise, false. - - - - Initializes a new instance of the class. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from a string (e.g. "1.2.3.4"). - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing property value of the JSON that is being converted. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from the ISO 8601 date format (e.g. 2008-04-12T12:53Z). - - - - - Gets or sets the date time styles used when converting a date to and from JSON. - - The date time styles used when converting a date to and from JSON. - - - - Gets or sets the date time format used when converting a date to and from JSON. - - The date time format used when converting a date to and from JSON. - - - - Gets or sets the culture used when converting a date to and from JSON. - - The culture used when converting a date to and from JSON. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Converts a to and from a JavaScript date constructor (e.g. new Date(52231943)). - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing property value of the JSON that is being converted. - The calling serializer. - The object value. - - - - Converts XML to and from JSON. - - - - - Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produces multiple root elements. - - The name of the deserialize root element. - - - - Gets or sets a flag to indicate whether to write the Json.NET array attribute. - This attribute helps preserve arrays when converting the written XML back to JSON. - - true if the array attibute is written to the XML; otherwise, false. - - - - Gets or sets a value indicating whether to write the root JSON object. - - true if the JSON root object is omitted; otherwise, false. - - - - Writes the JSON representation of the object. - - The to write to. - The calling serializer. - The value. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Checks if the attributeName is a namespace attribute. - - Attribute name to test. - The attribute name prefix if it has one, otherwise an empty string. - True if attribute name is for a namespace attribute, otherwise false. - - - - Determines whether this instance can convert the specified value type. - - Type of the value. - - true if this instance can convert the specified value type; otherwise, false. - - - - - Specifies how constructors are used when initializing objects during deserialization by the . - - - - - First attempt to use the public default constructor, then fall back to single paramatized constructor, then the non-public default constructor. - - - - - Json.NET will use a non-public default constructor before falling back to a paramatized constructor. - - - - - Specifies float format handling options when writing special floating point numbers, e.g. , - and with . - - - - - Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". - - - - - Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. - Note that this will produce non-valid JSON. - - - - - Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a property. - - - - - Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Floating point numbers are parsed to . - - - - - Floating point numbers are parsed to . - - - - - Provides an interface for using pooled arrays. - - The array type content. - - - - Rent a array from the pool. This array must be returned when it is no longer needed. - - The minimum required length of the array. The returned array may be longer. - The rented array from the pool. This array must be returned when it is no longer needed. - - - - Return an array to the pool. - - The array that is being returned. - - - - Instructs the how to serialize the collection. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - The exception thrown when an error occurs during JSON serialization or deserialization. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - Specifies how dates are formatted when writing JSON text. - - - - - Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". - - - - - Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". - - - - - Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. - - - - - Date formatted strings are not parsed to a date type and are read as strings. - - - - - Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . - - - - - Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . - - - - - Specifies how to treat the time value when converting between string and . - - - - - Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. - - - - - Treat as a UTC. If the object represents a local time, it is converted to a UTC. - - - - - Treat as a local time if a is being converted to a string. - If a string is being converted to , convert to a local time if a time zone is specified. - - - - - Time zone information should be preserved when converting. - - - - - Specifies formatting options for the . - - - - - No special formatting is applied. This is the default. - - - - - Causes child objects to be indented according to the and settings. - - - - - Instructs the to use the specified constructor when deserializing that object. - - - - - Instructs the to deserialize properties with no matching class member into the specified collection - and write values during serialization. - - - - - Gets or sets a value that indicates whether to write extension data when serializing the object. - - - true to write extension data when serializing the object; otherwise, false. The default is true. - - - - - Gets or sets a value that indicates whether to read extension data when deserializing the object. - - - true to read extension data when deserializing the object; otherwise, false. The default is true. - - - - - Initializes a new instance of the class. - - - - - Instructs the to always serialize the member, and require the member has a value. - - - - - Specifies how JSON comments are handled when loading JSON. - - - - - Ignore comments. - - - - - Load comments as a with type . - - - - - Specifies how line information is handled when loading JSON. - - - - - Ignore line information. - - - - - Load line information. - - - - - Specifies the settings used when loading JSON. - - - - - Gets or sets how JSON comments are handled when loading JSON. - - The JSON comment handling. - - - - Gets or sets how JSON line info is handled when loading JSON. - - The JSON line info handling. - - - - Specifies the settings used when merging JSON. - - - - - Gets or sets the method used when merging JSON arrays. - - The method used when merging JSON arrays. - - - - Specifies how JSON arrays are merged together. - - - - Concatenate arrays. - - - Union arrays, skipping items that already exist. - - - Replace all array items. - - - Merge array items together, matched by index. - - - - Represents a raw JSON string. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class. - - The raw json. - - - - Creates an instance of with the content of the reader's current token. - - The reader. - An instance of with the content of the reader's current token. - - - - Represents a view of a . - - - - - Initializes a new instance of the class. - - The name. - - - - When overridden in a derived class, returns whether resetting an object changes its value. - - - true if resetting the component changes its value; otherwise, false. - - The component to test for reset capability. - - - - - When overridden in a derived class, gets the current value of the property on a component. - - - The value of a property for a given component. - - The component with the property for which to retrieve the value. - - - - - When overridden in a derived class, resets the value for this property of the component to the default value. - - The component with the property value that is to be reset to the default value. - - - - - When overridden in a derived class, sets the value of the component to a different value. - - The component with the property value that is to be set. - The new value. - - - - - When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. - - - true if the property should be persisted; otherwise, false. - - The component with the property to be examined for persistence. - - - - - When overridden in a derived class, gets the type of the component this property is bound to. - - - A that represents the type of component this property is bound to. When the or methods are invoked, the object specified might be an instance of this type. - - - - - When overridden in a derived class, gets a value indicating whether this property is read-only. - - - true if the property is read-only; otherwise, false. - - - - - When overridden in a derived class, gets the type of the property. - - - A that represents the type of the property. - - - - - Gets the hash code for the name of the member. - - - - The hash code for the name of the member. - - - - - Represents a collection of objects. - - The type of token - - - - Gets the with the specified key. - - - - - - Compares tokens to determine whether they are equal. - - - - - Determines whether the specified objects are equal. - - The first object of type to compare. - The second object of type to compare. - - true if the specified objects are equal; otherwise, false. - - - - - Returns a hash code for the specified object. - - The for which a hash code is to be returned. - A hash code for the specified object. - The type of is a reference type and is null. - - - - Contains the LINQ to JSON extension methods. - - - - - Returns a collection of tokens that contains the ancestors of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains the ancestors of every token in the source collection. - - - - Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains every token in the source collection, the ancestors of every token in the source collection. - - - - Returns a collection of tokens that contains the descendants of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains the descendants of every token in the source collection. - - - - Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains every token in the source collection, and the descendants of every token in the source collection. - - - - Returns a collection of child properties of every object in the source collection. - - An of that contains the source collection. - An of that contains the properties of every object in the source collection. - - - - Returns a collection of child values of every object in the source collection with the given key. - - An of that contains the source collection. - The token key. - An of that contains the values of every token in the source collection with the given key. - - - - Returns a collection of child values of every object in the source collection. - - An of that contains the source collection. - An of that contains the values of every token in the source collection. - - - - Returns a collection of converted child values of every object in the source collection with the given key. - - The type to convert the values to. - An of that contains the source collection. - The token key. - An that contains the converted values of every token in the source collection with the given key. - - - - Returns a collection of converted child values of every object in the source collection. - - The type to convert the values to. - An of that contains the source collection. - An that contains the converted values of every token in the source collection. - - - - Converts the value. - - The type to convert the value to. - A cast as a of . - A converted value. - - - - Converts the value. - - The source collection type. - The type to convert the value to. - A cast as a of . - A converted value. - - - - Returns a collection of child tokens of every array in the source collection. - - The source collection type. - An of that contains the source collection. - An of that contains the values of every token in the source collection. - - - - Returns a collection of converted child tokens of every array in the source collection. - - An of that contains the source collection. - The type to convert the values to. - The source collection type. - An that contains the converted values of every token in the source collection. - - - - Returns the input typed as . - - An of that contains the source collection. - The input typed as . - - - - Returns the input typed as . - - The source collection type. - An of that contains the source collection. - The input typed as . - - - - Represents a JSON constructor. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets or sets the name of this constructor. - - The constructor name. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified name and content. - - The constructor name. - The contents of the constructor. - - - - Initializes a new instance of the class with the specified name and content. - - The constructor name. - The contents of the constructor. - - - - Initializes a new instance of the class with the specified name. - - The constructor name. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified key. - - The with the specified key. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Represents a token that can contain other tokens. - - - - - Occurs when the list changes or an item in the list changes. - - - - - Occurs before an item is added to the collection. - - - - - Occurs when the items list of the collection has changed, or the collection is reset. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Raises the event. - - The instance containing the event data. - - - - Raises the event. - - The instance containing the event data. - - - - Raises the event. - - The instance containing the event data. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Get the first child token of this token. - - - A containing the first child token of the . - - - - - Get the last child token of this token. - - - A containing the last child token of the . - - - - - Returns a collection of the child tokens of this token, in document order. - - - An of containing the child tokens of this , in document order. - - - - - Returns a collection of the child values of this token, in document order. - - The type to convert the values to. - - A containing the child values of this , in document order. - - - - - Returns a collection of the descendant tokens for this token in document order. - - An containing the descendant tokens of the . - - - - Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. - - An containing this token, and all the descendant tokens of the . - - - - Adds the specified content as children of this . - - The content to be added. - - - - Adds the specified content as the first children of this . - - The content to be added. - - - - Creates an that can be used to add tokens to the . - - An that is ready to have content written to it. - - - - Replaces the children nodes of this token with the specified content. - - The content. - - - - Removes the child nodes from this token. - - - - - Merge the specified content into this . - - The content to be merged. - - - - Merge the specified content into this using . - - The content to be merged. - The used to merge the content. - - - - Gets the count of child JSON tokens. - - The count of child JSON tokens - - - - Represents a collection of objects. - - The type of token - - - - An empty collection of objects. - - - - - Initializes a new instance of the struct. - - The enumerable. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Returns an enumerator that iterates through a collection. - - - An object that can be used to iterate through the collection. - - - - - Gets the with the specified key. - - - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Returns a hash code for this instance. - - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - - Represents a JSON object. - - - - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Occurs when a property value changes. - - - - - Occurs when a property value is changing. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified content. - - The contents of the object. - - - - Initializes a new instance of the class with the specified content. - - The contents of the object. - - - - Gets the node type for this . - - The type. - - - - Gets an of this object's properties. - - An of this object's properties. - - - - Gets a the specified name. - - The property name. - A with the specified name or null. - - - - Gets an of this object's property values. - - An of this object's property values. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets or sets the with the specified property name. - - - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - - - - Creates a from an object. - - The object that will be used to create . - A with the values of the specified object - - - - Creates a from an object. - - The object that will be used to create . - The that will be used to read the object. - A with the values of the specified object - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified property name. - - Name of the property. - The with the specified property name. - - - - Gets the with the specified property name. - The exact property name will be searched for first and if no matching property is found then - the will be used to match a property. - - Name of the property. - One of the enumeration values that specifies how the strings will be compared. - The with the specified property name. - - - - Tries to get the with the specified property name. - The exact property name will be searched for first and if no matching property is found then - the will be used to match a property. - - Name of the property. - The value. - One of the enumeration values that specifies how the strings will be compared. - true if a value was successfully retrieved; otherwise, false. - - - - Adds the specified property name. - - Name of the property. - The value. - - - - Removes the property with the specified name. - - Name of the property. - true if item was successfully removed; otherwise, false. - - - - Tries the get value. - - Name of the property. - The value. - true if a value was successfully retrieved; otherwise, false. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Raises the event with the provided arguments. - - Name of the property. - - - - Raises the event with the provided arguments. - - Name of the property. - - - - Returns the properties for this instance of a component. - - - A that represents the properties for this component instance. - - - - - Returns the properties for this instance of a component using the attribute array as a filter. - - An array of type that is used as a filter. - - A that represents the filtered properties for this component instance. - - - - - Returns a collection of custom attributes for this instance of a component. - - - An containing the attributes for this object. - - - - - Returns the class name of this instance of a component. - - - The class name of the object, or null if the class does not have a name. - - - - - Returns the name of this instance of a component. - - - The name of the object, or null if the object does not have a name. - - - - - Returns a type converter for this instance of a component. - - - A that is the converter for this object, or null if there is no for this object. - - - - - Returns the default event for this instance of a component. - - - An that represents the default event for this object, or null if this object does not have events. - - - - - Returns the default property for this instance of a component. - - - A that represents the default property for this object, or null if this object does not have properties. - - - - - Returns an editor of the specified type for this instance of a component. - - A that represents the editor for this object. - - An of the specified type that is the editor for this object, or null if the editor cannot be found. - - - - - Returns the events for this instance of a component using the specified attribute array as a filter. - - An array of type that is used as a filter. - - An that represents the filtered events for this component instance. - - - - - Returns the events for this instance of a component. - - - An that represents the events for this component instance. - - - - - Returns an object that contains the property described by the specified property descriptor. - - A that represents the property whose owner is to be found. - - An that represents the owner of the specified property. - - - - - Returns the responsible for binding operations performed on this object. - - The expression tree representation of the runtime value. - - The to bind this object. - - - - - Represents a JSON array. - - - - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified content. - - The contents of the array. - - - - Initializes a new instance of the class with the specified content. - - The contents of the array. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - - - - Creates a from an object. - - The object that will be used to create . - A with the values of the specified object - - - - Creates a from an object. - - The object that will be used to create . - The that will be used to read the object. - A with the values of the specified object - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets or sets the at the specified index. - - - - - - Determines the index of a specific item in the . - - The object to locate in the . - - The index of if found in the list; otherwise, -1. - - - - - Inserts an item to the at the specified index. - - The zero-based index at which should be inserted. - The object to insert into the . - - is not a valid index in the . - The is read-only. - - - - Removes the item at the specified index. - - The zero-based index of the item to remove. - - is not a valid index in the . - The is read-only. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Adds an item to the . - - The object to add to the . - The is read-only. - - - - Removes all items from the . - - The is read-only. - - - - Determines whether the contains a specific value. - - The object to locate in the . - - true if is found in the ; otherwise, false. - - - - - Copies to. - - The array. - Index of the array. - - - - Gets a value indicating whether the is read-only. - - true if the is read-only; otherwise, false. - - - - Removes the first occurrence of a specific object from the . - - The object to remove from the . - - true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . - - The is read-only. - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Gets the at the reader's current position. - - - - - Initializes a new instance of the class. - - The token to read from. - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Gets the path of the current JSON token. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets the at the writer's current position. - - - - - Gets the token being writen. - - The token being writen. - - - - Initializes a new instance of the class writing to the given . - - The container being written to. - - - - Initializes a new instance of the class. - - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the end. - - The token. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Represents an abstract JSON token. - - - - - Gets a comparer that can compare two tokens for value equality. - - A that can compare two nodes for value equality. - - - - Gets or sets the parent. - - The parent. - - - - Gets the root of this . - - The root of this . - - - - Gets the node type for this . - - The type. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Compares the values of two tokens, including the values of all descendant tokens. - - The first to compare. - The second to compare. - true if the tokens are equal; otherwise false. - - - - Gets the next sibling token of this node. - - The that contains the next sibling token. - - - - Gets the previous sibling token of this node. - - The that contains the previous sibling token. - - - - Gets the path of the JSON token. - - - - - Adds the specified content immediately after this token. - - A content object that contains simple content or a collection of content objects to be added after this token. - - - - Adds the specified content immediately before this token. - - A content object that contains simple content or a collection of content objects to be added before this token. - - - - Returns a collection of the ancestor tokens of this token. - - A collection of the ancestor tokens of this token. - - - - Returns a collection of tokens that contain this token, and the ancestors of this token. - - A collection of tokens that contain this token, and the ancestors of this token. - - - - Returns a collection of the sibling tokens after this token, in document order. - - A collection of the sibling tokens after this tokens, in document order. - - - - Returns a collection of the sibling tokens before this token, in document order. - - A collection of the sibling tokens before this token, in document order. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets the with the specified key converted to the specified type. - - The type to convert the token to. - The token key. - The converted token value. - - - - Get the first child token of this token. - - A containing the first child token of the . - - - - Get the last child token of this token. - - A containing the last child token of the . - - - - Returns a collection of the child tokens of this token, in document order. - - An of containing the child tokens of this , in document order. - - - - Returns a collection of the child tokens of this token, in document order, filtered by the specified type. - - The type to filter the child tokens on. - A containing the child tokens of this , in document order. - - - - Returns a collection of the child values of this token, in document order. - - The type to convert the values to. - A containing the child values of this , in document order. - - - - Removes this token from its parent. - - - - - Replaces this token with the specified token. - - The value. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Returns the indented JSON for this token. - - - The indented JSON for this token. - - - - - Returns the JSON for this token using the given formatting and converters. - - Indicates how the output is formatted. - A collection of which will be used when writing the token. - The JSON for this token using the given formatting and converters. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to []. - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from [] to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Creates an for this token. - - An that can be used to read this token and its descendants. - - - - Creates a from an object. - - The object that will be used to create . - A with the value of the specified object - - - - Creates a from an object using the specified . - - The object that will be used to create . - The that will be used when reading the object. - A with the value of the specified object - - - - Creates the specified .NET type from the . - - The object type that the token will be deserialized to. - The new object created from the JSON value. - - - - Creates the specified .NET type from the . - - The object type that the token will be deserialized to. - The new object created from the JSON value. - - - - Creates the specified .NET type from the using the specified . - - The object type that the token will be deserialized to. - The that will be used when creating the object. - The new object created from the JSON value. - - - - Creates the specified .NET type from the using the specified . - - The object type that the token will be deserialized to. - The that will be used when creating the object. - The new object created from the JSON value. - - - - Creates a from a . - - An positioned at the token to read into this . - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Creates a from a . - - An positioned at the token to read into this . - The used to load the JSON. - If this is null, default load settings will be used. - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - Creates a from a . - - An positioned at the token to read into this . - The used to load the JSON. - If this is null, default load settings will be used. - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Creates a from a . - - An positioned at the token to read into this . - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Selects a using a JPath expression. Selects the token that matches the object path. - - - A that contains a JPath expression. - - A , or null. - - - - Selects a using a JPath expression. Selects the token that matches the object path. - - - A that contains a JPath expression. - - A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. - A . - - - - Selects a collection of elements using a JPath expression. - - - A that contains a JPath expression. - - An that contains the selected elements. - - - - Selects a collection of elements using a JPath expression. - - - A that contains a JPath expression. - - A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. - An that contains the selected elements. - - - - Returns the responsible for binding operations performed on this object. - - The expression tree representation of the runtime value. - - The to bind this object. - - - - - Returns the responsible for binding operations performed on this object. - - The expression tree representation of the runtime value. - - The to bind this object. - - - - - Creates a new instance of the . All child tokens are recursively cloned. - - A new instance of the . - - - - Adds an object to the annotation list of this . - - The annotation to add. - - - - Get the first annotation object of the specified type from this . - - The type of the annotation to retrieve. - The first annotation object that matches the specified type, or null if no annotation is of the specified type. - - - - Gets the first annotation object of the specified type from this . - - The of the annotation to retrieve. - The first annotation object that matches the specified type, or null if no annotation is of the specified type. - - - - Gets a collection of annotations of the specified type for this . - - The type of the annotations to retrieve. - An that contains the annotations for this . - - - - Gets a collection of annotations of the specified type for this . - - The of the annotations to retrieve. - An of that contains the annotations that match the specified type for this . - - - - Removes the annotations of the specified type from this . - - The type of annotations to remove. - - - - Removes the annotations of the specified type from this . - - The of annotations to remove. - - - - Represents a JSON property. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets the property name. - - The property name. - - - - Gets or sets the property value. - - The property value. - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - The property name. - The property content. - - - - Initializes a new instance of the class. - - The property name. - The property content. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Specifies the type of token. - - - - - No token type has been set. - - - - - A JSON object. - - - - - A JSON array. - - - - - A JSON constructor. - - - - - A JSON object property. - - - - - A comment. - - - - - An integer value. - - - - - A float value. - - - - - A string value. - - - - - A boolean value. - - - - - A null value. - - - - - An undefined value. - - - - - A date value. - - - - - A raw JSON value. - - - - - A collection of bytes value. - - - - - A Guid value. - - - - - A Uri value. - - - - - A TimeSpan value. - - - - - Represents a value in JSON (string, integer, date, etc). - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Creates a comment with the given value. - - The value. - A comment with the given value. - - - - Creates a string with the given value. - - The value. - A string with the given value. - - - - Creates a null value. - - A null value. - - - - Creates a null value. - - A null value. - - - - Gets the node type for this . - - The type. - - - - Gets or sets the underlying token value. - - The underlying token value. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Indicates whether the current object is equal to another object of the same type. - - - true if the current object is equal to the parameter; otherwise, false. - - An object to compare with this object. - - - - Determines whether the specified is equal to the current . - - The to compare with the current . - - true if the specified is equal to the current ; otherwise, false. - - - The parameter is null. - - - - - Serves as a hash function for a particular type. - - - A hash code for the current . - - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format. - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format provider. - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format. - The format provider. - - A that represents this instance. - - - - - Returns the responsible for binding operations performed on this object. - - The expression tree representation of the runtime value. - - The to bind this object. - - - - - Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. - - An object to compare with this instance. - - A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: - Value - Meaning - Less than zero - This instance is less than . - Zero - This instance is equal to . - Greater than zero - This instance is greater than . - - - is not the same type as this instance. - - - - - Specifies metadata property handling options for the . - - - - - Read metadata properties located at the start of a JSON object. - - - - - Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. - - - - - Do not try to read metadata properties. - - - - - Represents a trace writer that writes to the application's instances. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of Info will exclude Verbose messages and include Info, - Warning and Error messages. - - - The that will be used to filter the trace messages passed to the writer. - - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Get and set values for a using dynamic methods. - - - - - Initializes a new instance of the class. - - The member info. - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Provides methods to get attributes. - - - - - Returns a collection of all of the attributes, or an empty collection if there are no attributes. - - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. - - The type of the attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Represents a trace writer. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of Info will exclude Verbose messages and include Info, - Warning and Error messages. - - The that will be used to filter the trace messages passed to the writer. - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Contract details for a used by the . - - - - - Gets or sets the default collection items . - - The converter. - - - - Gets or sets a value indicating whether the collection items preserve object references. - - true if collection items preserve object references; otherwise, false. - - - - Gets or sets the collection item reference loop handling. - - The reference loop handling. - - - - Gets or sets the collection item type name handling. - - The type name handling. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Represents a trace writer that writes to memory. When the trace message limit is - reached then old trace messages will be removed as new messages are added. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of Info will exclude Verbose messages and include Info, - Warning and Error messages. - - - The that will be used to filter the trace messages passed to the writer. - - - - - Initializes a new instance of the class. - - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Returns an enumeration of the most recent trace messages. - - An enumeration of the most recent trace messages. - - - - Returns a of the most recent trace messages. - - - A of the most recent trace messages. - - - - - Provides methods to get attributes from a , , or . - - - - - Initializes a new instance of the class. - - The instance to get attributes for. This parameter should be a , , or . - - - - Returns a collection of all of the attributes, or an empty collection if there are no attributes. - - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. - - The type of the attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Contract details for a used by the . - - - - - Gets the object's properties. - - The object's properties. - - - - Gets or sets the property name resolver. - - The property name resolver. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Gets or sets the ISerializable object constructor. - - The ISerializable object constructor. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Get and set values for a using dynamic methods. - - - - - Initializes a new instance of the class. - - The member info. - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Provides data for the Error event. - - - - - Gets the current object the error event is being raised against. - - The current object the error event is being raised against. - - - - Gets the error context. - - The error context. - - - - Initializes a new instance of the class. - - The current object. - The error context. - - - - Resolves member mappings for a type, camel casing property names. - - - - - Initializes a new instance of the class. - - - - - Resolves the name of the property. - - Name of the property. - The property name camel cased. - - - - Used by to resolves a for a given . - - - - - Gets a value indicating whether members are being get and set using dynamic code generation. - This value is determined by the runtime permissions available. - - - true if using dynamic code generation; otherwise, false. - - - - - Gets or sets the default members search flags. - - The default members search flags. - - - - Gets or sets a value indicating whether compiler generated members should be serialized. - - - true if serialized compiler generated members; otherwise, false. - - - - - Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. - - - true if the interface will be ignored when serializing and deserializing types; otherwise, false. - - - - - Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. - - - true if the attribute will be ignored when serializing and deserializing types; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - If set to true the will use a cached shared with other resolvers of the same type. - Sharing the cache will significantly improve performance with multiple resolver instances because expensive reflection will only - happen once. This setting can cause unexpected behavior if different instances of the resolver are suppose to produce different - results. When set to false it is highly recommended to reuse instances with the . - - - - - Resolves the contract for a given type. - - The type to resolve a contract for. - The contract for a given type. - - - - Gets the serializable members for the type. - - The type to get serializable members for. - The serializable members for the type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates the constructor parameters. - - The constructor to create properties for. - The type's member properties. - Properties for the given . - - - - Creates a for the given . - - The matching member property. - The constructor parameter. - A created for the given . - - - - Resolves the default for the contract. - - Type of the object. - The contract's default . - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Determines which contract type is created for the given type. - - Type of the object. - A for the given type. - - - - Creates properties for the given . - - The type to create properties for. - /// The member serialization mode for the type. - Properties for the given . - - - - Creates the used by the serializer to get and set values from a member. - - The member. - The used by the serializer to get and set values from a member. - - - - Creates a for the given . - - The member's parent . - The member to create a for. - A created for the given . - - - - Resolves the name of the property. - - Name of the property. - Resolved name of the property. - - - - Resolves the key of the dictionary. By default is used to resolve dictionary keys. - - Key of the dictionary. - Resolved key of the dictionary. - - - - Gets the resolved name of the property. - - Name of the property. - Name of the property. - - - - The default serialization binder used when resolving and loading classes from type names. - - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - Specifies the name of the serialized object. - Specifies the name of the serialized object. - - The type of the object the formatter creates a new instance of. - - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - The type of the object the formatter creates a new instance of. - Specifies the name of the serialized object. - Specifies the name of the serialized object. - - - - Provides information surrounding an error. - - - - - Gets the error. - - The error. - - - - Gets the original object that caused the error. - - The original object that caused the error. - - - - Gets the member that caused the error. - - The member that caused the error. - - - - Gets the path of the JSON location where the error occurred. - - The path of the JSON location where the error occurred. - - - - Gets or sets a value indicating whether this is handled. - - true if handled; otherwise, false. - - - - Used by to resolves a for a given . - - - - - - - - - Resolves the contract for a given type. - - The type to resolve a contract for. - The contract for a given type. - - - - Provides methods to get and set values. - - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Contract details for a used by the . - - - - - Gets the of the collection items. - - The of the collection items. - - - - Gets a value indicating whether the collection type is a multidimensional array. - - true if the collection type is a multidimensional array; otherwise, false. - - - - Gets or sets the function used to create the object. When set this function will override . - - The function used to create the object. - - - - Gets a value indicating whether the creator has a parameter with the collection values. - - true if the creator has a parameter with the collection values; otherwise, false. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Handles serialization callback events. - - The object that raised the callback event. - The streaming context. - - - - Handles serialization error callback events. - - The object that raised the callback event. - The streaming context. - The error context. - - - - Sets extension data for an object during deserialization. - - The object to set extension data on. - The extension data key. - The extension data value. - - - - Gets extension data for an object during serialization. - - The object to set extension data on. - - - - Contract details for a used by the . - - - - - Gets the underlying type for the contract. - - The underlying type for the contract. - - - - Gets or sets the type created during deserialization. - - The type created during deserialization. - - - - Gets or sets whether this type contract is serialized as a reference. - - Whether this type contract is serialized as a reference. - - - - Gets or sets the default for this contract. - - The converter. - - - - Gets or sets all methods called immediately after deserialization of the object. - - The methods called immediately after deserialization of the object. - - - - Gets or sets all methods called during deserialization of the object. - - The methods called during deserialization of the object. - - - - Gets or sets all methods called after serialization of the object graph. - - The methods called after serialization of the object graph. - - - - Gets or sets all methods called before serialization of the object. - - The methods called before serialization of the object. - - - - Gets or sets all method called when an error is thrown during the serialization of the object. - - The methods called when an error is thrown during the serialization of the object. - - - - Gets or sets the method called immediately after deserialization of the object. - - The method called immediately after deserialization of the object. - - - - Gets or sets the method called during deserialization of the object. - - The method called during deserialization of the object. - - - - Gets or sets the method called after serialization of the object graph. - - The method called after serialization of the object graph. - - - - Gets or sets the method called before serialization of the object. - - The method called before serialization of the object. - - - - Gets or sets the method called when an error is thrown during the serialization of the object. - - The method called when an error is thrown during the serialization of the object. - - - - Gets or sets the default creator method used to create the object. - - The default creator method used to create the object. - - - - Gets or sets a value indicating whether the default creator is non public. - - true if the default object creator is non-public; otherwise, false. - - - - Contract details for a used by the . - - - - - Gets or sets the property name resolver. - - The property name resolver. - - - - Gets or sets the dictionary key resolver. - - The dictionary key resolver. - - - - Gets the of the dictionary keys. - - The of the dictionary keys. - - - - Gets the of the dictionary values. - - The of the dictionary values. - - - - Gets or sets the function used to create the object. When set this function will override . - - The function used to create the object. - - - - Gets a value indicating whether the creator has a parameter with the dictionary values. - - true if the creator has a parameter with the dictionary values; otherwise, false. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Maps a JSON property to a .NET member or constructor parameter. - - - - - Gets or sets the name of the property. - - The name of the property. - - - - Gets or sets the type that declared this property. - - The type that declared this property. - - - - Gets or sets the order of serialization of a member. - - The numeric order of serialization. - - - - Gets or sets the name of the underlying member or parameter. - - The name of the underlying member or parameter. - - - - Gets the that will get and set the during serialization. - - The that will get and set the during serialization. - - - - Gets or sets the for this property. - - The for this property. - - - - Gets or sets the type of the property. - - The type of the property. - - - - Gets or sets the for the property. - If set this converter takes presidence over the contract converter for the property type. - - The converter. - - - - Gets or sets the member converter. - - The member converter. - - - - Gets or sets a value indicating whether this is ignored. - - true if ignored; otherwise, false. - - - - Gets or sets a value indicating whether this is readable. - - true if readable; otherwise, false. - - - - Gets or sets a value indicating whether this is writable. - - true if writable; otherwise, false. - - - - Gets or sets a value indicating whether this has a member attribute. - - true if has a member attribute; otherwise, false. - - - - Gets the default value. - - The default value. - - - - Gets or sets a value indicating whether this is required. - - A value indicating whether this is required. - - - - Gets or sets a value indicating whether this property preserves object references. - - - true if this instance is reference; otherwise, false. - - - - - Gets or sets the property null value handling. - - The null value handling. - - - - Gets or sets the property default value handling. - - The default value handling. - - - - Gets or sets the property reference loop handling. - - The reference loop handling. - - - - Gets or sets the property object creation handling. - - The object creation handling. - - - - Gets or sets or sets the type name handling. - - The type name handling. - - - - Gets or sets a predicate used to determine whether the property should be serialize. - - A predicate used to determine whether the property should be serialize. - - - - Gets or sets a predicate used to determine whether the property should be deserialized. - - A predicate used to determine whether the property should be deserialized. - - - - Gets or sets a predicate used to determine whether the property should be serialized. - - A predicate used to determine whether the property should be serialized. - - - - Gets or sets an action used to set whether the property has been deserialized. - - An action used to set whether the property has been deserialized. - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Gets or sets the converter used when serializing the property's collection items. - - The collection's items converter. - - - - Gets or sets whether this property's collection items are serialized as a reference. - - Whether this property's collection items are serialized as a reference. - - - - Gets or sets the the type name handling used when serializing the property's collection items. - - The collection's items type name handling. - - - - Gets or sets the the reference loop handling used when serializing the property's collection items. - - The collection's items reference loop handling. - - - - A collection of objects. - - - - - Initializes a new instance of the class. - - The type. - - - - When implemented in a derived class, extracts the key from the specified element. - - The element from which to extract the key. - The key for the specified element. - - - - Adds a object. - - The property to add to the collection. - - - - Gets the closest matching object. - First attempts to get an exact case match of propertyName and then - a case insensitive match. - - Name of the property. - A matching property if found. - - - - Gets a property by property name. - - The name of the property to get. - Type property name string comparison. - A matching property if found. - - - - Used to resolve references when serializing and deserializing JSON by the . - - - - - Resolves a reference to its object. - - The serialization context. - The reference to resolve. - The object that - - - - Gets the reference for the sepecified object. - - The serialization context. - The object to get a reference for. - The reference to the object. - - - - Determines whether the specified object is referenced. - - The serialization context. - The object to test for a reference. - - true if the specified object is referenced; otherwise, false. - - - - - Adds a reference to the specified object. - - The serialization context. - The reference. - The object to reference. - - - - Contract details for a used by the . - - - - - Gets or sets the object member serialization. - - The member object serialization. - - - - Gets or sets a value that indicates whether the object's properties are required. - - - A value indicating whether the object's properties are required. - - - - - Gets the object's properties. - - The object's properties. - - - - Gets the constructor parameters required for any non-default constructor - - - - - Gets a collection of instances that define the parameters used with . - - - - - Gets or sets the override constructor used to create the object. - This is set when a constructor is marked up using the - JsonConstructor attribute. - - The override constructor. - - - - Gets or sets the parametrized constructor used to create the object. - - The parametrized constructor. - - - - Gets or sets the function used to create the object. When set this function will override . - This function is called with a collection of arguments which are defined by the collection. - - The function used to create the object. - - - - Gets or sets the extension data setter. - - - - - Gets or sets the extension data getter. - - - - - Gets or sets the extension data value type. - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Lookup and create an instance of the JsonConverter type described by the argument. - - The JsonConverter type to create. - Optional arguments to pass to an initializing constructor of the JsonConverter. - If null, the default constructor is used. - - - - Create a factory function that can be used to create instances of a JsonConverter described by the - argument type. The returned function can then be used to either invoke the converter's default ctor, or any - parameterized constructors by way of an object array. - - - - - Get and set values for a using reflection. - - - - - Initializes a new instance of the class. - - The member info. - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - When applied to a method, specifies that the method is called when an error occurs serializing an object. - - - - - Represents a method that constructs an object. - - The object type to create. - - - - Specifies how strings are escaped when writing JSON text. - - - - - Only control characters (e.g. newline) are escaped. - - - - - All non-ASCII and control characters (e.g. newline) are escaped. - - - - - HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. - - - - - Helper method for generating a MetaObject which calls a - specific method on Dynamic that returns a result - - - - - Helper method for generating a MetaObject which calls a - specific method on Dynamic, but uses one of the arguments for - the result. - - - - - Helper method for generating a MetaObject which calls a - specific method on Dynamic, but uses one of the arguments for - the result. - - - - - Returns a Restrictions object which includes our current restrictions merged - with a restriction limiting our type - - - - - Converts the value to the specified type. If the value is unable to be converted, the - value is checked whether it assignable to the specified type. - - The value to convert. - The culture to use when converting. - The type to convert or cast the value to. - - The converted type. If conversion was unsuccessful, the initial value - is returned if assignable to the target type. - - - - - Gets a dictionary of the names and values of an Enum type. - - - - - - Gets a dictionary of the names and values of an Enum type. - - The enum type to get names and values for. - - - - - Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer. - - - - - Determines whether the collection is null or empty. - - The collection. - - true if the collection is null or empty; otherwise, false. - - - - - Adds the elements of the specified collection to the specified generic IList. - - The list to add to. - The collection of elements to add. - - - - Returns the index of the first occurrence in a sequence by using a specified IEqualityComparer{TSource}. - - The type of the elements of source. - A sequence in which to locate a value. - The object to locate in the sequence - An equality comparer to compare values. - The zero-based index of the first occurrence of value within the entire sequence, if found; otherwise, –1. - - - - Gets the type of the typed collection's items. - - The type. - The type of the typed collection's items. - - - - Gets the member's underlying type. - - The member. - The underlying type of the member. - - - - Determines whether the member is an indexed property. - - The member. - - true if the member is an indexed property; otherwise, false. - - - - - Determines whether the property is an indexed property. - - The property. - - true if the property is an indexed property; otherwise, false. - - - - - Gets the member's value on the object. - - The member. - The target object. - The member's value on the object. - - - - Sets the member's value on the target object. - - The member. - The target. - The value. - - - - Determines whether the specified MemberInfo can be read. - - The MemberInfo to determine whether can be read. - /// if set to true then allow the member to be gotten non-publicly. - - true if the specified MemberInfo can be read; otherwise, false. - - - - - Determines whether the specified MemberInfo can be set. - - The MemberInfo to determine whether can be set. - if set to true then allow the member to be set non-publicly. - if set to true then allow the member to be set if read-only. - - true if the specified MemberInfo can be set; otherwise, false. - - - - - Determines whether the string is all white space. Empty string will return false. - - The string to test whether it is all white space. - - true if the string is all white space; otherwise, false. - - - - - Nulls an empty string. - - The string. - Null if the string was null, otherwise the string unchanged. - - - - Indicating whether a property is required. - - - - - The property is not required. The default state. - - - - - The property must be defined in JSON but can be a null value. - - - - - The property must be defined in JSON and cannot be a null value. - - - - - The property is not required but it cannot be a null value. - - - - - Specifies reference handling options for the . - Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement ISerializable. - - - - - - - - Do not preserve references when serializing types. - - - - - Preserve references when serializing into a JSON object structure. - - - - - Preserve references when serializing into a JSON array structure. - - - - - Preserve references when serializing. - - - - - Provides an interface to enable a class to return line and position information. - - - - - Gets a value indicating whether the class can return line information. - - - true if LineNumber and LinePosition can be provided; otherwise, false. - - - - - Gets the current line number. - - The current line number or 0 if no line information is available (for example, HasLineInfo returns false). - - - - Gets the current line position. - - The current line position or 0 if no line information is available (for example, HasLineInfo returns false). - - - - Instructs the how to serialize the collection. - - - - - Gets or sets a value indicating whether null items are allowed in the collection. - - true if null items are allowed in the collection; otherwise, false. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with a flag indicating whether the array can contain null items - - A flag indicating whether the array can contain null items. - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Instructs the how to serialize the object. - - - - - Gets or sets the id. - - The id. - - - - Gets or sets the title. - - The title. - - - - Gets or sets the description. - - The description. - - - - Gets the collection's items converter. - - The collection's items converter. - - - - The parameter list to use when constructing the JsonConverter described by ItemConverterType. - If null, the default constructor is used. - When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number, - order, and type of these parameters. - - - [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] - - - - - Gets or sets a value that indicates whether to preserve object references. - - - true to keep object reference; otherwise, false. The default is false. - - - - - Gets or sets a value that indicates whether to preserve collection's items references. - - - true to keep collection's items object references; otherwise, false. The default is false. - - - - - Gets or sets the reference loop handling used when serializing the collection's items. - - The reference loop handling. - - - - Gets or sets the type name handling used when serializing the collection's items. - - The type name handling. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Specifies default value handling options for the . - - - - - - - - - Include members where the member value is the same as the member's default value when serializing objects. - Included members are written to JSON. Has no effect when deserializing. - - - - - Ignore members where the member value is the same as the member's default value when serializing objects - so that is is not written to JSON. - This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, - decimals and floating point numbers; and false for booleans). The default value ignored can be changed by - placing the on the property. - - - - - Members with a default value but no JSON will be set to their default value when deserializing. - - - - - Ignore members where the member value is the same as the member's default value when serializing objects - and sets members to their default value when deserializing. - - - - - Instructs the to use the specified when serializing the member or class. - - - - - Gets the of the converter. - - The of the converter. - - - - The parameter list to use when constructing the JsonConverter described by ConverterType. - If null, the default constructor is used. - - - - - Initializes a new instance of the class. - - Type of the converter. - - - - Initializes a new instance of the class. - - Type of the converter. - Parameter list to use when constructing the JsonConverter. Can be null. - - - - Instructs the how to serialize the object. - - - - - Gets or sets the member serialization. - - The member serialization. - - - - Gets or sets a value that indicates whether the object's properties are required. - - - A value indicating whether the object's properties are required. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified member serialization. - - The member serialization. - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Specifies the settings on a object. - - - - - Gets or sets how reference loops (e.g. a class referencing itself) is handled. - - Reference loop handling. - - - - Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. - - Missing member handling. - - - - Gets or sets how objects are created during deserialization. - - The object creation handling. - - - - Gets or sets how null values are handled during serialization and deserialization. - - Null value handling. - - - - Gets or sets how null default are handled during serialization and deserialization. - - The default value handling. - - - - Gets or sets a collection that will be used during serialization. - - The converters. - - - - Gets or sets how object references are preserved by the serializer. - - The preserve references handling. - - - - Gets or sets how type name writing and reading is handled by the serializer. - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - The type name handling. - - - - Gets or sets how metadata properties are used during deserialization. - - The metadata properties handling. - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - - The type name assembly format. - - - - Gets or sets how constructors are used during deserialization. - - The constructor handling. - - - - Gets or sets the contract resolver used by the serializer when - serializing .NET objects to JSON and vice versa. - - The contract resolver. - - - - Gets or sets the equality comparer used by the serializer when comparing references. - - The equality comparer. - - - - Gets or sets the used by the serializer when resolving references. - - The reference resolver. - - - - Gets or sets a function that creates the used by the serializer when resolving references. - - A function that creates the used by the serializer when resolving references. - - - - Gets or sets the used by the serializer when writing trace messages. - - The trace writer. - - - - Gets or sets the used by the serializer when resolving type names. - - The binder. - - - - Gets or sets the error handler called during serialization and deserialization. - - The error handler called during serialization and deserialization. - - - - Gets or sets the used by the serializer when invoking serialization callback methods. - - The context. - - - - Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text. - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling during serialization and deserialization. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written as JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Gets a value indicating whether there will be a check for additional content after deserializing an object. - - - true if there will be a check for additional content after deserializing an object; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - - Represents a reader that provides validation. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Sets an event handler for receiving schema validation errors. - - - - - Gets the text value of the current JSON token. - - - - - - Gets the depth of the current token in the JSON document. - - The depth of the current token in the JSON document. - - - - Gets the path of the current JSON token. - - - - - Gets the quotation mark character used to enclose the value of a string. - - - - - - Gets the type of the current JSON token. - - - - - - Gets the Common Language Runtime (CLR) type for the current JSON token. - - - - - - Initializes a new instance of the class that - validates the content returned from the given . - - The to read from while validating. - - - - Gets or sets the schema. - - The schema. - - - - Gets the used to construct this . - - The specified in the constructor. - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream as a []. - - - A [] or a null reference if the next JSON token is null. - - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Specifies the member serialization options for the . - - - - - All public members are serialized by default. Members can be excluded using or . - This is the default member serialization mode. - - - - - Only members must be marked with or are serialized. - This member serialization mode can also be set by marking the class with . - - - - - All public and private fields are serialized. Members can be excluded using or . - This member serialization mode can also be set by marking the class with - and setting IgnoreSerializableAttribute on to false. - - - - - Specifies how object creation is handled by the . - - - - - Reuse existing objects, create new objects when needed. - - - - - Only reuse existing objects. - - - - - Always create new objects. - - - - - Represents a reader that provides fast, non-cached, forward-only access to JSON text data. - - - - - Initializes a new instance of the class with the specified . - - The TextReader containing the XML data to read. - - - - Gets or sets the reader's character buffer pool. - - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a []. - - A [] or a null reference if the next JSON token is null. This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Changes the state to closed. - - - - - Gets a value indicating whether the class can return line information. - - - true if LineNumber and LinePosition can be provided; otherwise, false. - - - - - Gets the current line number. - - - The current line number or 0 if no line information is available (for example, HasLineInfo returns false). - - - - - Gets the current line position. - - - The current line position or 0 if no line information is available (for example, HasLineInfo returns false). - - - - - Instructs the to always serialize the member with the specified name. - - - - - Gets or sets the converter used when serializing the property's collection items. - - The collection's items converter. - - - - The parameter list to use when constructing the JsonConverter described by ItemConverterType. - If null, the default constructor is used. - When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number, - order, and type of these parameters. - - - [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] - - - - - Gets or sets the null value handling used when serializing this property. - - The null value handling. - - - - Gets or sets the default value handling used when serializing this property. - - The default value handling. - - - - Gets or sets the reference loop handling used when serializing this property. - - The reference loop handling. - - - - Gets or sets the object creation handling used when deserializing this property. - - The object creation handling. - - - - Gets or sets the type name handling used when serializing this property. - - The type name handling. - - - - Gets or sets whether this property's value is serialized as a reference. - - Whether this property's value is serialized as a reference. - - - - Gets or sets the order of serialization of a member. - - The numeric order of serialization. - - - - Gets or sets a value indicating whether this property is required. - - - A value indicating whether this property is required. - - - - - Gets or sets the name of the property. - - The name of the property. - - - - Gets or sets the the reference loop handling used when serializing the property's collection items. - - The collection's items reference loop handling. - - - - Gets or sets the the type name handling used when serializing the property's collection items. - - The collection's items type name handling. - - - - Gets or sets whether this property's collection items are serialized as a reference. - - Whether this property's collection items are serialized as a reference. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified name. - - Name of the property. - - - - Instructs the not to serialize the public field or public read/write property value. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets the writer's character array pool. - - - - - Gets or sets how many IndentChars to write for each level in the hierarchy when is set to Formatting.Indented. - - - - - Gets or sets which character to use to quote attribute values. - - - - - Gets or sets which character to use for indenting when is set to Formatting.Indented. - - - - - Gets or sets a value indicating whether object names will be surrounded with quotes. - - - - - Creates an instance of the JsonWriter class using the specified . - - The TextWriter to write to. - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the specified end token. - - The end token to write. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - A flag to indicate whether the text should be escaped when it is written as a JSON property name. - - - - Writes indent characters. - - - - - Writes the JSON value delimiter. - - - - - Writes an indent space. - - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes out the given white space. - - The string of white space characters. - - - - The exception thrown when an error occurs while reading JSON text. - - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - The exception thrown when an error occurs while reading JSON text. - - - - - Gets the line number indicating where the error occurred. - - The line number indicating where the error occurred. - - - - Gets the line position indicating where the error occurred. - - The line position indicating where the error occurred. - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - Converts an object to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - - Gets the of the JSON produced by the JsonConverter. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The of the JSON produced by the JsonConverter. - - - - Gets a value indicating whether this can read JSON. - - true if this can read JSON; otherwise, false. - - - - Gets a value indicating whether this can write JSON. - - true if this can write JSON; otherwise, false. - - - - Represents a collection of . - - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Specifies the state of the reader. - - - - - The Read method has not been called. - - - - - The end of the file has been reached successfully. - - - - - Reader is at a property. - - - - - Reader is at the start of an object. - - - - - Reader is in an object. - - - - - Reader is at the start of an array. - - - - - Reader is in an array. - - - - - The Close method has been called. - - - - - Reader has just read a value. - - - - - Reader is at the start of a constructor. - - - - - Reader in a constructor. - - - - - An error occurred that prevents the read operation from continuing. - - - - - The end of the file has been reached successfully. - - - - - Gets the current reader state. - - The current reader state. - - - - Gets or sets a value indicating whether the underlying stream or - should be closed when the reader is closed. - - - true to close the underlying stream or when - the reader is closed; otherwise false. The default is true. - - - - - Gets or sets a value indicating whether multiple pieces of JSON content can - be read from a continuous stream without erroring. - - - true to support reading multiple pieces of JSON content; otherwise false. The default is false. - - - - - Gets the quotation mark character used to enclose the value of a string. - - - - - Get or set how time zones are handling when reading JSON. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how custom date formatted strings are parsed when reading JSON. - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Gets the type of the current JSON token. - - - - - Gets the text value of the current JSON token. - - - - - Gets The Common Language Runtime (CLR) type for the current JSON token. - - - - - Gets the depth of the current token in the JSON document. - - The depth of the current token in the JSON document. - - - - Gets the path of the current JSON token. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Initializes a new instance of the class with the specified . - - - - - Reads the next JSON token from the stream. - - true if the next token was read successfully; false if there are no more tokens to read. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a []. - - A [] or a null reference if the next JSON token is null. This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Skips the children of the current token. - - - - - Sets the current token. - - The new token. - - - - Sets the current token and value. - - The new token. - The value. - - - - Sets the state based on current token type. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Releases unmanaged and - optionally - managed resources - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Changes the to Closed. - - - - - Provides methods for converting between common language runtime types and JSON types. - - - - - - - - Gets or sets a function that creates default . - Default settings are automatically used by serialization methods on , - and and on . - To serialize without using any default settings create a with - . - - - - - Represents JavaScript's boolean value true as a string. This field is read-only. - - - - - Represents JavaScript's boolean value false as a string. This field is read-only. - - - - - Represents JavaScript's null as a string. This field is read-only. - - - - - Represents JavaScript's undefined as a string. This field is read-only. - - - - - Represents JavaScript's positive infinity as a string. This field is read-only. - - - - - Represents JavaScript's negative infinity as a string. This field is read-only. - - - - - Represents JavaScript's NaN as a string. This field is read-only. - - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation using the specified. - - The value to convert. - The format the date will be converted to. - The time zone handling when the date is converted to a string. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation using the specified. - - The value to convert. - The format the date will be converted to. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - The string delimiter character. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - The string delimiter character. - The string escape handling. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Serializes the specified object to a JSON string. - - The object to serialize. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using formatting. - - The object to serialize. - Indicates how the output is formatted. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a collection of . - - The object to serialize. - A collection converters used while serializing. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using formatting and a collection of . - - The object to serialize. - Indicates how the output is formatted. - A collection converters used while serializing. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using . - - The object to serialize. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a type, formatting and . - - The object to serialize. - The used to serialize the object. - If this is null, default serialization settings will be used. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using formatting and . - - The object to serialize. - Indicates how the output is formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a type, formatting and . - - The object to serialize. - Indicates how the output is formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - A JSON string representation of the object. - - - - - Asynchronously serializes the specified object to a JSON string. - Serialization will happen on a new thread. - - The object to serialize. - - A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. - - - - - Asynchronously serializes the specified object to a JSON string using formatting. - Serialization will happen on a new thread. - - The object to serialize. - Indicates how the output is formatted. - - A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. - - - - - Asynchronously serializes the specified object to a JSON string using formatting and a collection of . - Serialization will happen on a new thread. - - The object to serialize. - Indicates how the output is formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. - - - - - Deserializes the JSON to a .NET object. - - The JSON to deserialize. - The deserialized object from the JSON string. - - - - Deserializes the JSON to a .NET object using . - - The JSON to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type. - - The JSON to deserialize. - The of object being deserialized. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type. - - The type of the object to deserialize to. - The JSON to deserialize. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the given anonymous type. - - - The anonymous type to deserialize to. This can't be specified - traditionally and must be infered from the anonymous type passed - as a parameter. - - The JSON to deserialize. - The anonymous type object. - The deserialized anonymous type from the JSON string. - - - - Deserializes the JSON to the given anonymous type using . - - - The anonymous type to deserialize to. This can't be specified - traditionally and must be infered from the anonymous type passed - as a parameter. - - The JSON to deserialize. - The anonymous type object. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized anonymous type from the JSON string. - - - - Deserializes the JSON to the specified .NET type using a collection of . - - The type of the object to deserialize to. - The JSON to deserialize. - Converters to use while deserializing. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using . - - The type of the object to deserialize to. - The object to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using a collection of . - - The JSON to deserialize. - The type of the object to deserialize. - Converters to use while deserializing. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using . - - The JSON to deserialize. - The type of the object to deserialize to. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Asynchronously deserializes the JSON to the specified .NET type. - Deserialization will happen on a new thread. - - The type of the object to deserialize to. - The JSON to deserialize. - - A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. - - - - - Asynchronously deserializes the JSON to the specified .NET type using . - Deserialization will happen on a new thread. - - The type of the object to deserialize to. - The JSON to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - - A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. - - - - - Asynchronously deserializes the JSON to the specified .NET type. - Deserialization will happen on a new thread. - - The JSON to deserialize. - - A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. - - - - - Asynchronously deserializes the JSON to the specified .NET type using . - Deserialization will happen on a new thread. - - The JSON to deserialize. - The type of the object to deserialize to. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - - A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. - - - - - Populates the object with values from the JSON string. - - The JSON to populate values from. - The target object to populate values onto. - - - - Populates the object with values from the JSON string using . - - The JSON to populate values from. - The target object to populate values onto. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - - - - Asynchronously populates the object with values from the JSON string using . - - The JSON to populate values from. - The target object to populate values onto. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - - A task that represents the asynchronous populate operation. - - - - - Serializes the XML node to a JSON string. - - The node to serialize. - A JSON string of the XmlNode. - - - - Serializes the XML node to a JSON string using formatting. - - The node to serialize. - Indicates how the output is formatted. - A JSON string of the XmlNode. - - - - Serializes the XML node to a JSON string using formatting and omits the root object if is true. - - The node to serialize. - Indicates how the output is formatted. - Omits writing the root object. - A JSON string of the XmlNode. - - - - Deserializes the XmlNode from a JSON string. - - The JSON string. - The deserialized XmlNode - - - - Deserializes the XmlNode from a JSON string nested in a root elment specified by . - - The JSON string. - The name of the root element to append when deserializing. - The deserialized XmlNode - - - - Deserializes the XmlNode from a JSON string nested in a root elment specified by - and writes a .NET array attribute for collections. - - The JSON string. - The name of the root element to append when deserializing. - - A flag to indicate whether to write the Json.NET array attribute. - This attribute helps preserve arrays when converting the written XML back to JSON. - - The deserialized XmlNode - - - - Serializes the to a JSON string. - - The node to convert to JSON. - A JSON string of the XNode. - - - - Serializes the to a JSON string using formatting. - - The node to convert to JSON. - Indicates how the output is formatted. - A JSON string of the XNode. - - - - Serializes the to a JSON string using formatting and omits the root object if is true. - - The node to serialize. - Indicates how the output is formatted. - Omits writing the root object. - A JSON string of the XNode. - - - - Deserializes the from a JSON string. - - The JSON string. - The deserialized XNode - - - - Deserializes the from a JSON string nested in a root elment specified by . - - The JSON string. - The name of the root element to append when deserializing. - The deserialized XNode - - - - Deserializes the from a JSON string nested in a root elment specified by - and writes a .NET array attribute for collections. - - The JSON string. - The name of the root element to append when deserializing. - - A flag to indicate whether to write the Json.NET array attribute. - This attribute helps preserve arrays when converting the written XML back to JSON. - - The deserialized XNode - - - - The exception thrown when an error occurs during JSON serialization or deserialization. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - Serializes and deserializes objects into and from the JSON format. - The enables you to control how objects are encoded into JSON. - - - - - Occurs when the errors during serialization and deserialization. - - - - - Gets or sets the used by the serializer when resolving references. - - - - - Gets or sets the used by the serializer when resolving type names. - - - - - Gets or sets the used by the serializer when writing trace messages. - - The trace writer. - - - - Gets or sets the equality comparer used by the serializer when comparing references. - - The equality comparer. - - - - Gets or sets how type name writing and reading is handled by the serializer. - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - - The type name assembly format. - - - - Gets or sets how object references are preserved by the serializer. - - - - - Get or set how reference loops (e.g. a class referencing itself) is handled. - - - - - Get or set how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. - - - - - Get or set how null values are handled during serialization and deserialization. - - - - - Get or set how null default are handled during serialization and deserialization. - - - - - Gets or sets how objects are created during deserialization. - - The object creation handling. - - - - Gets or sets how constructors are used during deserialization. - - The constructor handling. - - - - Gets or sets how metadata properties are used during deserialization. - - The metadata properties handling. - - - - Gets a collection that will be used during serialization. - - Collection that will be used during serialization. - - - - Gets or sets the contract resolver used by the serializer when - serializing .NET objects to JSON and vice versa. - - - - - Gets or sets the used by the serializer when invoking serialization callback methods. - - The context. - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling during serialization and deserialization. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written as JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. - - - true if there will be a check for additional JSON content after deserializing an object; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Creates a new instance. - The will not use default settings - from . - - - A new instance. - The will not use default settings - from . - - - - - Creates a new instance using the specified . - The will not use default settings - from . - - The settings to be applied to the . - - A new instance using the specified . - The will not use default settings - from . - - - - - Creates a new instance. - The will use default settings - from . - - - A new instance. - The will use default settings - from . - - - - - Creates a new instance using the specified . - The will use default settings - from as well as the specified . - - The settings to be applied to the . - - A new instance using the specified . - The will use default settings - from as well as the specified . - - - - - Populates the JSON values onto the target object. - - The that contains the JSON structure to reader values from. - The target object to populate values onto. - - - - Populates the JSON values onto the target object. - - The that contains the JSON structure to reader values from. - The target object to populate values onto. - - - - Deserializes the JSON structure contained by the specified . - - The that contains the JSON structure to deserialize. - The being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The of object being deserialized. - The instance of being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The type of the object to deserialize. - The instance of being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The of object being deserialized. - The instance of being deserialized. - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - - - - Contains the JSON schema extension methods. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - - Determines whether the is valid. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - - true if the specified is valid; otherwise, false. - - - - - - Determines whether the is valid. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - When this method returns, contains any error messages generated while validating. - - true if the specified is valid; otherwise, false. - - - - - - Validates the specified . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - - - - - Validates the specified . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - The validation event handler. - - - - - Returns detailed information about the schema exception. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets the line number indicating where the error occurred. - - The line number indicating where the error occurred. - - - - Gets the line position indicating where the error occurred. - - The line position indicating where the error occurred. - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - - Resolves from an id. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets or sets the loaded schemas. - - The loaded schemas. - - - - Initializes a new instance of the class. - - - - - Gets a for the specified reference. - - The id. - A for the specified reference. - - - - - Specifies undefined schema Id handling options for the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Do not infer a schema Id. - - - - - Use the .NET type name as the schema Id. - - - - - Use the assembly qualified .NET type name as the schema Id. - - - - - - Returns detailed information related to the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets the associated with the validation error. - - The JsonSchemaException associated with the validation error. - - - - Gets the path of the JSON location where the validation error occurred. - - The path of the JSON location where the validation error occurred. - - - - Gets the text description corresponding to the validation error. - - The text description. - - - - - Represents the callback method that will handle JSON schema validation events and the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - - An in-memory representation of a JSON Schema. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets or sets the id. - - - - - Gets or sets the title. - - - - - Gets or sets whether the object is required. - - - - - Gets or sets whether the object is read only. - - - - - Gets or sets whether the object is visible to users. - - - - - Gets or sets whether the object is transient. - - - - - Gets or sets the description of the object. - - - - - Gets or sets the types of values allowed by the object. - - The type. - - - - Gets or sets the pattern. - - The pattern. - - - - Gets or sets the minimum length. - - The minimum length. - - - - Gets or sets the maximum length. - - The maximum length. - - - - Gets or sets a number that the value should be divisble by. - - A number that the value should be divisble by. - - - - Gets or sets the minimum. - - The minimum. - - - - Gets or sets the maximum. - - The maximum. - - - - Gets or sets a flag indicating whether the value can not equal the number defined by the "minimum" attribute. - - A flag indicating whether the value can not equal the number defined by the "minimum" attribute. - - - - Gets or sets a flag indicating whether the value can not equal the number defined by the "maximum" attribute. - - A flag indicating whether the value can not equal the number defined by the "maximum" attribute. - - - - Gets or sets the minimum number of items. - - The minimum number of items. - - - - Gets or sets the maximum number of items. - - The maximum number of items. - - - - Gets or sets the of items. - - The of items. - - - - Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . - - - true if items are validated using their array position; otherwise, false. - - - - - Gets or sets the of additional items. - - The of additional items. - - - - Gets or sets a value indicating whether additional items are allowed. - - - true if additional items are allowed; otherwise, false. - - - - - Gets or sets whether the array items must be unique. - - - - - Gets or sets the of properties. - - The of properties. - - - - Gets or sets the of additional properties. - - The of additional properties. - - - - Gets or sets the pattern properties. - - The pattern properties. - - - - Gets or sets a value indicating whether additional properties are allowed. - - - true if additional properties are allowed; otherwise, false. - - - - - Gets or sets the required property if this property is present. - - The required property if this property is present. - - - - Gets or sets the a collection of valid enum values allowed. - - A collection of valid enum values allowed. - - - - Gets or sets disallowed types. - - The disallow types. - - - - Gets or sets the default value. - - The default value. - - - - Gets or sets the collection of that this schema extends. - - The collection of that this schema extends. - - - - Gets or sets the format. - - The format. - - - - Initializes a new instance of the class. - - - - - Reads a from the specified . - - The containing the JSON Schema to read. - The object representing the JSON Schema. - - - - Reads a from the specified . - - The containing the JSON Schema to read. - The to use when resolving schema references. - The object representing the JSON Schema. - - - - Load a from a string that contains schema JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - Parses the specified json. - - The json. - The resolver. - A populated from the string that contains JSON. - - - - Writes this schema to a . - - A into which this method will write. - - - - Writes this schema to a using the specified . - - A into which this method will write. - The resolver used. - - - - Returns a that represents the current . - - - A that represents the current . - - - - - - Generates a from a specified . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets or sets how undefined schemas are handled by the serializer. - - - - - Gets or sets the contract resolver. - - The contract resolver. - - - - Generate a from the specified type. - - The type to generate a from. - A generated from the specified type. - - - - Generate a from the specified type. - - The type to generate a from. - The used to resolve schema references. - A generated from the specified type. - - - - Generate a from the specified type. - - The type to generate a from. - Specify whether the generated root will be nullable. - A generated from the specified type. - - - - Generate a from the specified type. - - The type to generate a from. - The used to resolve schema references. - Specify whether the generated root will be nullable. - A generated from the specified type. - - - - - The value types allowed by the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - No type specified. - - - - - String type. - - - - - Float type. - - - - - Integer type. - - - - - Boolean type. - - - - - Object type. - - - - - Array type. - - - - - Null type. - - - - - Any type. - - - - - Specifies missing member handling options for the . - - - - - Ignore a missing member and do not attempt to deserialize it. - - - - - Throw a when a missing member is encountered during deserialization. - - - - - Specifies null value handling options for the . - - - - - - - - - Include null values when serializing and deserializing objects. - - - - - Ignore null values when serializing and deserializing objects. - - - - - Specifies reference loop handling options for the . - - - - - Throw a when a loop is encountered. - - - - - Ignore loop references and do not serialize. - - - - - Serialize loop references. - - - - - Specifies type name handling options for the . - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - - - - Do not include the .NET type name when serializing types. - - - - - Include the .NET type name when serializing into a JSON object structure. - - - - - Include the .NET type name when serializing into a JSON array structure. - - - - - Always include the .NET type name when serializing. - - - - - Include the .NET type name when the type of the object being serialized is not the same as its declared type. - - - - - Specifies the type of JSON token. - - - - - This is returned by the if a method has not been called. - - - - - An object start token. - - - - - An array start token. - - - - - A constructor start token. - - - - - An object property name. - - - - - A comment. - - - - - Raw JSON. - - - - - An integer. - - - - - A float. - - - - - A string. - - - - - A boolean. - - - - - A null token. - - - - - An undefined token. - - - - - An object end token. - - - - - An array end token. - - - - - A constructor end token. - - - - - A Date. - - - - - Byte data. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets a value indicating whether the underlying stream or - should be closed when the writer is closed. - - - true to close the underlying stream or when - the writer is closed; otherwise false. The default is true. - - - - - Gets the top. - - The top. - - - - Gets the state of the writer. - - - - - Gets the path of the writer. - - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling when writing JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written to JSON text. - - - - - Get or set how and values are formatting when writing JSON text. - - - - - Gets or sets the culture used when writing JSON. Defaults to . - - - - - Creates an instance of the JsonWriter class. - - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the end of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the end of an array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the end constructor. - - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - A flag to indicate whether the text should be escaped when it is written as a JSON property name. - - - - Writes the end of the current JSON object or array. - - - - - Writes the current token and its children. - - The to read the token from. - - - - Writes the current token. - - The to read the token from. - A flag indicating whether the current token's children should be written. - - - - Writes the token and its value. - - The to write. - - The value to write. - A value is only required for tokens that have an associated value, e.g. the property name for . - A null value can be passed to the method for token's that don't have a value, e.g. . - - - - Writes the token. - - The to write. - - - - Writes the specified end token. - - The end token to write. - - - - Writes indent characters. - - - - - Writes the JSON value delimiter. - - - - - Writes an indent space. - - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON without changing the writer's state. - - The raw JSON to write. - - - - Writes raw JSON where a value is expected and updates the writer's state. - - The raw JSON to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes out the given white space. - - The string of white space characters. - - - - Releases unmanaged and - optionally - managed resources - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Sets the state of the JsonWriter, - - The JsonToken being written. - The value being written. - - - - Specifies the state of the . - - - - - An exception has been thrown, which has left the in an invalid state. - You may call the method to put the in the Closed state. - Any other method calls results in an being thrown. - - - - - The method has been called. - - - - - An object is being written. - - - - - A array is being written. - - - - - A constructor is being written. - - - - - A property is being written. - - - - - A write method has not been called. - - - - diff --git a/source/packages/Newtonsoft.Json.8.0.1/lib/net45/Newtonsoft.Json.dll b/source/packages/Newtonsoft.Json.8.0.1/lib/net45/Newtonsoft.Json.dll deleted file mode 100644 index 6064bc0046717ee71a2b7648e199ff1e593f868c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 519168 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 z z@9kfQ&03VtjG`-r9xZSygKQvLOevoI@=dZ-O0$-IZcLIuxry;gc%&uz=IE$nq1U;M zvQpHv*h)xKEgfkU&zBh`Daw^e0ruTr_t2-4lZw)_Up`6}bS^uSaUF^54uN28`xC92 z1^JjJ3pyd146C;e6Sur5Zs((2swGMIic+R;_w{1uW^g3DoFe73-&+aYcpBQxYH0_} z9l8fc|EjmeTRN2Bb8WMeHu~XlUmBV2#9irx!T2Z>fNO-EuX#y=YlOZr4WpyXbrn3iZ2T!1g-f{<1*&=#ud)pG@o|eDNH;SgJ!RoI*6G#1?eEUy_W* znM#UUmq2BWe=b{9rx=ic(A$POMqdI$#rg|_pdp8DXZ2?-Q5@91@iW6P{7qnI1R9Vp zgoI|UzsLGI_bxhZ=UO@i%TSiQKH5&rl6kLcie1(HwHR zJx+bh&R1M`#(Wa?ZI6|O-l|)i#4>c$lUhlzlt{Jk&n{%yWY%BWmkK_2JKC%lmh#cg z6{%)HC?8pu<|wmTI-?KDXK{Ou>?rOm2YmSgqn0QafzWpS=`EJs`Ig8)4+AGTzsj`9 zpZ#uPMAB@dT6?+vp^!Lo(8YulvI~UnXD0OPo9UJM6?7Z-7*{?1qN@l;Qc$F;-gk1% z$Ujv7{9oYqMXGA`{fXr6EP09l3T$!j)#XH(9)FoiEoY}dz0q`Pbna)9Jl9_i8(NEZUt_eU`BXKa7|^f>9i4s|`)x8P0;*fhMfbyDa@W__*|RA?5E? zxA@LydbTVdfRN_ovLbF83cEaqh+cCLu+7O)daz`z9qCa2yMD7UU&Rr^7d9h8mh8@f zxS=-hBeI`;cI;3QpPfH|?*7@CdCq(zI6E`@H@};TFPyQ>w*wSuGZ~F18YFDgWl^=$ z&mbtYI?gz#MQ%>r4c_#+mUos8pC;7yYjV4|L7@7029J|Q;4$JblCrLmNTqT{E36Nj zfc|V7I4c6A=8t4+b~dl2svnA{x}4eD7lv=`&Fi}}fyqnyxqzDgTg5^e^~+jc9EC`% zJ6YQ=H3*@3d-wG-l{)`^1~{s{u=oscj4c7d#^{a|Pmv;H*CW8gW^SlWeU*IfL>i%=kVgG? zHB@{&E1UpEf%D;0H7TnvNGF(AP1IquiG^o{HrX`PZQKq|)A*4!X#~a79bEcthy@<532+`QlaxA_RgA=EgX*vPrT;l6cOEZt%r3hb zMEzg(Q={$ui%uYn7&as@8 zjn$ty6F2OZ4`-|H!WE)!l*%YVGo3>dm7dF*tFx2w6Fok1x=Vb!k5cd;*#6{lCcQ|R7CmaccPTnwFa=|An36Rv!Oo%PU85V@bE zb*&0y*tu6Dxas`L`+2&1Q4F-fvKK{CTYTPUYWw*4)wY#B97?WF)~F|&&#!EEPpIKM zVR0kDrnOBhV$$H4Pb}VqnvEWI6Qh4nlz z!;90`$U*HtGj8rmA(mB9spUN9?9<@4HYF)}p41umgIq9DPP6X(MsS;r{`^PY?^~?Y zGWi#9DRExuf1L^h3okfF@6x6l!g0A0xM}cM%ALgqAD2;Cb)nxPkDh-0%yRmC>e6YO z{dYdXR&Pe$Zu~qmrFDVtZG}^p-TK_CuxPd6+r@G{NwBd5V`^NsC+qsR|Jn9S12QM5 zhyG@ZFH@=Q+WE@G(eD7mr5BKUq0f|z>Y=t|W2XYxy(|nyhp;dX^zvm6xTD4m=T|yI zC+p6yWE;yjpI^B?^tCYR7y&lP+Wv5iIfcm%gA69@?MDs$7W!cs+qoW$b@tmsYwJBM zeB~@7xaKxfK)@>Tm`hxod4hn3ulyd-cM{G;TLxIU0P zkR(WnD;wA^Zu23!fnLCl(?N&Ej0gz` zw4{4Kdw+Hd5J-Lb!t2v`dN=Q=dtJY}gGS_BO+Ailtn_6seA}}h%CwQ;w_U5q-8TBTf|Ger{3wf& zQ3LU9=A?e4Kk-E|t;M#67nx+XJJ(VD7GucSSJAUdsDLWAt2EVfC$L27f;!547eC2XK8#i|Q`)MdBoF&_bWqY!&-m{fXTRCFwmZv`AgpF zpu3+*2(OL>rN|W+J@Ls9F`vVywl|9wLtXMA3~hBg06Cj*As{%3F`Mtf-TkS#*V>(3 zlw`eL=EwXvPTZ=}v1e=PZ6hipv21q3Aht`5w>dQ5PmP_B>ZrB;cRNxE)NlJU7R>TU zk!-JZ(7oHFlSHZ3ug*>|xZ88qDKuCjwQ`U@UYzhabilD&?#QCU`9DxC{veKVopB0n zR{0id;2$@E6!AT`&7h#`2;tjYNztvE$>ED}@a*wp`yKChckT5e&K z>XpdD+q{Xk!WTo5dHn2Lug%KEZf5L#6&Yy0vMV8Y);y%ppHX$n&cN*FuRp^c>d*A2 zxvY?nRMo$sJxqWbx%zR#Zj)t@sNLyVqiSEtdSCyZW(AV?teo%LVjsyEYU~y| z5nd8F|Haw6>S{$Smc^7a4Pytm;ueTFi|Tx&0#BC?=tnvA3cmLbvaLo7!PU4g(CUq| z5B^L8>?L6lpl@CDs>gl1aGM+5f{NUUwc_FPtCmjS5tyF`x8(%QtQKbY<86$>{rutZ zxcnIPHxCTtGf+XYhx`^g2Mtfl4VkV^y~vVA3o68tQIfl z#SIqRh?Kd3GPm<;(iZG}5zV_*G+EFEo-grY(Y7uy39$PN84j?F_$dFsZvU_2x*D)+ zM0b;_Px$KpM?vCym}n6%FQkpeSW@^HucUR>^%u0PJvP}_-K9p{>Rx;A-S;0w&i7E0 z%k!|PQr*GYofMXVl$)@BUx60lEPI-F{G|rR^Zs)cJyl(5Pcl9!{ArR5|7qIavS12O==n9q_y@F>VS!%lUioSW0d6tJ?q7VCx)I^xUl9`nWBFN~d zZG!X9au4^fT+pBO~mDb{Z*jidO~vPCZ4-%wjd>f6x@^1 zP25w*;su+4w(t5$uSMJq+Ym@U7Mb68Hg*0@CEpnA6d+0culplY z@7gJXC2*Ac0hJS5u;xbx&@&U5Ber<6zh@?laRF^e+4%Fgh?D*zC-H8{Ew=(8R_~Tw zXV-m6>!Q<*yYtl;H_xI6lU`gBGYy;T{qRLkokM8QzQrfJ$(p5vB>@}UbQ=V%mV#Mc zqnan77heuL`r$UhoN6pxF)PnC5B@_0F@|{YhXXSrb*6 zxYV_gnNNAJqXxr%fRBrd!&ZZO95!M)`x{c7$NH?&qtt06$bo=S+Q^A~L}QDJpXgEC zBg_Z2q%LA-ucdcQ+NZYE4W?ghvVO{MJoc@pFZEV-F%kw82tO=|B7ns-!cekg;YcZ^ zM@SjWx-JB>mPS!*Gb|oGNOR; z{gWPcSAad$f8Ea%djnk69q|qT?Jq$0qIh?1{G`p9OPa7j=rP$^&Q_c9e9>kxEIKxt zqoZDO@;~L!#*sXM#c%eqp{oUlwq8XG`|VVP&lA@ki*P=55s+1mR(A%@22**bb=9+1V8EO+>W1jfQoL$Eqw zDzk;NaC>jsrEx=B8nlF@q!XLTA`KTX&WBwUl4=rIo_5T%h7o^ov#E@OVdqNHRZE0U zo|Em6Kl3vevhurgA)@XClPuhz{=#Pk?3XZEL zVM{@XB1z%ef!j)g{Bb$$qhNUV+)RxwWey?cv|9G1oSU27?BFZv_}P0`${lpsSN!9~ zar8gTVp#6ay|v!DH6ni}dA_v+wR8_4yY2lCg z3lPfEl~ajpw#3HH(#1P>qWkUM3r?zC%CAGE^JO(~Y4e%u z46y3gEB6-56|U;3CG7tPh@HKbgnyg<^~cu^Z~DfjN2gx=yNSR5Kb}qsQ%P=MDwit_ za;YpePu2+PzsXgbCsqH_5U40noXV9atIg+!r-*%5p&^0C8e-_G-oi947)_Ek zq$X7YkTsvLG{4V-5+MPFn1IrJUM)?k0R@!*B;9I$lgc#U+Zb^3DIyL##(C0vE4a5q zS$Hao)%@L3+S6%^{(>1RE7aI(@n6#8T6M-U{c5u6nSMo=YjjHUlTL{0Q`ZLQ+A*c4 zbC9MBgDeAGCNMgcv)&V|sp`hl)y6X^&=buNc%)k;=Rmlh2J_YCN^S+e4ft))Z$o}7 z`VHVI=dj;K{5I;hF~5y-qv1;ZVFJuq<*+5>8L9#_eH;CJoj_}G8nB@$gPMJro2=v7HIE5BeKF^l2q$I9W3URkmSk*=%-u;16U?p75Ukeg16&^{s)1_# z5yP_j4=AUHtvA(t>wANXtM})acIff4i4{y;wf^ng643pAu7wf!!3cr;lBAeG9hKIL zrDCD_K(+o*O{1%}e#TR#&+hr5^1u+yGJh&<&HUUNs8LgGh>ko^-EYZnYwqh$S6kn= z=+UBvG6VT(Al3T!yt6M>>Myr}cp?Sj2}V`f39^;|U1cYI&y^+%fTUXgfgr;zjg_j! zp%T$jWzXVD{YSaVp2{BjTK^%TA)BK;q7Xe2t$UV2l4uU{EOMJ1EKd$r>W|t5ESMY|OmZaVCkMxi1sgYy z$;SKugF)&aRQ*sp%xJ`_Qaj_;;c*_1r_GOBa<=91v37PSDIM{{z>Am)+2e;*jD&Kg z%S0Cx2f`RDhb#4l1Mo0Ct{he`4qLIq<0?f}mDb9M%3(&(E>v%%4K|p22-q5Hcw-G~ zEEKCZpc)7U$iYuU9*;plrP2os9;YPJfJMiBG=bf$_21Y;uCOGTSd!@f$cTu;@`kxz z=3QSF;u9X92=U82ep!ew^7x_X6EW(MbsmtuT$or*hi8a%GXBVJRt04o((IrLkntG#F_yrTkE71TIp7 z#qa~02o|RlE>SZV)n947BT8(&QxJ(3#N`Q>M~lNeFO&*}d;zN0!-5qm6ewCKh?!e3 zpDzp*2TG-K;UmRM3#A%p3f95~OO^W1br%tF8`ot-X(WuRGv(4yA`&Zrw%q*3gOTuH zght0lj4|xGA*?7;6l}fvQ>g-~;&CdMg6S=$%PLh`) z*=;dWH*dh)S(z}&{6l}B=Szz8r7K63uzI6)*J|_`$q%VWSx>}CH83e6T8NBDQUKU;IWKMMnpzQshA~f8W|Qz| z8AP;0BbLs*ra1$FxQyq4>sG$kiMy=Du% z3g8BelVtN-ZsF8GS4z1of*H5`DK}955#fZd8q?>QM1pW;O=Mobbd|J_WKHx^uzl2U zIVX~`G!d7cDP<63s?J6bD#}*UU6`QiH`b~IjR*8<`I)G|Ggb z@iOBz2~U%ZP(96z`)$l`qkcn@&JEK;U;3$3Wwun&Y?oOC^Fu$VHg3`&NXo;KxXXT! zD_3TRi7It$YM@q~9Y?9*;m8zOJpy=UD~!7afU7fU*B5ZF=P`h!@e+e8Pte9N&=J*_ zO6?FrTYO=HPN>-8OtCSBX-PtC(;QGkSkBE}3r<3vmBTELM%2*}Nov?i<4(FVQW&Zn z7W+ZpIebYG7V|C|ccuQ0715=BWC+cGUX+V06?jUDGL)#wB8Wvw4^Is#6aN4>RoHdB zoWTAyi>|RR=!n)E1E^a^MvDW~cZB{>ix?pP8+XFT+o|dyV`y+!-DLK0)Q^~2(l7B(Cj=_opp8nD`hVDYmP18QD>6~`x#$|}t- zER0OHvkD^L1+igh&k!=BUMVnw0Rs6UV_*tOQ>xCwp~OP%ZtOzYRn4OiX}%oHK93F# z!7ZN&(Wh19GID-!Y7ny!B={XYP7~9cH?S;iKzG&qEnS`-70)~9)NSDqsw&ykqt6KNjZmFNBd zrTg2}Y)Z4}t}NdUqx`lvb7T5kcRhbNH1lw5<}+y?-IeEW7EFQgOvc|R55MswPsk>u z-SD=wknSqf2o*O}NTdHePt0zMnyhNRFLbh0>*M!H95viepN^#2q{247uciE~gcl9V zq}h08gp>xQo~h1Ao120ERvUi{lTa%kyx0Brr0S#30_ELBLQN zJhkSYL1v{iVvT)Q(v8ZQZi%vmNufHs(dyhnmsz$no|#BM&EHrWP0^`}db~M({Ji>Y zMYICrr9y%=)F^9=-l@;cYsaSs zvA+Q^jG@;e+uE_2yw*aEALS?AV*ev1qParWbQT0_0U-6h1sdagoY0gY(c={X6is)Rd@k`a&JJ7v!D=jP*>EazFyAV)V0*3`iwXs~G z%PmAV=}xV7B`eLwHPyzx>g>+RGM1UfY4TN?8j*lro!wKN-N*DYzdz(RG9{ur&DvrT zQx@Z-9;s@EucsHWgp~fxI;+}vi>Z1G`?4X+o#BBiv~Mv-lMsn7Mu*ieEnA1nL(m&H zppSMvu`s!&$edSaAW4vqTx(cVC}<6v%3>)>UjiGH$v2NaGMX;DATOk*_0bC}9EwRE zQcg2=fNbN6v*xtKys?D?Fbj0?G)`dLF--=vzbM(xV|6HL*10L|c>YQ=YW#i>0|*#T4=%su>0WbW^Romcp;`mcbLq zlR@mj0+!RH3!QLV1y3|L#X)t|ri-c9qq-@UmIOXemM05j%H~lfW@;u)6B+p6z&wz z@F_5Rh>?ng&K@czT=!z`=T0Atd$3}fJv1f;xYy{u@r*?_I&MF+Aj3b^4`c3|z2UUp zhV7LBN^8km6>zDUZgsF$QjG&IDx!+deuFu+@%zSwa7;-BRszp3s=ZD#byK)_|@Wo8t?8Y1vNO5-QiI32VmgfbgL(X=;b2lGnBBLo6u%0;tA$Ox=7u4+o>`fCucpTqAkXU;1M&RZml+1(*{I!woV_H z0Gum9$uyE*Vpxa4tlCtkm*k2dzc@Y3P_WG-x4=HCvyT9_*@w6QBDF(B!noOo47X<= zat0ET8(SRZz3ex;$_DIs2pnFX(;iOPBjwIkj$vMEx50W^P{I$%N0Uo)h0AOnjJ=T{ zE|=aQdCODrTMmm!u~04*#$=r>lv#FZEs#jR-5`@MG&ISMnHCZ}F%#hI6Rrt8Nv%Q- z-KDVnP?sy=jtCDxW6JN*G*7rcmF7LAg2&RxTZ%kOM4V)yZIsU*C(2r292-`VtF3k( z1_-k2qBoZYS?8C{WGmZl0h2A8?acWpn1i!?LZ>|R7HI=$*E1sK#ug12>xp#unThg5 zc^E{j{~(VcSgkZC(^+d=>C|xWn>}el<5N^+N`a;x9gO*> z^Gq6{af~$0NdpskE^SYtnsI&ZlqTNtpCYH`QuB36RKpFCaH=}{f@v}8(kaKNQvtpT z*rcBl3eBGInzm5Wge(qkYQc}8_E8J~vKKr&n8*hKU462^1P+vZHrV&nTE8@5TXr?iYhp~`Oi6b7P#kgIOXY+LCoBbHv3aqA-O!ETE~3v)I2ZaY~^ zeXn+5E;Yfp-BGGvGiQRcqWy6Z3VZ|!N`8djjPx9W6@t1eN%u#jv8dU)IEY}>4q)h7 zm|OviZ9GwJyj^L0lZTkO8{Z^WlZq1}(vd=VO>q=%aWtJ1(U;~14BgNU&e%4$64T#X zZA#Nd4_o0p5ccfT<&ZSR=0@4XngjXj9aiW{c%G$?Da#$saa5n1scg`Uv~l`FfpV7! zhAB%H$$Bg&WJPYAz5=y&_SNbR!72Se`oQ&24A%79l2 z7+zf|k=mR97q2$;q>0L)}$Y4}+)7ug;H{u&mkANSi!#yZ6Ts_Oxu z+F$?2sqw$scq0YqeD^m^#eT!CZ!XuCs34mPNgLW0u6f8G*{rzO&DG$9W(?f$>>8A2 z@Qo07)2+42gUA=FdIun=s3X*3lzB@Ad}*@itf@`PY7@r>7AL>uQ7X~J#ox6@%dmb@ z=XymNTR#BaHQBm#Y|x|wMj_&|e2Oj2v664+%zi6UAJZBcGC8cWS5-5>-&kB=6>Y5U zV~?oX+$=D=xek1`-2!9Z2hH#1i@UqyfjJND} zILEc%V!`URO7kYn@zv(-{LCg#@!4mze&!(@_$Kyt6L#|eFWb09Xo(5*Sun}UocIiw zU1EJeYnyl>x&kJk-V`b*&!p zCUZ!xYU(o>14)aCO+xgn%=1Sz%rhGeP>Dr>sFcot? zV`FR*QB(hI4bKvk4P@nG3{*Zy)XMLg;sS;V)KpaSg#&~7u{N*mST&uxX_0Gf`}vaM zShfCR)oI17)=bv2O;7#Bd=0OS$7C!K_io;2K6~&am^dv~_t!p1J&j+MR9@3fn$7Aa zwR=zT3cy2;z>?W_Cu=p=Zk28JJty$lcX>hrn^^BSz-QkfXi#8N${snEP$6@>lG{%- zsXnLa_Jq~aX7X;~8MBR7E$iO(W!<~J-K%!e9;HlX_T9G1NM0L=HC){UVpr<3>x#0O zu>02>Q!g_^t$zrWeIv4Vm>RB}C}?|roK@=*DMc9_!*mW4NBPka z5l*Zrv@bGKqv8ncez%*q^wjg1bV6R1z5i5w=(=f!pfNhckVS0FX#IO=w4j;D2)Yza z$_vkM@&z#A1!zw0JS^?XwY9}@41>&_m$Z>s!|+rwix5^{plGUZyqzyI3l{$XIMlQq z{;q!2Ph3(Q5pJ@`wF$R=X$y+2FKq~??b*^^1jg=_q%FH=)%uGd;iHx25t=g1_EFPv zk4zTFy1FXo2vwxfER$1J7lHejLn0Y3hiw=U+K!m~E<(Rho@uqj-XFt$1kD1;tK~5u zg=98}b3Ou_+>ox)nj1wTwzyF8M%nc5F#X^~7BbZv$-Y>Y%T3bWZbV!mT1-9lR7Z0? z7u%gnin2y+WwDlKM9vonSay}F)72Rms*FU^?70_!QYK>;l$D(>yR>{{W`X z?I(W2$(Qaut`303ka60rl+I8Eq`&-4j%h)8_(A3HK!PtM8=6GG%WnZ-bLb(&_K~M( zPU=6fj+>%2XZs{e@#U3{@lCEQqtIfws@DD0<~DosNJ_KKZE9VX=H@oRbtyfxBoj7D zlA1vwDO%ft1lcx#qq2+V{w^Hf#Ynjm_wThan-OK_gg&NMB2?mF(aL@6eW5{lhQmS zxC3NDSmCO3=-KKYQC~l`qwuYC;8rN)N~evqblTF3+TxmJL!Gz68+*toc?$>COiQk?*m=N6e}zCt`% zrWZX`SauhMwYKH9RCWXdm$O|G^x zAsA>VTro^dTiTZTSi2g~Jfv=k@$Zw%7n%tn!B2`mis{x0oCZoA8on*DbJg8MQC-L3f_Yo~ocbdRaH$us5Kr1gRl+HF0@E8fD0`0Wu zy-4Mz@!y}&G|`f|L}wznRGvsw1tV2Q)+D>1#<&T+g_iUyM}74l(zO&?~0J19egEdpT}}& z$0X(4&12RlctA-zUvQt}#vVN?Rv?o`^CZ&1?=l$8eZtJ>s*CYp@F8iFC5b!;O8rpc zjh2WM#w6c--4^t`Gb4+$-ta*d3bCF@nfVinHLkUF9#3f$4Df*Ed(u`+hTiZYe~|Hd zR9`LMkFZ|Lg!{6^ewfBwV6o9^&rbP%l*GZwl!2badj=XeW_mKXkf{?8W=JN=Pjysg ze^Dx7BCgE-vc{%o;KF+BzhT^S^bjRlROi(KFHz@7m!Z6lL}%QP@j4DeuF#;tB7IPD zuBkSUqI>}$o0lhnAf$3!GbFJ266j?zFDs5#nwV{xZyC^R)s9QL>fr|@j&cL{{CVn^ zsClD1ayRtZU>dc;2Cn82=K&_2bup_-Z9;m|$V5&BrI(tEG?o~?Y;;G*9df=*DFxk_!psn;sDM?<+bE_49FreG^LT)*=jcR? z<38=PzfSMJsfpQs*NOyQ6}!P^JjP?a?3OEWV@IU<3tfIC`YmZV6LgWiEQ8n+Klc`M5L88>F2oF=nokq0F2+~}#6@|j*h#-Z7v7%ax%UDxU>}nve#|gOa8$H^J5d&=@3M)0U4m4hTvV$lpLH zjnQO)v=Y0p$Sha*XxDX_$BZF>GPr@;PP~fZe$N9ONBUwj47#S`6#{#l6GN^Y!>^(tk2eW|k>KcA~RDxza zhj~+kH7+hTmFLY=^F@=NWL3_f?7Q&u-Z8I$ZWE&vAX}9{%&#lj*i6(^nfK&;$_p-w zieq{G)9UTL@OMp-VkixsS&M_z;Oimx)nw6tw<)eM8UVH zO7pk1YO4gp9N?F>-+~JdYLQePAIZL*M(35v7BSsptJj?Psi#~nxL7o;A=Q}PqdTT< zy=ORy{CE=5q&-h=(XkM!q{|FY0a_(Xewg%ktF2`cO0A^`B`xyiDkdkcRC;SE6UtTZIqELs zbK^s;2W&K)z-kZG@utT zaTicK*ZS>h85QTA6j@Z~j;3=kca$Y^Ik-Ws|50-1?&YgFkLxg2d8(ve1T5`*rJt{Vr6sI zQA9QcBNxU8#V}(iq8MNrykN*x+W_)d9!oHY8jrTfK;>|F!j3Hw&t?A0DeWBlCdQz{K@j~YY@Kgdm!EI!Dw{W22!DFIG|IMt(Mkt$H-KSxmS7Osam=pQ*MEN&T>Z z9<>e`Wq9T-#-TT+nW@S%TR=_JpHZE4bA6P5Lacbm=mp=#?M@70}CVGprIB1>Jd9`2^=T2kOPw!EinKqox4 z_RW3(LbVR%Z!D?L(|p@%A0F3Hy-m}8B3-BWGt;gN%2Z&|)P>bC#8T>R*Ox0bfT1JwkD zSvKk1bR{)-a+f~~8IVzuS%+nm8UgHjEmGkzUGzSfUfNJb0_nl zEjJQyysEU`A%KSP7&orGTryZImd7itrzQt$lc;3qBLWDy$9#wbf<${ z5(xLc5xSnf6^1twkLATNhUl=2%Eyo_2W^b=$4Ma!4c)=qC5(W^01$Y)-n z;FXC5Lh5v(#%`p!RyEk=!PEJ^Q7slBAEm2nnQU&J)B~P!4gUF0<6B$?M&_07*WgqC zGy+$T&COYX5O=5f9gH7M6N!V&*-)ynrDkD^Z(*|>AmKx6>IZ&~SU0qkXKllx*Ii*C zh}l_Na`6Vc0O_5_PSMUH+eMmZk&G^B$#%v|=P9=+1*D7~?NVyb{c#ATH4ULp;nyIw zN}?Q}JMZw(^sbe+(vPM0XVd#}?jmdRrob7<{c6k?2vE`6rjTe<|q4-9^K+5ht&k6v=amjC-Bf3j!l>VG&k z_U~>z^6+h|9{KDW|K-3#SNxxk9sl?1|HFgF|KaNY<^TF0SO2^J>ED))ugpF1V(Ie7 zUwrK96L;VG*N1NYSKm6g<%NIowJ*JW=?|-a|Gj_nKm0e1&pi0||Kb1rR_nj}>jkSO z{`B8YUS0X*mtQ`#DgQsy4LX?9MZFuqhlE~jJIv8k`hOK4Jh+Mz^KME*dpNr5Do*yj zD)|imui~8KtL!XY59uhe>yl4({Qq1spf(0z&n$6uDRRl5{*MC>(CR=*DXbcK0$nC_spzszmkqj9by=v(B3%~ia)~aN>T;Pbm+SHYT|THwO_xbsmgw>! zU8Zzds>_FUxk48vDH*s@7rvvJ3|ytla$TJ>hXVmF)?C0{6=RR>byuNlU={t>NSFk3Y^ctHx61XX{MV#`!%xXcin(SvHxN=l10>hBRcSp*_cL`Un;eScRF~L znd@*evCo z1SFKqe%m*DMEvi^srU7F&(_Z~A9|lX=>8AqBM6PL3mbKI9z}z98;^26vK7+$!}=sd z*{-*d_He|=y>F5XTl-6Ge zftTcIcR$;Rb-h7)G$fy(%uei-g^=(pyHF}w3kk=)#*&IXmLDo`=M>MO${u__>OWPj z>^LZfhr2GkVO^;|r^^ev9Mk2vF3;-n6sHG#hLVkwy1b$~ z!A@`Y%hLOz^gfl|$3jO>$`Qd z(9om~LZn8!)K93}uTaaN0&nW_^HFlM^JeG5>F}ib&&Tf0VclIHr?J$4( z@Mf)Err)IGCvB?{g3mCIM5c`)vS4NxZ48e)g;yZ-kaIp*PbZ z;KV~;CN9x{GVj5quhL!Gl^kAdQ<=-u@^2LyQ|M>9{9Kn;bvXe7*ejBu7raSEioF*} z4<8^;Q-~%USHGLJino<{UBO@~K(YfumDgC6ytP22{s@&ksK66cD{O2EcLg`-)N&3&}e22*P8p&dBQI`P1&b{?#yj@ z&Bf3XwPV=ar^dddDw*d>^AT%C4^HZVj&x}LNEePLsy1KHMHAb~Df1hI=I&5W{Y2THC3HBnJV(FTH|8>@VJOPB zYIxdutsR2ZRa-CRhX!;%ru;wF#Y(=S(9d*vQECf>7F{JD1g z%6vO`x@-Ve`Kt}9XJ3iW@~NY_kpNnD<8*ii@u*6Ti`Up3;b-4bQXJA)*)UV18{-!v z6d~u_fB-9|W$n&6$5QTXBB;4#XH1g-7({owR^@)f&@fBA~?FQKF4c*jaa{ z0&H;cB6aTBFkthEQOfa<1Gf`Zb4ZDTo}f?;zz%)i*^^*kc{fzjJdV2~r>@{2zz*@C ze7jzde+f5>yyTIW%;(Y60nP+u|I>nl@(SSqO7jexs9a|5Avjb{=t1>X_IJxAU50ci z>LOQG97*KQTOKX3_cewVf)Qx2JYH5vN#hFOiAj>O4eG+Cn#w(jGm>rvj~?;p5sTv5 zsVKLC3YQCs```DEPjskUaY=7ans~ZahsG_qPub>i8ae9zu8%S}q+2Yvu3(GG__pYqaw< z%*6c8SlNfP!8JHSicD2FAGbR+=bJSvGQcCc7@O>zJ+_WTV#Vzvk?(lpr{gQK4VU(Z!xUVW(X3!aBBbUW50A zMe04=z+nxyb7^~<+ApWUEtF{M4o^&j%4rj5AgupNsHhc)p|ApK5Z*Y;0pt3FfgH$q zGpLl;l^exy|DBa%sDIxe51H^nqff$Y%Gf~u0`FyL{#edWt@aV?^wTy+pI5p&k zbSZi@4Zl6=H_l8JaX)UiCQTD-y{D>M@0qWtDY`qYdQ?=;_9e}Eb-zcp33bx&&Ok%F zvPc#OTvMeH?>j|Ix(|C)YH^a-;>xfGv=(CIb=)yG&f?bzB>PK*L~S}!J`8F&1V%z& zGz2K_{9-5siXq_h09Fi!lmVMQp;!H37(vPjVxl;KC)OX0!6SCyTKx&V%)#3+)%ug- zv^pCh?IbK;ECH`OmSaU4BWzCm3}2x+R)|WtHhvc6~TO?p>L~1=s*8P`AA8f1%pK<8~R2F0{Jrpa>ku z;Rb7Q#^arPBr4&_5{V=zd8TAo&{%8Wk@u~g#tLYZ&aIf}YU8o{1lk4&_p@qaGt!RN zHvkg=umv!yWlNhwHsN_ypHnd%abEwa4l^7Os~|K{llS|qj?=Ihg3SEYIa5&Y0^CYY z*5o2C-p-EU5h~?{ZPRC*_6Bf;gC+|)P+K0QqQhLCFB6FxC!8n?HULf~*UK)A+gX56 zjeJHcm#MD=m@hnFNi{#%BSRL*Q}+mOwvb~4XmR+}Ay^m@`aqaoG*mH;v+wGxaeEA! z{8V2H(%Ivc%hH%W3B*&6@p2VWArTqt4UXWo%0`GBnV@TFOC`lQ(OhhfCMJ}BQ8FZc zlYXGcPcfeWa-N6=Xx~&3yex$b6LidKkZ!3ect(#WfQ&!{2jHX@(ML5sWZWX=DT{59hqDUgmyUlMKCRH0hFnteFgK4q)=DbLbM=T?d7@D06Oq6~yU=F7J zQEAkk=qq8Mzjzjols`(d>(CBLbIKg)I^MAB!CU^|t@yx>>SYB8!Be95flftCs~R;* z!6mrbaD|{@T)f)&7N{tnZ*ZBj2~4P<3o@yBi<-DH3QMU})+SFhbCXY^f>MhN0LBe1 zWG^wA&7!e9oo+WxA+tEjMZ&07Ha^JdzB7}?^%MeFlV$6%8LoKW#g%AhV`$N|1j7Qv z9BrF^BPNXsuq=4&Ibu2lnI)9X8s|3XPOQu!gQkt@U|Bo;x3P~GHd#n(rs%=*{6?l= zb|gHb>E$h4n^VrLPtb)cz>URd#nxGNSSfA!tOKBg9y-)KQBX79XgO)#I%eoHW9c4* zX-(u)Fv1m>yB~ok#zud{Y5i#m$9}2p#*Zq@lGywNKZiXW)Kao(@Qq29I#MPG(nUg( z1td&JW!lLC5}agR2A`YEUy|^eVExx+*qf5A$OH#iu(~46)U;e_lvBG+QHqx|1qbo; zYbxU`WpuQsAp4>Y3#~R@*4fz$>Hdr0GuMy;mA=SOtIf;Hwh+S|9uIiN&cU4%53QSwl7&i&0Ht=Q z0M`phAsibhAv0hE8lt2JWsw@ql^`{uf1ndM=KrN~=>CJ@kkq|_)rcMR4LT3O%d4veP`=&_I*Bf^J zFLg{x0c|`1j_Ih68Q2bBOXo#}fS;Z1kW2cdA<;2Y-1rgxQGimwn_B@bz~4#>9QsE&%EAeUO28&VWPv~fcAE(gI-sB) z>JeWU$vz^vy)xpkLP<>I7{?HLlUr=n2Wr_OLpWyi@dk5hfj0>Rfm|-zILwBq)saq? zGKfs;+MKW&n-kT94m78AN%vAXz`dOm_EF#q;$y!oPtdf77$Ur`c^P{vV8@Uxv4IS7 zOo+#g;{yk#a)bITQ9&zmKI%oAtcH{_uFH@vBf1ReGNwyWmtkE-O^vY0IT5GigpJ`! zhsTu``I$$4W|5zJQ^Gi=6N$C)yMJY^?R!V6&l3gtQustqa@ImD+JvVnBY& zR}~ppwe=^s!TiQ7W;Y@_)K1?q;*3J$54;iGFjRcNX33}pHIj`nNBr{CkmShQH4HaU z0H8K|1+T6%V^h*Lc)@x<8H_^_Tr|aL2K%LsyiFt3#_L?gW+me}c+C3LczXd&Y*H33 z%JIReVQP8>HZajqaH2L*{(zog8|m}tlGJR{`KSyYR5{7bdjYe^bVw?kIO^NwDZZ$> z-xgKkgB8Z9{-*umNo`6m?~F}kk|y%>hq4na(ZRI+ytxcCD;yuGy9R14uN6REn}83{ zjcG;RnSjDog2K=qEvM;}DSO-tDLw+%@th3AteJ+-<+36`8#oHT!!w;0SgzV=BqEv| z+b7LT)o@%I70uN6u8uQ!o$#kDN;UdXhw_YF5b`HfHj(GsA`nfQ@g-0GJ0j4jcjhd+Rr``fjJV&}5nA~^!ew9_(Z#CPUI z2b#ThKG+=isZwt{CTS*=Kn2(;RB6XEkQn0y=m<}k07guTWm=X7JNsj>G6V(FygG|f zso?=MXBFtUBuUiz6N0N=NPUiy8*+M7XRV%6elI)wy93ex7ZNE6=pkqAnUmL- zM0aqqdaCphlBR|=m0@!57)W7FKs=@>DMjZ-snKJc;?$9e%(a-!3z8<&XWGY&TC2XpseNQXn%rv2mt4B?#E+X!taN&uR zxVTrFKL+hda^iXdXr>9qQ<~ZVOo@#hO@s4E$z}mhq{Wrj*7NpiYnuEl$>0SifoZly zohOCjoRfvKmQm}IkOl`IIahl!?F@IdZ5e*(w;%b<4id$?#ACLlRBf`0p{h@DV_Zko zSo$9E$cpx{W8MW#8s};`zzCu_2owqlE7VsdDHlKJBYi5FX_?$Gn!NEuQ)KTY% zN3nxfn;J2tPus1P^B5YX#;?Y;vf*kPI%jqYPQcmc;#fL-?g8}2d@hc)=i->p#W9}? zN=nCs;ppJZ#sqQW2@TFarF*7}rodmSF&U)=rwAf$R#gY0Syi!8$A=P?VhHqxhJ*J{ zQD|~J?JakDtAVH*awt1DAoqgubJUpSKT+LphBDiQWR^5FnkJ5$f;-wyzKJv>wYacq z8FeWnM|;f!nQLCTI0vrY@c1D8 zB`&ZIdI~Q?hm=e(B@(tO!b6VmjbZIOv>&jK-j0lWr9*xz`V9+Z$XqfkI;nk+kTep5 zW1+X18i(TJVhj$);HWo}wmjxB$$rK;?6*;GRhCDk0=Cf5k?c5*gw#i~sgIVVrNHVR z7zEonGH-?HU=KhnXvn^=O`WdZXrS|%m*W&WEd5Fe(&6=DqEp_rZ^jl+^HrI* z^Cj8%*dS_MUSlW3AoIEz$(ygEsgTR+Co`juF~&j9$t z+FFYcFg>`n*2FX^)c$}9;`qZ&$MhiMbW0DuQa}>Ok}Ssoj~+-*x^j)Wwb3d`k1c9# z_ShD?aVV8d52`-rGtoPaZt`=hh+3PZc!665@A~sz?0EzJZT{poi`?#!+bwdZNA9%9 zv`3~x{ok>8{X6z>uRlz0vIEm%&B3DMrU>bTB0qRaLq*MVI4LcUeZXdcW0~$zzD%5r z($+nfx>HC?$2KW0g%U-zJdv=%WcJ$Wrs(f)7f;*tejFg5W0;Dn*gZ0`x69kqrIkqw zZ5^Qa9&0XUtw)%UlSHufLbzw2fb}ER*8Lu~oBoP>33bRhDfQ zyUmJC5fip^yOJ9_rnX~%rRZu;J(YepI<@%fSebGPlhgz(4s85HyFnC!3y!HQ=5niI z_FY@jAl=6ZVA=8K)lKHti2)?)YPNns*P8Jq4@bK#q6+%G&1&)+nZ`qtC~D1PU>L0U zShc|xH?!>FZ(&_(1M-;l0OodFOUR%jx;B~P>+M#Ek5HwX>*DLS=`LJoe1f(Cu5LQp zP*t^_sJ29uklcaTdnSxXI!i>zK-Z5KmUDK_a*l9ao|Ffcv$es6p)bb~>;=2NG+YA7 z+-Fs(M=kY)U7sa0zJW?Ut}9M~%W(=MbeS%TbQvoyXHfF|Bf`mD%M%r-@*y;?IL0ab zOAEhZ;a_l-^P8^E+4Y#J@#0Sr#KTP`PujDW^=z3g6S_=U;>lr}G=$w`A$RPuv{S(9 zIrT_eud1j1>PX1k+^Ga!BH_Brn_K=EG+a%y*yI6UA$ZV_8pXOHel|37- z4Z$8e7P)cBrFtpn>ZGaRFSJ81wMWW^hkD@~9#(jZ!GvuNADq78rS#@RyR>E;GPLW@ z?D})NzG~MK?R?K_q-xo!vMwC=!ONC!&1&mP8{MG{E@WP2yxlDf49XfT2v$r+EzP=L zF$)nEO{NdanG!yeJFU9Z>S5KTh7K$7L#o?n)%o>Hqst*lH#=xH;d;z3jn({Sc+mX5 zm3ZEh%GNeWQMQ%{gucCDlWN%AJZhCaWYx|5oC5|x1K(1y#wSX-q{REe314sJxTqcZOaAO@(+6(;>b+aO zv3u`Q|XOFh;-naLj>1(DwfB&xiGrK>x_wdFQD^{&pp?_=E+iio#R;;*w#VSikpRZlD zcJ-Q-t5+(gr7OhWU2Csjx#zA`>(=eQe)o!9Yc{OgbN#9fD^{=CwPxjt-FtT5wQBwK zd)KaBw|m9fHS1Qbxoh2BcTKNYdHtHzYu4U%{i3+7de83l)AVcos?~e%+OT5RirsguUcYyG-JV@5_N-gAVfXZ1t9D(# zdiCzryQX*TU9o=G3VOG4!}{GTSFB&TVZ++pD>qQ{uHDzKqt?~y)~wk(y^DrudDr^s z>({MXyMFKPmFxDbT)ArZ-d%fk?b@|!de!=sYu2yZvwQE}>AT3ge)aV9hSe+XTD@xJ ziq&`R+PiYkstqewu35Eq*Y35{2k3UM1JZW`>FI7r@7R0r(82!%=!**I834Vz8_+i% zzIXbbncWu?)Vp`>S-)rP|JUBJKu1ws-vAmu7LbA#OUft+36RbHcM}4bKUqiuNr)6e z$?VMAWXbHzIy3n!U>mej{GlGOU=M-{RQafAMbID>iiiqF6ex(b(8A%PJ%UB4)Kloa zGdsy9*+dR_JaUdN=k3hSd-uNkd-vWqoAaIntwo@qe_Oz2_jm(thnw1Czn!uu`wx4hCnlSE}rwlok!ptHk-#D0LyiI1Zx@<1kP!7`n_QMV7ZQf)otgf z$0k_)cItFGync_9=WRBDhn?TD88X)NC2UY-IW{bZYei0BtAkb5DPgJvWF^E&JY{{Q z#YJpD;X<@tR%%#y&Ke%*I^6P(^kGQP7L^f_#E>D`ayX&@9*y0;hV=oY${Jl#CIqD_ z7W|HvkYt7og*onUc{wh{Ve|M?oN0DfikB0(6enj-qiIeD=Wsg+>C2E_UW?UYv)Iz? zcAy?chOrA6atl(DXVNyRoGL0f&M|dPiwj(8@BYnAIYBina*-mSr60nu%`GhSZG3?t zjn9=*CCG`v*|gX{i}G5g8j*OEjqF!tk!sY!PEjeVRa3T%Q)?`F9Iwer#8RqpiU#bl zA*xl&0;|caYGN{k#~~(g=8{~iijnmA;7Liz?3l4EDkWQ%>Zqbw+7Ogf$BDHxIhl~g z*MZ(w+BE+_=^cd@6XG-tG_TXX18CoR?a@98w5l_q>RfCBE?&x^&6>Vyn-N-YU7gjm zBPye8Y>eq_1Hzly^|=b;`5p*wBl}l?g%_?37Geai+x@jf^(a=0glQYu?*rNInWV=G z?dlz+5p*=lauT>%^tx<)P^&g3fbQ-fG+m+hY)z!02w;g*s;JhQsd*O2JCgJ`XXMW; z3>_3WOv2e}PG$X+N^D53qq=twY7i6ZB{t0QHCz>hg#r!3gsOpuuM#7yLU}n9qLP5! zt2vF0$hE8>vy!Z_fJ0G&0%h~5W{d@HKPX`rMMugTzMm>4T7;@q0hK?Z2M0ZRagqRn z5=Ed4hBGLGfmAs}A&>_pAV|_9RiIX@Re;23NTJGb)u1UZAv#J`lfx{AdJNU|)xddB z=Px>r1;Wn;FoLx?G{Du08erBG2!$mSq9kyaeTnQ`GTEOZQ2VQM17(kaA=Y)l3N6h|1M zUAcZsDP^lQEu5a3T3=spky_SVpy8B&Ab`EDEZp%^;mJWDX+1#L~^ikh{lSX}b)D zGTVZI6!IC86`wq?j7gkUZOK#=E>Zvvp&>6Q0&^oXavLaLt5M^t&L<(o4DnqCol=7U^8HQYj+z}tcBt-__qeVvg%)5y}Rf{u$z}zOoHsNK};3_fDwnQ3% zh9QP<8aVx^8_&Wum>Q;hFc5Wi#$qHZC~-8xewmh)zSu=-smF zL z8`%pEQ7pw|z(O`BihjtVFc%O-$o?Q4f)Q6TWcqi2AM%$D2AIK+saHIJDI(et`M+Yw zFRvPV$HY%%Na+=$&s7vz=|C#*J|zb%RQF!^qNI7kw9Dmkg1V}}^}rkEmTt{nBab1O zkaL*X-6S*ZYh%XvIwf17m{G)bX-0#dzBrmN$DnIH7Z6EvCj(iG|3XTlxD|M_BU~Yx z5{4Awo0%f2Ib4R*&6Y!9$RGScF{nk_CF9_?Io3$NS>OQkJj`d!S8ibBW$;oz0blG7 zC3u>Jo#^h5A@3bJF#5^6kM$Ycui?D=UwNZ0Y%hDF-(x4FrUA1TlzUg-yr9mpdFk#g zXAit}Y0jx>v$ig;o6+;_J&v6Zudh0JBG-EAwp*FLD+c&p@+}@z&~w|AJ&DEdJ@wzF z0;ZAg)Q-c?UYxz`p(Xq4cQUKxL;L3XHtk)L`ccxE9=8`A_3Th*ebT@2 ziw|b5_m#a!YOg-Z`$5*}%F=I&cOC8B z?~@VQ#s^pZV)vYNsbgj>bac%daQysVr$2GwNcZh!<+JO$n$;Q+|GY&lRtimh`!pI=bldZ|qPF1KzSSaELdpI2pm zx(-heA$t$bE5|FE_aF%PjsHs^jYkr|&T~qamjv%Fp0DM-^2pjH6Bix_X9;hk(<^dl z9Tnv;ESt585-L(orD_FEmx?=$rD#Q)bjy66QW~t1s8CU=@a?+5D+Lo7v}sOP+a8v% z;73A#0AMvUGqYtSM-&TTbw@%f533+*5kyf3xpX_==-V6a z@pne}_f~=j!dwp(3!V@Y``kiuVIOCs9Vv-zgReRq!a^>lSGH*eTNhB)O<+zvJkt$2h!1&X2geMV=p}P2617D z#gEU?MzNaXo8Qf=`P>4+oK9wtB$5ohTl$;r9bM7Bu??^0eZ0OM@o*a%PBO??G7R9c zK$y_0iNpMEUd`v&7Z2yjfI1y&1nN?#uR=Wl^-HMzfFM|o&mX3|cwZVOoWD+}GYXS-`-v zq1#lT6|zQnj$7g5zWVJkIrTnP;M@3f!cO!c1M+(^4q)*FBs{{x*vndl=ROzI?P6MaFEHVV};6Vsgz^SNn9|pcrt0-UO5H;2M8B5ma5;kOmI*J`Hg-ifwvuX7KY~?;K>Q77qkMSOw#!)j?#hHkUG=G@SCBP*l|sr#N*Sh>&Q63LI6AB zfwLBA#n(-SuA9~{Z8g-9e!MUbVW9vV;ZX@8{g{Uc$fF~8)G^MDAImi+fwKvE-g9>B NHAeT3 - - - Newtonsoft.Json - - - - - Represents a BSON Oid (object id). - - - - - Gets or sets the value of the Oid. - - The value of the Oid. - - - - Initializes a new instance of the class. - - The Oid value. - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Gets or sets a value indicating whether binary data reading should compatible with incorrect Json.NET 3.5 written binary. - - - true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. - - - - - Gets or sets a value indicating whether the root object will be read as a JSON array. - - - true if the root object will be read as a JSON array; otherwise, false. - - - - - Gets or sets the used when reading values from BSON. - - The used when reading values from BSON. - - - - Initializes a new instance of the class. - - The stream. - - - - Initializes a new instance of the class. - - The reader. - - - - Initializes a new instance of the class. - - The stream. - if set to true the root object will be read as a JSON array. - The used when reading values from BSON. - - - - Initializes a new instance of the class. - - The reader. - if set to true the root object will be read as a JSON array. - The used when reading values from BSON. - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Changes the to Closed. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets the used when writing values to BSON. - When set to no conversion will occur. - - The used when writing values to BSON. - - - - Initializes a new instance of the class. - - The stream. - - - - Initializes a new instance of the class. - - The writer. - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Writes the end. - - The token. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes raw JSON where a value is expected and updates the writer's state. - - The raw JSON to write. - - - - Writes the beginning of a JSON array. - - - - - Writes the beginning of a JSON object. - - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Closes this stream and the underlying stream. - - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value that represents a BSON object id. - - The Object ID value to write. - - - - Writes a BSON regex. - - The regex pattern. - The regex options. - - - - Specifies how constructors are used when initializing objects during deserialization by the . - - - - - First attempt to use the public default constructor, then fall back to single paramatized constructor, then the non-public default constructor. - - - - - Json.NET will use a non-public default constructor before falling back to a paramatized constructor. - - - - - Converts a binary value to and from a base 64 string value. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from JSON and BSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Create a custom object - - The object type to convert. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Creates an object which will then be populated by the serializer. - - Type of the object. - The created object. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Gets a value indicating whether this can write JSON. - - - true if this can write JSON; otherwise, false. - - - - - Converts a to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified value type. - - Type of the value. - - true if this instance can convert the specified value type; otherwise, false. - - - - - Converts a to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified value type. - - Type of the value. - - true if this instance can convert the specified value type; otherwise, false. - - - - - Provides a base class for converting a to and from JSON. - - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a F# discriminated union type to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts an Entity Framework EntityKey to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts an ExpandoObject to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Gets a value indicating whether this can write JSON. - - - true if this can write JSON; otherwise, false. - - - - - Converts a to and from the ISO 8601 date format (e.g. 2008-04-12T12:53Z). - - - - - Gets or sets the date time styles used when converting a date to and from JSON. - - The date time styles used when converting a date to and from JSON. - - - - Gets or sets the date time format used when converting a date to and from JSON. - - The date time format used when converting a date to and from JSON. - - - - Gets or sets the culture used when converting a date to and from JSON. - - The culture used when converting a date to and from JSON. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Converts a to and from a JavaScript date constructor (e.g. new Date(52231943)). - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing property value of the JSON that is being converted. - The calling serializer. - The object value. - - - - Converts a to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from JSON and BSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts an to and from its name string value. - - - - - Gets or sets a value indicating whether the written enum text should be camel case. - - true if the written enum text will be camel case; otherwise, false. - - - - Gets or sets a value indicating whether integer values are allowed. - - true if integers are allowed; otherwise, false. - - - - Initializes a new instance of the class. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from a string (e.g. "1.2.3.4"). - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing property value of the JSON that is being converted. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts XML to and from JSON. - - - - - Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produces multiple root elements. - - The name of the deserialize root element. - - - - Gets or sets a flag to indicate whether to write the Json.NET array attribute. - This attribute helps preserve arrays when converting the written XML back to JSON. - - true if the array attibute is written to the XML; otherwise, false. - - - - Gets or sets a value indicating whether to write the root JSON object. - - true if the JSON root object is omitted; otherwise, false. - - - - Writes the JSON representation of the object. - - The to write to. - The calling serializer. - The value. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Checks if the attributeName is a namespace attribute. - - Attribute name to test. - The attribute name prefix if it has one, otherwise an empty string. - True if attribute name is for a namespace attribute, otherwise false. - - - - Determines whether this instance can convert the specified value type. - - Type of the value. - - true if this instance can convert the specified value type; otherwise, false. - - - - - Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Floating point numbers are parsed to . - - - - - Floating point numbers are parsed to . - - - - - Specifies how dates are formatted when writing JSON text. - - - - - Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". - - - - - Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". - - - - - Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. - - - - - Date formatted strings are not parsed to a date type and are read as strings. - - - - - Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . - - - - - Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . - - - - - Specifies how to treat the time value when converting between string and . - - - - - Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. - - - - - Treat as a UTC. If the object represents a local time, it is converted to a UTC. - - - - - Treat as a local time if a is being converted to a string. - If a string is being converted to , convert to a local time if a time zone is specified. - - - - - Time zone information should be preserved when converting. - - - - - Specifies default value handling options for the . - - - - - - - - - Include members where the member value is the same as the member's default value when serializing objects. - Included members are written to JSON. Has no effect when deserializing. - - - - - Ignore members where the member value is the same as the member's default value when serializing objects - so that is is not written to JSON. - This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, - decimals and floating point numbers; and false for booleans). The default value ignored can be changed by - placing the on the property. - - - - - Members with a default value but no JSON will be set to their default value when deserializing. - - - - - Ignore members where the member value is the same as the member's default value when serializing objects - and sets members to their default value when deserializing. - - - - - Specifies float format handling options when writing special floating point numbers, e.g. , - and with . - - - - - Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". - - - - - Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. - Note that this will produce non-valid JSON. - - - - - Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a property. - - - - - Specifies formatting options for the . - - - - - No special formatting is applied. This is the default. - - - - - Causes child objects to be indented according to the and settings. - - - - - Provides an interface for using pooled arrays. - - The array type content. - - - - Rent a array from the pool. This array must be returned when it is no longer needed. - - The minimum required length of the array. The returned array may be longer. - The rented array from the pool. This array must be returned when it is no longer needed. - - - - Return an array to the pool. - - The array that is being returned. - - - - Provides an interface to enable a class to return line and position information. - - - - - Gets a value indicating whether the class can return line information. - - - true if LineNumber and LinePosition can be provided; otherwise, false. - - - - - Gets the current line number. - - The current line number or 0 if no line information is available (for example, HasLineInfo returns false). - - - - Gets the current line position. - - The current line position or 0 if no line information is available (for example, HasLineInfo returns false). - - - - Instructs the how to serialize the collection. - - - - - Gets or sets a value indicating whether null items are allowed in the collection. - - true if null items are allowed in the collection; otherwise, false. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with a flag indicating whether the array can contain null items - - A flag indicating whether the array can contain null items. - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Instructs the to use the specified constructor when deserializing that object. - - - - - Instructs the how to serialize the object. - - - - - Gets or sets the id. - - The id. - - - - Gets or sets the title. - - The title. - - - - Gets or sets the description. - - The description. - - - - Gets the collection's items converter. - - The collection's items converter. - - - - The parameter list to use when constructing the JsonConverter described by ItemConverterType. - If null, the default constructor is used. - When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number, - order, and type of these parameters. - - - [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] - - - - - Gets or sets a value that indicates whether to preserve object references. - - - true to keep object reference; otherwise, false. The default is false. - - - - - Gets or sets a value that indicates whether to preserve collection's items references. - - - true to keep collection's items object references; otherwise, false. The default is false. - - - - - Gets or sets the reference loop handling used when serializing the collection's items. - - The reference loop handling. - - - - Gets or sets the type name handling used when serializing the collection's items. - - The type name handling. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Provides methods for converting between common language runtime types and JSON types. - - - - - - - - Gets or sets a function that creates default . - Default settings are automatically used by serialization methods on , - and and on . - To serialize without using any default settings create a with - . - - - - - Represents JavaScript's boolean value true as a string. This field is read-only. - - - - - Represents JavaScript's boolean value false as a string. This field is read-only. - - - - - Represents JavaScript's null as a string. This field is read-only. - - - - - Represents JavaScript's undefined as a string. This field is read-only. - - - - - Represents JavaScript's positive infinity as a string. This field is read-only. - - - - - Represents JavaScript's negative infinity as a string. This field is read-only. - - - - - Represents JavaScript's NaN as a string. This field is read-only. - - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation using the specified. - - The value to convert. - The format the date will be converted to. - The time zone handling when the date is converted to a string. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation using the specified. - - The value to convert. - The format the date will be converted to. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - The string delimiter character. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - The string delimiter character. - The string escape handling. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Serializes the specified object to a JSON string. - - The object to serialize. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using formatting. - - The object to serialize. - Indicates how the output is formatted. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a collection of . - - The object to serialize. - A collection converters used while serializing. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using formatting and a collection of . - - The object to serialize. - Indicates how the output is formatted. - A collection converters used while serializing. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using . - - The object to serialize. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a type, formatting and . - - The object to serialize. - The used to serialize the object. - If this is null, default serialization settings will be used. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using formatting and . - - The object to serialize. - Indicates how the output is formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a type, formatting and . - - The object to serialize. - Indicates how the output is formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - A JSON string representation of the object. - - - - - Asynchronously serializes the specified object to a JSON string. - Serialization will happen on a new thread. - - The object to serialize. - - A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. - - - - - Asynchronously serializes the specified object to a JSON string using formatting. - Serialization will happen on a new thread. - - The object to serialize. - Indicates how the output is formatted. - - A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. - - - - - Asynchronously serializes the specified object to a JSON string using formatting and a collection of . - Serialization will happen on a new thread. - - The object to serialize. - Indicates how the output is formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. - - - - - Deserializes the JSON to a .NET object. - - The JSON to deserialize. - The deserialized object from the JSON string. - - - - Deserializes the JSON to a .NET object using . - - The JSON to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type. - - The JSON to deserialize. - The of object being deserialized. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type. - - The type of the object to deserialize to. - The JSON to deserialize. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the given anonymous type. - - - The anonymous type to deserialize to. This can't be specified - traditionally and must be infered from the anonymous type passed - as a parameter. - - The JSON to deserialize. - The anonymous type object. - The deserialized anonymous type from the JSON string. - - - - Deserializes the JSON to the given anonymous type using . - - - The anonymous type to deserialize to. This can't be specified - traditionally and must be infered from the anonymous type passed - as a parameter. - - The JSON to deserialize. - The anonymous type object. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized anonymous type from the JSON string. - - - - Deserializes the JSON to the specified .NET type using a collection of . - - The type of the object to deserialize to. - The JSON to deserialize. - Converters to use while deserializing. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using . - - The type of the object to deserialize to. - The object to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using a collection of . - - The JSON to deserialize. - The type of the object to deserialize. - Converters to use while deserializing. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using . - - The JSON to deserialize. - The type of the object to deserialize to. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Asynchronously deserializes the JSON to the specified .NET type. - Deserialization will happen on a new thread. - - The type of the object to deserialize to. - The JSON to deserialize. - - A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. - - - - - Asynchronously deserializes the JSON to the specified .NET type using . - Deserialization will happen on a new thread. - - The type of the object to deserialize to. - The JSON to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - - A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. - - - - - Asynchronously deserializes the JSON to the specified .NET type. - Deserialization will happen on a new thread. - - The JSON to deserialize. - - A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. - - - - - Asynchronously deserializes the JSON to the specified .NET type using . - Deserialization will happen on a new thread. - - The JSON to deserialize. - The type of the object to deserialize to. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - - A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. - - - - - Populates the object with values from the JSON string. - - The JSON to populate values from. - The target object to populate values onto. - - - - Populates the object with values from the JSON string using . - - The JSON to populate values from. - The target object to populate values onto. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - - - - Asynchronously populates the object with values from the JSON string using . - - The JSON to populate values from. - The target object to populate values onto. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - - A task that represents the asynchronous populate operation. - - - - - Serializes the XML node to a JSON string. - - The node to serialize. - A JSON string of the XmlNode. - - - - Serializes the XML node to a JSON string using formatting. - - The node to serialize. - Indicates how the output is formatted. - A JSON string of the XmlNode. - - - - Serializes the XML node to a JSON string using formatting and omits the root object if is true. - - The node to serialize. - Indicates how the output is formatted. - Omits writing the root object. - A JSON string of the XmlNode. - - - - Deserializes the XmlNode from a JSON string. - - The JSON string. - The deserialized XmlNode - - - - Deserializes the XmlNode from a JSON string nested in a root elment specified by . - - The JSON string. - The name of the root element to append when deserializing. - The deserialized XmlNode - - - - Deserializes the XmlNode from a JSON string nested in a root elment specified by - and writes a .NET array attribute for collections. - - The JSON string. - The name of the root element to append when deserializing. - - A flag to indicate whether to write the Json.NET array attribute. - This attribute helps preserve arrays when converting the written XML back to JSON. - - The deserialized XmlNode - - - - Serializes the to a JSON string. - - The node to convert to JSON. - A JSON string of the XNode. - - - - Serializes the to a JSON string using formatting. - - The node to convert to JSON. - Indicates how the output is formatted. - A JSON string of the XNode. - - - - Serializes the to a JSON string using formatting and omits the root object if is true. - - The node to serialize. - Indicates how the output is formatted. - Omits writing the root object. - A JSON string of the XNode. - - - - Deserializes the from a JSON string. - - The JSON string. - The deserialized XNode - - - - Deserializes the from a JSON string nested in a root elment specified by . - - The JSON string. - The name of the root element to append when deserializing. - The deserialized XNode - - - - Deserializes the from a JSON string nested in a root elment specified by - and writes a .NET array attribute for collections. - - The JSON string. - The name of the root element to append when deserializing. - - A flag to indicate whether to write the Json.NET array attribute. - This attribute helps preserve arrays when converting the written XML back to JSON. - - The deserialized XNode - - - - Converts an object to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - - Gets the of the JSON produced by the JsonConverter. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The of the JSON produced by the JsonConverter. - - - - Gets a value indicating whether this can read JSON. - - true if this can read JSON; otherwise, false. - - - - Gets a value indicating whether this can write JSON. - - true if this can write JSON; otherwise, false. - - - - Instructs the to use the specified when serializing the member or class. - - - - - Gets the of the converter. - - The of the converter. - - - - The parameter list to use when constructing the JsonConverter described by ConverterType. - If null, the default constructor is used. - - - - - Initializes a new instance of the class. - - Type of the converter. - - - - Initializes a new instance of the class. - - Type of the converter. - Parameter list to use when constructing the JsonConverter. Can be null. - - - - Represents a collection of . - - - - - Instructs the how to serialize the collection. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - The exception thrown when an error occurs during JSON serialization or deserialization. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - Instructs the to deserialize properties with no matching class member into the specified collection - and write values during serialization. - - - - - Gets or sets a value that indicates whether to write extension data when serializing the object. - - - true to write extension data when serializing the object; otherwise, false. The default is true. - - - - - Gets or sets a value that indicates whether to read extension data when deserializing the object. - - - true to read extension data when deserializing the object; otherwise, false. The default is true. - - - - - Initializes a new instance of the class. - - - - - Instructs the not to serialize the public field or public read/write property value. - - - - - Instructs the how to serialize the object. - - - - - Gets or sets the member serialization. - - The member serialization. - - - - Gets or sets a value that indicates whether the object's properties are required. - - - A value indicating whether the object's properties are required. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified member serialization. - - The member serialization. - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Instructs the to always serialize the member with the specified name. - - - - - Gets or sets the converter used when serializing the property's collection items. - - The collection's items converter. - - - - The parameter list to use when constructing the JsonConverter described by ItemConverterType. - If null, the default constructor is used. - When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number, - order, and type of these parameters. - - - [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] - - - - - Gets or sets the null value handling used when serializing this property. - - The null value handling. - - - - Gets or sets the default value handling used when serializing this property. - - The default value handling. - - - - Gets or sets the reference loop handling used when serializing this property. - - The reference loop handling. - - - - Gets or sets the object creation handling used when deserializing this property. - - The object creation handling. - - - - Gets or sets the type name handling used when serializing this property. - - The type name handling. - - - - Gets or sets whether this property's value is serialized as a reference. - - Whether this property's value is serialized as a reference. - - - - Gets or sets the order of serialization of a member. - - The numeric order of serialization. - - - - Gets or sets a value indicating whether this property is required. - - - A value indicating whether this property is required. - - - - - Gets or sets the name of the property. - - The name of the property. - - - - Gets or sets the the reference loop handling used when serializing the property's collection items. - - The collection's items reference loop handling. - - - - Gets or sets the the type name handling used when serializing the property's collection items. - - The collection's items type name handling. - - - - Gets or sets whether this property's collection items are serialized as a reference. - - Whether this property's collection items are serialized as a reference. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified name. - - Name of the property. - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Specifies the state of the reader. - - - - - The Read method has not been called. - - - - - The end of the file has been reached successfully. - - - - - Reader is at a property. - - - - - Reader is at the start of an object. - - - - - Reader is in an object. - - - - - Reader is at the start of an array. - - - - - Reader is in an array. - - - - - The Close method has been called. - - - - - Reader has just read a value. - - - - - Reader is at the start of a constructor. - - - - - Reader in a constructor. - - - - - An error occurred that prevents the read operation from continuing. - - - - - The end of the file has been reached successfully. - - - - - Gets the current reader state. - - The current reader state. - - - - Gets or sets a value indicating whether the underlying stream or - should be closed when the reader is closed. - - - true to close the underlying stream or when - the reader is closed; otherwise false. The default is true. - - - - - Gets or sets a value indicating whether multiple pieces of JSON content can - be read from a continuous stream without erroring. - - - true to support reading multiple pieces of JSON content; otherwise false. The default is false. - - - - - Gets the quotation mark character used to enclose the value of a string. - - - - - Get or set how time zones are handling when reading JSON. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how custom date formatted strings are parsed when reading JSON. - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Gets the type of the current JSON token. - - - - - Gets the text value of the current JSON token. - - - - - Gets The Common Language Runtime (CLR) type for the current JSON token. - - - - - Gets the depth of the current token in the JSON document. - - The depth of the current token in the JSON document. - - - - Gets the path of the current JSON token. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Initializes a new instance of the class with the specified . - - - - - Reads the next JSON token from the stream. - - true if the next token was read successfully; false if there are no more tokens to read. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a []. - - A [] or a null reference if the next JSON token is null. This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Skips the children of the current token. - - - - - Sets the current token. - - The new token. - - - - Sets the current token and value. - - The new token. - The value. - - - - Sets the state based on current token type. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Releases unmanaged and - optionally - managed resources - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Changes the to Closed. - - - - - The exception thrown when an error occurs while reading JSON text. - - - - - Gets the line number indicating where the error occurred. - - The line number indicating where the error occurred. - - - - Gets the line position indicating where the error occurred. - - The line position indicating where the error occurred. - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - Instructs the to always serialize the member, and require the member has a value. - - - - - The exception thrown when an error occurs during JSON serialization or deserialization. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - Serializes and deserializes objects into and from the JSON format. - The enables you to control how objects are encoded into JSON. - - - - - Occurs when the errors during serialization and deserialization. - - - - - Gets or sets the used by the serializer when resolving references. - - - - - Gets or sets the used by the serializer when resolving type names. - - - - - Gets or sets the used by the serializer when writing trace messages. - - The trace writer. - - - - Gets or sets the equality comparer used by the serializer when comparing references. - - The equality comparer. - - - - Gets or sets how type name writing and reading is handled by the serializer. - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - - The type name assembly format. - - - - Gets or sets how object references are preserved by the serializer. - - - - - Get or set how reference loops (e.g. a class referencing itself) is handled. - - - - - Get or set how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. - - - - - Get or set how null values are handled during serialization and deserialization. - - - - - Get or set how null default are handled during serialization and deserialization. - - - - - Gets or sets how objects are created during deserialization. - - The object creation handling. - - - - Gets or sets how constructors are used during deserialization. - - The constructor handling. - - - - Gets or sets how metadata properties are used during deserialization. - - The metadata properties handling. - - - - Gets a collection that will be used during serialization. - - Collection that will be used during serialization. - - - - Gets or sets the contract resolver used by the serializer when - serializing .NET objects to JSON and vice versa. - - - - - Gets or sets the used by the serializer when invoking serialization callback methods. - - The context. - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling during serialization and deserialization. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written as JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. - - - true if there will be a check for additional JSON content after deserializing an object; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Creates a new instance. - The will not use default settings - from . - - - A new instance. - The will not use default settings - from . - - - - - Creates a new instance using the specified . - The will not use default settings - from . - - The settings to be applied to the . - - A new instance using the specified . - The will not use default settings - from . - - - - - Creates a new instance. - The will use default settings - from . - - - A new instance. - The will use default settings - from . - - - - - Creates a new instance using the specified . - The will use default settings - from as well as the specified . - - The settings to be applied to the . - - A new instance using the specified . - The will use default settings - from as well as the specified . - - - - - Populates the JSON values onto the target object. - - The that contains the JSON structure to reader values from. - The target object to populate values onto. - - - - Populates the JSON values onto the target object. - - The that contains the JSON structure to reader values from. - The target object to populate values onto. - - - - Deserializes the JSON structure contained by the specified . - - The that contains the JSON structure to deserialize. - The being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The of object being deserialized. - The instance of being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The type of the object to deserialize. - The instance of being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The of object being deserialized. - The instance of being deserialized. - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - - - Specifies the settings on a object. - - - - - Gets or sets how reference loops (e.g. a class referencing itself) is handled. - - Reference loop handling. - - - - Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. - - Missing member handling. - - - - Gets or sets how objects are created during deserialization. - - The object creation handling. - - - - Gets or sets how null values are handled during serialization and deserialization. - - Null value handling. - - - - Gets or sets how null default are handled during serialization and deserialization. - - The default value handling. - - - - Gets or sets a collection that will be used during serialization. - - The converters. - - - - Gets or sets how object references are preserved by the serializer. - - The preserve references handling. - - - - Gets or sets how type name writing and reading is handled by the serializer. - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - The type name handling. - - - - Gets or sets how metadata properties are used during deserialization. - - The metadata properties handling. - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - - The type name assembly format. - - - - Gets or sets how constructors are used during deserialization. - - The constructor handling. - - - - Gets or sets the contract resolver used by the serializer when - serializing .NET objects to JSON and vice versa. - - The contract resolver. - - - - Gets or sets the equality comparer used by the serializer when comparing references. - - The equality comparer. - - - - Gets or sets the used by the serializer when resolving references. - - The reference resolver. - - - - Gets or sets a function that creates the used by the serializer when resolving references. - - A function that creates the used by the serializer when resolving references. - - - - Gets or sets the used by the serializer when writing trace messages. - - The trace writer. - - - - Gets or sets the used by the serializer when resolving type names. - - The binder. - - - - Gets or sets the error handler called during serialization and deserialization. - - The error handler called during serialization and deserialization. - - - - Gets or sets the used by the serializer when invoking serialization callback methods. - - The context. - - - - Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text. - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling during serialization and deserialization. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written as JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Gets a value indicating whether there will be a check for additional content after deserializing an object. - - - true if there will be a check for additional content after deserializing an object; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Represents a reader that provides fast, non-cached, forward-only access to JSON text data. - - - - - Initializes a new instance of the class with the specified . - - The TextReader containing the XML data to read. - - - - Gets or sets the reader's character buffer pool. - - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a []. - - A [] or a null reference if the next JSON token is null. This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Changes the state to closed. - - - - - Gets a value indicating whether the class can return line information. - - - true if LineNumber and LinePosition can be provided; otherwise, false. - - - - - Gets the current line number. - - - The current line number or 0 if no line information is available (for example, HasLineInfo returns false). - - - - - Gets the current line position. - - - The current line position or 0 if no line information is available (for example, HasLineInfo returns false). - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets the writer's character array pool. - - - - - Gets or sets how many IndentChars to write for each level in the hierarchy when is set to Formatting.Indented. - - - - - Gets or sets which character to use to quote attribute values. - - - - - Gets or sets which character to use for indenting when is set to Formatting.Indented. - - - - - Gets or sets a value indicating whether object names will be surrounded with quotes. - - - - - Creates an instance of the JsonWriter class using the specified . - - The TextWriter to write to. - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the specified end token. - - The end token to write. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - A flag to indicate whether the text should be escaped when it is written as a JSON property name. - - - - Writes indent characters. - - - - - Writes the JSON value delimiter. - - - - - Writes an indent space. - - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes out the given white space. - - The string of white space characters. - - - - Specifies the type of JSON token. - - - - - This is returned by the if a method has not been called. - - - - - An object start token. - - - - - An array start token. - - - - - A constructor start token. - - - - - An object property name. - - - - - A comment. - - - - - Raw JSON. - - - - - An integer. - - - - - A float. - - - - - A string. - - - - - A boolean. - - - - - A null token. - - - - - An undefined token. - - - - - An object end token. - - - - - An array end token. - - - - - A constructor end token. - - - - - A Date. - - - - - Byte data. - - - - - - Represents a reader that provides validation. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Sets an event handler for receiving schema validation errors. - - - - - Gets the text value of the current JSON token. - - - - - - Gets the depth of the current token in the JSON document. - - The depth of the current token in the JSON document. - - - - Gets the path of the current JSON token. - - - - - Gets the quotation mark character used to enclose the value of a string. - - - - - - Gets the type of the current JSON token. - - - - - - Gets the Common Language Runtime (CLR) type for the current JSON token. - - - - - - Initializes a new instance of the class that - validates the content returned from the given . - - The to read from while validating. - - - - Gets or sets the schema. - - The schema. - - - - Gets the used to construct this . - - The specified in the constructor. - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream as a []. - - - A [] or a null reference if the next JSON token is null. - - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets a value indicating whether the underlying stream or - should be closed when the writer is closed. - - - true to close the underlying stream or when - the writer is closed; otherwise false. The default is true. - - - - - Gets the top. - - The top. - - - - Gets the state of the writer. - - - - - Gets the path of the writer. - - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling when writing JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written to JSON text. - - - - - Get or set how and values are formatting when writing JSON text. - - - - - Gets or sets the culture used when writing JSON. Defaults to . - - - - - Creates an instance of the JsonWriter class. - - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the end of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the end of an array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the end constructor. - - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - A flag to indicate whether the text should be escaped when it is written as a JSON property name. - - - - Writes the end of the current JSON object or array. - - - - - Writes the current token and its children. - - The to read the token from. - - - - Writes the current token. - - The to read the token from. - A flag indicating whether the current token's children should be written. - - - - Writes the token and its value. - - The to write. - - The value to write. - A value is only required for tokens that have an associated value, e.g. the property name for . - A null value can be passed to the method for token's that don't have a value, e.g. . - - - - Writes the token. - - The to write. - - - - Writes the specified end token. - - The end token to write. - - - - Writes indent characters. - - - - - Writes the JSON value delimiter. - - - - - Writes an indent space. - - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON without changing the writer's state. - - The raw JSON to write. - - - - Writes raw JSON where a value is expected and updates the writer's state. - - The raw JSON to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes out the given white space. - - The string of white space characters. - - - - Releases unmanaged and - optionally - managed resources - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Sets the state of the JsonWriter, - - The JsonToken being written. - The value being written. - - - - The exception thrown when an error occurs while reading JSON text. - - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - Specifies how JSON comments are handled when loading JSON. - - - - - Ignore comments. - - - - - Load comments as a with type . - - - - - Specifies how line information is handled when loading JSON. - - - - - Ignore line information. - - - - - Load line information. - - - - - Contains the LINQ to JSON extension methods. - - - - - Returns a collection of tokens that contains the ancestors of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains the ancestors of every token in the source collection. - - - - Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains every token in the source collection, the ancestors of every token in the source collection. - - - - Returns a collection of tokens that contains the descendants of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains the descendants of every token in the source collection. - - - - Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains every token in the source collection, and the descendants of every token in the source collection. - - - - Returns a collection of child properties of every object in the source collection. - - An of that contains the source collection. - An of that contains the properties of every object in the source collection. - - - - Returns a collection of child values of every object in the source collection with the given key. - - An of that contains the source collection. - The token key. - An of that contains the values of every token in the source collection with the given key. - - - - Returns a collection of child values of every object in the source collection. - - An of that contains the source collection. - An of that contains the values of every token in the source collection. - - - - Returns a collection of converted child values of every object in the source collection with the given key. - - The type to convert the values to. - An of that contains the source collection. - The token key. - An that contains the converted values of every token in the source collection with the given key. - - - - Returns a collection of converted child values of every object in the source collection. - - The type to convert the values to. - An of that contains the source collection. - An that contains the converted values of every token in the source collection. - - - - Converts the value. - - The type to convert the value to. - A cast as a of . - A converted value. - - - - Converts the value. - - The source collection type. - The type to convert the value to. - A cast as a of . - A converted value. - - - - Returns a collection of child tokens of every array in the source collection. - - The source collection type. - An of that contains the source collection. - An of that contains the values of every token in the source collection. - - - - Returns a collection of converted child tokens of every array in the source collection. - - An of that contains the source collection. - The type to convert the values to. - The source collection type. - An that contains the converted values of every token in the source collection. - - - - Returns the input typed as . - - An of that contains the source collection. - The input typed as . - - - - Returns the input typed as . - - The source collection type. - An of that contains the source collection. - The input typed as . - - - - Represents a collection of objects. - - The type of token - - - - Gets the with the specified key. - - - - - - Represents a JSON array. - - - - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified content. - - The contents of the array. - - - - Initializes a new instance of the class with the specified content. - - The contents of the array. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - - - - Creates a from an object. - - The object that will be used to create . - A with the values of the specified object - - - - Creates a from an object. - - The object that will be used to create . - The that will be used to read the object. - A with the values of the specified object - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets or sets the at the specified index. - - - - - - Determines the index of a specific item in the . - - The object to locate in the . - - The index of if found in the list; otherwise, -1. - - - - - Inserts an item to the at the specified index. - - The zero-based index at which should be inserted. - The object to insert into the . - - is not a valid index in the . - The is read-only. - - - - Removes the item at the specified index. - - The zero-based index of the item to remove. - - is not a valid index in the . - The is read-only. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Adds an item to the . - - The object to add to the . - The is read-only. - - - - Removes all items from the . - - The is read-only. - - - - Determines whether the contains a specific value. - - The object to locate in the . - - true if is found in the ; otherwise, false. - - - - - Copies to. - - The array. - Index of the array. - - - - Gets a value indicating whether the is read-only. - - true if the is read-only; otherwise, false. - - - - Removes the first occurrence of a specific object from the . - - The object to remove from the . - - true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . - - The is read-only. - - - - Represents a JSON constructor. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets or sets the name of this constructor. - - The constructor name. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified name and content. - - The constructor name. - The contents of the constructor. - - - - Initializes a new instance of the class with the specified name and content. - - The constructor name. - The contents of the constructor. - - - - Initializes a new instance of the class with the specified name. - - The constructor name. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified key. - - The with the specified key. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Represents a token that can contain other tokens. - - - - - Occurs when the list changes or an item in the list changes. - - - - - Occurs before an item is added to the collection. - - - - - Occurs when the items list of the collection has changed, or the collection is reset. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Raises the event. - - The instance containing the event data. - - - - Raises the event. - - The instance containing the event data. - - - - Raises the event. - - The instance containing the event data. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Get the first child token of this token. - - - A containing the first child token of the . - - - - - Get the last child token of this token. - - - A containing the last child token of the . - - - - - Returns a collection of the child tokens of this token, in document order. - - - An of containing the child tokens of this , in document order. - - - - - Returns a collection of the child values of this token, in document order. - - The type to convert the values to. - - A containing the child values of this , in document order. - - - - - Returns a collection of the descendant tokens for this token in document order. - - An containing the descendant tokens of the . - - - - Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. - - An containing this token, and all the descendant tokens of the . - - - - Adds the specified content as children of this . - - The content to be added. - - - - Adds the specified content as the first children of this . - - The content to be added. - - - - Creates an that can be used to add tokens to the . - - An that is ready to have content written to it. - - - - Replaces the children nodes of this token with the specified content. - - The content. - - - - Removes the child nodes from this token. - - - - - Merge the specified content into this . - - The content to be merged. - - - - Merge the specified content into this using . - - The content to be merged. - The used to merge the content. - - - - Gets the count of child JSON tokens. - - The count of child JSON tokens - - - - Represents a collection of objects. - - The type of token - - - - An empty collection of objects. - - - - - Initializes a new instance of the struct. - - The enumerable. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Returns an enumerator that iterates through a collection. - - - An object that can be used to iterate through the collection. - - - - - Gets the with the specified key. - - - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Returns a hash code for this instance. - - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - - Represents a JSON object. - - - - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Occurs when a property value changes. - - - - - Occurs when a property value is changing. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified content. - - The contents of the object. - - - - Initializes a new instance of the class with the specified content. - - The contents of the object. - - - - Gets the node type for this . - - The type. - - - - Gets an of this object's properties. - - An of this object's properties. - - - - Gets a the specified name. - - The property name. - A with the specified name or null. - - - - Gets an of this object's property values. - - An of this object's property values. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets or sets the with the specified property name. - - - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - - - - Creates a from an object. - - The object that will be used to create . - A with the values of the specified object - - - - Creates a from an object. - - The object that will be used to create . - The that will be used to read the object. - A with the values of the specified object - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified property name. - - Name of the property. - The with the specified property name. - - - - Gets the with the specified property name. - The exact property name will be searched for first and if no matching property is found then - the will be used to match a property. - - Name of the property. - One of the enumeration values that specifies how the strings will be compared. - The with the specified property name. - - - - Tries to get the with the specified property name. - The exact property name will be searched for first and if no matching property is found then - the will be used to match a property. - - Name of the property. - The value. - One of the enumeration values that specifies how the strings will be compared. - true if a value was successfully retrieved; otherwise, false. - - - - Adds the specified property name. - - Name of the property. - The value. - - - - Removes the property with the specified name. - - Name of the property. - true if item was successfully removed; otherwise, false. - - - - Tries the get value. - - Name of the property. - The value. - true if a value was successfully retrieved; otherwise, false. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Raises the event with the provided arguments. - - Name of the property. - - - - Raises the event with the provided arguments. - - Name of the property. - - - - Returns the properties for this instance of a component. - - - A that represents the properties for this component instance. - - - - - Returns the properties for this instance of a component using the attribute array as a filter. - - An array of type that is used as a filter. - - A that represents the filtered properties for this component instance. - - - - - Returns a collection of custom attributes for this instance of a component. - - - An containing the attributes for this object. - - - - - Returns the class name of this instance of a component. - - - The class name of the object, or null if the class does not have a name. - - - - - Returns the name of this instance of a component. - - - The name of the object, or null if the object does not have a name. - - - - - Returns a type converter for this instance of a component. - - - A that is the converter for this object, or null if there is no for this object. - - - - - Returns the default event for this instance of a component. - - - An that represents the default event for this object, or null if this object does not have events. - - - - - Returns the default property for this instance of a component. - - - A that represents the default property for this object, or null if this object does not have properties. - - - - - Returns an editor of the specified type for this instance of a component. - - A that represents the editor for this object. - - An of the specified type that is the editor for this object, or null if the editor cannot be found. - - - - - Returns the events for this instance of a component using the specified attribute array as a filter. - - An array of type that is used as a filter. - - An that represents the filtered events for this component instance. - - - - - Returns the events for this instance of a component. - - - An that represents the events for this component instance. - - - - - Returns an object that contains the property described by the specified property descriptor. - - A that represents the property whose owner is to be found. - - An that represents the owner of the specified property. - - - - - Returns the responsible for binding operations performed on this object. - - The expression tree representation of the runtime value. - - The to bind this object. - - - - - Specifies the settings used when merging JSON. - - - - - Gets or sets the method used when merging JSON arrays. - - The method used when merging JSON arrays. - - - - Represents a JSON property. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets the property name. - - The property name. - - - - Gets or sets the property value. - - The property value. - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - The property name. - The property content. - - - - Initializes a new instance of the class. - - The property name. - The property content. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Represents a view of a . - - - - - Initializes a new instance of the class. - - The name. - - - - When overridden in a derived class, returns whether resetting an object changes its value. - - - true if resetting the component changes its value; otherwise, false. - - The component to test for reset capability. - - - - - When overridden in a derived class, gets the current value of the property on a component. - - - The value of a property for a given component. - - The component with the property for which to retrieve the value. - - - - - When overridden in a derived class, resets the value for this property of the component to the default value. - - The component with the property value that is to be reset to the default value. - - - - - When overridden in a derived class, sets the value of the component to a different value. - - The component with the property value that is to be set. - The new value. - - - - - When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. - - - true if the property should be persisted; otherwise, false. - - The component with the property to be examined for persistence. - - - - - When overridden in a derived class, gets the type of the component this property is bound to. - - - A that represents the type of component this property is bound to. When the or methods are invoked, the object specified might be an instance of this type. - - - - - When overridden in a derived class, gets a value indicating whether this property is read-only. - - - true if the property is read-only; otherwise, false. - - - - - When overridden in a derived class, gets the type of the property. - - - A that represents the type of the property. - - - - - Gets the hash code for the name of the member. - - - - The hash code for the name of the member. - - - - - Represents a raw JSON string. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class. - - The raw json. - - - - Creates an instance of with the content of the reader's current token. - - The reader. - An instance of with the content of the reader's current token. - - - - Represents an abstract JSON token. - - - - - Gets a comparer that can compare two tokens for value equality. - - A that can compare two nodes for value equality. - - - - Gets or sets the parent. - - The parent. - - - - Gets the root of this . - - The root of this . - - - - Gets the node type for this . - - The type. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Compares the values of two tokens, including the values of all descendant tokens. - - The first to compare. - The second to compare. - true if the tokens are equal; otherwise false. - - - - Gets the next sibling token of this node. - - The that contains the next sibling token. - - - - Gets the previous sibling token of this node. - - The that contains the previous sibling token. - - - - Gets the path of the JSON token. - - - - - Adds the specified content immediately after this token. - - A content object that contains simple content or a collection of content objects to be added after this token. - - - - Adds the specified content immediately before this token. - - A content object that contains simple content or a collection of content objects to be added before this token. - - - - Returns a collection of the ancestor tokens of this token. - - A collection of the ancestor tokens of this token. - - - - Returns a collection of tokens that contain this token, and the ancestors of this token. - - A collection of tokens that contain this token, and the ancestors of this token. - - - - Returns a collection of the sibling tokens after this token, in document order. - - A collection of the sibling tokens after this tokens, in document order. - - - - Returns a collection of the sibling tokens before this token, in document order. - - A collection of the sibling tokens before this token, in document order. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets the with the specified key converted to the specified type. - - The type to convert the token to. - The token key. - The converted token value. - - - - Get the first child token of this token. - - A containing the first child token of the . - - - - Get the last child token of this token. - - A containing the last child token of the . - - - - Returns a collection of the child tokens of this token, in document order. - - An of containing the child tokens of this , in document order. - - - - Returns a collection of the child tokens of this token, in document order, filtered by the specified type. - - The type to filter the child tokens on. - A containing the child tokens of this , in document order. - - - - Returns a collection of the child values of this token, in document order. - - The type to convert the values to. - A containing the child values of this , in document order. - - - - Removes this token from its parent. - - - - - Replaces this token with the specified token. - - The value. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Returns the indented JSON for this token. - - - The indented JSON for this token. - - - - - Returns the JSON for this token using the given formatting and converters. - - Indicates how the output is formatted. - A collection of which will be used when writing the token. - The JSON for this token using the given formatting and converters. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to []. - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from [] to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Creates an for this token. - - An that can be used to read this token and its descendants. - - - - Creates a from an object. - - The object that will be used to create . - A with the value of the specified object - - - - Creates a from an object using the specified . - - The object that will be used to create . - The that will be used when reading the object. - A with the value of the specified object - - - - Creates the specified .NET type from the . - - The object type that the token will be deserialized to. - The new object created from the JSON value. - - - - Creates the specified .NET type from the . - - The object type that the token will be deserialized to. - The new object created from the JSON value. - - - - Creates the specified .NET type from the using the specified . - - The object type that the token will be deserialized to. - The that will be used when creating the object. - The new object created from the JSON value. - - - - Creates the specified .NET type from the using the specified . - - The object type that the token will be deserialized to. - The that will be used when creating the object. - The new object created from the JSON value. - - - - Creates a from a . - - An positioned at the token to read into this . - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Creates a from a . - - An positioned at the token to read into this . - The used to load the JSON. - If this is null, default load settings will be used. - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - Creates a from a . - - An positioned at the token to read into this . - The used to load the JSON. - If this is null, default load settings will be used. - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Creates a from a . - - An positioned at the token to read into this . - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Selects a using a JPath expression. Selects the token that matches the object path. - - - A that contains a JPath expression. - - A , or null. - - - - Selects a using a JPath expression. Selects the token that matches the object path. - - - A that contains a JPath expression. - - A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. - A . - - - - Selects a collection of elements using a JPath expression. - - - A that contains a JPath expression. - - An that contains the selected elements. - - - - Selects a collection of elements using a JPath expression. - - - A that contains a JPath expression. - - A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. - An that contains the selected elements. - - - - Returns the responsible for binding operations performed on this object. - - The expression tree representation of the runtime value. - - The to bind this object. - - - - - Returns the responsible for binding operations performed on this object. - - The expression tree representation of the runtime value. - - The to bind this object. - - - - - Creates a new instance of the . All child tokens are recursively cloned. - - A new instance of the . - - - - Adds an object to the annotation list of this . - - The annotation to add. - - - - Get the first annotation object of the specified type from this . - - The type of the annotation to retrieve. - The first annotation object that matches the specified type, or null if no annotation is of the specified type. - - - - Gets the first annotation object of the specified type from this . - - The of the annotation to retrieve. - The first annotation object that matches the specified type, or null if no annotation is of the specified type. - - - - Gets a collection of annotations of the specified type for this . - - The type of the annotations to retrieve. - An that contains the annotations for this . - - - - Gets a collection of annotations of the specified type for this . - - The of the annotations to retrieve. - An of that contains the annotations that match the specified type for this . - - - - Removes the annotations of the specified type from this . - - The type of annotations to remove. - - - - Removes the annotations of the specified type from this . - - The of annotations to remove. - - - - Compares tokens to determine whether they are equal. - - - - - Determines whether the specified objects are equal. - - The first object of type to compare. - The second object of type to compare. - - true if the specified objects are equal; otherwise, false. - - - - - Returns a hash code for the specified object. - - The for which a hash code is to be returned. - A hash code for the specified object. - The type of is a reference type and is null. - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Gets the at the reader's current position. - - - - - Initializes a new instance of the class. - - The token to read from. - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Gets the path of the current JSON token. - - - - - Specifies the type of token. - - - - - No token type has been set. - - - - - A JSON object. - - - - - A JSON array. - - - - - A JSON constructor. - - - - - A JSON object property. - - - - - A comment. - - - - - An integer value. - - - - - A float value. - - - - - A string value. - - - - - A boolean value. - - - - - A null value. - - - - - An undefined value. - - - - - A date value. - - - - - A raw JSON value. - - - - - A collection of bytes value. - - - - - A Guid value. - - - - - A Uri value. - - - - - A TimeSpan value. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets the at the writer's current position. - - - - - Gets the token being writen. - - The token being writen. - - - - Initializes a new instance of the class writing to the given . - - The container being written to. - - - - Initializes a new instance of the class. - - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the end. - - The token. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Represents a value in JSON (string, integer, date, etc). - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Creates a comment with the given value. - - The value. - A comment with the given value. - - - - Creates a string with the given value. - - The value. - A string with the given value. - - - - Creates a null value. - - A null value. - - - - Creates a null value. - - A null value. - - - - Gets the node type for this . - - The type. - - - - Gets or sets the underlying token value. - - The underlying token value. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Indicates whether the current object is equal to another object of the same type. - - - true if the current object is equal to the parameter; otherwise, false. - - An object to compare with this object. - - - - Determines whether the specified is equal to the current . - - The to compare with the current . - - true if the specified is equal to the current ; otherwise, false. - - - The parameter is null. - - - - - Serves as a hash function for a particular type. - - - A hash code for the current . - - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format. - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format provider. - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format. - The format provider. - - A that represents this instance. - - - - - Returns the responsible for binding operations performed on this object. - - The expression tree representation of the runtime value. - - The to bind this object. - - - - - Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. - - An object to compare with this instance. - - A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: - Value - Meaning - Less than zero - This instance is less than . - Zero - This instance is equal to . - Greater than zero - This instance is greater than . - - - is not the same type as this instance. - - - - - Specifies the settings used when loading JSON. - - - - - Gets or sets how JSON comments are handled when loading JSON. - - The JSON comment handling. - - - - Gets or sets how JSON line info is handled when loading JSON. - - The JSON line info handling. - - - - Specifies how JSON arrays are merged together. - - - - Concatenate arrays. - - - Union arrays, skipping items that already exist. - - - Replace all array items. - - - Merge array items together, matched by index. - - - - Specifies the member serialization options for the . - - - - - All public members are serialized by default. Members can be excluded using or . - This is the default member serialization mode. - - - - - Only members must be marked with or are serialized. - This member serialization mode can also be set by marking the class with . - - - - - All public and private fields are serialized. Members can be excluded using or . - This member serialization mode can also be set by marking the class with - and setting IgnoreSerializableAttribute on to false. - - - - - Specifies metadata property handling options for the . - - - - - Read metadata properties located at the start of a JSON object. - - - - - Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. - - - - - Do not try to read metadata properties. - - - - - Specifies missing member handling options for the . - - - - - Ignore a missing member and do not attempt to deserialize it. - - - - - Throw a when a missing member is encountered during deserialization. - - - - - Specifies null value handling options for the . - - - - - - - - - Include null values when serializing and deserializing objects. - - - - - Ignore null values when serializing and deserializing objects. - - - - - Specifies how object creation is handled by the . - - - - - Reuse existing objects, create new objects when needed. - - - - - Only reuse existing objects. - - - - - Always create new objects. - - - - - Specifies reference handling options for the . - Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement ISerializable. - - - - - - - - Do not preserve references when serializing types. - - - - - Preserve references when serializing into a JSON object structure. - - - - - Preserve references when serializing into a JSON array structure. - - - - - Preserve references when serializing. - - - - - Specifies reference loop handling options for the . - - - - - Throw a when a loop is encountered. - - - - - Ignore loop references and do not serialize. - - - - - Serialize loop references. - - - - - Indicating whether a property is required. - - - - - The property is not required. The default state. - - - - - The property must be defined in JSON but can be a null value. - - - - - The property must be defined in JSON and cannot be a null value. - - - - - The property is not required but it cannot be a null value. - - - - - - Contains the JSON schema extension methods. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - - Determines whether the is valid. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - - true if the specified is valid; otherwise, false. - - - - - - Determines whether the is valid. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - When this method returns, contains any error messages generated while validating. - - true if the specified is valid; otherwise, false. - - - - - - Validates the specified . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - - - - - Validates the specified . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - The validation event handler. - - - - - An in-memory representation of a JSON Schema. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets or sets the id. - - - - - Gets or sets the title. - - - - - Gets or sets whether the object is required. - - - - - Gets or sets whether the object is read only. - - - - - Gets or sets whether the object is visible to users. - - - - - Gets or sets whether the object is transient. - - - - - Gets or sets the description of the object. - - - - - Gets or sets the types of values allowed by the object. - - The type. - - - - Gets or sets the pattern. - - The pattern. - - - - Gets or sets the minimum length. - - The minimum length. - - - - Gets or sets the maximum length. - - The maximum length. - - - - Gets or sets a number that the value should be divisble by. - - A number that the value should be divisble by. - - - - Gets or sets the minimum. - - The minimum. - - - - Gets or sets the maximum. - - The maximum. - - - - Gets or sets a flag indicating whether the value can not equal the number defined by the "minimum" attribute. - - A flag indicating whether the value can not equal the number defined by the "minimum" attribute. - - - - Gets or sets a flag indicating whether the value can not equal the number defined by the "maximum" attribute. - - A flag indicating whether the value can not equal the number defined by the "maximum" attribute. - - - - Gets or sets the minimum number of items. - - The minimum number of items. - - - - Gets or sets the maximum number of items. - - The maximum number of items. - - - - Gets or sets the of items. - - The of items. - - - - Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . - - - true if items are validated using their array position; otherwise, false. - - - - - Gets or sets the of additional items. - - The of additional items. - - - - Gets or sets a value indicating whether additional items are allowed. - - - true if additional items are allowed; otherwise, false. - - - - - Gets or sets whether the array items must be unique. - - - - - Gets or sets the of properties. - - The of properties. - - - - Gets or sets the of additional properties. - - The of additional properties. - - - - Gets or sets the pattern properties. - - The pattern properties. - - - - Gets or sets a value indicating whether additional properties are allowed. - - - true if additional properties are allowed; otherwise, false. - - - - - Gets or sets the required property if this property is present. - - The required property if this property is present. - - - - Gets or sets the a collection of valid enum values allowed. - - A collection of valid enum values allowed. - - - - Gets or sets disallowed types. - - The disallow types. - - - - Gets or sets the default value. - - The default value. - - - - Gets or sets the collection of that this schema extends. - - The collection of that this schema extends. - - - - Gets or sets the format. - - The format. - - - - Initializes a new instance of the class. - - - - - Reads a from the specified . - - The containing the JSON Schema to read. - The object representing the JSON Schema. - - - - Reads a from the specified . - - The containing the JSON Schema to read. - The to use when resolving schema references. - The object representing the JSON Schema. - - - - Load a from a string that contains schema JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - Parses the specified json. - - The json. - The resolver. - A populated from the string that contains JSON. - - - - Writes this schema to a . - - A into which this method will write. - - - - Writes this schema to a using the specified . - - A into which this method will write. - The resolver used. - - - - Returns a that represents the current . - - - A that represents the current . - - - - - - Returns detailed information about the schema exception. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets the line number indicating where the error occurred. - - The line number indicating where the error occurred. - - - - Gets the line position indicating where the error occurred. - - The line position indicating where the error occurred. - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - - Generates a from a specified . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets or sets how undefined schemas are handled by the serializer. - - - - - Gets or sets the contract resolver. - - The contract resolver. - - - - Generate a from the specified type. - - The type to generate a from. - A generated from the specified type. - - - - Generate a from the specified type. - - The type to generate a from. - The used to resolve schema references. - A generated from the specified type. - - - - Generate a from the specified type. - - The type to generate a from. - Specify whether the generated root will be nullable. - A generated from the specified type. - - - - Generate a from the specified type. - - The type to generate a from. - The used to resolve schema references. - Specify whether the generated root will be nullable. - A generated from the specified type. - - - - - Resolves from an id. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets or sets the loaded schemas. - - The loaded schemas. - - - - Initializes a new instance of the class. - - - - - Gets a for the specified reference. - - The id. - A for the specified reference. - - - - - The value types allowed by the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - No type specified. - - - - - String type. - - - - - Float type. - - - - - Integer type. - - - - - Boolean type. - - - - - Object type. - - - - - Array type. - - - - - Null type. - - - - - Any type. - - - - - - Specifies undefined schema Id handling options for the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Do not infer a schema Id. - - - - - Use the .NET type name as the schema Id. - - - - - Use the assembly qualified .NET type name as the schema Id. - - - - - - Returns detailed information related to the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets the associated with the validation error. - - The JsonSchemaException associated with the validation error. - - - - Gets the path of the JSON location where the validation error occurred. - - The path of the JSON location where the validation error occurred. - - - - Gets the text description corresponding to the validation error. - - The text description. - - - - - Represents the callback method that will handle JSON schema validation events and the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Resolves member mappings for a type, camel casing property names. - - - - - Initializes a new instance of the class. - - - - - Resolves the name of the property. - - Name of the property. - The property name camel cased. - - - - Used by to resolves a for a given . - - - - - Gets a value indicating whether members are being get and set using dynamic code generation. - This value is determined by the runtime permissions available. - - - true if using dynamic code generation; otherwise, false. - - - - - Gets or sets the default members search flags. - - The default members search flags. - - - - Gets or sets a value indicating whether compiler generated members should be serialized. - - - true if serialized compiler generated members; otherwise, false. - - - - - Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. - - - true if the interface will be ignored when serializing and deserializing types; otherwise, false. - - - - - Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. - - - true if the attribute will be ignored when serializing and deserializing types; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - If set to true the will use a cached shared with other resolvers of the same type. - Sharing the cache will significantly improve performance with multiple resolver instances because expensive reflection will only - happen once. This setting can cause unexpected behavior if different instances of the resolver are suppose to produce different - results. When set to false it is highly recommended to reuse instances with the . - - - - - Resolves the contract for a given type. - - The type to resolve a contract for. - The contract for a given type. - - - - Gets the serializable members for the type. - - The type to get serializable members for. - The serializable members for the type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates the constructor parameters. - - The constructor to create properties for. - The type's member properties. - Properties for the given . - - - - Creates a for the given . - - The matching member property. - The constructor parameter. - A created for the given . - - - - Resolves the default for the contract. - - Type of the object. - The contract's default . - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Determines which contract type is created for the given type. - - Type of the object. - A for the given type. - - - - Creates properties for the given . - - The type to create properties for. - /// The member serialization mode for the type. - Properties for the given . - - - - Creates the used by the serializer to get and set values from a member. - - The member. - The used by the serializer to get and set values from a member. - - - - Creates a for the given . - - The member's parent . - The member to create a for. - A created for the given . - - - - Resolves the name of the property. - - Name of the property. - Resolved name of the property. - - - - Resolves the key of the dictionary. By default is used to resolve dictionary keys. - - Key of the dictionary. - Resolved key of the dictionary. - - - - Gets the resolved name of the property. - - Name of the property. - Name of the property. - - - - The default serialization binder used when resolving and loading classes from type names. - - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - Specifies the name of the serialized object. - Specifies the name of the serialized object. - - The type of the object the formatter creates a new instance of. - - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - The type of the object the formatter creates a new instance of. - Specifies the name of the serialized object. - Specifies the name of the serialized object. - - - - Represents a trace writer that writes to the application's instances. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of Info will exclude Verbose messages and include Info, - Warning and Error messages. - - - The that will be used to filter the trace messages passed to the writer. - - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Get and set values for a using dynamic methods. - - - - - Initializes a new instance of the class. - - The member info. - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Provides information surrounding an error. - - - - - Gets the error. - - The error. - - - - Gets the original object that caused the error. - - The original object that caused the error. - - - - Gets the member that caused the error. - - The member that caused the error. - - - - Gets the path of the JSON location where the error occurred. - - The path of the JSON location where the error occurred. - - - - Gets or sets a value indicating whether this is handled. - - true if handled; otherwise, false. - - - - Provides data for the Error event. - - - - - Gets the current object the error event is being raised against. - - The current object the error event is being raised against. - - - - Gets the error context. - - The error context. - - - - Initializes a new instance of the class. - - The current object. - The error context. - - - - Get and set values for a using dynamic methods. - - - - - Initializes a new instance of the class. - - The member info. - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Provides methods to get attributes. - - - - - Returns a collection of all of the attributes, or an empty collection if there are no attributes. - - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. - - The type of the attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Used by to resolves a for a given . - - - - - - - - - Resolves the contract for a given type. - - The type to resolve a contract for. - The contract for a given type. - - - - Used to resolve references when serializing and deserializing JSON by the . - - - - - Resolves a reference to its object. - - The serialization context. - The reference to resolve. - The object that - - - - Gets the reference for the sepecified object. - - The serialization context. - The object to get a reference for. - The reference to the object. - - - - Determines whether the specified object is referenced. - - The serialization context. - The object to test for a reference. - - true if the specified object is referenced; otherwise, false. - - - - - Adds a reference to the specified object. - - The serialization context. - The reference. - The object to reference. - - - - Represents a trace writer. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of Info will exclude Verbose messages and include Info, - Warning and Error messages. - - The that will be used to filter the trace messages passed to the writer. - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Provides methods to get and set values. - - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Contract details for a used by the . - - - - - Gets the of the collection items. - - The of the collection items. - - - - Gets a value indicating whether the collection type is a multidimensional array. - - true if the collection type is a multidimensional array; otherwise, false. - - - - Gets or sets the function used to create the object. When set this function will override . - - The function used to create the object. - - - - Gets a value indicating whether the creator has a parameter with the collection values. - - true if the creator has a parameter with the collection values; otherwise, false. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Gets or sets the default collection items . - - The converter. - - - - Gets or sets a value indicating whether the collection items preserve object references. - - true if collection items preserve object references; otherwise, false. - - - - Gets or sets the collection item reference loop handling. - - The reference loop handling. - - - - Gets or sets the collection item type name handling. - - The type name handling. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Handles serialization callback events. - - The object that raised the callback event. - The streaming context. - - - - Handles serialization error callback events. - - The object that raised the callback event. - The streaming context. - The error context. - - - - Sets extension data for an object during deserialization. - - The object to set extension data on. - The extension data key. - The extension data value. - - - - Gets extension data for an object during serialization. - - The object to set extension data on. - - - - Contract details for a used by the . - - - - - Gets the underlying type for the contract. - - The underlying type for the contract. - - - - Gets or sets the type created during deserialization. - - The type created during deserialization. - - - - Gets or sets whether this type contract is serialized as a reference. - - Whether this type contract is serialized as a reference. - - - - Gets or sets the default for this contract. - - The converter. - - - - Gets or sets all methods called immediately after deserialization of the object. - - The methods called immediately after deserialization of the object. - - - - Gets or sets all methods called during deserialization of the object. - - The methods called during deserialization of the object. - - - - Gets or sets all methods called after serialization of the object graph. - - The methods called after serialization of the object graph. - - - - Gets or sets all methods called before serialization of the object. - - The methods called before serialization of the object. - - - - Gets or sets all method called when an error is thrown during the serialization of the object. - - The methods called when an error is thrown during the serialization of the object. - - - - Gets or sets the method called immediately after deserialization of the object. - - The method called immediately after deserialization of the object. - - - - Gets or sets the method called during deserialization of the object. - - The method called during deserialization of the object. - - - - Gets or sets the method called after serialization of the object graph. - - The method called after serialization of the object graph. - - - - Gets or sets the method called before serialization of the object. - - The method called before serialization of the object. - - - - Gets or sets the method called when an error is thrown during the serialization of the object. - - The method called when an error is thrown during the serialization of the object. - - - - Gets or sets the default creator method used to create the object. - - The default creator method used to create the object. - - - - Gets or sets a value indicating whether the default creator is non public. - - true if the default object creator is non-public; otherwise, false. - - - - Contract details for a used by the . - - - - - Gets or sets the property name resolver. - - The property name resolver. - - - - Gets or sets the dictionary key resolver. - - The dictionary key resolver. - - - - Gets the of the dictionary keys. - - The of the dictionary keys. - - - - Gets the of the dictionary values. - - The of the dictionary values. - - - - Gets or sets the function used to create the object. When set this function will override . - - The function used to create the object. - - - - Gets a value indicating whether the creator has a parameter with the dictionary values. - - true if the creator has a parameter with the dictionary values; otherwise, false. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Gets the object's properties. - - The object's properties. - - - - Gets or sets the property name resolver. - - The property name resolver. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Gets or sets the ISerializable object constructor. - - The ISerializable object constructor. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Gets or sets the object member serialization. - - The member object serialization. - - - - Gets or sets a value that indicates whether the object's properties are required. - - - A value indicating whether the object's properties are required. - - - - - Gets the object's properties. - - The object's properties. - - - - Gets the constructor parameters required for any non-default constructor - - - - - Gets a collection of instances that define the parameters used with . - - - - - Gets or sets the override constructor used to create the object. - This is set when a constructor is marked up using the - JsonConstructor attribute. - - The override constructor. - - - - Gets or sets the parametrized constructor used to create the object. - - The parametrized constructor. - - - - Gets or sets the function used to create the object. When set this function will override . - This function is called with a collection of arguments which are defined by the collection. - - The function used to create the object. - - - - Gets or sets the extension data setter. - - - - - Gets or sets the extension data getter. - - - - - Gets or sets the extension data value type. - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Maps a JSON property to a .NET member or constructor parameter. - - - - - Gets or sets the name of the property. - - The name of the property. - - - - Gets or sets the type that declared this property. - - The type that declared this property. - - - - Gets or sets the order of serialization of a member. - - The numeric order of serialization. - - - - Gets or sets the name of the underlying member or parameter. - - The name of the underlying member or parameter. - - - - Gets the that will get and set the during serialization. - - The that will get and set the during serialization. - - - - Gets or sets the for this property. - - The for this property. - - - - Gets or sets the type of the property. - - The type of the property. - - - - Gets or sets the for the property. - If set this converter takes presidence over the contract converter for the property type. - - The converter. - - - - Gets or sets the member converter. - - The member converter. - - - - Gets or sets a value indicating whether this is ignored. - - true if ignored; otherwise, false. - - - - Gets or sets a value indicating whether this is readable. - - true if readable; otherwise, false. - - - - Gets or sets a value indicating whether this is writable. - - true if writable; otherwise, false. - - - - Gets or sets a value indicating whether this has a member attribute. - - true if has a member attribute; otherwise, false. - - - - Gets the default value. - - The default value. - - - - Gets or sets a value indicating whether this is required. - - A value indicating whether this is required. - - - - Gets or sets a value indicating whether this property preserves object references. - - - true if this instance is reference; otherwise, false. - - - - - Gets or sets the property null value handling. - - The null value handling. - - - - Gets or sets the property default value handling. - - The default value handling. - - - - Gets or sets the property reference loop handling. - - The reference loop handling. - - - - Gets or sets the property object creation handling. - - The object creation handling. - - - - Gets or sets or sets the type name handling. - - The type name handling. - - - - Gets or sets a predicate used to determine whether the property should be serialize. - - A predicate used to determine whether the property should be serialize. - - - - Gets or sets a predicate used to determine whether the property should be deserialized. - - A predicate used to determine whether the property should be deserialized. - - - - Gets or sets a predicate used to determine whether the property should be serialized. - - A predicate used to determine whether the property should be serialized. - - - - Gets or sets an action used to set whether the property has been deserialized. - - An action used to set whether the property has been deserialized. - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Gets or sets the converter used when serializing the property's collection items. - - The collection's items converter. - - - - Gets or sets whether this property's collection items are serialized as a reference. - - Whether this property's collection items are serialized as a reference. - - - - Gets or sets the the type name handling used when serializing the property's collection items. - - The collection's items type name handling. - - - - Gets or sets the the reference loop handling used when serializing the property's collection items. - - The collection's items reference loop handling. - - - - A collection of objects. - - - - - Initializes a new instance of the class. - - The type. - - - - When implemented in a derived class, extracts the key from the specified element. - - The element from which to extract the key. - The key for the specified element. - - - - Adds a object. - - The property to add to the collection. - - - - Gets the closest matching object. - First attempts to get an exact case match of propertyName and then - a case insensitive match. - - Name of the property. - A matching property if found. - - - - Gets a property by property name. - - The name of the property to get. - Type property name string comparison. - A matching property if found. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Lookup and create an instance of the JsonConverter type described by the argument. - - The JsonConverter type to create. - Optional arguments to pass to an initializing constructor of the JsonConverter. - If null, the default constructor is used. - - - - Create a factory function that can be used to create instances of a JsonConverter described by the - argument type. The returned function can then be used to either invoke the converter's default ctor, or any - parameterized constructors by way of an object array. - - - - - Represents a trace writer that writes to memory. When the trace message limit is - reached then old trace messages will be removed as new messages are added. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of Info will exclude Verbose messages and include Info, - Warning and Error messages. - - - The that will be used to filter the trace messages passed to the writer. - - - - - Initializes a new instance of the class. - - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Returns an enumeration of the most recent trace messages. - - An enumeration of the most recent trace messages. - - - - Returns a of the most recent trace messages. - - - A of the most recent trace messages. - - - - - Represents a method that constructs an object. - - The object type to create. - - - - When applied to a method, specifies that the method is called when an error occurs serializing an object. - - - - - Provides methods to get attributes from a , , or . - - - - - Initializes a new instance of the class. - - The instance to get attributes for. This parameter should be a , , or . - - - - Returns a collection of all of the attributes, or an empty collection if there are no attributes. - - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. - - The type of the attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Get and set values for a using reflection. - - - - - Initializes a new instance of the class. - - The member info. - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Specifies how strings are escaped when writing JSON text. - - - - - Only control characters (e.g. newline) are escaped. - - - - - All non-ASCII and control characters (e.g. newline) are escaped. - - - - - HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. - - - - - Specifies type name handling options for the . - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - - - - Do not include the .NET type name when serializing types. - - - - - Include the .NET type name when serializing into a JSON object structure. - - - - - Include the .NET type name when serializing into a JSON array structure. - - - - - Always include the .NET type name when serializing. - - - - - Include the .NET type name when the type of the object being serialized is not the same as its declared type. - - - - - Determines whether the collection is null or empty. - - The collection. - - true if the collection is null or empty; otherwise, false. - - - - - Adds the elements of the specified collection to the specified generic IList. - - The list to add to. - The collection of elements to add. - - - - Returns the index of the first occurrence in a sequence by using a specified IEqualityComparer{TSource}. - - The type of the elements of source. - A sequence in which to locate a value. - The object to locate in the sequence - An equality comparer to compare values. - The zero-based index of the first occurrence of value within the entire sequence, if found; otherwise, –1. - - - - Converts the value to the specified type. If the value is unable to be converted, the - value is checked whether it assignable to the specified type. - - The value to convert. - The culture to use when converting. - The type to convert or cast the value to. - - The converted type. If conversion was unsuccessful, the initial value - is returned if assignable to the target type. - - - - - Helper method for generating a MetaObject which calls a - specific method on Dynamic that returns a result - - - - - Helper method for generating a MetaObject which calls a - specific method on Dynamic, but uses one of the arguments for - the result. - - - - - Helper method for generating a MetaObject which calls a - specific method on Dynamic, but uses one of the arguments for - the result. - - - - - Returns a Restrictions object which includes our current restrictions merged - with a restriction limiting our type - - - - - Gets a dictionary of the names and values of an Enum type. - - - - - - Gets a dictionary of the names and values of an Enum type. - - The enum type to get names and values for. - - - - - Gets the type of the typed collection's items. - - The type. - The type of the typed collection's items. - - - - Gets the member's underlying type. - - The member. - The underlying type of the member. - - - - Determines whether the member is an indexed property. - - The member. - - true if the member is an indexed property; otherwise, false. - - - - - Determines whether the property is an indexed property. - - The property. - - true if the property is an indexed property; otherwise, false. - - - - - Gets the member's value on the object. - - The member. - The target object. - The member's value on the object. - - - - Sets the member's value on the target object. - - The member. - The target. - The value. - - - - Determines whether the specified MemberInfo can be read. - - The MemberInfo to determine whether can be read. - /// if set to true then allow the member to be gotten non-publicly. - - true if the specified MemberInfo can be read; otherwise, false. - - - - - Determines whether the specified MemberInfo can be set. - - The MemberInfo to determine whether can be set. - if set to true then allow the member to be set non-publicly. - if set to true then allow the member to be set if read-only. - - true if the specified MemberInfo can be set; otherwise, false. - - - - - Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer. - - - - - Determines whether the string is all white space. Empty string will return false. - - The string to test whether it is all white space. - - true if the string is all white space; otherwise, false. - - - - - Nulls an empty string. - - The string. - Null if the string was null, otherwise the string unchanged. - - - - Specifies the state of the . - - - - - An exception has been thrown, which has left the in an invalid state. - You may call the method to put the in the Closed state. - Any other method calls results in an being thrown. - - - - - The method has been called. - - - - - An object is being written. - - - - - A array is being written. - - - - - A constructor is being written. - - - - - A property is being written. - - - - - A write method has not been called. - - - - diff --git a/source/packages/Newtonsoft.Json.8.0.1/lib/portable-net40+sl5+wp80+win8+wpa81/Newtonsoft.Json.dll b/source/packages/Newtonsoft.Json.8.0.1/lib/portable-net40+sl5+wp80+win8+wpa81/Newtonsoft.Json.dll deleted file mode 100644 index ea795d6f096083a7746d4be1e88e3a0d403a5c91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 413184 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ΞDRmU;mM9`(uxraR04zK?ke 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 - - - Newtonsoft.Json - - - - - Represents a BSON Oid (object id). - - - - - Gets or sets the value of the Oid. - - The value of the Oid. - - - - Initializes a new instance of the class. - - The Oid value. - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Gets or sets a value indicating whether binary data reading should compatible with incorrect Json.NET 3.5 written binary. - - - true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. - - - - - Gets or sets a value indicating whether the root object will be read as a JSON array. - - - true if the root object will be read as a JSON array; otherwise, false. - - - - - Gets or sets the used when reading values from BSON. - - The used when reading values from BSON. - - - - Initializes a new instance of the class. - - The stream. - - - - Initializes a new instance of the class. - - The reader. - - - - Initializes a new instance of the class. - - The stream. - if set to true the root object will be read as a JSON array. - The used when reading values from BSON. - - - - Initializes a new instance of the class. - - The reader. - if set to true the root object will be read as a JSON array. - The used when reading values from BSON. - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Changes the to Closed. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets the used when writing values to BSON. - When set to no conversion will occur. - - The used when writing values to BSON. - - - - Initializes a new instance of the class. - - The stream. - - - - Initializes a new instance of the class. - - The writer. - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Writes the end. - - The token. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes raw JSON where a value is expected and updates the writer's state. - - The raw JSON to write. - - - - Writes the beginning of a JSON array. - - - - - Writes the beginning of a JSON object. - - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Closes this stream and the underlying stream. - - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value that represents a BSON object id. - - The Object ID value to write. - - - - Writes a BSON regex. - - The regex pattern. - The regex options. - - - - Specifies how constructors are used when initializing objects during deserialization by the . - - - - - First attempt to use the public default constructor, then fall back to single paramatized constructor, then the non-public default constructor. - - - - - Json.NET will use a non-public default constructor before falling back to a paramatized constructor. - - - - - Converts a to and from JSON and BSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Create a custom object - - The object type to convert. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Creates an object which will then be populated by the serializer. - - Type of the object. - The created object. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Gets a value indicating whether this can write JSON. - - - true if this can write JSON; otherwise, false. - - - - - Provides a base class for converting a to and from JSON. - - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a F# discriminated union type to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from the ISO 8601 date format (e.g. 2008-04-12T12:53Z). - - - - - Gets or sets the date time styles used when converting a date to and from JSON. - - The date time styles used when converting a date to and from JSON. - - - - Gets or sets the date time format used when converting a date to and from JSON. - - The date time format used when converting a date to and from JSON. - - - - Gets or sets the culture used when converting a date to and from JSON. - - The culture used when converting a date to and from JSON. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Converts a to and from a JavaScript date constructor (e.g. new Date(52231943)). - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing property value of the JSON that is being converted. - The calling serializer. - The object value. - - - - Converts a to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from JSON and BSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts an to and from its name string value. - - - - - Gets or sets a value indicating whether the written enum text should be camel case. - - true if the written enum text will be camel case; otherwise, false. - - - - Gets or sets a value indicating whether integer values are allowed. - - true if integers are allowed; otherwise, false. - - - - Initializes a new instance of the class. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from a string (e.g. "1.2.3.4"). - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing property value of the JSON that is being converted. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Specifies how dates are formatted when writing JSON text. - - - - - Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". - - - - - Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". - - - - - Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. - - - - - Date formatted strings are not parsed to a date type and are read as strings. - - - - - Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . - - - - - Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . - - - - - Specifies how to treat the time value when converting between string and . - - - - - Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. - - - - - Treat as a UTC. If the object represents a local time, it is converted to a UTC. - - - - - Treat as a local time if a is being converted to a string. - If a string is being converted to , convert to a local time if a time zone is specified. - - - - - Time zone information should be preserved when converting. - - - - - Specifies default value handling options for the . - - - - - - - - - Include members where the member value is the same as the member's default value when serializing objects. - Included members are written to JSON. Has no effect when deserializing. - - - - - Ignore members where the member value is the same as the member's default value when serializing objects - so that is is not written to JSON. - This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, - decimals and floating point numbers; and false for booleans). The default value ignored can be changed by - placing the on the property. - - - - - Members with a default value but no JSON will be set to their default value when deserializing. - - - - - Ignore members where the member value is the same as the member's default value when serializing objects - and sets members to their default value when deserializing. - - - - - Specifies float format handling options when writing special floating point numbers, e.g. , - and with . - - - - - Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". - - - - - Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. - Note that this will produce non-valid JSON. - - - - - Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a property. - - - - - Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Floating point numbers are parsed to . - - - - - Floating point numbers are parsed to . - - - - - Specifies formatting options for the . - - - - - No special formatting is applied. This is the default. - - - - - Causes child objects to be indented according to the and settings. - - - - - Provides an interface for using pooled arrays. - - The array type content. - - - - Rent a array from the pool. This array must be returned when it is no longer needed. - - The minimum required length of the array. The returned array may be longer. - The rented array from the pool. This array must be returned when it is no longer needed. - - - - Return an array to the pool. - - The array that is being returned. - - - - Provides an interface to enable a class to return line and position information. - - - - - Gets a value indicating whether the class can return line information. - - - true if LineNumber and LinePosition can be provided; otherwise, false. - - - - - Gets the current line number. - - The current line number or 0 if no line information is available (for example, HasLineInfo returns false). - - - - Gets the current line position. - - The current line position or 0 if no line information is available (for example, HasLineInfo returns false). - - - - Instructs the how to serialize the collection. - - - - - Gets or sets a value indicating whether null items are allowed in the collection. - - true if null items are allowed in the collection; otherwise, false. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with a flag indicating whether the array can contain null items - - A flag indicating whether the array can contain null items. - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Instructs the to use the specified constructor when deserializing that object. - - - - - Instructs the how to serialize the object. - - - - - Gets or sets the id. - - The id. - - - - Gets or sets the title. - - The title. - - - - Gets or sets the description. - - The description. - - - - Gets the collection's items converter. - - The collection's items converter. - - - - The parameter list to use when constructing the JsonConverter described by ItemConverterType. - If null, the default constructor is used. - When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number, - order, and type of these parameters. - - - [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] - - - - - Gets or sets a value that indicates whether to preserve object references. - - - true to keep object reference; otherwise, false. The default is false. - - - - - Gets or sets a value that indicates whether to preserve collection's items references. - - - true to keep collection's items object references; otherwise, false. The default is false. - - - - - Gets or sets the reference loop handling used when serializing the collection's items. - - The reference loop handling. - - - - Gets or sets the type name handling used when serializing the collection's items. - - The type name handling. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Provides methods for converting between common language runtime types and JSON types. - - - - - - - - Gets or sets a function that creates default . - Default settings are automatically used by serialization methods on , - and and on . - To serialize without using any default settings create a with - . - - - - - Represents JavaScript's boolean value true as a string. This field is read-only. - - - - - Represents JavaScript's boolean value false as a string. This field is read-only. - - - - - Represents JavaScript's null as a string. This field is read-only. - - - - - Represents JavaScript's undefined as a string. This field is read-only. - - - - - Represents JavaScript's positive infinity as a string. This field is read-only. - - - - - Represents JavaScript's negative infinity as a string. This field is read-only. - - - - - Represents JavaScript's NaN as a string. This field is read-only. - - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation using the specified. - - The value to convert. - The format the date will be converted to. - The time zone handling when the date is converted to a string. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation using the specified. - - The value to convert. - The format the date will be converted to. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - The string delimiter character. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - The string delimiter character. - The string escape handling. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Serializes the specified object to a JSON string. - - The object to serialize. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using formatting. - - The object to serialize. - Indicates how the output is formatted. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a collection of . - - The object to serialize. - A collection converters used while serializing. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using formatting and a collection of . - - The object to serialize. - Indicates how the output is formatted. - A collection converters used while serializing. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using . - - The object to serialize. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a type, formatting and . - - The object to serialize. - The used to serialize the object. - If this is null, default serialization settings will be used. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using formatting and . - - The object to serialize. - Indicates how the output is formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a type, formatting and . - - The object to serialize. - Indicates how the output is formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - A JSON string representation of the object. - - - - - Deserializes the JSON to a .NET object. - - The JSON to deserialize. - The deserialized object from the JSON string. - - - - Deserializes the JSON to a .NET object using . - - The JSON to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type. - - The JSON to deserialize. - The of object being deserialized. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type. - - The type of the object to deserialize to. - The JSON to deserialize. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the given anonymous type. - - - The anonymous type to deserialize to. This can't be specified - traditionally and must be infered from the anonymous type passed - as a parameter. - - The JSON to deserialize. - The anonymous type object. - The deserialized anonymous type from the JSON string. - - - - Deserializes the JSON to the given anonymous type using . - - - The anonymous type to deserialize to. This can't be specified - traditionally and must be infered from the anonymous type passed - as a parameter. - - The JSON to deserialize. - The anonymous type object. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized anonymous type from the JSON string. - - - - Deserializes the JSON to the specified .NET type using a collection of . - - The type of the object to deserialize to. - The JSON to deserialize. - Converters to use while deserializing. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using . - - The type of the object to deserialize to. - The object to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using a collection of . - - The JSON to deserialize. - The type of the object to deserialize. - Converters to use while deserializing. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using . - - The JSON to deserialize. - The type of the object to deserialize to. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Populates the object with values from the JSON string. - - The JSON to populate values from. - The target object to populate values onto. - - - - Populates the object with values from the JSON string using . - - The JSON to populate values from. - The target object to populate values onto. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - - - - Converts an object to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - - Gets the of the JSON produced by the JsonConverter. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The of the JSON produced by the JsonConverter. - - - - Gets a value indicating whether this can read JSON. - - true if this can read JSON; otherwise, false. - - - - Gets a value indicating whether this can write JSON. - - true if this can write JSON; otherwise, false. - - - - Instructs the to use the specified when serializing the member or class. - - - - - Gets the of the converter. - - The of the converter. - - - - The parameter list to use when constructing the JsonConverter described by ConverterType. - If null, the default constructor is used. - - - - - Initializes a new instance of the class. - - Type of the converter. - - - - Initializes a new instance of the class. - - Type of the converter. - Parameter list to use when constructing the JsonConverter. Can be null. - - - - Represents a collection of . - - - - - Instructs the how to serialize the collection. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - The exception thrown when an error occurs during JSON serialization or deserialization. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Instructs the to deserialize properties with no matching class member into the specified collection - and write values during serialization. - - - - - Gets or sets a value that indicates whether to write extension data when serializing the object. - - - true to write extension data when serializing the object; otherwise, false. The default is true. - - - - - Gets or sets a value that indicates whether to read extension data when deserializing the object. - - - true to read extension data when deserializing the object; otherwise, false. The default is true. - - - - - Initializes a new instance of the class. - - - - - Instructs the not to serialize the public field or public read/write property value. - - - - - Instructs the how to serialize the object. - - - - - Gets or sets the member serialization. - - The member serialization. - - - - Gets or sets a value that indicates whether the object's properties are required. - - - A value indicating whether the object's properties are required. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified member serialization. - - The member serialization. - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Instructs the to always serialize the member with the specified name. - - - - - Gets or sets the converter used when serializing the property's collection items. - - The collection's items converter. - - - - The parameter list to use when constructing the JsonConverter described by ItemConverterType. - If null, the default constructor is used. - When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number, - order, and type of these parameters. - - - [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] - - - - - Gets or sets the null value handling used when serializing this property. - - The null value handling. - - - - Gets or sets the default value handling used when serializing this property. - - The default value handling. - - - - Gets or sets the reference loop handling used when serializing this property. - - The reference loop handling. - - - - Gets or sets the object creation handling used when deserializing this property. - - The object creation handling. - - - - Gets or sets the type name handling used when serializing this property. - - The type name handling. - - - - Gets or sets whether this property's value is serialized as a reference. - - Whether this property's value is serialized as a reference. - - - - Gets or sets the order of serialization of a member. - - The numeric order of serialization. - - - - Gets or sets a value indicating whether this property is required. - - - A value indicating whether this property is required. - - - - - Gets or sets the name of the property. - - The name of the property. - - - - Gets or sets the the reference loop handling used when serializing the property's collection items. - - The collection's items reference loop handling. - - - - Gets or sets the the type name handling used when serializing the property's collection items. - - The collection's items type name handling. - - - - Gets or sets whether this property's collection items are serialized as a reference. - - Whether this property's collection items are serialized as a reference. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified name. - - Name of the property. - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Specifies the state of the reader. - - - - - The Read method has not been called. - - - - - The end of the file has been reached successfully. - - - - - Reader is at a property. - - - - - Reader is at the start of an object. - - - - - Reader is in an object. - - - - - Reader is at the start of an array. - - - - - Reader is in an array. - - - - - The Close method has been called. - - - - - Reader has just read a value. - - - - - Reader is at the start of a constructor. - - - - - Reader in a constructor. - - - - - An error occurred that prevents the read operation from continuing. - - - - - The end of the file has been reached successfully. - - - - - Gets the current reader state. - - The current reader state. - - - - Gets or sets a value indicating whether the underlying stream or - should be closed when the reader is closed. - - - true to close the underlying stream or when - the reader is closed; otherwise false. The default is true. - - - - - Gets or sets a value indicating whether multiple pieces of JSON content can - be read from a continuous stream without erroring. - - - true to support reading multiple pieces of JSON content; otherwise false. The default is false. - - - - - Gets the quotation mark character used to enclose the value of a string. - - - - - Get or set how time zones are handling when reading JSON. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how custom date formatted strings are parsed when reading JSON. - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Gets the type of the current JSON token. - - - - - Gets the text value of the current JSON token. - - - - - Gets The Common Language Runtime (CLR) type for the current JSON token. - - - - - Gets the depth of the current token in the JSON document. - - The depth of the current token in the JSON document. - - - - Gets the path of the current JSON token. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Initializes a new instance of the class with the specified . - - - - - Reads the next JSON token from the stream. - - true if the next token was read successfully; false if there are no more tokens to read. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a []. - - A [] or a null reference if the next JSON token is null. This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Skips the children of the current token. - - - - - Sets the current token. - - The new token. - - - - Sets the current token and value. - - The new token. - The value. - - - - Sets the state based on current token type. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Releases unmanaged and - optionally - managed resources - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Changes the to Closed. - - - - - The exception thrown when an error occurs while reading JSON text. - - - - - Gets the line number indicating where the error occurred. - - The line number indicating where the error occurred. - - - - Gets the line position indicating where the error occurred. - - The line position indicating where the error occurred. - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Instructs the to always serialize the member, and require the member has a value. - - - - - The exception thrown when an error occurs during JSON serialization or deserialization. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Serializes and deserializes objects into and from the JSON format. - The enables you to control how objects are encoded into JSON. - - - - - Occurs when the errors during serialization and deserialization. - - - - - Gets or sets the used by the serializer when resolving references. - - - - - Gets or sets the used by the serializer when resolving type names. - - - - - Gets or sets the used by the serializer when writing trace messages. - - The trace writer. - - - - Gets or sets the equality comparer used by the serializer when comparing references. - - The equality comparer. - - - - Gets or sets how type name writing and reading is handled by the serializer. - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - - The type name assembly format. - - - - Gets or sets how object references are preserved by the serializer. - - - - - Get or set how reference loops (e.g. a class referencing itself) is handled. - - - - - Get or set how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. - - - - - Get or set how null values are handled during serialization and deserialization. - - - - - Get or set how null default are handled during serialization and deserialization. - - - - - Gets or sets how objects are created during deserialization. - - The object creation handling. - - - - Gets or sets how constructors are used during deserialization. - - The constructor handling. - - - - Gets or sets how metadata properties are used during deserialization. - - The metadata properties handling. - - - - Gets a collection that will be used during serialization. - - Collection that will be used during serialization. - - - - Gets or sets the contract resolver used by the serializer when - serializing .NET objects to JSON and vice versa. - - - - - Gets or sets the used by the serializer when invoking serialization callback methods. - - The context. - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling during serialization and deserialization. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written as JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. - - - true if there will be a check for additional JSON content after deserializing an object; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Creates a new instance. - The will not use default settings - from . - - - A new instance. - The will not use default settings - from . - - - - - Creates a new instance using the specified . - The will not use default settings - from . - - The settings to be applied to the . - - A new instance using the specified . - The will not use default settings - from . - - - - - Creates a new instance. - The will use default settings - from . - - - A new instance. - The will use default settings - from . - - - - - Creates a new instance using the specified . - The will use default settings - from as well as the specified . - - The settings to be applied to the . - - A new instance using the specified . - The will use default settings - from as well as the specified . - - - - - Populates the JSON values onto the target object. - - The that contains the JSON structure to reader values from. - The target object to populate values onto. - - - - Populates the JSON values onto the target object. - - The that contains the JSON structure to reader values from. - The target object to populate values onto. - - - - Deserializes the JSON structure contained by the specified . - - The that contains the JSON structure to deserialize. - The being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The of object being deserialized. - The instance of being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The type of the object to deserialize. - The instance of being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The of object being deserialized. - The instance of being deserialized. - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - - - Specifies the settings on a object. - - - - - Gets or sets how reference loops (e.g. a class referencing itself) is handled. - - Reference loop handling. - - - - Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. - - Missing member handling. - - - - Gets or sets how objects are created during deserialization. - - The object creation handling. - - - - Gets or sets how null values are handled during serialization and deserialization. - - Null value handling. - - - - Gets or sets how null default are handled during serialization and deserialization. - - The default value handling. - - - - Gets or sets a collection that will be used during serialization. - - The converters. - - - - Gets or sets how object references are preserved by the serializer. - - The preserve references handling. - - - - Gets or sets how type name writing and reading is handled by the serializer. - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - The type name handling. - - - - Gets or sets how metadata properties are used during deserialization. - - The metadata properties handling. - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - - The type name assembly format. - - - - Gets or sets how constructors are used during deserialization. - - The constructor handling. - - - - Gets or sets the contract resolver used by the serializer when - serializing .NET objects to JSON and vice versa. - - The contract resolver. - - - - Gets or sets the equality comparer used by the serializer when comparing references. - - The equality comparer. - - - - Gets or sets the used by the serializer when resolving references. - - The reference resolver. - - - - Gets or sets a function that creates the used by the serializer when resolving references. - - A function that creates the used by the serializer when resolving references. - - - - Gets or sets the used by the serializer when writing trace messages. - - The trace writer. - - - - Gets or sets the used by the serializer when resolving type names. - - The binder. - - - - Gets or sets the error handler called during serialization and deserialization. - - The error handler called during serialization and deserialization. - - - - Gets or sets the used by the serializer when invoking serialization callback methods. - - The context. - - - - Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text. - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling during serialization and deserialization. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written as JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Gets a value indicating whether there will be a check for additional content after deserializing an object. - - - true if there will be a check for additional content after deserializing an object; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Represents a reader that provides fast, non-cached, forward-only access to JSON text data. - - - - - Initializes a new instance of the class with the specified . - - The TextReader containing the XML data to read. - - - - Gets or sets the reader's character buffer pool. - - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a []. - - A [] or a null reference if the next JSON token is null. This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Changes the state to closed. - - - - - Gets a value indicating whether the class can return line information. - - - true if LineNumber and LinePosition can be provided; otherwise, false. - - - - - Gets the current line number. - - - The current line number or 0 if no line information is available (for example, HasLineInfo returns false). - - - - - Gets the current line position. - - - The current line position or 0 if no line information is available (for example, HasLineInfo returns false). - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets the writer's character array pool. - - - - - Gets or sets how many IndentChars to write for each level in the hierarchy when is set to Formatting.Indented. - - - - - Gets or sets which character to use to quote attribute values. - - - - - Gets or sets which character to use for indenting when is set to Formatting.Indented. - - - - - Gets or sets a value indicating whether object names will be surrounded with quotes. - - - - - Creates an instance of the JsonWriter class using the specified . - - The TextWriter to write to. - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the specified end token. - - The end token to write. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - A flag to indicate whether the text should be escaped when it is written as a JSON property name. - - - - Writes indent characters. - - - - - Writes the JSON value delimiter. - - - - - Writes an indent space. - - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes out the given white space. - - The string of white space characters. - - - - Specifies the type of JSON token. - - - - - This is returned by the if a method has not been called. - - - - - An object start token. - - - - - An array start token. - - - - - A constructor start token. - - - - - An object property name. - - - - - A comment. - - - - - Raw JSON. - - - - - An integer. - - - - - A float. - - - - - A string. - - - - - A boolean. - - - - - A null token. - - - - - An undefined token. - - - - - An object end token. - - - - - An array end token. - - - - - A constructor end token. - - - - - A Date. - - - - - Byte data. - - - - - - Represents a reader that provides validation. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Sets an event handler for receiving schema validation errors. - - - - - Gets the text value of the current JSON token. - - - - - - Gets the depth of the current token in the JSON document. - - The depth of the current token in the JSON document. - - - - Gets the path of the current JSON token. - - - - - Gets the quotation mark character used to enclose the value of a string. - - - - - - Gets the type of the current JSON token. - - - - - - Gets the Common Language Runtime (CLR) type for the current JSON token. - - - - - - Initializes a new instance of the class that - validates the content returned from the given . - - The to read from while validating. - - - - Gets or sets the schema. - - The schema. - - - - Gets the used to construct this . - - The specified in the constructor. - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream as a []. - - - A [] or a null reference if the next JSON token is null. - - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets a value indicating whether the underlying stream or - should be closed when the writer is closed. - - - true to close the underlying stream or when - the writer is closed; otherwise false. The default is true. - - - - - Gets the top. - - The top. - - - - Gets the state of the writer. - - - - - Gets the path of the writer. - - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling when writing JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written to JSON text. - - - - - Get or set how and values are formatting when writing JSON text. - - - - - Gets or sets the culture used when writing JSON. Defaults to . - - - - - Creates an instance of the JsonWriter class. - - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the end of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the end of an array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the end constructor. - - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - A flag to indicate whether the text should be escaped when it is written as a JSON property name. - - - - Writes the end of the current JSON object or array. - - - - - Writes the current token and its children. - - The to read the token from. - - - - Writes the current token. - - The to read the token from. - A flag indicating whether the current token's children should be written. - - - - Writes the token and its value. - - The to write. - - The value to write. - A value is only required for tokens that have an associated value, e.g. the property name for . - A null value can be passed to the method for token's that don't have a value, e.g. . - - - - Writes the token. - - The to write. - - - - Writes the specified end token. - - The end token to write. - - - - Writes indent characters. - - - - - Writes the JSON value delimiter. - - - - - Writes an indent space. - - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON without changing the writer's state. - - The raw JSON to write. - - - - Writes raw JSON where a value is expected and updates the writer's state. - - The raw JSON to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes out the given white space. - - The string of white space characters. - - - - Releases unmanaged and - optionally - managed resources - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Sets the state of the JsonWriter, - - The JsonToken being written. - The value being written. - - - - The exception thrown when an error occurs while reading JSON text. - - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Specifies how JSON comments are handled when loading JSON. - - - - - Ignore comments. - - - - - Load comments as a with type . - - - - - Specifies how line information is handled when loading JSON. - - - - - Ignore line information. - - - - - Load line information. - - - - - Contains the LINQ to JSON extension methods. - - - - - Returns a collection of tokens that contains the ancestors of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains the ancestors of every token in the source collection. - - - - Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains every token in the source collection, the ancestors of every token in the source collection. - - - - Returns a collection of tokens that contains the descendants of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains the descendants of every token in the source collection. - - - - Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains every token in the source collection, and the descendants of every token in the source collection. - - - - Returns a collection of child properties of every object in the source collection. - - An of that contains the source collection. - An of that contains the properties of every object in the source collection. - - - - Returns a collection of child values of every object in the source collection with the given key. - - An of that contains the source collection. - The token key. - An of that contains the values of every token in the source collection with the given key. - - - - Returns a collection of child values of every object in the source collection. - - An of that contains the source collection. - An of that contains the values of every token in the source collection. - - - - Returns a collection of converted child values of every object in the source collection with the given key. - - The type to convert the values to. - An of that contains the source collection. - The token key. - An that contains the converted values of every token in the source collection with the given key. - - - - Returns a collection of converted child values of every object in the source collection. - - The type to convert the values to. - An of that contains the source collection. - An that contains the converted values of every token in the source collection. - - - - Converts the value. - - The type to convert the value to. - A cast as a of . - A converted value. - - - - Converts the value. - - The source collection type. - The type to convert the value to. - A cast as a of . - A converted value. - - - - Returns a collection of child tokens of every array in the source collection. - - The source collection type. - An of that contains the source collection. - An of that contains the values of every token in the source collection. - - - - Returns a collection of converted child tokens of every array in the source collection. - - An of that contains the source collection. - The type to convert the values to. - The source collection type. - An that contains the converted values of every token in the source collection. - - - - Returns the input typed as . - - An of that contains the source collection. - The input typed as . - - - - Returns the input typed as . - - The source collection type. - An of that contains the source collection. - The input typed as . - - - - Represents a collection of objects. - - The type of token - - - - Gets the with the specified key. - - - - - - Represents a JSON array. - - - - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified content. - - The contents of the array. - - - - Initializes a new instance of the class with the specified content. - - The contents of the array. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - - - - Creates a from an object. - - The object that will be used to create . - A with the values of the specified object - - - - Creates a from an object. - - The object that will be used to create . - The that will be used to read the object. - A with the values of the specified object - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets or sets the at the specified index. - - - - - - Determines the index of a specific item in the . - - The object to locate in the . - - The index of if found in the list; otherwise, -1. - - - - - Inserts an item to the at the specified index. - - The zero-based index at which should be inserted. - The object to insert into the . - - is not a valid index in the . - The is read-only. - - - - Removes the item at the specified index. - - The zero-based index of the item to remove. - - is not a valid index in the . - The is read-only. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Adds an item to the . - - The object to add to the . - The is read-only. - - - - Removes all items from the . - - The is read-only. - - - - Determines whether the contains a specific value. - - The object to locate in the . - - true if is found in the ; otherwise, false. - - - - - Copies to. - - The array. - Index of the array. - - - - Gets a value indicating whether the is read-only. - - true if the is read-only; otherwise, false. - - - - Removes the first occurrence of a specific object from the . - - The object to remove from the . - - true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . - - The is read-only. - - - - Represents a JSON constructor. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets or sets the name of this constructor. - - The constructor name. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified name and content. - - The constructor name. - The contents of the constructor. - - - - Initializes a new instance of the class with the specified name and content. - - The constructor name. - The contents of the constructor. - - - - Initializes a new instance of the class with the specified name. - - The constructor name. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified key. - - The with the specified key. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Represents a token that can contain other tokens. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Get the first child token of this token. - - - A containing the first child token of the . - - - - - Get the last child token of this token. - - - A containing the last child token of the . - - - - - Returns a collection of the child tokens of this token, in document order. - - - An of containing the child tokens of this , in document order. - - - - - Returns a collection of the child values of this token, in document order. - - The type to convert the values to. - - A containing the child values of this , in document order. - - - - - Returns a collection of the descendant tokens for this token in document order. - - An containing the descendant tokens of the . - - - - Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. - - An containing this token, and all the descendant tokens of the . - - - - Adds the specified content as children of this . - - The content to be added. - - - - Adds the specified content as the first children of this . - - The content to be added. - - - - Creates an that can be used to add tokens to the . - - An that is ready to have content written to it. - - - - Replaces the children nodes of this token with the specified content. - - The content. - - - - Removes the child nodes from this token. - - - - - Merge the specified content into this . - - The content to be merged. - - - - Merge the specified content into this using . - - The content to be merged. - The used to merge the content. - - - - Gets the count of child JSON tokens. - - The count of child JSON tokens - - - - Represents a collection of objects. - - The type of token - - - - An empty collection of objects. - - - - - Initializes a new instance of the struct. - - The enumerable. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Returns an enumerator that iterates through a collection. - - - An object that can be used to iterate through the collection. - - - - - Gets the with the specified key. - - - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Returns a hash code for this instance. - - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - - Represents a JSON object. - - - - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Occurs when a property value changes. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified content. - - The contents of the object. - - - - Initializes a new instance of the class with the specified content. - - The contents of the object. - - - - Gets the node type for this . - - The type. - - - - Gets an of this object's properties. - - An of this object's properties. - - - - Gets a the specified name. - - The property name. - A with the specified name or null. - - - - Gets an of this object's property values. - - An of this object's property values. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets or sets the with the specified property name. - - - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - - - - Creates a from an object. - - The object that will be used to create . - A with the values of the specified object - - - - Creates a from an object. - - The object that will be used to create . - The that will be used to read the object. - A with the values of the specified object - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified property name. - - Name of the property. - The with the specified property name. - - - - Gets the with the specified property name. - The exact property name will be searched for first and if no matching property is found then - the will be used to match a property. - - Name of the property. - One of the enumeration values that specifies how the strings will be compared. - The with the specified property name. - - - - Tries to get the with the specified property name. - The exact property name will be searched for first and if no matching property is found then - the will be used to match a property. - - Name of the property. - The value. - One of the enumeration values that specifies how the strings will be compared. - true if a value was successfully retrieved; otherwise, false. - - - - Adds the specified property name. - - Name of the property. - The value. - - - - Removes the property with the specified name. - - Name of the property. - true if item was successfully removed; otherwise, false. - - - - Tries the get value. - - Name of the property. - The value. - true if a value was successfully retrieved; otherwise, false. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Raises the event with the provided arguments. - - Name of the property. - - - - Represents a JSON property. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets the property name. - - The property name. - - - - Gets or sets the property value. - - The property value. - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - The property name. - The property content. - - - - Initializes a new instance of the class. - - The property name. - The property content. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Represents a raw JSON string. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class. - - The raw json. - - - - Creates an instance of with the content of the reader's current token. - - The reader. - An instance of with the content of the reader's current token. - - - - Specifies the settings used when loading JSON. - - - - - Gets or sets how JSON comments are handled when loading JSON. - - The JSON comment handling. - - - - Gets or sets how JSON line info is handled when loading JSON. - - The JSON line info handling. - - - - Specifies the settings used when merging JSON. - - - - - Gets or sets the method used when merging JSON arrays. - - The method used when merging JSON arrays. - - - - Represents an abstract JSON token. - - - - - Gets a comparer that can compare two tokens for value equality. - - A that can compare two nodes for value equality. - - - - Gets or sets the parent. - - The parent. - - - - Gets the root of this . - - The root of this . - - - - Gets the node type for this . - - The type. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Compares the values of two tokens, including the values of all descendant tokens. - - The first to compare. - The second to compare. - true if the tokens are equal; otherwise false. - - - - Gets the next sibling token of this node. - - The that contains the next sibling token. - - - - Gets the previous sibling token of this node. - - The that contains the previous sibling token. - - - - Gets the path of the JSON token. - - - - - Adds the specified content immediately after this token. - - A content object that contains simple content or a collection of content objects to be added after this token. - - - - Adds the specified content immediately before this token. - - A content object that contains simple content or a collection of content objects to be added before this token. - - - - Returns a collection of the ancestor tokens of this token. - - A collection of the ancestor tokens of this token. - - - - Returns a collection of tokens that contain this token, and the ancestors of this token. - - A collection of tokens that contain this token, and the ancestors of this token. - - - - Returns a collection of the sibling tokens after this token, in document order. - - A collection of the sibling tokens after this tokens, in document order. - - - - Returns a collection of the sibling tokens before this token, in document order. - - A collection of the sibling tokens before this token, in document order. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets the with the specified key converted to the specified type. - - The type to convert the token to. - The token key. - The converted token value. - - - - Get the first child token of this token. - - A containing the first child token of the . - - - - Get the last child token of this token. - - A containing the last child token of the . - - - - Returns a collection of the child tokens of this token, in document order. - - An of containing the child tokens of this , in document order. - - - - Returns a collection of the child tokens of this token, in document order, filtered by the specified type. - - The type to filter the child tokens on. - A containing the child tokens of this , in document order. - - - - Returns a collection of the child values of this token, in document order. - - The type to convert the values to. - A containing the child values of this , in document order. - - - - Removes this token from its parent. - - - - - Replaces this token with the specified token. - - The value. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Returns the indented JSON for this token. - - - The indented JSON for this token. - - - - - Returns the JSON for this token using the given formatting and converters. - - Indicates how the output is formatted. - A collection of which will be used when writing the token. - The JSON for this token using the given formatting and converters. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to []. - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from [] to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Creates an for this token. - - An that can be used to read this token and its descendants. - - - - Creates a from an object. - - The object that will be used to create . - A with the value of the specified object - - - - Creates a from an object using the specified . - - The object that will be used to create . - The that will be used when reading the object. - A with the value of the specified object - - - - Creates the specified .NET type from the . - - The object type that the token will be deserialized to. - The new object created from the JSON value. - - - - Creates the specified .NET type from the . - - The object type that the token will be deserialized to. - The new object created from the JSON value. - - - - Creates the specified .NET type from the using the specified . - - The object type that the token will be deserialized to. - The that will be used when creating the object. - The new object created from the JSON value. - - - - Creates the specified .NET type from the using the specified . - - The object type that the token will be deserialized to. - The that will be used when creating the object. - The new object created from the JSON value. - - - - Creates a from a . - - An positioned at the token to read into this . - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Creates a from a . - - An positioned at the token to read into this . - The used to load the JSON. - If this is null, default load settings will be used. - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - Creates a from a . - - An positioned at the token to read into this . - The used to load the JSON. - If this is null, default load settings will be used. - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Creates a from a . - - An positioned at the token to read into this . - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Selects a using a JPath expression. Selects the token that matches the object path. - - - A that contains a JPath expression. - - A , or null. - - - - Selects a using a JPath expression. Selects the token that matches the object path. - - - A that contains a JPath expression. - - A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. - A . - - - - Selects a collection of elements using a JPath expression. - - - A that contains a JPath expression. - - An that contains the selected elements. - - - - Selects a collection of elements using a JPath expression. - - - A that contains a JPath expression. - - A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. - An that contains the selected elements. - - - - Creates a new instance of the . All child tokens are recursively cloned. - - A new instance of the . - - - - Adds an object to the annotation list of this . - - The annotation to add. - - - - Get the first annotation object of the specified type from this . - - The type of the annotation to retrieve. - The first annotation object that matches the specified type, or null if no annotation is of the specified type. - - - - Gets the first annotation object of the specified type from this . - - The of the annotation to retrieve. - The first annotation object that matches the specified type, or null if no annotation is of the specified type. - - - - Gets a collection of annotations of the specified type for this . - - The type of the annotations to retrieve. - An that contains the annotations for this . - - - - Gets a collection of annotations of the specified type for this . - - The of the annotations to retrieve. - An of that contains the annotations that match the specified type for this . - - - - Removes the annotations of the specified type from this . - - The type of annotations to remove. - - - - Removes the annotations of the specified type from this . - - The of annotations to remove. - - - - Compares tokens to determine whether they are equal. - - - - - Determines whether the specified objects are equal. - - The first object of type to compare. - The second object of type to compare. - - true if the specified objects are equal; otherwise, false. - - - - - Returns a hash code for the specified object. - - The for which a hash code is to be returned. - A hash code for the specified object. - The type of is a reference type and is null. - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Gets the at the reader's current position. - - - - - Initializes a new instance of the class. - - The token to read from. - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Gets the path of the current JSON token. - - - - - Specifies the type of token. - - - - - No token type has been set. - - - - - A JSON object. - - - - - A JSON array. - - - - - A JSON constructor. - - - - - A JSON object property. - - - - - A comment. - - - - - An integer value. - - - - - A float value. - - - - - A string value. - - - - - A boolean value. - - - - - A null value. - - - - - An undefined value. - - - - - A date value. - - - - - A raw JSON value. - - - - - A collection of bytes value. - - - - - A Guid value. - - - - - A Uri value. - - - - - A TimeSpan value. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets the at the writer's current position. - - - - - Gets the token being writen. - - The token being writen. - - - - Initializes a new instance of the class writing to the given . - - The container being written to. - - - - Initializes a new instance of the class. - - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the end. - - The token. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Represents a value in JSON (string, integer, date, etc). - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Creates a comment with the given value. - - The value. - A comment with the given value. - - - - Creates a string with the given value. - - The value. - A string with the given value. - - - - Creates a null value. - - A null value. - - - - Creates a null value. - - A null value. - - - - Gets the node type for this . - - The type. - - - - Gets or sets the underlying token value. - - The underlying token value. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Indicates whether the current object is equal to another object of the same type. - - - true if the current object is equal to the parameter; otherwise, false. - - An object to compare with this object. - - - - Determines whether the specified is equal to the current . - - The to compare with the current . - - true if the specified is equal to the current ; otherwise, false. - - - The parameter is null. - - - - - Serves as a hash function for a particular type. - - - A hash code for the current . - - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format. - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format provider. - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format. - The format provider. - - A that represents this instance. - - - - - Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. - - An object to compare with this instance. - - A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: - Value - Meaning - Less than zero - This instance is less than . - Zero - This instance is equal to . - Greater than zero - This instance is greater than . - - - is not the same type as this instance. - - - - - Specifies how JSON arrays are merged together. - - - - Concatenate arrays. - - - Union arrays, skipping items that already exist. - - - Replace all array items. - - - Merge array items together, matched by index. - - - - Specifies the member serialization options for the . - - - - - All public members are serialized by default. Members can be excluded using or . - This is the default member serialization mode. - - - - - Only members must be marked with or are serialized. - This member serialization mode can also be set by marking the class with . - - - - - All public and private fields are serialized. Members can be excluded using or . - This member serialization mode can also be set by marking the class with - and setting IgnoreSerializableAttribute on to false. - - - - - Specifies metadata property handling options for the . - - - - - Read metadata properties located at the start of a JSON object. - - - - - Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. - - - - - Do not try to read metadata properties. - - - - - Specifies missing member handling options for the . - - - - - Ignore a missing member and do not attempt to deserialize it. - - - - - Throw a when a missing member is encountered during deserialization. - - - - - Specifies null value handling options for the . - - - - - - - - - Include null values when serializing and deserializing objects. - - - - - Ignore null values when serializing and deserializing objects. - - - - - Specifies how object creation is handled by the . - - - - - Reuse existing objects, create new objects when needed. - - - - - Only reuse existing objects. - - - - - Always create new objects. - - - - - Specifies reference handling options for the . - Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement ISerializable. - - - - - - - - Do not preserve references when serializing types. - - - - - Preserve references when serializing into a JSON object structure. - - - - - Preserve references when serializing into a JSON array structure. - - - - - Preserve references when serializing. - - - - - Specifies reference loop handling options for the . - - - - - Throw a when a loop is encountered. - - - - - Ignore loop references and do not serialize. - - - - - Serialize loop references. - - - - - Indicating whether a property is required. - - - - - The property is not required. The default state. - - - - - The property must be defined in JSON but can be a null value. - - - - - The property must be defined in JSON and cannot be a null value. - - - - - The property is not required but it cannot be a null value. - - - - - - Contains the JSON schema extension methods. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - - Determines whether the is valid. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - - true if the specified is valid; otherwise, false. - - - - - - Determines whether the is valid. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - When this method returns, contains any error messages generated while validating. - - true if the specified is valid; otherwise, false. - - - - - - Validates the specified . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - - - - - Validates the specified . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - The validation event handler. - - - - - An in-memory representation of a JSON Schema. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets or sets the id. - - - - - Gets or sets the title. - - - - - Gets or sets whether the object is required. - - - - - Gets or sets whether the object is read only. - - - - - Gets or sets whether the object is visible to users. - - - - - Gets or sets whether the object is transient. - - - - - Gets or sets the description of the object. - - - - - Gets or sets the types of values allowed by the object. - - The type. - - - - Gets or sets the pattern. - - The pattern. - - - - Gets or sets the minimum length. - - The minimum length. - - - - Gets or sets the maximum length. - - The maximum length. - - - - Gets or sets a number that the value should be divisble by. - - A number that the value should be divisble by. - - - - Gets or sets the minimum. - - The minimum. - - - - Gets or sets the maximum. - - The maximum. - - - - Gets or sets a flag indicating whether the value can not equal the number defined by the "minimum" attribute. - - A flag indicating whether the value can not equal the number defined by the "minimum" attribute. - - - - Gets or sets a flag indicating whether the value can not equal the number defined by the "maximum" attribute. - - A flag indicating whether the value can not equal the number defined by the "maximum" attribute. - - - - Gets or sets the minimum number of items. - - The minimum number of items. - - - - Gets or sets the maximum number of items. - - The maximum number of items. - - - - Gets or sets the of items. - - The of items. - - - - Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . - - - true if items are validated using their array position; otherwise, false. - - - - - Gets or sets the of additional items. - - The of additional items. - - - - Gets or sets a value indicating whether additional items are allowed. - - - true if additional items are allowed; otherwise, false. - - - - - Gets or sets whether the array items must be unique. - - - - - Gets or sets the of properties. - - The of properties. - - - - Gets or sets the of additional properties. - - The of additional properties. - - - - Gets or sets the pattern properties. - - The pattern properties. - - - - Gets or sets a value indicating whether additional properties are allowed. - - - true if additional properties are allowed; otherwise, false. - - - - - Gets or sets the required property if this property is present. - - The required property if this property is present. - - - - Gets or sets the a collection of valid enum values allowed. - - A collection of valid enum values allowed. - - - - Gets or sets disallowed types. - - The disallow types. - - - - Gets or sets the default value. - - The default value. - - - - Gets or sets the collection of that this schema extends. - - The collection of that this schema extends. - - - - Gets or sets the format. - - The format. - - - - Initializes a new instance of the class. - - - - - Reads a from the specified . - - The containing the JSON Schema to read. - The object representing the JSON Schema. - - - - Reads a from the specified . - - The containing the JSON Schema to read. - The to use when resolving schema references. - The object representing the JSON Schema. - - - - Load a from a string that contains schema JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - Parses the specified json. - - The json. - The resolver. - A populated from the string that contains JSON. - - - - Writes this schema to a . - - A into which this method will write. - - - - Writes this schema to a using the specified . - - A into which this method will write. - The resolver used. - - - - Returns a that represents the current . - - - A that represents the current . - - - - - - Returns detailed information about the schema exception. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets the line number indicating where the error occurred. - - The line number indicating where the error occurred. - - - - Gets the line position indicating where the error occurred. - - The line position indicating where the error occurred. - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - - Generates a from a specified . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets or sets how undefined schemas are handled by the serializer. - - - - - Gets or sets the contract resolver. - - The contract resolver. - - - - Generate a from the specified type. - - The type to generate a from. - A generated from the specified type. - - - - Generate a from the specified type. - - The type to generate a from. - The used to resolve schema references. - A generated from the specified type. - - - - Generate a from the specified type. - - The type to generate a from. - Specify whether the generated root will be nullable. - A generated from the specified type. - - - - Generate a from the specified type. - - The type to generate a from. - The used to resolve schema references. - Specify whether the generated root will be nullable. - A generated from the specified type. - - - - - Resolves from an id. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets or sets the loaded schemas. - - The loaded schemas. - - - - Initializes a new instance of the class. - - - - - Gets a for the specified reference. - - The id. - A for the specified reference. - - - - - The value types allowed by the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - No type specified. - - - - - String type. - - - - - Float type. - - - - - Integer type. - - - - - Boolean type. - - - - - Object type. - - - - - Array type. - - - - - Null type. - - - - - Any type. - - - - - - Specifies undefined schema Id handling options for the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Do not infer a schema Id. - - - - - Use the .NET type name as the schema Id. - - - - - Use the assembly qualified .NET type name as the schema Id. - - - - - - Returns detailed information related to the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets the associated with the validation error. - - The JsonSchemaException associated with the validation error. - - - - Gets the path of the JSON location where the validation error occurred. - - The path of the JSON location where the validation error occurred. - - - - Gets the text description corresponding to the validation error. - - The text description. - - - - - Represents the callback method that will handle JSON schema validation events and the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Allows users to control class loading and mandate what class to load. - - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - Specifies the name of the serialized object. - Specifies the name of the serialized object - The type of the object the formatter creates a new instance of. - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - The type of the object the formatter creates a new instance of. - Specifies the name of the serialized object. - Specifies the name of the serialized object. - - - - Resolves member mappings for a type, camel casing property names. - - - - - Initializes a new instance of the class. - - - - - Resolves the name of the property. - - Name of the property. - The property name camel cased. - - - - Used by to resolves a for a given . - - - - - Gets a value indicating whether members are being get and set using dynamic code generation. - This value is determined by the runtime permissions available. - - - true if using dynamic code generation; otherwise, false. - - - - - Gets or sets the default members search flags. - - The default members search flags. - - - - Gets or sets a value indicating whether compiler generated members should be serialized. - - - true if serialized compiler generated members; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - If set to true the will use a cached shared with other resolvers of the same type. - Sharing the cache will significantly improve performance with multiple resolver instances because expensive reflection will only - happen once. This setting can cause unexpected behavior if different instances of the resolver are suppose to produce different - results. When set to false it is highly recommended to reuse instances with the . - - - - - Resolves the contract for a given type. - - The type to resolve a contract for. - The contract for a given type. - - - - Gets the serializable members for the type. - - The type to get serializable members for. - The serializable members for the type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates the constructor parameters. - - The constructor to create properties for. - The type's member properties. - Properties for the given . - - - - Creates a for the given . - - The matching member property. - The constructor parameter. - A created for the given . - - - - Resolves the default for the contract. - - Type of the object. - The contract's default . - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Determines which contract type is created for the given type. - - Type of the object. - A for the given type. - - - - Creates properties for the given . - - The type to create properties for. - /// The member serialization mode for the type. - Properties for the given . - - - - Creates the used by the serializer to get and set values from a member. - - The member. - The used by the serializer to get and set values from a member. - - - - Creates a for the given . - - The member's parent . - The member to create a for. - A created for the given . - - - - Resolves the name of the property. - - Name of the property. - Resolved name of the property. - - - - Resolves the key of the dictionary. By default is used to resolve dictionary keys. - - Key of the dictionary. - Resolved key of the dictionary. - - - - Gets the resolved name of the property. - - Name of the property. - Name of the property. - - - - The default serialization binder used when resolving and loading classes from type names. - - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - Specifies the name of the serialized object. - Specifies the name of the serialized object. - - The type of the object the formatter creates a new instance of. - - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - The type of the object the formatter creates a new instance of. - Specifies the name of the serialized object. - Specifies the name of the serialized object. - - - - Provides information surrounding an error. - - - - - Gets the error. - - The error. - - - - Gets the original object that caused the error. - - The original object that caused the error. - - - - Gets the member that caused the error. - - The member that caused the error. - - - - Gets the path of the JSON location where the error occurred. - - The path of the JSON location where the error occurred. - - - - Gets or sets a value indicating whether this is handled. - - true if handled; otherwise, false. - - - - Provides data for the Error event. - - - - - Gets the current object the error event is being raised against. - - The current object the error event is being raised against. - - - - Gets the error context. - - The error context. - - - - Initializes a new instance of the class. - - The current object. - The error context. - - - - Get and set values for a using dynamic methods. - - - - - Initializes a new instance of the class. - - The member info. - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Provides methods to get attributes. - - - - - Returns a collection of all of the attributes, or an empty collection if there are no attributes. - - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. - - The type of the attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Used by to resolves a for a given . - - - - - - - - - Resolves the contract for a given type. - - The type to resolve a contract for. - The contract for a given type. - - - - Used to resolve references when serializing and deserializing JSON by the . - - - - - Resolves a reference to its object. - - The serialization context. - The reference to resolve. - The object that - - - - Gets the reference for the sepecified object. - - The serialization context. - The object to get a reference for. - The reference to the object. - - - - Determines whether the specified object is referenced. - - The serialization context. - The object to test for a reference. - - true if the specified object is referenced; otherwise, false. - - - - - Adds a reference to the specified object. - - The serialization context. - The reference. - The object to reference. - - - - Represents a trace writer. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of Info will exclude Verbose messages and include Info, - Warning and Error messages. - - The that will be used to filter the trace messages passed to the writer. - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Provides methods to get and set values. - - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Contract details for a used by the . - - - - - Gets the of the collection items. - - The of the collection items. - - - - Gets a value indicating whether the collection type is a multidimensional array. - - true if the collection type is a multidimensional array; otherwise, false. - - - - Gets or sets the function used to create the object. When set this function will override . - - The function used to create the object. - - - - Gets a value indicating whether the creator has a parameter with the collection values. - - true if the creator has a parameter with the collection values; otherwise, false. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Gets or sets the default collection items . - - The converter. - - - - Gets or sets a value indicating whether the collection items preserve object references. - - true if collection items preserve object references; otherwise, false. - - - - Gets or sets the collection item reference loop handling. - - The reference loop handling. - - - - Gets or sets the collection item type name handling. - - The type name handling. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Handles serialization callback events. - - The object that raised the callback event. - The streaming context. - - - - Handles serialization error callback events. - - The object that raised the callback event. - The streaming context. - The error context. - - - - Sets extension data for an object during deserialization. - - The object to set extension data on. - The extension data key. - The extension data value. - - - - Gets extension data for an object during serialization. - - The object to set extension data on. - - - - Contract details for a used by the . - - - - - Gets the underlying type for the contract. - - The underlying type for the contract. - - - - Gets or sets the type created during deserialization. - - The type created during deserialization. - - - - Gets or sets whether this type contract is serialized as a reference. - - Whether this type contract is serialized as a reference. - - - - Gets or sets the default for this contract. - - The converter. - - - - Gets or sets all methods called immediately after deserialization of the object. - - The methods called immediately after deserialization of the object. - - - - Gets or sets all methods called during deserialization of the object. - - The methods called during deserialization of the object. - - - - Gets or sets all methods called after serialization of the object graph. - - The methods called after serialization of the object graph. - - - - Gets or sets all methods called before serialization of the object. - - The methods called before serialization of the object. - - - - Gets or sets all method called when an error is thrown during the serialization of the object. - - The methods called when an error is thrown during the serialization of the object. - - - - Gets or sets the method called immediately after deserialization of the object. - - The method called immediately after deserialization of the object. - - - - Gets or sets the method called during deserialization of the object. - - The method called during deserialization of the object. - - - - Gets or sets the method called after serialization of the object graph. - - The method called after serialization of the object graph. - - - - Gets or sets the method called before serialization of the object. - - The method called before serialization of the object. - - - - Gets or sets the method called when an error is thrown during the serialization of the object. - - The method called when an error is thrown during the serialization of the object. - - - - Gets or sets the default creator method used to create the object. - - The default creator method used to create the object. - - - - Gets or sets a value indicating whether the default creator is non public. - - true if the default object creator is non-public; otherwise, false. - - - - Contract details for a used by the . - - - - - Gets or sets the property name resolver. - - The property name resolver. - - - - Gets or sets the dictionary key resolver. - - The dictionary key resolver. - - - - Gets the of the dictionary keys. - - The of the dictionary keys. - - - - Gets the of the dictionary values. - - The of the dictionary values. - - - - Gets or sets the function used to create the object. When set this function will override . - - The function used to create the object. - - - - Gets a value indicating whether the creator has a parameter with the dictionary values. - - true if the creator has a parameter with the dictionary values; otherwise, false. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Gets or sets the object member serialization. - - The member object serialization. - - - - Gets or sets a value that indicates whether the object's properties are required. - - - A value indicating whether the object's properties are required. - - - - - Gets the object's properties. - - The object's properties. - - - - Gets the constructor parameters required for any non-default constructor - - - - - Gets a collection of instances that define the parameters used with . - - - - - Gets or sets the override constructor used to create the object. - This is set when a constructor is marked up using the - JsonConstructor attribute. - - The override constructor. - - - - Gets or sets the parametrized constructor used to create the object. - - The parametrized constructor. - - - - Gets or sets the function used to create the object. When set this function will override . - This function is called with a collection of arguments which are defined by the collection. - - The function used to create the object. - - - - Gets or sets the extension data setter. - - - - - Gets or sets the extension data getter. - - - - - Gets or sets the extension data value type. - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Maps a JSON property to a .NET member or constructor parameter. - - - - - Gets or sets the name of the property. - - The name of the property. - - - - Gets or sets the type that declared this property. - - The type that declared this property. - - - - Gets or sets the order of serialization of a member. - - The numeric order of serialization. - - - - Gets or sets the name of the underlying member or parameter. - - The name of the underlying member or parameter. - - - - Gets the that will get and set the during serialization. - - The that will get and set the during serialization. - - - - Gets or sets the for this property. - - The for this property. - - - - Gets or sets the type of the property. - - The type of the property. - - - - Gets or sets the for the property. - If set this converter takes presidence over the contract converter for the property type. - - The converter. - - - - Gets or sets the member converter. - - The member converter. - - - - Gets or sets a value indicating whether this is ignored. - - true if ignored; otherwise, false. - - - - Gets or sets a value indicating whether this is readable. - - true if readable; otherwise, false. - - - - Gets or sets a value indicating whether this is writable. - - true if writable; otherwise, false. - - - - Gets or sets a value indicating whether this has a member attribute. - - true if has a member attribute; otherwise, false. - - - - Gets the default value. - - The default value. - - - - Gets or sets a value indicating whether this is required. - - A value indicating whether this is required. - - - - Gets or sets a value indicating whether this property preserves object references. - - - true if this instance is reference; otherwise, false. - - - - - Gets or sets the property null value handling. - - The null value handling. - - - - Gets or sets the property default value handling. - - The default value handling. - - - - Gets or sets the property reference loop handling. - - The reference loop handling. - - - - Gets or sets the property object creation handling. - - The object creation handling. - - - - Gets or sets or sets the type name handling. - - The type name handling. - - - - Gets or sets a predicate used to determine whether the property should be serialize. - - A predicate used to determine whether the property should be serialize. - - - - Gets or sets a predicate used to determine whether the property should be deserialized. - - A predicate used to determine whether the property should be deserialized. - - - - Gets or sets a predicate used to determine whether the property should be serialized. - - A predicate used to determine whether the property should be serialized. - - - - Gets or sets an action used to set whether the property has been deserialized. - - An action used to set whether the property has been deserialized. - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Gets or sets the converter used when serializing the property's collection items. - - The collection's items converter. - - - - Gets or sets whether this property's collection items are serialized as a reference. - - Whether this property's collection items are serialized as a reference. - - - - Gets or sets the the type name handling used when serializing the property's collection items. - - The collection's items type name handling. - - - - Gets or sets the the reference loop handling used when serializing the property's collection items. - - The collection's items reference loop handling. - - - - A collection of objects. - - - - - Initializes a new instance of the class. - - The type. - - - - When implemented in a derived class, extracts the key from the specified element. - - The element from which to extract the key. - The key for the specified element. - - - - Adds a object. - - The property to add to the collection. - - - - Gets the closest matching object. - First attempts to get an exact case match of propertyName and then - a case insensitive match. - - Name of the property. - A matching property if found. - - - - Gets a property by property name. - - The name of the property to get. - Type property name string comparison. - A matching property if found. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Lookup and create an instance of the JsonConverter type described by the argument. - - The JsonConverter type to create. - Optional arguments to pass to an initializing constructor of the JsonConverter. - If null, the default constructor is used. - - - - Create a factory function that can be used to create instances of a JsonConverter described by the - argument type. The returned function can then be used to either invoke the converter's default ctor, or any - parameterized constructors by way of an object array. - - - - - Represents a trace writer that writes to memory. When the trace message limit is - reached then old trace messages will be removed as new messages are added. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of Info will exclude Verbose messages and include Info, - Warning and Error messages. - - - The that will be used to filter the trace messages passed to the writer. - - - - - Initializes a new instance of the class. - - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Returns an enumeration of the most recent trace messages. - - An enumeration of the most recent trace messages. - - - - Returns a of the most recent trace messages. - - - A of the most recent trace messages. - - - - - Represents a method that constructs an object. - - The object type to create. - - - - When applied to a method, specifies that the method is called when an error occurs serializing an object. - - - - - Provides methods to get attributes from a , , or . - - - - - Initializes a new instance of the class. - - The instance to get attributes for. This parameter should be a , , or . - - - - Returns a collection of all of the attributes, or an empty collection if there are no attributes. - - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. - - The type of the attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Get and set values for a using reflection. - - - - - Initializes a new instance of the class. - - The member info. - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Specifies how strings are escaped when writing JSON text. - - - - - Only control characters (e.g. newline) are escaped. - - - - - All non-ASCII and control characters (e.g. newline) are escaped. - - - - - HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. - - - - - Specifies what messages to output for the class. - - - - - Output no tracing and debugging messages. - - - - - Output error-handling messages. - - - - - Output warnings and error-handling messages. - - - - - Output informational messages, warnings, and error-handling messages. - - - - - Output all debugging and tracing messages. - - - - - Specifies type name handling options for the . - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - - - - Do not include the .NET type name when serializing types. - - - - - Include the .NET type name when serializing into a JSON object structure. - - - - - Include the .NET type name when serializing into a JSON array structure. - - - - - Always include the .NET type name when serializing. - - - - - Include the .NET type name when the type of the object being serialized is not the same as its declared type. - - - - - Determines whether the collection is null or empty. - - The collection. - - true if the collection is null or empty; otherwise, false. - - - - - Adds the elements of the specified collection to the specified generic IList. - - The list to add to. - The collection of elements to add. - - - - Returns the index of the first occurrence in a sequence by using a specified IEqualityComparer{TSource}. - - The type of the elements of source. - A sequence in which to locate a value. - The object to locate in the sequence - An equality comparer to compare values. - The zero-based index of the first occurrence of value within the entire sequence, if found; otherwise, –1. - - - - Converts the value to the specified type. If the value is unable to be converted, the - value is checked whether it assignable to the specified type. - - The value to convert. - The culture to use when converting. - The type to convert or cast the value to. - - The converted type. If conversion was unsuccessful, the initial value - is returned if assignable to the target type. - - - - - Gets a dictionary of the names and values of an Enum type. - - - - - - Gets a dictionary of the names and values of an Enum type. - - The enum type to get names and values for. - - - - - Gets the type of the typed collection's items. - - The type. - The type of the typed collection's items. - - - - Gets the member's underlying type. - - The member. - The underlying type of the member. - - - - Determines whether the member is an indexed property. - - The member. - - true if the member is an indexed property; otherwise, false. - - - - - Determines whether the property is an indexed property. - - The property. - - true if the property is an indexed property; otherwise, false. - - - - - Gets the member's value on the object. - - The member. - The target object. - The member's value on the object. - - - - Sets the member's value on the target object. - - The member. - The target. - The value. - - - - Determines whether the specified MemberInfo can be read. - - The MemberInfo to determine whether can be read. - /// if set to true then allow the member to be gotten non-publicly. - - true if the specified MemberInfo can be read; otherwise, false. - - - - - Determines whether the specified MemberInfo can be set. - - The MemberInfo to determine whether can be set. - if set to true then allow the member to be set non-publicly. - if set to true then allow the member to be set if read-only. - - true if the specified MemberInfo can be set; otherwise, false. - - - - - Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer. - - - - - Determines whether the string is all white space. Empty string will return false. - - The string to test whether it is all white space. - - true if the string is all white space; otherwise, false. - - - - - Nulls an empty string. - - The string. - Null if the string was null, otherwise the string unchanged. - - - - Specifies the state of the . - - - - - An exception has been thrown, which has left the in an invalid state. - You may call the method to put the in the Closed state. - Any other method calls results in an being thrown. - - - - - The method has been called. - - - - - An object is being written. - - - - - A array is being written. - - - - - A constructor is being written. - - - - - A property is being written. - - - - - A write method has not been called. - - - - - Indicates the method that will be used during deserialization for locating and loading assemblies. - - - - - In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method is used to load the assembly. - - - - - In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the Assembly class is used to load the assembly. - - - - diff --git a/source/packages/Newtonsoft.Json.8.0.1/lib/portable-net45+wp80+win8+wpa81+dnxcore50/Newtonsoft.Json.dll b/source/packages/Newtonsoft.Json.8.0.1/lib/portable-net45+wp80+win8+wpa81+dnxcore50/Newtonsoft.Json.dll deleted file mode 100644 index 5c81d0faeba959333d507acddbe781cdb3e3dadf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 461824 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 z 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
    E!zi2S&jd4vrXmvkXEPrnBrI)ar9{~84)d?s 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 F{|7#b$jtx% diff --git a/source/packages/Newtonsoft.Json.8.0.1/lib/portable-net45+wp80+win8+wpa81+dnxcore50/Newtonsoft.Json.xml b/source/packages/Newtonsoft.Json.8.0.1/lib/portable-net45+wp80+win8+wpa81+dnxcore50/Newtonsoft.Json.xml deleted file mode 100644 index 7fc7a30..0000000 --- a/source/packages/Newtonsoft.Json.8.0.1/lib/portable-net45+wp80+win8+wpa81+dnxcore50/Newtonsoft.Json.xml +++ /dev/null @@ -1,8592 +0,0 @@ - - - - Newtonsoft.Json - - - - - Represents a BSON Oid (object id). - - - - - Gets or sets the value of the Oid. - - The value of the Oid. - - - - Initializes a new instance of the class. - - The Oid value. - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Gets or sets a value indicating whether binary data reading should compatible with incorrect Json.NET 3.5 written binary. - - - true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. - - - - - Gets or sets a value indicating whether the root object will be read as a JSON array. - - - true if the root object will be read as a JSON array; otherwise, false. - - - - - Gets or sets the used when reading values from BSON. - - The used when reading values from BSON. - - - - Initializes a new instance of the class. - - The stream. - - - - Initializes a new instance of the class. - - The reader. - - - - Initializes a new instance of the class. - - The stream. - if set to true the root object will be read as a JSON array. - The used when reading values from BSON. - - - - Initializes a new instance of the class. - - The reader. - if set to true the root object will be read as a JSON array. - The used when reading values from BSON. - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Changes the to Closed. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets the used when writing values to BSON. - When set to no conversion will occur. - - The used when writing values to BSON. - - - - Initializes a new instance of the class. - - The stream. - - - - Initializes a new instance of the class. - - The writer. - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Writes the end. - - The token. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes raw JSON where a value is expected and updates the writer's state. - - The raw JSON to write. - - - - Writes the beginning of a JSON array. - - - - - Writes the beginning of a JSON object. - - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Closes this stream and the underlying stream. - - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value that represents a BSON object id. - - The Object ID value to write. - - - - Writes a BSON regex. - - The regex pattern. - The regex options. - - - - Specifies how constructors are used when initializing objects during deserialization by the . - - - - - First attempt to use the public default constructor, then fall back to single paramatized constructor, then the non-public default constructor. - - - - - Json.NET will use a non-public default constructor before falling back to a paramatized constructor. - - - - - Converts a to and from JSON and BSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Create a custom object - - The object type to convert. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Creates an object which will then be populated by the serializer. - - Type of the object. - The created object. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Gets a value indicating whether this can write JSON. - - - true if this can write JSON; otherwise, false. - - - - - Provides a base class for converting a to and from JSON. - - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a F# discriminated union type to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts an ExpandoObject to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Gets a value indicating whether this can write JSON. - - - true if this can write JSON; otherwise, false. - - - - - Converts a to and from the ISO 8601 date format (e.g. 2008-04-12T12:53Z). - - - - - Gets or sets the date time styles used when converting a date to and from JSON. - - The date time styles used when converting a date to and from JSON. - - - - Gets or sets the date time format used when converting a date to and from JSON. - - The date time format used when converting a date to and from JSON. - - - - Gets or sets the culture used when converting a date to and from JSON. - - The culture used when converting a date to and from JSON. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Converts a to and from a JavaScript date constructor (e.g. new Date(52231943)). - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing property value of the JSON that is being converted. - The calling serializer. - The object value. - - - - Converts a to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from JSON and BSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts an to and from its name string value. - - - - - Gets or sets a value indicating whether the written enum text should be camel case. - - true if the written enum text will be camel case; otherwise, false. - - - - Gets or sets a value indicating whether integer values are allowed. - - true if integers are allowed; otherwise, false. - - - - Initializes a new instance of the class. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from a string (e.g. "1.2.3.4"). - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing property value of the JSON that is being converted. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts XML to and from JSON. - - - - - Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produces multiple root elements. - - The name of the deserialize root element. - - - - Gets or sets a flag to indicate whether to write the Json.NET array attribute. - This attribute helps preserve arrays when converting the written XML back to JSON. - - true if the array attibute is written to the XML; otherwise, false. - - - - Gets or sets a value indicating whether to write the root JSON object. - - true if the JSON root object is omitted; otherwise, false. - - - - Writes the JSON representation of the object. - - The to write to. - The calling serializer. - The value. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Checks if the attributeName is a namespace attribute. - - Attribute name to test. - The attribute name prefix if it has one, otherwise an empty string. - True if attribute name is for a namespace attribute, otherwise false. - - - - Determines whether this instance can convert the specified value type. - - Type of the value. - - true if this instance can convert the specified value type; otherwise, false. - - - - - Specifies how dates are formatted when writing JSON text. - - - - - Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". - - - - - Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". - - - - - Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. - - - - - Date formatted strings are not parsed to a date type and are read as strings. - - - - - Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . - - - - - Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . - - - - - Specifies how to treat the time value when converting between string and . - - - - - Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. - - - - - Treat as a UTC. If the object represents a local time, it is converted to a UTC. - - - - - Treat as a local time if a is being converted to a string. - If a string is being converted to , convert to a local time if a time zone is specified. - - - - - Time zone information should be preserved when converting. - - - - - Specifies default value handling options for the . - - - - - - - - - Include members where the member value is the same as the member's default value when serializing objects. - Included members are written to JSON. Has no effect when deserializing. - - - - - Ignore members where the member value is the same as the member's default value when serializing objects - so that is is not written to JSON. - This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, - decimals and floating point numbers; and false for booleans). The default value ignored can be changed by - placing the on the property. - - - - - Members with a default value but no JSON will be set to their default value when deserializing. - - - - - Ignore members where the member value is the same as the member's default value when serializing objects - and sets members to their default value when deserializing. - - - - - Specifies float format handling options when writing special floating point numbers, e.g. , - and with . - - - - - Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". - - - - - Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. - Note that this will produce non-valid JSON. - - - - - Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a property. - - - - - Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Floating point numbers are parsed to . - - - - - Floating point numbers are parsed to . - - - - - Specifies formatting options for the . - - - - - No special formatting is applied. This is the default. - - - - - Causes child objects to be indented according to the and settings. - - - - - Provides an interface for using pooled arrays. - - The array type content. - - - - Rent a array from the pool. This array must be returned when it is no longer needed. - - The minimum required length of the array. The returned array may be longer. - The rented array from the pool. This array must be returned when it is no longer needed. - - - - Return an array to the pool. - - The array that is being returned. - - - - Provides an interface to enable a class to return line and position information. - - - - - Gets a value indicating whether the class can return line information. - - - true if LineNumber and LinePosition can be provided; otherwise, false. - - - - - Gets the current line number. - - The current line number or 0 if no line information is available (for example, HasLineInfo returns false). - - - - Gets the current line position. - - The current line position or 0 if no line information is available (for example, HasLineInfo returns false). - - - - Instructs the how to serialize the collection. - - - - - Gets or sets a value indicating whether null items are allowed in the collection. - - true if null items are allowed in the collection; otherwise, false. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with a flag indicating whether the array can contain null items - - A flag indicating whether the array can contain null items. - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Instructs the to use the specified constructor when deserializing that object. - - - - - Instructs the how to serialize the object. - - - - - Gets or sets the id. - - The id. - - - - Gets or sets the title. - - The title. - - - - Gets or sets the description. - - The description. - - - - Gets the collection's items converter. - - The collection's items converter. - - - - The parameter list to use when constructing the JsonConverter described by ItemConverterType. - If null, the default constructor is used. - When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number, - order, and type of these parameters. - - - [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] - - - - - Gets or sets a value that indicates whether to preserve object references. - - - true to keep object reference; otherwise, false. The default is false. - - - - - Gets or sets a value that indicates whether to preserve collection's items references. - - - true to keep collection's items object references; otherwise, false. The default is false. - - - - - Gets or sets the reference loop handling used when serializing the collection's items. - - The reference loop handling. - - - - Gets or sets the type name handling used when serializing the collection's items. - - The type name handling. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Provides methods for converting between common language runtime types and JSON types. - - - - - - - - Gets or sets a function that creates default . - Default settings are automatically used by serialization methods on , - and and on . - To serialize without using any default settings create a with - . - - - - - Represents JavaScript's boolean value true as a string. This field is read-only. - - - - - Represents JavaScript's boolean value false as a string. This field is read-only. - - - - - Represents JavaScript's null as a string. This field is read-only. - - - - - Represents JavaScript's undefined as a string. This field is read-only. - - - - - Represents JavaScript's positive infinity as a string. This field is read-only. - - - - - Represents JavaScript's negative infinity as a string. This field is read-only. - - - - - Represents JavaScript's NaN as a string. This field is read-only. - - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation using the specified. - - The value to convert. - The format the date will be converted to. - The time zone handling when the date is converted to a string. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation using the specified. - - The value to convert. - The format the date will be converted to. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - The string delimiter character. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - The string delimiter character. - The string escape handling. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Serializes the specified object to a JSON string. - - The object to serialize. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using formatting. - - The object to serialize. - Indicates how the output is formatted. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a collection of . - - The object to serialize. - A collection converters used while serializing. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using formatting and a collection of . - - The object to serialize. - Indicates how the output is formatted. - A collection converters used while serializing. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using . - - The object to serialize. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a type, formatting and . - - The object to serialize. - The used to serialize the object. - If this is null, default serialization settings will be used. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using formatting and . - - The object to serialize. - Indicates how the output is formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a type, formatting and . - - The object to serialize. - Indicates how the output is formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - A JSON string representation of the object. - - - - - Asynchronously serializes the specified object to a JSON string. - Serialization will happen on a new thread. - - The object to serialize. - - A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. - - - - - Asynchronously serializes the specified object to a JSON string using formatting. - Serialization will happen on a new thread. - - The object to serialize. - Indicates how the output is formatted. - - A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. - - - - - Asynchronously serializes the specified object to a JSON string using formatting and a collection of . - Serialization will happen on a new thread. - - The object to serialize. - Indicates how the output is formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. - - - - - Deserializes the JSON to a .NET object. - - The JSON to deserialize. - The deserialized object from the JSON string. - - - - Deserializes the JSON to a .NET object using . - - The JSON to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type. - - The JSON to deserialize. - The of object being deserialized. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type. - - The type of the object to deserialize to. - The JSON to deserialize. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the given anonymous type. - - - The anonymous type to deserialize to. This can't be specified - traditionally and must be infered from the anonymous type passed - as a parameter. - - The JSON to deserialize. - The anonymous type object. - The deserialized anonymous type from the JSON string. - - - - Deserializes the JSON to the given anonymous type using . - - - The anonymous type to deserialize to. This can't be specified - traditionally and must be infered from the anonymous type passed - as a parameter. - - The JSON to deserialize. - The anonymous type object. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized anonymous type from the JSON string. - - - - Deserializes the JSON to the specified .NET type using a collection of . - - The type of the object to deserialize to. - The JSON to deserialize. - Converters to use while deserializing. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using . - - The type of the object to deserialize to. - The object to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using a collection of . - - The JSON to deserialize. - The type of the object to deserialize. - Converters to use while deserializing. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using . - - The JSON to deserialize. - The type of the object to deserialize to. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Asynchronously deserializes the JSON to the specified .NET type. - Deserialization will happen on a new thread. - - The type of the object to deserialize to. - The JSON to deserialize. - - A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. - - - - - Asynchronously deserializes the JSON to the specified .NET type using . - Deserialization will happen on a new thread. - - The type of the object to deserialize to. - The JSON to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - - A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. - - - - - Asynchronously deserializes the JSON to the specified .NET type. - Deserialization will happen on a new thread. - - The JSON to deserialize. - - A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. - - - - - Asynchronously deserializes the JSON to the specified .NET type using . - Deserialization will happen on a new thread. - - The JSON to deserialize. - The type of the object to deserialize to. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - - A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. - - - - - Populates the object with values from the JSON string. - - The JSON to populate values from. - The target object to populate values onto. - - - - Populates the object with values from the JSON string using . - - The JSON to populate values from. - The target object to populate values onto. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - - - - Asynchronously populates the object with values from the JSON string using . - - The JSON to populate values from. - The target object to populate values onto. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - - A task that represents the asynchronous populate operation. - - - - - Serializes the to a JSON string. - - The node to convert to JSON. - A JSON string of the XNode. - - - - Serializes the to a JSON string using formatting. - - The node to convert to JSON. - Indicates how the output is formatted. - A JSON string of the XNode. - - - - Serializes the to a JSON string using formatting and omits the root object if is true. - - The node to serialize. - Indicates how the output is formatted. - Omits writing the root object. - A JSON string of the XNode. - - - - Deserializes the from a JSON string. - - The JSON string. - The deserialized XNode - - - - Deserializes the from a JSON string nested in a root elment specified by . - - The JSON string. - The name of the root element to append when deserializing. - The deserialized XNode - - - - Deserializes the from a JSON string nested in a root elment specified by - and writes a .NET array attribute for collections. - - The JSON string. - The name of the root element to append when deserializing. - - A flag to indicate whether to write the Json.NET array attribute. - This attribute helps preserve arrays when converting the written XML back to JSON. - - The deserialized XNode - - - - Converts an object to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - - Gets the of the JSON produced by the JsonConverter. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The of the JSON produced by the JsonConverter. - - - - Gets a value indicating whether this can read JSON. - - true if this can read JSON; otherwise, false. - - - - Gets a value indicating whether this can write JSON. - - true if this can write JSON; otherwise, false. - - - - Instructs the to use the specified when serializing the member or class. - - - - - Gets the of the converter. - - The of the converter. - - - - The parameter list to use when constructing the JsonConverter described by ConverterType. - If null, the default constructor is used. - - - - - Initializes a new instance of the class. - - Type of the converter. - - - - Initializes a new instance of the class. - - Type of the converter. - Parameter list to use when constructing the JsonConverter. Can be null. - - - - Represents a collection of . - - - - - Instructs the how to serialize the collection. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - The exception thrown when an error occurs during JSON serialization or deserialization. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Instructs the to deserialize properties with no matching class member into the specified collection - and write values during serialization. - - - - - Gets or sets a value that indicates whether to write extension data when serializing the object. - - - true to write extension data when serializing the object; otherwise, false. The default is true. - - - - - Gets or sets a value that indicates whether to read extension data when deserializing the object. - - - true to read extension data when deserializing the object; otherwise, false. The default is true. - - - - - Initializes a new instance of the class. - - - - - Instructs the not to serialize the public field or public read/write property value. - - - - - Instructs the how to serialize the object. - - - - - Gets or sets the member serialization. - - The member serialization. - - - - Gets or sets a value that indicates whether the object's properties are required. - - - A value indicating whether the object's properties are required. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified member serialization. - - The member serialization. - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Instructs the to always serialize the member with the specified name. - - - - - Gets or sets the converter used when serializing the property's collection items. - - The collection's items converter. - - - - The parameter list to use when constructing the JsonConverter described by ItemConverterType. - If null, the default constructor is used. - When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number, - order, and type of these parameters. - - - [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] - - - - - Gets or sets the null value handling used when serializing this property. - - The null value handling. - - - - Gets or sets the default value handling used when serializing this property. - - The default value handling. - - - - Gets or sets the reference loop handling used when serializing this property. - - The reference loop handling. - - - - Gets or sets the object creation handling used when deserializing this property. - - The object creation handling. - - - - Gets or sets the type name handling used when serializing this property. - - The type name handling. - - - - Gets or sets whether this property's value is serialized as a reference. - - Whether this property's value is serialized as a reference. - - - - Gets or sets the order of serialization of a member. - - The numeric order of serialization. - - - - Gets or sets a value indicating whether this property is required. - - - A value indicating whether this property is required. - - - - - Gets or sets the name of the property. - - The name of the property. - - - - Gets or sets the the reference loop handling used when serializing the property's collection items. - - The collection's items reference loop handling. - - - - Gets or sets the the type name handling used when serializing the property's collection items. - - The collection's items type name handling. - - - - Gets or sets whether this property's collection items are serialized as a reference. - - Whether this property's collection items are serialized as a reference. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified name. - - Name of the property. - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Specifies the state of the reader. - - - - - The Read method has not been called. - - - - - The end of the file has been reached successfully. - - - - - Reader is at a property. - - - - - Reader is at the start of an object. - - - - - Reader is in an object. - - - - - Reader is at the start of an array. - - - - - Reader is in an array. - - - - - The Close method has been called. - - - - - Reader has just read a value. - - - - - Reader is at the start of a constructor. - - - - - Reader in a constructor. - - - - - An error occurred that prevents the read operation from continuing. - - - - - The end of the file has been reached successfully. - - - - - Gets the current reader state. - - The current reader state. - - - - Gets or sets a value indicating whether the underlying stream or - should be closed when the reader is closed. - - - true to close the underlying stream or when - the reader is closed; otherwise false. The default is true. - - - - - Gets or sets a value indicating whether multiple pieces of JSON content can - be read from a continuous stream without erroring. - - - true to support reading multiple pieces of JSON content; otherwise false. The default is false. - - - - - Gets the quotation mark character used to enclose the value of a string. - - - - - Get or set how time zones are handling when reading JSON. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how custom date formatted strings are parsed when reading JSON. - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Gets the type of the current JSON token. - - - - - Gets the text value of the current JSON token. - - - - - Gets The Common Language Runtime (CLR) type for the current JSON token. - - - - - Gets the depth of the current token in the JSON document. - - The depth of the current token in the JSON document. - - - - Gets the path of the current JSON token. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Initializes a new instance of the class with the specified . - - - - - Reads the next JSON token from the stream. - - true if the next token was read successfully; false if there are no more tokens to read. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a []. - - A [] or a null reference if the next JSON token is null. This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Skips the children of the current token. - - - - - Sets the current token. - - The new token. - - - - Sets the current token and value. - - The new token. - The value. - - - - Sets the state based on current token type. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Releases unmanaged and - optionally - managed resources - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Changes the to Closed. - - - - - The exception thrown when an error occurs while reading JSON text. - - - - - Gets the line number indicating where the error occurred. - - The line number indicating where the error occurred. - - - - Gets the line position indicating where the error occurred. - - The line position indicating where the error occurred. - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Instructs the to always serialize the member, and require the member has a value. - - - - - The exception thrown when an error occurs during JSON serialization or deserialization. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Serializes and deserializes objects into and from the JSON format. - The enables you to control how objects are encoded into JSON. - - - - - Occurs when the errors during serialization and deserialization. - - - - - Gets or sets the used by the serializer when resolving references. - - - - - Gets or sets the used by the serializer when resolving type names. - - - - - Gets or sets the used by the serializer when writing trace messages. - - The trace writer. - - - - Gets or sets the equality comparer used by the serializer when comparing references. - - The equality comparer. - - - - Gets or sets how type name writing and reading is handled by the serializer. - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - - The type name assembly format. - - - - Gets or sets how object references are preserved by the serializer. - - - - - Get or set how reference loops (e.g. a class referencing itself) is handled. - - - - - Get or set how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. - - - - - Get or set how null values are handled during serialization and deserialization. - - - - - Get or set how null default are handled during serialization and deserialization. - - - - - Gets or sets how objects are created during deserialization. - - The object creation handling. - - - - Gets or sets how constructors are used during deserialization. - - The constructor handling. - - - - Gets or sets how metadata properties are used during deserialization. - - The metadata properties handling. - - - - Gets a collection that will be used during serialization. - - Collection that will be used during serialization. - - - - Gets or sets the contract resolver used by the serializer when - serializing .NET objects to JSON and vice versa. - - - - - Gets or sets the used by the serializer when invoking serialization callback methods. - - The context. - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling during serialization and deserialization. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written as JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. - - - true if there will be a check for additional JSON content after deserializing an object; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Creates a new instance. - The will not use default settings - from . - - - A new instance. - The will not use default settings - from . - - - - - Creates a new instance using the specified . - The will not use default settings - from . - - The settings to be applied to the . - - A new instance using the specified . - The will not use default settings - from . - - - - - Creates a new instance. - The will use default settings - from . - - - A new instance. - The will use default settings - from . - - - - - Creates a new instance using the specified . - The will use default settings - from as well as the specified . - - The settings to be applied to the . - - A new instance using the specified . - The will use default settings - from as well as the specified . - - - - - Populates the JSON values onto the target object. - - The that contains the JSON structure to reader values from. - The target object to populate values onto. - - - - Populates the JSON values onto the target object. - - The that contains the JSON structure to reader values from. - The target object to populate values onto. - - - - Deserializes the JSON structure contained by the specified . - - The that contains the JSON structure to deserialize. - The being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The of object being deserialized. - The instance of being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The type of the object to deserialize. - The instance of being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The of object being deserialized. - The instance of being deserialized. - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - - - Specifies the settings on a object. - - - - - Gets or sets how reference loops (e.g. a class referencing itself) is handled. - - Reference loop handling. - - - - Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. - - Missing member handling. - - - - Gets or sets how objects are created during deserialization. - - The object creation handling. - - - - Gets or sets how null values are handled during serialization and deserialization. - - Null value handling. - - - - Gets or sets how null default are handled during serialization and deserialization. - - The default value handling. - - - - Gets or sets a collection that will be used during serialization. - - The converters. - - - - Gets or sets how object references are preserved by the serializer. - - The preserve references handling. - - - - Gets or sets how type name writing and reading is handled by the serializer. - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - The type name handling. - - - - Gets or sets how metadata properties are used during deserialization. - - The metadata properties handling. - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - - The type name assembly format. - - - - Gets or sets how constructors are used during deserialization. - - The constructor handling. - - - - Gets or sets the contract resolver used by the serializer when - serializing .NET objects to JSON and vice versa. - - The contract resolver. - - - - Gets or sets the equality comparer used by the serializer when comparing references. - - The equality comparer. - - - - Gets or sets the used by the serializer when resolving references. - - The reference resolver. - - - - Gets or sets a function that creates the used by the serializer when resolving references. - - A function that creates the used by the serializer when resolving references. - - - - Gets or sets the used by the serializer when writing trace messages. - - The trace writer. - - - - Gets or sets the used by the serializer when resolving type names. - - The binder. - - - - Gets or sets the error handler called during serialization and deserialization. - - The error handler called during serialization and deserialization. - - - - Gets or sets the used by the serializer when invoking serialization callback methods. - - The context. - - - - Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text. - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling during serialization and deserialization. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written as JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Gets a value indicating whether there will be a check for additional content after deserializing an object. - - - true if there will be a check for additional content after deserializing an object; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Represents a reader that provides fast, non-cached, forward-only access to JSON text data. - - - - - Initializes a new instance of the class with the specified . - - The TextReader containing the XML data to read. - - - - Gets or sets the reader's character buffer pool. - - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a []. - - A [] or a null reference if the next JSON token is null. This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Changes the state to closed. - - - - - Gets a value indicating whether the class can return line information. - - - true if LineNumber and LinePosition can be provided; otherwise, false. - - - - - Gets the current line number. - - - The current line number or 0 if no line information is available (for example, HasLineInfo returns false). - - - - - Gets the current line position. - - - The current line position or 0 if no line information is available (for example, HasLineInfo returns false). - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets the writer's character array pool. - - - - - Gets or sets how many IndentChars to write for each level in the hierarchy when is set to Formatting.Indented. - - - - - Gets or sets which character to use to quote attribute values. - - - - - Gets or sets which character to use for indenting when is set to Formatting.Indented. - - - - - Gets or sets a value indicating whether object names will be surrounded with quotes. - - - - - Creates an instance of the JsonWriter class using the specified . - - The TextWriter to write to. - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the specified end token. - - The end token to write. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - A flag to indicate whether the text should be escaped when it is written as a JSON property name. - - - - Writes indent characters. - - - - - Writes the JSON value delimiter. - - - - - Writes an indent space. - - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes out the given white space. - - The string of white space characters. - - - - Specifies the type of JSON token. - - - - - This is returned by the if a method has not been called. - - - - - An object start token. - - - - - An array start token. - - - - - A constructor start token. - - - - - An object property name. - - - - - A comment. - - - - - Raw JSON. - - - - - An integer. - - - - - A float. - - - - - A string. - - - - - A boolean. - - - - - A null token. - - - - - An undefined token. - - - - - An object end token. - - - - - An array end token. - - - - - A constructor end token. - - - - - A Date. - - - - - Byte data. - - - - - - Represents a reader that provides validation. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Sets an event handler for receiving schema validation errors. - - - - - Gets the text value of the current JSON token. - - - - - - Gets the depth of the current token in the JSON document. - - The depth of the current token in the JSON document. - - - - Gets the path of the current JSON token. - - - - - Gets the quotation mark character used to enclose the value of a string. - - - - - - Gets the type of the current JSON token. - - - - - - Gets the Common Language Runtime (CLR) type for the current JSON token. - - - - - - Initializes a new instance of the class that - validates the content returned from the given . - - The to read from while validating. - - - - Gets or sets the schema. - - The schema. - - - - Gets the used to construct this . - - The specified in the constructor. - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream as a []. - - - A [] or a null reference if the next JSON token is null. - - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets a value indicating whether the underlying stream or - should be closed when the writer is closed. - - - true to close the underlying stream or when - the writer is closed; otherwise false. The default is true. - - - - - Gets the top. - - The top. - - - - Gets the state of the writer. - - - - - Gets the path of the writer. - - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling when writing JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written to JSON text. - - - - - Get or set how and values are formatting when writing JSON text. - - - - - Gets or sets the culture used when writing JSON. Defaults to . - - - - - Creates an instance of the JsonWriter class. - - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the end of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the end of an array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the end constructor. - - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - A flag to indicate whether the text should be escaped when it is written as a JSON property name. - - - - Writes the end of the current JSON object or array. - - - - - Writes the current token and its children. - - The to read the token from. - - - - Writes the current token. - - The to read the token from. - A flag indicating whether the current token's children should be written. - - - - Writes the token and its value. - - The to write. - - The value to write. - A value is only required for tokens that have an associated value, e.g. the property name for . - A null value can be passed to the method for token's that don't have a value, e.g. . - - - - Writes the token. - - The to write. - - - - Writes the specified end token. - - The end token to write. - - - - Writes indent characters. - - - - - Writes the JSON value delimiter. - - - - - Writes an indent space. - - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON without changing the writer's state. - - The raw JSON to write. - - - - Writes raw JSON where a value is expected and updates the writer's state. - - The raw JSON to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes out the given white space. - - The string of white space characters. - - - - Releases unmanaged and - optionally - managed resources - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Sets the state of the JsonWriter, - - The JsonToken being written. - The value being written. - - - - The exception thrown when an error occurs while reading JSON text. - - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Specifies how JSON comments are handled when loading JSON. - - - - - Ignore comments. - - - - - Load comments as a with type . - - - - - Specifies how line information is handled when loading JSON. - - - - - Ignore line information. - - - - - Load line information. - - - - - Contains the LINQ to JSON extension methods. - - - - - Returns a collection of tokens that contains the ancestors of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains the ancestors of every token in the source collection. - - - - Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains every token in the source collection, the ancestors of every token in the source collection. - - - - Returns a collection of tokens that contains the descendants of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains the descendants of every token in the source collection. - - - - Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains every token in the source collection, and the descendants of every token in the source collection. - - - - Returns a collection of child properties of every object in the source collection. - - An of that contains the source collection. - An of that contains the properties of every object in the source collection. - - - - Returns a collection of child values of every object in the source collection with the given key. - - An of that contains the source collection. - The token key. - An of that contains the values of every token in the source collection with the given key. - - - - Returns a collection of child values of every object in the source collection. - - An of that contains the source collection. - An of that contains the values of every token in the source collection. - - - - Returns a collection of converted child values of every object in the source collection with the given key. - - The type to convert the values to. - An of that contains the source collection. - The token key. - An that contains the converted values of every token in the source collection with the given key. - - - - Returns a collection of converted child values of every object in the source collection. - - The type to convert the values to. - An of that contains the source collection. - An that contains the converted values of every token in the source collection. - - - - Converts the value. - - The type to convert the value to. - A cast as a of . - A converted value. - - - - Converts the value. - - The source collection type. - The type to convert the value to. - A cast as a of . - A converted value. - - - - Returns a collection of child tokens of every array in the source collection. - - The source collection type. - An of that contains the source collection. - An of that contains the values of every token in the source collection. - - - - Returns a collection of converted child tokens of every array in the source collection. - - An of that contains the source collection. - The type to convert the values to. - The source collection type. - An that contains the converted values of every token in the source collection. - - - - Returns the input typed as . - - An of that contains the source collection. - The input typed as . - - - - Returns the input typed as . - - The source collection type. - An of that contains the source collection. - The input typed as . - - - - Represents a collection of objects. - - The type of token - - - - Gets the with the specified key. - - - - - - Represents a JSON array. - - - - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified content. - - The contents of the array. - - - - Initializes a new instance of the class with the specified content. - - The contents of the array. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - - - - Creates a from an object. - - The object that will be used to create . - A with the values of the specified object - - - - Creates a from an object. - - The object that will be used to create . - The that will be used to read the object. - A with the values of the specified object - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets or sets the at the specified index. - - - - - - Determines the index of a specific item in the . - - The object to locate in the . - - The index of if found in the list; otherwise, -1. - - - - - Inserts an item to the at the specified index. - - The zero-based index at which should be inserted. - The object to insert into the . - - is not a valid index in the . - The is read-only. - - - - Removes the item at the specified index. - - The zero-based index of the item to remove. - - is not a valid index in the . - The is read-only. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Adds an item to the . - - The object to add to the . - The is read-only. - - - - Removes all items from the . - - The is read-only. - - - - Determines whether the contains a specific value. - - The object to locate in the . - - true if is found in the ; otherwise, false. - - - - - Copies to. - - The array. - Index of the array. - - - - Gets a value indicating whether the is read-only. - - true if the is read-only; otherwise, false. - - - - Removes the first occurrence of a specific object from the . - - The object to remove from the . - - true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . - - The is read-only. - - - - Represents a JSON constructor. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets or sets the name of this constructor. - - The constructor name. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified name and content. - - The constructor name. - The contents of the constructor. - - - - Initializes a new instance of the class with the specified name and content. - - The constructor name. - The contents of the constructor. - - - - Initializes a new instance of the class with the specified name. - - The constructor name. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified key. - - The with the specified key. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Represents a token that can contain other tokens. - - - - - Occurs when the items list of the collection has changed, or the collection is reset. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Raises the event. - - The instance containing the event data. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Get the first child token of this token. - - - A containing the first child token of the . - - - - - Get the last child token of this token. - - - A containing the last child token of the . - - - - - Returns a collection of the child tokens of this token, in document order. - - - An of containing the child tokens of this , in document order. - - - - - Returns a collection of the child values of this token, in document order. - - The type to convert the values to. - - A containing the child values of this , in document order. - - - - - Returns a collection of the descendant tokens for this token in document order. - - An containing the descendant tokens of the . - - - - Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. - - An containing this token, and all the descendant tokens of the . - - - - Adds the specified content as children of this . - - The content to be added. - - - - Adds the specified content as the first children of this . - - The content to be added. - - - - Creates an that can be used to add tokens to the . - - An that is ready to have content written to it. - - - - Replaces the children nodes of this token with the specified content. - - The content. - - - - Removes the child nodes from this token. - - - - - Merge the specified content into this . - - The content to be merged. - - - - Merge the specified content into this using . - - The content to be merged. - The used to merge the content. - - - - Gets the count of child JSON tokens. - - The count of child JSON tokens - - - - Represents a collection of objects. - - The type of token - - - - An empty collection of objects. - - - - - Initializes a new instance of the struct. - - The enumerable. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Returns an enumerator that iterates through a collection. - - - An object that can be used to iterate through the collection. - - - - - Gets the with the specified key. - - - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Returns a hash code for this instance. - - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - - Represents a JSON object. - - - - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Occurs when a property value changes. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified content. - - The contents of the object. - - - - Initializes a new instance of the class with the specified content. - - The contents of the object. - - - - Gets the node type for this . - - The type. - - - - Gets an of this object's properties. - - An of this object's properties. - - - - Gets a the specified name. - - The property name. - A with the specified name or null. - - - - Gets an of this object's property values. - - An of this object's property values. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets or sets the with the specified property name. - - - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - - - - Creates a from an object. - - The object that will be used to create . - A with the values of the specified object - - - - Creates a from an object. - - The object that will be used to create . - The that will be used to read the object. - A with the values of the specified object - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified property name. - - Name of the property. - The with the specified property name. - - - - Gets the with the specified property name. - The exact property name will be searched for first and if no matching property is found then - the will be used to match a property. - - Name of the property. - One of the enumeration values that specifies how the strings will be compared. - The with the specified property name. - - - - Tries to get the with the specified property name. - The exact property name will be searched for first and if no matching property is found then - the will be used to match a property. - - Name of the property. - The value. - One of the enumeration values that specifies how the strings will be compared. - true if a value was successfully retrieved; otherwise, false. - - - - Adds the specified property name. - - Name of the property. - The value. - - - - Removes the property with the specified name. - - Name of the property. - true if item was successfully removed; otherwise, false. - - - - Tries the get value. - - Name of the property. - The value. - true if a value was successfully retrieved; otherwise, false. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Raises the event with the provided arguments. - - Name of the property. - - - - Returns the responsible for binding operations performed on this object. - - The expression tree representation of the runtime value. - - The to bind this object. - - - - - Represents a JSON property. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets the property name. - - The property name. - - - - Gets or sets the property value. - - The property value. - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - The property name. - The property content. - - - - Initializes a new instance of the class. - - The property name. - The property content. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Represents a raw JSON string. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class. - - The raw json. - - - - Creates an instance of with the content of the reader's current token. - - The reader. - An instance of with the content of the reader's current token. - - - - Specifies the settings used when loading JSON. - - - - - Gets or sets how JSON comments are handled when loading JSON. - - The JSON comment handling. - - - - Gets or sets how JSON line info is handled when loading JSON. - - The JSON line info handling. - - - - Specifies the settings used when merging JSON. - - - - - Gets or sets the method used when merging JSON arrays. - - The method used when merging JSON arrays. - - - - Represents an abstract JSON token. - - - - - Gets a comparer that can compare two tokens for value equality. - - A that can compare two nodes for value equality. - - - - Gets or sets the parent. - - The parent. - - - - Gets the root of this . - - The root of this . - - - - Gets the node type for this . - - The type. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Compares the values of two tokens, including the values of all descendant tokens. - - The first to compare. - The second to compare. - true if the tokens are equal; otherwise false. - - - - Gets the next sibling token of this node. - - The that contains the next sibling token. - - - - Gets the previous sibling token of this node. - - The that contains the previous sibling token. - - - - Gets the path of the JSON token. - - - - - Adds the specified content immediately after this token. - - A content object that contains simple content or a collection of content objects to be added after this token. - - - - Adds the specified content immediately before this token. - - A content object that contains simple content or a collection of content objects to be added before this token. - - - - Returns a collection of the ancestor tokens of this token. - - A collection of the ancestor tokens of this token. - - - - Returns a collection of tokens that contain this token, and the ancestors of this token. - - A collection of tokens that contain this token, and the ancestors of this token. - - - - Returns a collection of the sibling tokens after this token, in document order. - - A collection of the sibling tokens after this tokens, in document order. - - - - Returns a collection of the sibling tokens before this token, in document order. - - A collection of the sibling tokens before this token, in document order. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets the with the specified key converted to the specified type. - - The type to convert the token to. - The token key. - The converted token value. - - - - Get the first child token of this token. - - A containing the first child token of the . - - - - Get the last child token of this token. - - A containing the last child token of the . - - - - Returns a collection of the child tokens of this token, in document order. - - An of containing the child tokens of this , in document order. - - - - Returns a collection of the child tokens of this token, in document order, filtered by the specified type. - - The type to filter the child tokens on. - A containing the child tokens of this , in document order. - - - - Returns a collection of the child values of this token, in document order. - - The type to convert the values to. - A containing the child values of this , in document order. - - - - Removes this token from its parent. - - - - - Replaces this token with the specified token. - - The value. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Returns the indented JSON for this token. - - - The indented JSON for this token. - - - - - Returns the JSON for this token using the given formatting and converters. - - Indicates how the output is formatted. - A collection of which will be used when writing the token. - The JSON for this token using the given formatting and converters. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to []. - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from [] to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Creates an for this token. - - An that can be used to read this token and its descendants. - - - - Creates a from an object. - - The object that will be used to create . - A with the value of the specified object - - - - Creates a from an object using the specified . - - The object that will be used to create . - The that will be used when reading the object. - A with the value of the specified object - - - - Creates the specified .NET type from the . - - The object type that the token will be deserialized to. - The new object created from the JSON value. - - - - Creates the specified .NET type from the . - - The object type that the token will be deserialized to. - The new object created from the JSON value. - - - - Creates the specified .NET type from the using the specified . - - The object type that the token will be deserialized to. - The that will be used when creating the object. - The new object created from the JSON value. - - - - Creates the specified .NET type from the using the specified . - - The object type that the token will be deserialized to. - The that will be used when creating the object. - The new object created from the JSON value. - - - - Creates a from a . - - An positioned at the token to read into this . - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Creates a from a . - - An positioned at the token to read into this . - The used to load the JSON. - If this is null, default load settings will be used. - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - Creates a from a . - - An positioned at the token to read into this . - The used to load the JSON. - If this is null, default load settings will be used. - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Creates a from a . - - An positioned at the token to read into this . - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Selects a using a JPath expression. Selects the token that matches the object path. - - - A that contains a JPath expression. - - A , or null. - - - - Selects a using a JPath expression. Selects the token that matches the object path. - - - A that contains a JPath expression. - - A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. - A . - - - - Selects a collection of elements using a JPath expression. - - - A that contains a JPath expression. - - An that contains the selected elements. - - - - Selects a collection of elements using a JPath expression. - - - A that contains a JPath expression. - - A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. - An that contains the selected elements. - - - - Returns the responsible for binding operations performed on this object. - - The expression tree representation of the runtime value. - - The to bind this object. - - - - - Returns the responsible for binding operations performed on this object. - - The expression tree representation of the runtime value. - - The to bind this object. - - - - - Creates a new instance of the . All child tokens are recursively cloned. - - A new instance of the . - - - - Adds an object to the annotation list of this . - - The annotation to add. - - - - Get the first annotation object of the specified type from this . - - The type of the annotation to retrieve. - The first annotation object that matches the specified type, or null if no annotation is of the specified type. - - - - Gets the first annotation object of the specified type from this . - - The of the annotation to retrieve. - The first annotation object that matches the specified type, or null if no annotation is of the specified type. - - - - Gets a collection of annotations of the specified type for this . - - The type of the annotations to retrieve. - An that contains the annotations for this . - - - - Gets a collection of annotations of the specified type for this . - - The of the annotations to retrieve. - An of that contains the annotations that match the specified type for this . - - - - Removes the annotations of the specified type from this . - - The type of annotations to remove. - - - - Removes the annotations of the specified type from this . - - The of annotations to remove. - - - - Compares tokens to determine whether they are equal. - - - - - Determines whether the specified objects are equal. - - The first object of type to compare. - The second object of type to compare. - - true if the specified objects are equal; otherwise, false. - - - - - Returns a hash code for the specified object. - - The for which a hash code is to be returned. - A hash code for the specified object. - The type of is a reference type and is null. - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Gets the at the reader's current position. - - - - - Initializes a new instance of the class. - - The token to read from. - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Gets the path of the current JSON token. - - - - - Specifies the type of token. - - - - - No token type has been set. - - - - - A JSON object. - - - - - A JSON array. - - - - - A JSON constructor. - - - - - A JSON object property. - - - - - A comment. - - - - - An integer value. - - - - - A float value. - - - - - A string value. - - - - - A boolean value. - - - - - A null value. - - - - - An undefined value. - - - - - A date value. - - - - - A raw JSON value. - - - - - A collection of bytes value. - - - - - A Guid value. - - - - - A Uri value. - - - - - A TimeSpan value. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets the at the writer's current position. - - - - - Gets the token being writen. - - The token being writen. - - - - Initializes a new instance of the class writing to the given . - - The container being written to. - - - - Initializes a new instance of the class. - - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the end. - - The token. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Represents a value in JSON (string, integer, date, etc). - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Creates a comment with the given value. - - The value. - A comment with the given value. - - - - Creates a string with the given value. - - The value. - A string with the given value. - - - - Creates a null value. - - A null value. - - - - Creates a null value. - - A null value. - - - - Gets the node type for this . - - The type. - - - - Gets or sets the underlying token value. - - The underlying token value. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Indicates whether the current object is equal to another object of the same type. - - - true if the current object is equal to the parameter; otherwise, false. - - An object to compare with this object. - - - - Determines whether the specified is equal to the current . - - The to compare with the current . - - true if the specified is equal to the current ; otherwise, false. - - - The parameter is null. - - - - - Serves as a hash function for a particular type. - - - A hash code for the current . - - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format. - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format provider. - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format. - The format provider. - - A that represents this instance. - - - - - Returns the responsible for binding operations performed on this object. - - The expression tree representation of the runtime value. - - The to bind this object. - - - - - Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. - - An object to compare with this instance. - - A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: - Value - Meaning - Less than zero - This instance is less than . - Zero - This instance is equal to . - Greater than zero - This instance is greater than . - - - is not the same type as this instance. - - - - - Specifies how JSON arrays are merged together. - - - - Concatenate arrays. - - - Union arrays, skipping items that already exist. - - - Replace all array items. - - - Merge array items together, matched by index. - - - - Specifies the member serialization options for the . - - - - - All public members are serialized by default. Members can be excluded using or . - This is the default member serialization mode. - - - - - Only members must be marked with or are serialized. - This member serialization mode can also be set by marking the class with . - - - - - All public and private fields are serialized. Members can be excluded using or . - This member serialization mode can also be set by marking the class with - and setting IgnoreSerializableAttribute on to false. - - - - - Specifies metadata property handling options for the . - - - - - Read metadata properties located at the start of a JSON object. - - - - - Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. - - - - - Do not try to read metadata properties. - - - - - Specifies missing member handling options for the . - - - - - Ignore a missing member and do not attempt to deserialize it. - - - - - Throw a when a missing member is encountered during deserialization. - - - - - Specifies null value handling options for the . - - - - - - - - - Include null values when serializing and deserializing objects. - - - - - Ignore null values when serializing and deserializing objects. - - - - - Specifies how object creation is handled by the . - - - - - Reuse existing objects, create new objects when needed. - - - - - Only reuse existing objects. - - - - - Always create new objects. - - - - - Specifies reference handling options for the . - Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement ISerializable. - - - - - - - - Do not preserve references when serializing types. - - - - - Preserve references when serializing into a JSON object structure. - - - - - Preserve references when serializing into a JSON array structure. - - - - - Preserve references when serializing. - - - - - Specifies reference loop handling options for the . - - - - - Throw a when a loop is encountered. - - - - - Ignore loop references and do not serialize. - - - - - Serialize loop references. - - - - - Indicating whether a property is required. - - - - - The property is not required. The default state. - - - - - The property must be defined in JSON but can be a null value. - - - - - The property must be defined in JSON and cannot be a null value. - - - - - The property is not required but it cannot be a null value. - - - - - - Contains the JSON schema extension methods. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - - Determines whether the is valid. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - - true if the specified is valid; otherwise, false. - - - - - - Determines whether the is valid. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - When this method returns, contains any error messages generated while validating. - - true if the specified is valid; otherwise, false. - - - - - - Validates the specified . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - - - - - Validates the specified . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - The validation event handler. - - - - - An in-memory representation of a JSON Schema. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets or sets the id. - - - - - Gets or sets the title. - - - - - Gets or sets whether the object is required. - - - - - Gets or sets whether the object is read only. - - - - - Gets or sets whether the object is visible to users. - - - - - Gets or sets whether the object is transient. - - - - - Gets or sets the description of the object. - - - - - Gets or sets the types of values allowed by the object. - - The type. - - - - Gets or sets the pattern. - - The pattern. - - - - Gets or sets the minimum length. - - The minimum length. - - - - Gets or sets the maximum length. - - The maximum length. - - - - Gets or sets a number that the value should be divisble by. - - A number that the value should be divisble by. - - - - Gets or sets the minimum. - - The minimum. - - - - Gets or sets the maximum. - - The maximum. - - - - Gets or sets a flag indicating whether the value can not equal the number defined by the "minimum" attribute. - - A flag indicating whether the value can not equal the number defined by the "minimum" attribute. - - - - Gets or sets a flag indicating whether the value can not equal the number defined by the "maximum" attribute. - - A flag indicating whether the value can not equal the number defined by the "maximum" attribute. - - - - Gets or sets the minimum number of items. - - The minimum number of items. - - - - Gets or sets the maximum number of items. - - The maximum number of items. - - - - Gets or sets the of items. - - The of items. - - - - Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . - - - true if items are validated using their array position; otherwise, false. - - - - - Gets or sets the of additional items. - - The of additional items. - - - - Gets or sets a value indicating whether additional items are allowed. - - - true if additional items are allowed; otherwise, false. - - - - - Gets or sets whether the array items must be unique. - - - - - Gets or sets the of properties. - - The of properties. - - - - Gets or sets the of additional properties. - - The of additional properties. - - - - Gets or sets the pattern properties. - - The pattern properties. - - - - Gets or sets a value indicating whether additional properties are allowed. - - - true if additional properties are allowed; otherwise, false. - - - - - Gets or sets the required property if this property is present. - - The required property if this property is present. - - - - Gets or sets the a collection of valid enum values allowed. - - A collection of valid enum values allowed. - - - - Gets or sets disallowed types. - - The disallow types. - - - - Gets or sets the default value. - - The default value. - - - - Gets or sets the collection of that this schema extends. - - The collection of that this schema extends. - - - - Gets or sets the format. - - The format. - - - - Initializes a new instance of the class. - - - - - Reads a from the specified . - - The containing the JSON Schema to read. - The object representing the JSON Schema. - - - - Reads a from the specified . - - The containing the JSON Schema to read. - The to use when resolving schema references. - The object representing the JSON Schema. - - - - Load a from a string that contains schema JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - Parses the specified json. - - The json. - The resolver. - A populated from the string that contains JSON. - - - - Writes this schema to a . - - A into which this method will write. - - - - Writes this schema to a using the specified . - - A into which this method will write. - The resolver used. - - - - Returns a that represents the current . - - - A that represents the current . - - - - - - Returns detailed information about the schema exception. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets the line number indicating where the error occurred. - - The line number indicating where the error occurred. - - - - Gets the line position indicating where the error occurred. - - The line position indicating where the error occurred. - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - - Generates a from a specified . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets or sets how undefined schemas are handled by the serializer. - - - - - Gets or sets the contract resolver. - - The contract resolver. - - - - Generate a from the specified type. - - The type to generate a from. - A generated from the specified type. - - - - Generate a from the specified type. - - The type to generate a from. - The used to resolve schema references. - A generated from the specified type. - - - - Generate a from the specified type. - - The type to generate a from. - Specify whether the generated root will be nullable. - A generated from the specified type. - - - - Generate a from the specified type. - - The type to generate a from. - The used to resolve schema references. - Specify whether the generated root will be nullable. - A generated from the specified type. - - - - - Resolves from an id. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets or sets the loaded schemas. - - The loaded schemas. - - - - Initializes a new instance of the class. - - - - - Gets a for the specified reference. - - The id. - A for the specified reference. - - - - - The value types allowed by the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - No type specified. - - - - - String type. - - - - - Float type. - - - - - Integer type. - - - - - Boolean type. - - - - - Object type. - - - - - Array type. - - - - - Null type. - - - - - Any type. - - - - - - Specifies undefined schema Id handling options for the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Do not infer a schema Id. - - - - - Use the .NET type name as the schema Id. - - - - - Use the assembly qualified .NET type name as the schema Id. - - - - - - Returns detailed information related to the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets the associated with the validation error. - - The JsonSchemaException associated with the validation error. - - - - Gets the path of the JSON location where the validation error occurred. - - The path of the JSON location where the validation error occurred. - - - - Gets the text description corresponding to the validation error. - - The text description. - - - - - Represents the callback method that will handle JSON schema validation events and the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Allows users to control class loading and mandate what class to load. - - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - Specifies the name of the serialized object. - Specifies the name of the serialized object - The type of the object the formatter creates a new instance of. - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - The type of the object the formatter creates a new instance of. - Specifies the name of the serialized object. - Specifies the name of the serialized object. - - - - Resolves member mappings for a type, camel casing property names. - - - - - Initializes a new instance of the class. - - - - - Resolves the name of the property. - - Name of the property. - The property name camel cased. - - - - Get and set values for a using dynamic methods. - - - - - Initializes a new instance of the class. - - The member info. - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Used by to resolves a for a given . - - - - - Gets a value indicating whether members are being get and set using dynamic code generation. - This value is determined by the runtime permissions available. - - - true if using dynamic code generation; otherwise, false. - - - - - Gets or sets a value indicating whether compiler generated members should be serialized. - - - true if serialized compiler generated members; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - If set to true the will use a cached shared with other resolvers of the same type. - Sharing the cache will significantly improve performance with multiple resolver instances because expensive reflection will only - happen once. This setting can cause unexpected behavior if different instances of the resolver are suppose to produce different - results. When set to false it is highly recommended to reuse instances with the . - - - - - Resolves the contract for a given type. - - The type to resolve a contract for. - The contract for a given type. - - - - Gets the serializable members for the type. - - The type to get serializable members for. - The serializable members for the type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates the constructor parameters. - - The constructor to create properties for. - The type's member properties. - Properties for the given . - - - - Creates a for the given . - - The matching member property. - The constructor parameter. - A created for the given . - - - - Resolves the default for the contract. - - Type of the object. - The contract's default . - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Determines which contract type is created for the given type. - - Type of the object. - A for the given type. - - - - Creates properties for the given . - - The type to create properties for. - /// The member serialization mode for the type. - Properties for the given . - - - - Creates the used by the serializer to get and set values from a member. - - The member. - The used by the serializer to get and set values from a member. - - - - Creates a for the given . - - The member's parent . - The member to create a for. - A created for the given . - - - - Resolves the name of the property. - - Name of the property. - Resolved name of the property. - - - - Resolves the key of the dictionary. By default is used to resolve dictionary keys. - - Key of the dictionary. - Resolved key of the dictionary. - - - - Gets the resolved name of the property. - - Name of the property. - Name of the property. - - - - The default serialization binder used when resolving and loading classes from type names. - - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - Specifies the name of the serialized object. - Specifies the name of the serialized object. - - The type of the object the formatter creates a new instance of. - - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - The type of the object the formatter creates a new instance of. - Specifies the name of the serialized object. - Specifies the name of the serialized object. - - - - Provides information surrounding an error. - - - - - Gets the error. - - The error. - - - - Gets the original object that caused the error. - - The original object that caused the error. - - - - Gets the member that caused the error. - - The member that caused the error. - - - - Gets the path of the JSON location where the error occurred. - - The path of the JSON location where the error occurred. - - - - Gets or sets a value indicating whether this is handled. - - true if handled; otherwise, false. - - - - Provides data for the Error event. - - - - - Gets the current object the error event is being raised against. - - The current object the error event is being raised against. - - - - Gets the error context. - - The error context. - - - - Initializes a new instance of the class. - - The current object. - The error context. - - - - Provides methods to get attributes. - - - - - Returns a collection of all of the attributes, or an empty collection if there are no attributes. - - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. - - The type of the attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Used by to resolves a for a given . - - - - - - - - - Resolves the contract for a given type. - - The type to resolve a contract for. - The contract for a given type. - - - - Used to resolve references when serializing and deserializing JSON by the . - - - - - Resolves a reference to its object. - - The serialization context. - The reference to resolve. - The object that - - - - Gets the reference for the sepecified object. - - The serialization context. - The object to get a reference for. - The reference to the object. - - - - Determines whether the specified object is referenced. - - The serialization context. - The object to test for a reference. - - true if the specified object is referenced; otherwise, false. - - - - - Adds a reference to the specified object. - - The serialization context. - The reference. - The object to reference. - - - - Represents a trace writer. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of Info will exclude Verbose messages and include Info, - Warning and Error messages. - - The that will be used to filter the trace messages passed to the writer. - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Provides methods to get and set values. - - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Contract details for a used by the . - - - - - Gets the of the collection items. - - The of the collection items. - - - - Gets a value indicating whether the collection type is a multidimensional array. - - true if the collection type is a multidimensional array; otherwise, false. - - - - Gets or sets the function used to create the object. When set this function will override . - - The function used to create the object. - - - - Gets a value indicating whether the creator has a parameter with the collection values. - - true if the creator has a parameter with the collection values; otherwise, false. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Gets or sets the default collection items . - - The converter. - - - - Gets or sets a value indicating whether the collection items preserve object references. - - true if collection items preserve object references; otherwise, false. - - - - Gets or sets the collection item reference loop handling. - - The reference loop handling. - - - - Gets or sets the collection item type name handling. - - The type name handling. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Handles serialization callback events. - - The object that raised the callback event. - The streaming context. - - - - Handles serialization error callback events. - - The object that raised the callback event. - The streaming context. - The error context. - - - - Sets extension data for an object during deserialization. - - The object to set extension data on. - The extension data key. - The extension data value. - - - - Gets extension data for an object during serialization. - - The object to set extension data on. - - - - Contract details for a used by the . - - - - - Gets the underlying type for the contract. - - The underlying type for the contract. - - - - Gets or sets the type created during deserialization. - - The type created during deserialization. - - - - Gets or sets whether this type contract is serialized as a reference. - - Whether this type contract is serialized as a reference. - - - - Gets or sets the default for this contract. - - The converter. - - - - Gets or sets all methods called immediately after deserialization of the object. - - The methods called immediately after deserialization of the object. - - - - Gets or sets all methods called during deserialization of the object. - - The methods called during deserialization of the object. - - - - Gets or sets all methods called after serialization of the object graph. - - The methods called after serialization of the object graph. - - - - Gets or sets all methods called before serialization of the object. - - The methods called before serialization of the object. - - - - Gets or sets all method called when an error is thrown during the serialization of the object. - - The methods called when an error is thrown during the serialization of the object. - - - - Gets or sets the method called immediately after deserialization of the object. - - The method called immediately after deserialization of the object. - - - - Gets or sets the method called during deserialization of the object. - - The method called during deserialization of the object. - - - - Gets or sets the method called after serialization of the object graph. - - The method called after serialization of the object graph. - - - - Gets or sets the method called before serialization of the object. - - The method called before serialization of the object. - - - - Gets or sets the method called when an error is thrown during the serialization of the object. - - The method called when an error is thrown during the serialization of the object. - - - - Gets or sets the default creator method used to create the object. - - The default creator method used to create the object. - - - - Gets or sets a value indicating whether the default creator is non public. - - true if the default object creator is non-public; otherwise, false. - - - - Contract details for a used by the . - - - - - Gets or sets the property name resolver. - - The property name resolver. - - - - Gets or sets the dictionary key resolver. - - The dictionary key resolver. - - - - Gets the of the dictionary keys. - - The of the dictionary keys. - - - - Gets the of the dictionary values. - - The of the dictionary values. - - - - Gets or sets the function used to create the object. When set this function will override . - - The function used to create the object. - - - - Gets a value indicating whether the creator has a parameter with the dictionary values. - - true if the creator has a parameter with the dictionary values; otherwise, false. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Gets the object's properties. - - The object's properties. - - - - Gets or sets the property name resolver. - - The property name resolver. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Gets or sets the object member serialization. - - The member object serialization. - - - - Gets or sets a value that indicates whether the object's properties are required. - - - A value indicating whether the object's properties are required. - - - - - Gets the object's properties. - - The object's properties. - - - - Gets the constructor parameters required for any non-default constructor - - - - - Gets a collection of instances that define the parameters used with . - - - - - Gets or sets the override constructor used to create the object. - This is set when a constructor is marked up using the - JsonConstructor attribute. - - The override constructor. - - - - Gets or sets the parametrized constructor used to create the object. - - The parametrized constructor. - - - - Gets or sets the function used to create the object. When set this function will override . - This function is called with a collection of arguments which are defined by the collection. - - The function used to create the object. - - - - Gets or sets the extension data setter. - - - - - Gets or sets the extension data getter. - - - - - Gets or sets the extension data value type. - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Maps a JSON property to a .NET member or constructor parameter. - - - - - Gets or sets the name of the property. - - The name of the property. - - - - Gets or sets the type that declared this property. - - The type that declared this property. - - - - Gets or sets the order of serialization of a member. - - The numeric order of serialization. - - - - Gets or sets the name of the underlying member or parameter. - - The name of the underlying member or parameter. - - - - Gets the that will get and set the during serialization. - - The that will get and set the during serialization. - - - - Gets or sets the for this property. - - The for this property. - - - - Gets or sets the type of the property. - - The type of the property. - - - - Gets or sets the for the property. - If set this converter takes presidence over the contract converter for the property type. - - The converter. - - - - Gets or sets the member converter. - - The member converter. - - - - Gets or sets a value indicating whether this is ignored. - - true if ignored; otherwise, false. - - - - Gets or sets a value indicating whether this is readable. - - true if readable; otherwise, false. - - - - Gets or sets a value indicating whether this is writable. - - true if writable; otherwise, false. - - - - Gets or sets a value indicating whether this has a member attribute. - - true if has a member attribute; otherwise, false. - - - - Gets the default value. - - The default value. - - - - Gets or sets a value indicating whether this is required. - - A value indicating whether this is required. - - - - Gets or sets a value indicating whether this property preserves object references. - - - true if this instance is reference; otherwise, false. - - - - - Gets or sets the property null value handling. - - The null value handling. - - - - Gets or sets the property default value handling. - - The default value handling. - - - - Gets or sets the property reference loop handling. - - The reference loop handling. - - - - Gets or sets the property object creation handling. - - The object creation handling. - - - - Gets or sets or sets the type name handling. - - The type name handling. - - - - Gets or sets a predicate used to determine whether the property should be serialize. - - A predicate used to determine whether the property should be serialize. - - - - Gets or sets a predicate used to determine whether the property should be deserialized. - - A predicate used to determine whether the property should be deserialized. - - - - Gets or sets a predicate used to determine whether the property should be serialized. - - A predicate used to determine whether the property should be serialized. - - - - Gets or sets an action used to set whether the property has been deserialized. - - An action used to set whether the property has been deserialized. - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Gets or sets the converter used when serializing the property's collection items. - - The collection's items converter. - - - - Gets or sets whether this property's collection items are serialized as a reference. - - Whether this property's collection items are serialized as a reference. - - - - Gets or sets the the type name handling used when serializing the property's collection items. - - The collection's items type name handling. - - - - Gets or sets the the reference loop handling used when serializing the property's collection items. - - The collection's items reference loop handling. - - - - A collection of objects. - - - - - Initializes a new instance of the class. - - The type. - - - - When implemented in a derived class, extracts the key from the specified element. - - The element from which to extract the key. - The key for the specified element. - - - - Adds a object. - - The property to add to the collection. - - - - Gets the closest matching object. - First attempts to get an exact case match of propertyName and then - a case insensitive match. - - Name of the property. - A matching property if found. - - - - Gets a property by property name. - - The name of the property to get. - Type property name string comparison. - A matching property if found. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Lookup and create an instance of the JsonConverter type described by the argument. - - The JsonConverter type to create. - Optional arguments to pass to an initializing constructor of the JsonConverter. - If null, the default constructor is used. - - - - Create a factory function that can be used to create instances of a JsonConverter described by the - argument type. The returned function can then be used to either invoke the converter's default ctor, or any - parameterized constructors by way of an object array. - - - - - Represents a trace writer that writes to memory. When the trace message limit is - reached then old trace messages will be removed as new messages are added. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of Info will exclude Verbose messages and include Info, - Warning and Error messages. - - - The that will be used to filter the trace messages passed to the writer. - - - - - Initializes a new instance of the class. - - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Returns an enumeration of the most recent trace messages. - - An enumeration of the most recent trace messages. - - - - Returns a of the most recent trace messages. - - - A of the most recent trace messages. - - - - - Represents a method that constructs an object. - - The object type to create. - - - - When applied to a method, specifies that the method is called when an error occurs serializing an object. - - - - - Provides methods to get attributes from a , , or . - - - - - Initializes a new instance of the class. - - The instance to get attributes for. This parameter should be a , , or . - - - - Returns a collection of all of the attributes, or an empty collection if there are no attributes. - - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. - - The type of the attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Get and set values for a using reflection. - - - - - Initializes a new instance of the class. - - The member info. - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Specifies how strings are escaped when writing JSON text. - - - - - Only control characters (e.g. newline) are escaped. - - - - - All non-ASCII and control characters (e.g. newline) are escaped. - - - - - HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. - - - - - Specifies what messages to output for the class. - - - - - Output no tracing and debugging messages. - - - - - Output error-handling messages. - - - - - Output warnings and error-handling messages. - - - - - Output informational messages, warnings, and error-handling messages. - - - - - Output all debugging and tracing messages. - - - - - Specifies type name handling options for the . - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - - - - Do not include the .NET type name when serializing types. - - - - - Include the .NET type name when serializing into a JSON object structure. - - - - - Include the .NET type name when serializing into a JSON array structure. - - - - - Always include the .NET type name when serializing. - - - - - Include the .NET type name when the type of the object being serialized is not the same as its declared type. - - - - - Determines whether the collection is null or empty. - - The collection. - - true if the collection is null or empty; otherwise, false. - - - - - Adds the elements of the specified collection to the specified generic IList. - - The list to add to. - The collection of elements to add. - - - - Returns the index of the first occurrence in a sequence by using a specified IEqualityComparer{TSource}. - - The type of the elements of source. - A sequence in which to locate a value. - The object to locate in the sequence - An equality comparer to compare values. - The zero-based index of the first occurrence of value within the entire sequence, if found; otherwise, –1. - - - - Converts the value to the specified type. If the value is unable to be converted, the - value is checked whether it assignable to the specified type. - - The value to convert. - The culture to use when converting. - The type to convert or cast the value to. - - The converted type. If conversion was unsuccessful, the initial value - is returned if assignable to the target type. - - - - - Helper method for generating a MetaObject which calls a - specific method on Dynamic that returns a result - - - - - Helper method for generating a MetaObject which calls a - specific method on Dynamic, but uses one of the arguments for - the result. - - - - - Helper method for generating a MetaObject which calls a - specific method on Dynamic, but uses one of the arguments for - the result. - - - - - Returns a Restrictions object which includes our current restrictions merged - with a restriction limiting our type - - - - - Gets a dictionary of the names and values of an Enum type. - - - - - - Gets a dictionary of the names and values of an Enum type. - - The enum type to get names and values for. - - - - - Gets the type of the typed collection's items. - - The type. - The type of the typed collection's items. - - - - Gets the member's underlying type. - - The member. - The underlying type of the member. - - - - Determines whether the member is an indexed property. - - The member. - - true if the member is an indexed property; otherwise, false. - - - - - Determines whether the property is an indexed property. - - The property. - - true if the property is an indexed property; otherwise, false. - - - - - Gets the member's value on the object. - - The member. - The target object. - The member's value on the object. - - - - Sets the member's value on the target object. - - The member. - The target. - The value. - - - - Determines whether the specified MemberInfo can be read. - - The MemberInfo to determine whether can be read. - /// if set to true then allow the member to be gotten non-publicly. - - true if the specified MemberInfo can be read; otherwise, false. - - - - - Determines whether the specified MemberInfo can be set. - - The MemberInfo to determine whether can be set. - if set to true then allow the member to be set non-publicly. - if set to true then allow the member to be set if read-only. - - true if the specified MemberInfo can be set; otherwise, false. - - - - - Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer. - - - - - Determines whether the string is all white space. Empty string will return false. - - The string to test whether it is all white space. - - true if the string is all white space; otherwise, false. - - - - - Nulls an empty string. - - The string. - Null if the string was null, otherwise the string unchanged. - - - - Specifies the state of the . - - - - - An exception has been thrown, which has left the in an invalid state. - You may call the method to put the in the Closed state. - Any other method calls results in an being thrown. - - - - - The method has been called. - - - - - An object is being written. - - - - - A array is being written. - - - - - A constructor is being written. - - - - - A property is being written. - - - - - A write method has not been called. - - - - - Indicates the method that will be used during deserialization for locating and loading assemblies. - - - - - In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method is used to load the assembly. - - - - - In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the Assembly class is used to load the assembly. - - - - diff --git a/source/packages/Newtonsoft.Json.8.0.1/tools/install.ps1 b/source/packages/Newtonsoft.Json.8.0.1/tools/install.ps1 deleted file mode 100644 index 0cebb5e..0000000 --- a/source/packages/Newtonsoft.Json.8.0.1/tools/install.ps1 +++ /dev/null @@ -1,116 +0,0 @@ -param($installPath, $toolsPath, $package, $project) - -# open json.net splash page on package install -# don't open if json.net is installed as a dependency - -try -{ - $url = "http://www.newtonsoft.com/json/install?version=" + $package.Version - $dte2 = Get-Interface $dte ([EnvDTE80.DTE2]) - - if ($dte2.ActiveWindow.Caption -eq "Package Manager Console") - { - # user is installing from VS NuGet console - # get reference to the window, the console host and the input history - # show webpage if "install-package newtonsoft.json" was last input - - $consoleWindow = $(Get-VSComponentModel).GetService([NuGetConsole.IPowerConsoleWindow]) - - $props = $consoleWindow.GetType().GetProperties([System.Reflection.BindingFlags]::Instance -bor ` - [System.Reflection.BindingFlags]::NonPublic) - - $prop = $props | ? { $_.Name -eq "ActiveHostInfo" } | select -first 1 - if ($prop -eq $null) { return } - - $hostInfo = $prop.GetValue($consoleWindow) - if ($hostInfo -eq $null) { return } - - $history = $hostInfo.WpfConsole.InputHistory.History - - $lastCommand = $history | select -last 1 - - if ($lastCommand) - { - $lastCommand = $lastCommand.Trim().ToLower() - if ($lastCommand.StartsWith("install-package") -and $lastCommand.Contains("newtonsoft.json")) - { - $dte2.ItemOperations.Navigate($url) | Out-Null - } - } - } - else - { - # user is installing from VS NuGet dialog - # get reference to the window, then smart output console provider - # show webpage if messages in buffered console contains "installing...newtonsoft.json" in last operation - - $instanceField = [NuGet.Dialog.PackageManagerWindow].GetField("CurrentInstance", [System.Reflection.BindingFlags]::Static -bor ` - [System.Reflection.BindingFlags]::NonPublic) - - $consoleField = [NuGet.Dialog.PackageManagerWindow].GetField("_smartOutputConsoleProvider", [System.Reflection.BindingFlags]::Instance -bor ` - [System.Reflection.BindingFlags]::NonPublic) - - if ($instanceField -eq $null -or $consoleField -eq $null) { return } - - $instance = $instanceField.GetValue($null) - - if ($instance -eq $null) { return } - - $consoleProvider = $consoleField.GetValue($instance) - if ($consoleProvider -eq $null) { return } - - $console = $consoleProvider.CreateOutputConsole($false) - - $messagesField = $console.GetType().GetField("_messages", [System.Reflection.BindingFlags]::Instance -bor ` - [System.Reflection.BindingFlags]::NonPublic) - if ($messagesField -eq $null) { return } - - $messages = $messagesField.GetValue($console) - if ($messages -eq $null) { return } - - $operations = $messages -split "==============================" - - $lastOperation = $operations | select -last 1 - - if ($lastOperation) - { - $lastOperation = $lastOperation.ToLower() - - $lines = $lastOperation -split "`r`n" - - $installMatch = $lines | ? { $_.StartsWith("------- installing...newtonsoft.json ") } | select -first 1 - - if ($installMatch) - { - $dte2.ItemOperations.Navigate($url) | Out-Null - } - } - } -} -catch -{ - try - { - $pmPane = $dte2.ToolWindows.OutputWindow.OutputWindowPanes.Item("Package Manager") - - $selection = $pmPane.TextDocument.Selection - $selection.StartOfDocument($false) - $selection.EndOfDocument($true) - - if ($selection.Text.StartsWith("Attempting to gather dependencies information for package 'Newtonsoft.Json." + $package.Version + "'")) - { - # don't show on upgrade - if (!$selection.Text.Contains("Removed package")) - { - $dte2.ItemOperations.Navigate($url) | Out-Null - } - } - } - catch - { - # stop potential errors from bubbling up - # worst case the splash page won't open - } -} - -# still yolo \ No newline at end of file diff --git a/source/packages/log4net.2.0.0/lib/net10-full/log4net.dll b/source/packages/log4net.2.0.0/lib/net10-full/log4net.dll deleted file mode 100644 index e7243f178e6686142ae698d8d3ab42f9189ca092..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 294912 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

    4VN47d6+VaMxcrdG2(8j8 zqDOIwkS01?+N7Bh!$|dU!6x>RC`SM&WkEu)gGp^uTx$G_8#Tc#G`&iYr32Zs{72{t z4b>*Bb+KOsN1s7rgiwFPEc%x}BSh<{O9fic3JkwlC=S7lJ;214``% zLcr4U{09f}A0VDTK<^fBgJTwN+oDdkZK?M3Y*Djvf4Mcg`VuTc2Q^x-N$MRL0d+Z9}u;6AFQ4&j(K`w6g2)@YvwJbK|FL zXJ_V~9^AWYkJY5Qh;QzYNyBNo}M36h-pkUXN5**PA;6K#Jw|T zrcaDxCWdfpTexZe%-0yXOeU?H->$xm(DlR(`SOb}x*dn&0i99^0>_ zg55&3)5Q;;=!}FC`hG*_gN@7L3C~*odt(30+<~d7LyGW))AJKEbG6#86H^*^{r8J) zVelh%wsu&%H6NOkJdZG?=|2v=yr9Eo4a!&R5K1*>ODdj#8c#B={$T6L_ z+|#(vAJ0R0sq;rF(k7VlyTvuv^qQ6NU9vddtUOxbARKM`g5G5pp40l@*PANyOD+0N zQN?|uMpce2Ncjvm*}H>+nH~IC4w&X!eZRf@{!+gBDsB|cTh04Hu|pZ#Q?mN9(wR`sOZp(1KQ5nuaa!fc>AS?Vvcz*+* zv^cHo<-_^~xBT~B@XGrO;e)C_QVQ!9$;4*fJ8fP}x#GALmzjZIFfb_CSKgs((E10B z+^m)4sm+JfX4)%^w#f93cp%H0|85N%^$wKmGw$R^PvtOCglL!Ohn*Tj_>@{})25^> z4CM_db5=N{ho?l7+KRN~-k{ods@`d5j0k&0UOEjcYU zw|QDFz893cuW5;<^3BxZv=X$jA~ZE5>YX=y#(ho8%R7%n+M;i3|E*zQ4FhW!Si`^? z2G%gJhJiH - - - log4net - - - -

    - Appender that logs to a database. - - - - appends logging events to a table within a - database. The appender can be configured to specify the connection - string by setting the property. - The connection type (provider) can be specified by setting the - property. For more information on database connection strings for - your specific database see
    http://www.connectionstrings.com/. - - - Records are written into the database either using a prepared - statement or a stored procedure. The property - is set to (System.Data.CommandType.Text) to specify a prepared statement - or to (System.Data.CommandType.StoredProcedure) to specify a stored - procedure. - - - The prepared statement text or the name of the stored procedure - must be set in the property. - - - The prepared statement or stored procedure can take a number - of parameters. Parameters are added using the - method. This adds a single to the - ordered list of parameters. The - type may be subclassed if required to provide database specific - functionality. The specifies - the parameter name, database type, size, and how the value should - be generated using a . - - - - An example of a SQL Server table that could be logged to: - - CREATE TABLE [dbo].[Log] ( - [ID] [int] IDENTITY (1, 1) NOT NULL , - [Date] [datetime] NOT NULL , - [Thread] [varchar] (255) NOT NULL , - [Level] [varchar] (20) NOT NULL , - [Logger] [varchar] (255) NOT NULL , - [Message] [varchar] (4000) NOT NULL - ) ON [PRIMARY] - - - - An example configuration to log to the above table: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Julian Biddle - Nicko Cadell - Gert Driesen - Lance Nehring - - - - Abstract base class implementation of that - buffers events in a fixed size buffer. - - - - This base class should be used by appenders that need to buffer a - number of events before logging them. For example the - buffers events and then submits the entire contents of the buffer to - the underlying database in one go. - - - Subclasses should override the - method to deliver the buffered events. - - The BufferingAppenderSkeleton maintains a fixed size cyclic - buffer of events. The size of the buffer is set using - the property. - - A is used to inspect - each event as it arrives in the appender. If the - triggers, then the current buffer is sent immediately - (see ). Otherwise the event - is stored in the buffer. For example, an evaluator can be used to - deliver the events immediately when an ERROR event arrives. - - - The buffering appender can be configured in a mode. - By default the appender is NOT lossy. When the buffer is full all - the buffered events are sent with . - If the property is set to true then the - buffer will not be sent when it is full, and new events arriving - in the appender will overwrite the oldest event in the buffer. - In lossy mode the buffer will only be sent when the - triggers. This can be useful behavior when you need to know about - ERROR events but not about events with a lower level, configure an - evaluator that will trigger when an ERROR event arrives, the whole - buffer will be sent which gives a history of events leading up to - the ERROR event. - - - Nicko Cadell - Gert Driesen - - - - Abstract base class implementation of . - - - - This class provides the code for common functionality, such - as support for threshold filtering and support for general filters. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface for your own strategies for printing log statements. - - - - Implementors should consider extending the - class which provides a default implementation of this interface. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Log the logging event in Appender specific way. - - The event to log - - - This method is called to log a message into this appender. - - - - - - Gets or sets the name of this appender. - - The name of the appender. - - The name uniquely identifies the appender. - - - - - Interface for appenders that support bulk logging. - - - - This interface extends the interface to - support bulk logging of objects. Appenders - should only implement this interface if they can bulk log efficiently. - - - Nicko Cadell - - - - Log the array of logging events in Appender specific way. - - The events to log - - - This method is called to log an array of events into this appender. - - - - - - Interface used to delay activate a configured object. - - - - This allows an object to defer activation of its options until all - options have been set. This is required for components which have - related options that remain ambiguous until all are set. - - - If a component implements this interface then the method - must be called by the container after its all the configured properties have been set - and before the component can be used. - - - Nicko Cadell - - - - Activate the options that were previously set with calls to properties. - - - - This allows an object to defer activation of its options until all - options have been set. This is required for components which have - related options that remain ambiguous until all are set. - - - If a component implements this interface then this method must be called - after its properties have been set before the component can be used. - - - - - - Initial buffer size - - - - - Maximum buffer size before it is recycled - - - - - Default constructor - - - Empty default constructor - - - - - Finalizes this appender by calling the implementation's - method. - - - - If this appender has not been closed then the Finalize method - will call . - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Closes the appender and release resources. - - - - Release any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - This method cannot be overridden by subclasses. This method - delegates the closing of the appender to the - method which must be overridden in the subclass. - - - - - - Performs threshold checks and invokes filters before - delegating actual logging to the subclasses specific - method. - - The event to log. - - - This method cannot be overridden by derived classes. A - derived class should override the method - which is called by this method. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - Calls and checks that - it returns true. - - - - - If all of the above steps succeed then the - will be passed to the abstract method. - - - - - - Performs threshold checks and invokes filters before - delegating actual logging to the subclasses specific - method. - - The array of events to log. - - - This method cannot be overridden by derived classes. A - derived class should override the method - which is called by this method. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - Calls and checks that - it returns true. - - - - - If all of the above steps succeed then the - will be passed to the method. - - - - - - Test if the logging event should we output by this appender - - the event to test - true if the event should be output, false if the event should be ignored - - - This method checks the logging event against the threshold level set - on this appender and also against the filters specified on this - appender. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - - - - - Adds a filter to the end of the filter chain. - - the filter to add to this appender - - - The Filters are organized in a linked list. - - - Setting this property causes the new filter to be pushed onto the - back of the filter chain. - - - - - - Clears the filter list for this appender. - - - - Clears the filter list for this appender. - - - - - - Checks if the message level is below this appender's threshold. - - to test against. - - - If there is no threshold set, then the return value is always true. - - - - true if the meets the - requirements of this appender. - - - - - Is called when the appender is closed. Derived classes should override - this method if resources need to be released. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Subclasses of should implement this method - to perform actual logging. - - The event to append. - - - A subclass must implement this method to perform - logging of the . - - This method will be called by - if all the conditions listed for that method are met. - - - To restrict the logging of events in the appender - override the method. - - - - - - Append a bulk array of logging events. - - the array of logging events - - - This base class implementation calls the - method for each element in the bulk array. - - - A sub class that can better process a bulk array of events should - override this method in addition to . - - - - - - Called before as a precondition. - - - - This method is called by - before the call to the abstract method. - - - This method can be overridden in a subclass to extend the checks - made before the event is passed to the method. - - - A subclass should ensure that they delegate this call to - this base class if it is overridden. - - - true if the call to should proceed. - - - - Renders the to a string. - - The event to render. - The event rendered as a string. - - - Helper method to render a to - a string. This appender must have a - set to render the to - a string. - - If there is exception data in the logging event and - the layout does not process the exception, this method - will append the exception text to the rendered string. - - - Where possible use the alternative version of this method - . - That method streams the rendering onto an existing Writer - which can give better performance if the caller already has - a open and ready for writing. - - - - - - Renders the to a string. - - The event to render. - The TextWriter to write the formatted event to - - - Helper method to render a to - a string. This appender must have a - set to render the to - a string. - - If there is exception data in the logging event and - the layout does not process the exception, this method - will append the exception text to the rendered string. - - - Use this method in preference to - where possible. If, however, the caller needs to render the event - to a string then does - provide an efficient mechanism for doing so. - - - - - - The layout of this appender. - - - See for more information. - - - - - The name of this appender. - - - See for more information. - - - - - The level threshold of this appender. - - - - There is no level threshold filtering by default. - - - See for more information. - - - - - - It is assumed and enforced that errorHandler is never null. - - - - It is assumed and enforced that errorHandler is never null. - - - See for more information. - - - - - - The first filter in the filter chain. - - - - Set to null initially. - - - See for more information. - - - - - - The last filter in the filter chain. - - - See for more information. - - - - - Flag indicating if this appender is closed. - - - See for more information. - - - - - The guard prevents an appender from repeatedly calling its own DoAppend method - - - - - StringWriter used to render events - - - - - The fully qualified type of the AppenderSkeleton class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the threshold of this appender. - - - The threshold of the appender. - - - - All log events with lower level than the threshold level are ignored - by the appender. - - - In configuration files this option is specified by setting the - value of the option to a level - string, such as "DEBUG", "INFO" and so on. - - - - - - Gets or sets the for this appender. - - The of the appender - - - The provides a default - implementation for the property. - - - - - - The filter chain. - - The head of the filter chain filter chain. - - - Returns the head Filter. The Filters are organized in a linked list - and so all Filters on this Appender are available through the result. - - - - - - Gets or sets the for this appender. - - The layout of the appender. - - - See for more information. - - - - - - - Gets or sets the name of this appender. - - The name of the appender. - - - The name uniquely identifies the appender. - - - - - - Tests if this appender requires a to be set. - - - - In the rather exceptional case, where the appender - implementation admits a layout but can also work without it, - then the appender should return true. - - - This default implementation always returns false. - - - - true if the appender requires a layout object, otherwise false. - - - - - The default buffer size. - - - The default size of the cyclic buffer used to store events. - This is set to 512 by default. - - - - - Initializes a new instance of the class. - - - - Protected default constructor to allow subclassing. - - - - - - Initializes a new instance of the class. - - the events passed through this appender must be - fixed by the time that they arrive in the derived class' SendBuffer method. - - - Protected constructor to allow subclassing. - - - The should be set if the subclass - expects the events delivered to be fixed even if the - is set to zero, i.e. when no buffering occurs. - - - - - - Flush the currently buffered events - - - - Flushes any events that have been buffered. - - - If the appender is buffering in mode then the contents - of the buffer will NOT be flushed to the appender. - - - - - - Flush the currently buffered events - - set to true to flush the buffer of lossy events - - - Flushes events that have been buffered. If is - false then events will only be flushed if this buffer is non-lossy mode. - - - If the appender is buffering in mode then the contents - of the buffer will only be flushed if is true. - In this case the contents of the buffer will be tested against the - and if triggering will be output. All other buffered - events will be discarded. - - - If is true then the buffer will always - be emptied by calling this method. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Close this appender instance. - - - - Close this appender instance. If this appender is marked - as not then the remaining events in - the buffer must be sent when the appender is closed. - - - - - - This method is called by the method. - - the event to log - - - Stores the in the cyclic buffer. - - - The buffer will be sent (i.e. passed to the - method) if one of the following conditions is met: - - - - The cyclic buffer is full and this appender is - marked as not lossy (see ) - - - An is set and - it is triggered for the - specified. - - - - Before the event is stored in the buffer it is fixed - (see ) to ensure that - any data referenced by the event will be valid when the buffer - is processed. - - - - - - Sends the contents of the buffer. - - The first logging event. - The buffer containing the events that need to be send. - - - The subclass must override . - - - - - - Sends the events. - - The events that need to be send. - - - The subclass must override this method to process the buffered events. - - - - - - The size of the cyclic buffer used to hold the logging events. - - - Set to by default. - - - - - The cyclic buffer used to store the logging events. - - - - - The triggering event evaluator that causes the buffer to be sent immediately. - - - The object that is used to determine if an event causes the entire - buffer to be sent immediately. This field can be null, which - indicates that event triggering is not to be done. The evaluator - can be set using the property. If this appender - has the ( property) set to - true then an must be set. - - - - - Indicates if the appender should overwrite events in the cyclic buffer - when it becomes full, or if the buffer should be flushed when the - buffer is full. - - - If this field is set to true then an must - be set. - - - - - The triggering event evaluator filters discarded events. - - - The object that is used to determine if an event that is discarded should - really be discarded or if it should be sent to the appenders. - This field can be null, which indicates that all discarded events will - be discarded. - - - - - Value indicating which fields in the event should be fixed - - - By default all fields are fixed - - - - - The events delivered to the subclass must be fixed. - - - - - Gets or sets a value that indicates whether the appender is lossy. - - - true if the appender is lossy, otherwise false. The default is false. - - - - This appender uses a buffer to store logging events before - delivering them. A triggering event causes the whole buffer - to be send to the remote sink. If the buffer overruns before - a triggering event then logging events could be lost. Set - to false to prevent logging events - from being lost. - - If is set to true then an - must be specified. - - - - - Gets or sets the size of the cyclic buffer used to hold the - logging events. - - - The size of the cyclic buffer used to hold the logging events. - - - - The option takes a positive integer - representing the maximum number of logging events to collect in - a cyclic buffer. When the is reached, - oldest events are deleted as new events are added to the - buffer. By default the size of the cyclic buffer is 512 events. - - - If the is set to a value less than - or equal to 1 then no buffering will occur. The logging event - will be delivered synchronously (depending on the - and properties). Otherwise the event will - be buffered. - - - - - - Gets or sets the that causes the - buffer to be sent immediately. - - - The that causes the buffer to be - sent immediately. - - - - The evaluator will be called for each event that is appended to this - appender. If the evaluator triggers then the current buffer will - immediately be sent (see ). - - If is set to true then an - must be specified. - - - - - Gets or sets the value of the to use. - - - The value of the to use. - - - - The evaluator will be called for each event that is discarded from this - appender. If the evaluator triggers then the current buffer will immediately - be sent (see ). - - - - - - Gets or sets a value indicating if only part of the logging event data - should be fixed. - - - true if the appender should only fix part of the logging event - data, otherwise false. The default is false. - - - - Setting this property to true will cause only part of the - event data to be fixed and serialized. This will improve performance. - - - See for more information. - - - - - - Gets or sets a the fields that will be fixed in the event - - - The event fields that will be fixed before the event is buffered - - - - The logging event needs to have certain thread specific values - captured before it can be buffered. See - for details. - - - - - - - Initializes a new instance of the class. - - - Public default constructor to initialize a new instance of this class. - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Override the parent method to close the database - - - - Closes the database command and database connection. - - - - - - Inserts the events into the database. - - The events to insert into the database. - - - Insert all the events specified in the - array into the database. - - - - - - Adds a parameter to the command. - - The parameter to add to the command. - - - Adds a parameter to the ordered list of command parameters. - - - - - - Writes the events to the database using the transaction specified. - - The transaction that the events will be executed under. - The array of events to insert into the database. - - - The transaction argument can be null if the appender has been - configured not to use transactions. See - property for more information. - - - - - - Formats the log message into database statement text. - - The event being logged. - - This method can be overridden by subclasses to provide - more control over the format of the database statement. - - - Text that can be passed to a . - - - - - Creates an instance used to connect to the database. - - - This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). - - The of the object. - The connectionString output from the ResolveConnectionString method. - An instance with a valid connection string. - - - - Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey - property. - - - ConnectiongStringName is only supported on .NET 2.0 and higher. - - Additional information describing the connection string. - A connection string used to connect to the database. - - - - Retrieves the class type of the ADO.NET provider. - - - - Gets the Type of the ADO.NET provider to use to connect to the - database. This method resolves the type specified in the - property. - - - Subclasses can override this method to return a different type - if necessary. - - - The of the ADO.NET provider - - - - Prepares the database command and initialize the parameters. - - - - - Connects to the database. - - - - - Cleanup the existing command. - - - If true, a message will be written using LogLog.Warn if an exception is encountered when calling Dispose. - - - - - Cleanup the existing connection. - - - Calls the IDbConnection's method. - - - - - Flag to indicate if we are using a command object - - - - Set to true when the appender is to use a prepared - statement or stored procedure to insert into the database. - - - - - - The list of objects. - - - - The list of objects. - - - - - - The security context to use for privileged calls - - - - - The that will be used - to insert logging events into a database. - - - - - The database command. - - - - - Database connection string. - - - - - The appSettings key from App.Config that contains the connection string. - - - - - String type name of the type name. - - - - - The text of the command. - - - - - The command type. - - - - - Indicates whether to use transactions when writing to the database. - - - - - Indicates whether to use transactions when writing to the database. - - - - - The fully qualified type of the AdoNetAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the database connection string that is used to connect to - the database. - - - The database connection string used to connect to the database. - - - - The connections string is specific to the connection type. - See for more information. - - - Connection string for MS Access via ODBC: - "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" - - Another connection string for MS Access via ODBC: - "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" - - Connection string for MS Access via OLE DB: - "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" - - - - - The appSettings key from App.Config that contains the connection string. - - - - - Gets or sets the type name of the connection - that should be created. - - - The type name of the connection. - - - - The type name of the ADO.NET provider to use. - - - The default is to use the OLE DB provider. - - - Use the OLE DB Provider. This is the default value. - System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Use the MS SQL Server Provider. - System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Use the ODBC Provider. - Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral - This is an optional package that you can download from - http://msdn.microsoft.com/downloads - search for ODBC .NET Data Provider. - - Use the Oracle Provider. - System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - This is an optional package that you can download from - http://msdn.microsoft.com/downloads - search for .NET Managed Provider for Oracle. - - - - - Gets or sets the command text that is used to insert logging events - into the database. - - - The command text used to insert logging events into the database. - - - - Either the text of the prepared statement or the - name of the stored procedure to execute to write into - the database. - - - The property determines if - this text is a prepared statement or a stored procedure. - - - - - - Gets or sets the command type to execute. - - - The command type to execute. - - - - This value may be either (System.Data.CommandType.Text) to specify - that the is a prepared statement to execute, - or (System.Data.CommandType.StoredProcedure) to specify that the - property is the name of a stored procedure - to execute. - - - The default value is (System.Data.CommandType.Text). - - - - - - Should transactions be used to insert logging events in the database. - - - true if transactions should be used to insert logging events in - the database, otherwise false. The default value is true. - - - - Gets or sets a value that indicates whether transactions should be used - to insert logging events in the database. - - - When set a single transaction will be used to insert the buffered events - into the database. Otherwise each event will be inserted without using - an explicit transaction. - - - - - - Gets or sets the used to call the NetSend method. - - - The used to call the NetSend method. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Should this appender try to reconnect to the database on error. - - - true if the appender should try to reconnect to the database after an - error has occurred, otherwise false. The default value is false, - i.e. not to try to reconnect. - - - - The default behaviour is for the appender not to try to reconnect to the - database if an error occurs. Subsequent logging events are discarded. - - - To force the appender to attempt to reconnect to the database set this - property to true. - - - When the appender attempts to connect to the database there may be a - delay of up to the connection timeout specified in the connection string. - This delay will block the calling application's thread. - Until the connection can be reestablished this potential delay may occur multiple times. - - - - - - Gets or sets the underlying . - - - The underlying . - - - creates a to insert - logging events into a database. Classes deriving from - can use this property to get or set this . Use the - underlying returned from if - you require access beyond that which provides. - - - - - Parameter type used by the . - - - - This class provides the basic database parameter properties - as defined by the interface. - - This type can be subclassed to provide database specific - functionality. The two methods that are called externally are - and . - - - - - - Initializes a new instance of the class. - - - Default constructor for the AdoNetAppenderParameter class. - - - - - Prepare the specified database command object. - - The command to prepare. - - - Prepares the database command object by adding - this parameter to its collection of parameters. - - - - - - Renders the logging event and set the parameter value in the command. - - The command containing the parameter. - The event to be rendered. - - - Renders the logging event using this parameters layout - object. Sets the value of the parameter on the command object. - - - - - - The name of this parameter. - - - - - The database type for this parameter. - - - - - Flag to infer type rather than use the DbType - - - - - The precision for this parameter. - - - - - The scale for this parameter. - - - - - The size for this parameter. - - - - - The to use to render the - logging event into an object for this parameter. - - - - - Gets or sets the name of this parameter. - - - The name of this parameter. - - - - The name of this parameter. The parameter name - must match up to a named parameter to the SQL stored procedure - or prepared statement. - - - - - - Gets or sets the database type for this parameter. - - - The database type for this parameter. - - - - The database type for this parameter. This property should - be set to the database type from the - enumeration. See . - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the type from the value. - - - - - - - Gets or sets the precision for this parameter. - - - The precision for this parameter. - - - - The maximum number of digits used to represent the Value. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the precision from the value. - - - - - - - Gets or sets the scale for this parameter. - - - The scale for this parameter. - - - - The number of decimal places to which Value is resolved. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the scale from the value. - - - - - - - Gets or sets the size for this parameter. - - - The size for this parameter. - - - - The maximum size, in bytes, of the data within the column. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the size from the value. - - - - - - - Gets or sets the to use to - render the logging event into an object for this - parameter. - - - The used to render the - logging event into an object for this parameter. - - - - The that renders the value for this - parameter. - - - The can be used to adapt - any into a - for use in the property. - - - - - - Appends logging events to the terminal using ANSI color escape sequences. - - - - AnsiColorTerminalAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. It also allows the color of a specific level of message to be set. - - - This appender expects the terminal to understand the VT100 control set - in order to interpret the color codes. If the terminal or console does not - understand the control codes the behavior is not defined. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes each message to the System.Console.Out or - System.Console.Error that is set at the time the event is appended. - Therefore it is possible to programmatically redirect the output of this appender - (for example NUnit does this to capture program output). While this is the desired - behavior of this appender it may have security implications in your application. - - - When configuring the ANSI colored terminal appender, a mapping should be - specified to map a logging level to a color. For example: - - - - - - - - - - - - - - - The Level is the standard log4net logging level and ForeColor and BackColor can be any - of the following values: - - Blue - Green - Red - White - Yellow - Purple - Cyan - - These color values cannot be combined together to make new colors. - - - The attributes can be any combination of the following: - - Brightforeground is brighter - Dimforeground is dimmer - Underscoremessage is underlined - Blinkforeground is blinking (does not work on all terminals) - Reverseforeground and background are reversed - Hiddenoutput is hidden - Strikethroughmessage has a line through it - - While any of these attributes may be combined together not all combinations - work well together, for example setting both Bright and Dim attributes makes - no sense. - - - Patrick Wagstrom - Nicko Cadell - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Ansi code to reset terminal - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Add a mapping of level to color - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the foreground and background colours - for a level. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to color mappings set on this appender. - - - - - - Flag to write output to the error stream rather than the standard output stream - - - - - Mapping from level object to color value - - - - - Target is the value of the console output stream. - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The enum of possible display attributes - - - - The following flags can be combined together to - form the ANSI color attributes. - - - - - - - text is bright - - - - - text is dim - - - - - text is underlined - - - - - text is blinking - - - Not all terminals support this attribute - - - - - text and background colors are reversed - - - - - text is hidden - - - - - text is displayed with a strikethrough - - - - - The enum of possible foreground or background color values for - use with the color mapping method - - - - The output can be in one for the following ANSI colors. - - - - - - - color is black - - - - - color is red - - - - - color is green - - - - - color is yellow - - - - - color is blue - - - - - color is magenta - - - - - color is cyan - - - - - color is white - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and the color it should be displayed in. - - - - - - An entry in the - - - - This is an abstract base class for types that are stored in the - object. - - - Nicko Cadell - - - - Default protected constructor - - - - Default protected constructor - - - - - - Initialize any options defined on this entry - - - - Should be overridden by any classes that need to initialise based on their options - - - - - - The level that is the key for this mapping - - - The that is the key for this mapping - - - - Get or set the that is the key for this - mapping subclass. - - - - - - Initialize the options for the object - - - - Combine the and together - and append the attributes. - - - - - - The mapped foreground color for the specified level - - - - Required property. - The mapped foreground color for the specified level - - - - - - The mapped background color for the specified level - - - - Required property. - The mapped background color for the specified level - - - - - - The color attributes for the specified level - - - - Required property. - The color attributes for the specified level - - - - - - The combined , and - suitable for setting the ansi terminal color. - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a AppenderCollection instance. - - list to create a readonly wrapper arround - - An AppenderCollection wrapper that is read-only. - - - - - An empty readonly static AppenderCollection - - - - - Initializes a new instance of the AppenderCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the AppenderCollection class - that has the specified initial capacity. - - - The number of elements that the new AppenderCollection is initially capable of storing. - - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified AppenderCollection. - - The AppenderCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - - Copies the entire AppenderCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire AppenderCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the AppenderCollection. - - The to be added to the end of the AppenderCollection. - The index at which the value has been added. - - - - Removes all elements from the AppenderCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the AppenderCollection. - - The to check for. - true if is found in the AppenderCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the AppenderCollection. - - The to locate in the AppenderCollection. - - The zero-based index of the first occurrence of - in the entire AppenderCollection, if found; otherwise, -1. - - - - - Inserts an element into the AppenderCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the AppenderCollection. - - The to remove from the AppenderCollection. - - The specified was not found in the AppenderCollection. - - - - - Removes the element at the specified index of the AppenderCollection. - - The zero-based index of the element to remove. - - is less than zero - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the AppenderCollection. - - An for the entire AppenderCollection. - - - - Adds the elements of another AppenderCollection to the current AppenderCollection. - - The AppenderCollection whose elements should be added to the end of the current AppenderCollection. - The new of the AppenderCollection. - - - - Adds the elements of a array to the current AppenderCollection. - - The array whose elements should be added to the end of the AppenderCollection. - The new of the AppenderCollection. - - - - Adds the elements of a collection to the current AppenderCollection. - - The collection whose elements should be added to the end of the AppenderCollection. - The new of the AppenderCollection. - - - - Sets the capacity to the actual number of elements. - - - - - Return the collection elements as an array - - the array - - - - is less than zero - -or- - is equal to or greater than . - - - - - is less than zero - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the AppenderCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - The zero-based index of the element to get or set. - - is less than zero - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false - - - - Gets or sets the number of elements the AppenderCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - - A value - - - - - Supports simple iteration over a . - - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - - - - - Appends log events to the ASP.NET system. - - - - - Diagnostic information and tracing messages that you specify are appended to the output - of the page that is sent to the requesting browser. Optionally, you can view this information - from a separate trace viewer (Trace.axd) that displays trace information for every page in a - given application. - - - Trace statements are processed and displayed only when tracing is enabled. You can control - whether tracing is displayed to a page, to the trace viewer, or both. - - - The logging event is passed to the or - method depending on the level of the logging event. - The event's logger name is the default value for the category parameter of the Write/Warn method. - - - Nicko Cadell - Gert Driesen - Ron Grabowski - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Write the logging event to the ASP.NET trace - - the event to log - - - Write the logging event to the ASP.NET trace - HttpContext.Current.Trace - (). - - - - - - Defaults to %logger - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The category parameter sent to the Trace method. - - - - Defaults to %logger which will use the logger name of the current - as the category parameter. - - - - - - - - Buffers events and then forwards them to attached appenders. - - - - The events are buffered in this appender until conditions are - met to allow the appender to deliver the events to the attached - appenders. See for the - conditions that cause the buffer to be sent. - - The forwarding appender can be used to specify different - thresholds and filters for the same appender at different locations - within the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Interface for attaching appenders to objects. - - - - Interface for attaching, removing and retrieving appenders. - - - Nicko Cadell - Gert Driesen - - - - Attaches an appender. - - The appender to add. - - - Add the specified appender. The implementation may - choose to allow or deny duplicate appenders. - - - - - - Gets an attached appender with the specified name. - - The name of the appender to get. - - The appender with the name specified, or null if no appender with the - specified name is found. - - - - Returns an attached appender with the specified. - If no appender with the specified name is found null will be - returned. - - - - - - Removes all attached appenders. - - - - Removes and closes all attached appenders - - - - - - Removes the specified appender from the list of attached appenders. - - The appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Gets all attached appenders. - - - A collection of attached appenders. - - - - Gets a collection of attached appenders. - If there are no attached appenders the - implementation should return an empty - collection rather than null. - - - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Send the events. - - The events that need to be send. - - - Forwards the events to the attached appenders. - - - - - - Adds an to the list of appenders of this - instance. - - The to add to this appender. - - - If the specified is already in the list of - appenders, then it won't be added again. - - - - - - Looks for the appender with the specified name. - - The name of the appender to lookup. - - The appender with the specified name, or null. - - - - Get the named appender attached to this buffering appender. - - - - - - Removes all previously added appenders from this appender. - - - - This is useful when re-reading configuration information. - - - - - - Removes the specified appender from the list of appenders. - - The appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Implementation of the interface - - - - - Gets the appenders contained in this appender as an - . - - - If no appenders can be found, then an - is returned. - - - A collection of the appenders in this appender. - - - - - Appends logging events to the console. - - - - ColoredConsoleAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. It also allows the color of a specific type of message to be set. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes directly to the application's attached console - not to the System.Console.Out or System.Console.Error TextWriter. - The System.Console.Out and System.Console.Error streams can be - programmatically redirected (for example NUnit does this to capture program output). - This appender will ignore these redirections because it needs to use Win32 - API calls to colorize the output. To respect these redirections the - must be used. - - - When configuring the colored console appender, mapping should be - specified to map a logging level to a color. For example: - - - - - - - - - - - - - - The Level is the standard log4net logging level and ForeColor and BackColor can be any - combination of the following values: - - Blue - Green - Red - White - Yellow - Purple - Cyan - HighIntensity - - - - Rick Hobbs - Nicko Cadell - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - flag set to true to write to the console error stream - - When is set to true, output is written to - the standard error output stream. Otherwise, output is written to the standard - output stream. - - - - - Add a mapping of level to color - done by the config file - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the foreground and background colors - for a level. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to color mappings set on this appender. - - - - - - Flag to write output to the error stream rather than the standard output stream - - - - - Mapping from level object to color value - - - - - The console output stream writer to write to - - - - This writer is not thread safe. - - - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The enum of possible color values for use with the color mapping method - - - - The following flags can be combined together to - form the colors. - - - - - - - color is blue - - - - - color is green - - - - - color is red - - - - - color is white - - - - - color is yellow - - - - - color is purple - - - - - color is cyan - - - - - color is intensified - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and the color it should be displayed in. - - - - - - Initialize the options for the object - - - - Combine the and together. - - - - - - The mapped foreground color for the specified level - - - - Required property. - The mapped foreground color for the specified level. - - - - - - The mapped background color for the specified level - - - - Required property. - The mapped background color for the specified level. - - - - - - The combined and suitable for - setting the console color. - - - - - Appends logging events to the console. - - - - ConsoleAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes each message to the System.Console.Out or - System.Console.Error that is set at the time the event is appended. - Therefore it is possible to programmatically redirect the output of this appender - (for example NUnit does this to capture program output). While this is the desired - behavior of this appender it may have security implications in your application. - - - Nicko Cadell - Gert Driesen - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - flag set to true to write to the console error stream - - When is set to true, output is written to - the standard error output stream. Otherwise, output is written to the standard - output stream. - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appends log events to the system. - - - - The application configuration file can be used to control what listeners - are actually used. See the MSDN documentation for the - class for details on configuring the - debug system. - - - Events are written using the - method. The event's logger name is passed as the value for the category name to the Write method. - - - Nicko Cadell - - - - Initializes a new instance of the . - - - - Default constructor. - - - - - - Initializes a new instance of the - with a specified layout. - - The layout to use with this appender. - - - Obsolete constructor. - - - - - - Writes the logging event to the system. - - The event to log. - - - Writes the logging event to the system. - If is true then the - is called. - - - - - - Immediate flush means that the underlying writer or output stream - will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logs events are not actually written to persistent media if and - when the application crashes. - - - The default value is true. - - - - - Gets or sets a value that indicates whether the appender will - flush at the end of each write. - - - The default behavior is to flush at the end of each - write. If the option is set tofalse, then the underlying - stream can defer writing to physical medium to a later time. - - - Avoiding the flush operation at the end of each append results - in a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Writes events to the system event log. - - - - The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. - See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog - - - The EventID of the event log entry can be - set using the EventID property () - on the . - - - The Category of the event log entry can be - set using the Category property () - on the . - - - There is a limit of 32K characters for an event log message - - - When configuring the EventLogAppender a mapping can be - specified to map a logging level to an event log entry type. For example: - - - <mapping> - <level value="ERROR" /> - <eventLogEntryType value="Error" /> - </mapping> - <mapping> - <level value="DEBUG" /> - <eventLogEntryType value="Information" /> - </mapping> - - - The Level is the standard log4net logging level and eventLogEntryType can be any value - from the enum, i.e.: - - Erroran error event - Warninga warning event - Informationan informational event - - - - Aspi Havewala - Douglas de la Torre - Nicko Cadell - Gert Driesen - Thomas Voss - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initializes a new instance of the class - with the specified . - - The to use with this appender. - - - Obsolete constructor. - - - - - - Add a mapping of level to - done by the config file - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the event log entry type for a level. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Create an event log source - - - Uses different API calls under NET_2_0 - - - - - This method is called by the - method. - - the event to log - - Writes the event to the system event log using the - . - - If the event has an EventID property (see ) - set then this integer will be used as the event log event id. - - - There is a limit of 32K characters for an event log message - - - - - - Get the equivalent for a - - the Level to convert to an EventLogEntryType - The equivalent for a - - Because there are fewer applicable - values to use in logging levels than there are in the - this is a one way mapping. There is - a loss of information during the conversion. - - - - - The log name is the section in the event logs where the messages - are stored. - - - - - Name of the application to use when logging. This appears in the - application column of the event log named by . - - - - - The name of the machine which holds the event log. This is - currently only allowed to be '.' i.e. the current machine. - - - - - Mapping from level object to EventLogEntryType - - - - - The security context to use for privileged calls - - - - - The event ID to use unless one is explicitly specified via the LoggingEvent's properties. - - - - - The event category to use unless one is explicitly specified via the LoggingEvent's properties. - - - - - The fully qualified type of the EventLogAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - The name of the log where messages will be stored. - - - The string name of the log where messages will be stored. - - - This is the name of the log as it appears in the Event Viewer - tree. The default value is to log into the Application - log, this is where most applications write their events. However - if you need a separate log for your application (or applications) - then you should set the appropriately. - This should not be used to distinguish your event log messages - from those of other applications, the - property should be used to distinguish events. This property should be - used to group together events into a single log. - - - - - - Property used to set the Application name. This appears in the - event logs when logging. - - - The string used to distinguish events from different sources. - - - Sets the event log source property. - - - - - This property is used to return the name of the computer to use - when accessing the event logs. Currently, this is the current - computer, denoted by a dot "." - - - The string name of the machine holding the event log that - will be logged into. - - - This property cannot be changed. It is currently set to '.' - i.e. the local machine. This may be changed in future. - - - - - Gets or sets the used to write to the EventLog. - - - The used to write to the EventLog. - - - - The system security context used to write to the EventLog. - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. - - - - The EventID of the event log entry will normally be - set using the EventID property () - on the . - This property provides the fallback value which defaults to 0. - - - - - - Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. - - - - The Category of the event log entry will normally be - set using the Category property () - on the . - This property provides the fallback value which defaults to 0. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and its event log entry type. - - - - - - The for this entry - - - - Required property. - The for this entry - - - - - - Appends logging events to a file. - - - - Logging events are sent to the file specified by - the property. - - - The file can be opened in either append or overwrite mode - by specifying the property. - If the file path is relative it is taken as relative from - the application base directory. The file encoding can be - specified by setting the property. - - - The layout's and - values will be written each time the file is opened and closed - respectively. If the property is - then the file may contain multiple copies of the header and footer. - - - This appender will first try to open the file for writing when - is called. This will typically be during configuration. - If the file cannot be opened for writing the appender will attempt - to open the file again each time a message is logged to the appender. - If the file cannot be opened for writing when a message is logged then - the message will be discarded by this appender. - - - The supports pluggable file locking models via - the property. - The default behavior, implemented by - is to obtain an exclusive write lock on the file until this appender is closed. - The alternative models only hold a - write lock while the appender is writing a logging event () - or synchronize by using a named system wide Mutex (). - - - All locking strategies have issues and you should seriously consider using a different strategy that - avoids having multiple processes logging to the same file. - - - Nicko Cadell - Gert Driesen - Rodrigo B. de Oliveira - Douglas de la Torre - Niall Daley - - - - Sends logging events to a . - - - - An Appender that writes to a . - - - This appender may be used stand alone if initialized with an appropriate - writer, however it is typically used as a base class for an appender that - can open a to write to. - - - Nicko Cadell - Gert Driesen - Douglas de la Torre - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initializes a new instance of the class and - sets the output destination to a new initialized - with the specified . - - The layout to use with this appender. - The to output to. - - - Obsolete constructor. - - - - - - Initializes a new instance of the class and sets - the output destination to the specified . - - The layout to use with this appender - The to output to - - The must have been previously opened. - - - - Obsolete constructor. - - - - - - This method determines if there is a sense in attempting to append. - - - - This method checks if an output target has been set and if a - layout has been set. - - - false if any of the preconditions fail. - - - - This method is called by the - method. - - The event to log. - - - Writes a log statement to the output stream if the output stream exists - and is writable. - - - The format of the output will depend on the appender's layout. - - - - - - This method is called by the - method. - - The array of events to log. - - - This method writes all the bulk logged events to the output writer - before flushing the stream. - - - - - - Close this appender instance. The underlying stream or writer is also closed. - - - Closed appenders cannot be reused. - - - - - Writes the footer and closes the underlying . - - - - Writes the footer and closes the underlying . - - - - - - Closes the underlying . - - - - Closes the underlying . - - - - - - Clears internal references to the underlying - and other variables. - - - - Subclasses can override this method for an alternate closing behavior. - - - - - - Writes a footer as produced by the embedded layout's property. - - - - Writes a footer as produced by the embedded layout's property. - - - - - - Writes a header produced by the embedded layout's property. - - - - Writes a header produced by the embedded layout's property. - - - - - - Called to allow a subclass to lazily initialize the writer - - - - This method is called when an event is logged and the or - have not been set. This allows a subclass to - attempt to initialize the writer multiple times. - - - - - - This is the where logging events - will be written to. - - - - - Immediate flush means that the underlying - or output stream will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logging events are not actually persisted if and when the application - crashes. - - - The default value is true. - - - - - - The fully qualified type of the TextWriterAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or set whether the appender will flush at the end - of each append operation. - - - - The default behavior is to flush at the end of each - append operation. - - - If this option is set to false, then the underlying - stream can defer persisting the logging event to a later - time. - - - - Avoiding the flush operation at the end of each append results in - a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - Sets the where the log output will go. - - - - The specified must be open and writable. - - - The will be closed when the appender - instance is closed. - - - Note: Logging to an unopened will fail. - - - - - - Gets or set the and the underlying - , if any, for this appender. - - - The for this appender. - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Gets or sets the where logging events - will be written to. - - - The where logging events are written. - - - - This is the where logging events - will be written to. - - - - - - Default constructor - - - - Default constructor - - - - - - Construct a new appender using the layout, file and append mode. - - the layout to use with this appender - the full path to the file to write to - flag to indicate if the file should be appended to - - - Obsolete constructor. - - - - - - Construct a new appender using the layout and file specified. - The file will be appended to. - - the layout to use with this appender - the full path to the file to write to - - - Obsolete constructor. - - - - - - Activate the options on the file appender. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - This will cause the file to be opened. - - - - - - Closes any previously opened file and calls the parent's . - - - - Resets the filename and the file stream. - - - - - - Called to initialize the file writer - - - - Will be called for each logged message until the file is - successfully opened. - - - - - - This method is called by the - method. - - The event to log. - - - Writes a log statement to the output stream if the output stream exists - and is writable. - - - The format of the output will depend on the appender's layout. - - - - - - This method is called by the - method. - - The array of events to log. - - - Acquires the output file locks once before writing all the events to - the stream. - - - - - - Writes a footer as produced by the embedded layout's property. - - - - Writes a footer as produced by the embedded layout's property. - - - - - - Writes a header produced by the embedded layout's property. - - - - Writes a header produced by the embedded layout's property. - - - - - - Closes the underlying . - - - - Closes the underlying . - - - - - - Closes the previously opened file. - - - - Writes the to the file and then - closes the file. - - - - - - Sets and opens the file where the log output will go. The specified file must be writable. - - The path to the log file. Must be a fully qualified path. - If true will append to fileName. Otherwise will truncate fileName - - - Calls but guarantees not to throw an exception. - Errors are passed to the . - - - - - - Sets and opens the file where the log output will go. The specified file must be writable. - - The path to the log file. Must be a fully qualified path. - If true will append to fileName. Otherwise will truncate fileName - - - If there was already an opened file, then the previous file - is closed first. - - - This method will ensure that the directory structure - for the specified exists. - - - - - - Sets the quiet writer used for file output - - the file stream that has been opened for writing - - - This implementation of creates a - over the and passes it to the - method. - - - This method can be overridden by sub classes that want to wrap the - in some way, for example to encrypt the output - data using a System.Security.Cryptography.CryptoStream. - - - - - - Sets the quiet writer being used. - - the writer over the file stream that has been opened for writing - - - This method can be overridden by sub classes that want to - wrap the in some way. - - - - - - Convert a path into a fully qualified path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - - - - Flag to indicate if we should append to the file - or overwrite the file. The default is to append. - - - - - The name of the log file. - - - - - The encoding to use for the file stream. - - - - - The security context to use for privileged calls - - - - - The stream to log to. Has added locking semantics - - - - - The locking model to use - - - - - The fully qualified type of the FileAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the path to the file that logging will be written to. - - - The path to the file that logging will be written to. - - - - If the path is relative it is taken as relative from - the application base directory. - - - - - - Gets or sets a flag that indicates whether the file should be - appended to or overwritten. - - - Indicates whether the file should be appended to or overwritten. - - - - If the value is set to false then the file will be overwritten, if - it is set to true then the file will be appended to. - - The default value is true. - - - - - Gets or sets used to write to the file. - - - The used to write to the file. - - - - The default encoding set is - which is the encoding for the system's current ANSI code page. - - - - - - Gets or sets the used to write to the file. - - - The used to write to the file. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Gets or sets the used to handle locking of the file. - - - The used to lock the file. - - - - Gets or sets the used to handle locking of the file. - - - There are three built in locking models, , and . - The first locks the file from the start of logging to the end, the - second locks only for the minimal amount of time when logging each message - and the last synchronizes processes using a named system wide Mutex. - - - The default locking model is the . - - - - - - Write only that uses the - to manage access to an underlying resource. - - - - - True asynchronous writes are not supported, the implementation forces a synchronous write. - - - - - Exception base type for log4net. - - - - This type extends . It - does not add any new functionality but does differentiate the - type of exception being thrown. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - A message to include with the exception. - - - Initializes a new instance of the class with - the specified message. - - - - - - Constructor - - A message to include with the exception. - A nested exception to include. - - - Initializes a new instance of the class - with the specified message and inner exception. - - - - - - Serialization constructor - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Locking model base class - - - - Base class for the locking models available to the derived loggers. - - - - - - Open the output file - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Acquire the lock on the file in preparation for writing to it. - Return a stream pointing to the file. - must be called to release the lock on the output file. - - - - - - Release the lock on the file - - - - Release the lock on the file. No further writes will be made to the - stream until is called again. - - - - - - Helper method that creates a FileStream under CurrentAppender's SecurityContext. - - - - Typically called during OpenFile or AcquireLock. - - - If the directory portion of the does not exist, it is created - via Directory.CreateDirecctory. - - - - - - - - - - Helper method to close under CurrentAppender's SecurityContext. - - - Does not set to null. - - - - - - Gets or sets the for this LockingModel - - - The for this LockingModel - - - - The file appender this locking model is attached to and working on - behalf of. - - - The file appender is used to locate the security context and the error handler to use. - - - The value of this property will be set before is - called. - - - - - - Hold an exclusive lock on the output file - - - - Open the file once for writing and hold it open until is called. - Maintains an exclusive lock on the file during this time. - - - - - - Open the file specified and prepare for logging. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Does nothing. The lock is already taken - - - - - - Release the lock on the file - - - - Does nothing. The lock will be released when the file is closed. - - - - - - Acquires the file lock for each write - - - - Opens the file once for each / cycle, - thus holding the lock for the minimal amount of time. This method of locking - is considerably slower than but allows - other processes to move/delete the log file whilst logging continues. - - - - - - Prepares to open the file when the first message is logged. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Acquire the lock on the file in preparation for writing to it. - Return a stream pointing to the file. - must be called to release the lock on the output file. - - - - - - Release the lock on the file - - - - Release the lock on the file. No further writes will be made to the - stream until is called again. - - - - - - Provides cross-process file locking. - - Ron Grabowski - Steve Wranovsky - - - - Open the file specified and prepare for logging. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Does nothing. The lock is already taken - - - - - - - - - - - This appender forwards logging events to attached appenders. - - - - The forwarding appender can be used to specify different thresholds - and filters for the same appender at different locations within the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Forward the logging event to the attached appenders - - The event to log. - - - Delivers the logging event to all the attached appenders. - - - - - - Forward the logging events to the attached appenders - - The array of events to log. - - - Delivers the logging events to all the attached appenders. - - - - - - Adds an to the list of appenders of this - instance. - - The to add to this appender. - - - If the specified is already in the list of - appenders, then it won't be added again. - - - - - - Looks for the appender with the specified name. - - The name of the appender to lookup. - - The appender with the specified name, or null. - - - - Get the named appender attached to this appender. - - - - - - Removes all previously added appenders from this appender. - - - - This is useful when re-reading configuration information. - - - - - - Removes the specified appender from the list of appenders. - - The appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Implementation of the interface - - - - - Gets the appenders contained in this appender as an - . - - - If no appenders can be found, then an - is returned. - - - A collection of the appenders in this appender. - - - - - Logs events to a local syslog service. - - - - This appender uses the POSIX libc library functions openlog, syslog, and closelog. - If these functions are not available on the local system then this appender will not work! - - - The functions openlog, syslog, and closelog are specified in SUSv2 and - POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. - - - This appender talks to a local syslog service. If you need to log to a remote syslog - daemon and you cannot configure your local syslog service to do this you may be - able to use the to log via UDP. - - - Syslog messages must have a facility and and a severity. The severity - is derived from the Level of the logging event. - The facility must be chosen from the set of defined syslog - values. The facilities list is predefined - and cannot be extended. - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - Rob Lyon - Nicko Cadell - - - - Initializes a new instance of the class. - - - This instance of the class is set up to write - to a local syslog service. - - - - - Add a mapping of level to severity - - The mapping to add - - - Adds a to this appender. - - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to a remote syslog daemon. - - - The format of the output will depend on the appender's layout. - - - - - - Close the syslog when the appender is closed - - - - Close the syslog when the appender is closed - - - - - - Translates a log4net level to a syslog severity. - - A log4net level. - A syslog severity. - - - Translates a log4net level to a syslog severity. - - - - - - Generate a syslog priority. - - The syslog facility. - The syslog severity. - A syslog priority. - - - - The facility. The default facility is . - - - - - The message identity - - - - - Marshaled handle to the identity string. We have to hold on to the - string as the openlog and syslog APIs just hold the - pointer to the ident and dereference it for each log message. - - - - - Mapping from level object to syslog severity - - - - - Open connection to system logger. - - - - - Generate a log message. - - - - The libc syslog method takes a format string and a variable argument list similar - to the classic printf function. As this type of vararg list is not supported - by C# we need to specify the arguments explicitly. Here we have specified the - format string with a single message argument. The caller must set the format - string to "%s". - - - - - - Close descriptor used to write to system logger. - - - - - Message identity - - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - - - - Syslog facility - - - Set to one of the values. The list of - facilities is predefined and cannot be extended. The default value - is . - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - syslog severities - - - - The log4net Level maps to a syslog severity using the - method and the - class. The severity is set on . - - - - - - system is unusable - - - - - action must be taken immediately - - - - - critical conditions - - - - - error conditions - - - - - warning conditions - - - - - normal but significant condition - - - - - informational - - - - - debug-level messages - - - - - syslog facilities - - - - The syslog facility defines which subsystem the logging comes from. - This is set on the property. - - - - - - kernel messages - - - - - random user-level messages - - - - - mail system - - - - - system daemons - - - - - security/authorization messages - - - - - messages generated internally by syslogd - - - - - line printer subsystem - - - - - network news subsystem - - - - - UUCP subsystem - - - - - clock (cron/at) daemon - - - - - security/authorization messages (private) - - - - - ftp daemon - - - - - NTP subsystem - - - - - log audit - - - - - log alert - - - - - clock daemon - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - - - The mapped syslog severity for the specified level - - - - Required property. - The mapped syslog severity for the specified level - - - - - - Stores logging events in an array. - - - - The memory appender stores all the logging events - that are appended in an in-memory array. - - - Use the method to get - the current list of events that have been appended. - - - Use the method to clear the - current list of events. - - - Julian Biddle - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Gets the events that have been logged. - - The events that have been logged - - - Gets the events that have been logged. - - - - - - This method is called by the method. - - the event to log - - Stores the in the events list. - - - - - Clear the list of events - - - Clear the list of events - - - - - The list of events that have been appended. - - - - - Value indicating which fields in the event should be fixed - - - By default all fields are fixed - - - - - Gets or sets a value indicating whether only part of the logging event - data should be fixed. - - - true if the appender should only fix part of the logging event - data, otherwise false. The default is false. - - - - Setting this property to true will cause only part of the event - data to be fixed and stored in the appender, hereby improving performance. - - - See for more information. - - - - - - Gets or sets the fields that will be fixed in the event - - - - The logging event needs to have certain thread specific values - captured before it can be buffered. See - for details. - - - - - - Logs entries by sending network messages using the - native function. - - - - You can send messages only to names that are active - on the network. If you send the message to a user name, - that user must be logged on and running the Messenger - service to receive the message. - - - The receiver will get a top most window displaying the - messages one at a time, therefore this appender should - not be used to deliver a high volume of messages. - - - The following table lists some possible uses for this appender : - - - - - Action - Property Value(s) - - - Send a message to a user account on the local machine - - - = <name of the local machine> - - - = <user name> - - - - - Send a message to a user account on a remote machine - - - = <name of the remote machine> - - - = <user name> - - - - - Send a message to a domain user account - - - = <name of a domain controller | uninitialized> - - - = <user name> - - - - - Send a message to all the names in a workgroup or domain - - - = <workgroup name | domain name>* - - - - - Send a message from the local machine to a remote machine - - - = <name of the local machine | uninitialized> - - - = <name of the remote machine> - - - - - - - Note : security restrictions apply for sending - network messages, see - for more information. - - - - - An example configuration section to log information - using this appender from the local machine, named - LOCAL_PC, to machine OPERATOR_PC : - - - - - - - - - - Nicko Cadell - Gert Driesen - - - - The DNS or NetBIOS name of the server on which the function is to execute. - - - - - The sender of the network message. - - - - - The message alias to which the message should be sent. - - - - - The security context to use for privileged calls - - - - - Initializes the appender. - - - The default constructor initializes all fields to their default values. - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The appender will be ignored if no was specified. - - - The required property was not specified. - - - - This method is called by the method. - - The event to log. - - - Sends the event using a network message. - - - - - - Sends a buffer of information to a registered message alias. - - The DNS or NetBIOS name of the server on which the function is to execute. - The message alias to which the message buffer should be sent - The originator of the message. - The message text. - The length, in bytes, of the message text. - - - The following restrictions apply for sending network messages: - - - - - Platform - Requirements - - - Windows NT - - - No special group membership is required to send a network message. - - - Admin, Accounts, Print, or Server Operator group membership is required to - successfully send a network message on a remote server. - - - - - Windows 2000 or later - - - If you send a message on a domain controller that is running Active Directory, - access is allowed or denied based on the access control list (ACL) for the securable - object. The default ACL permits only Domain Admins and Account Operators to send a network message. - - - On a member server or workstation, only Administrators and Server Operators can send a network message. - - - - - - - For more information see Security Requirements for the Network Management Functions. - - - - - If the function succeeds, the return value is zero. - - - - - - Gets or sets the sender of the message. - - - The sender of the message. - - - If this property is not specified, the message is sent from the local computer. - - - - - Gets or sets the message alias to which the message should be sent. - - - The recipient of the message. - - - This property should always be specified in order to send a message. - - - - - Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. - - - DNS or NetBIOS name of the remote server on which the function is to execute. - - - - For Windows NT 4.0 and earlier, the string should begin with \\. - - - If this property is not specified, the local computer is used. - - - - - - Gets or sets the used to call the NetSend method. - - - The used to call the NetSend method. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appends log events to the OutputDebugString system. - - - - OutputDebugStringAppender appends log events to the - OutputDebugString system. - - - The string is passed to the native OutputDebugString - function. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Write the logging event to the output debug string API - - the event to log - - - Write the logging event to the output debug string API - - - - - - Stub for OutputDebugString native method - - the string to output - - - Stub for OutputDebugString native method - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Logs events to a remote syslog daemon. - - - - The BSD syslog protocol is used to remotely log to - a syslog daemon. The syslogd listens for for messages - on UDP port 514. - - - The syslog UDP protocol is not authenticated. Most syslog daemons - do not accept remote log messages because of the security implications. - You may be able to use the LocalSyslogAppender to talk to a local - syslog service. - - - There is an RFC 3164 that claims to document the BSD Syslog Protocol. - This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. - This appender generates what the RFC calls an "Original Device Message", - i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation - this format of message will be accepted by all current syslog daemon - implementations. The daemon will attach the current time and the source - hostname or IP address to any messages received. - - - Syslog messages must have a facility and and a severity. The severity - is derived from the Level of the logging event. - The facility must be chosen from the set of defined syslog - values. The facilities list is predefined - and cannot be extended. - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - Rob Lyon - Nicko Cadell - - - - Sends logging events as connectionless UDP datagrams to a remote host or a - multicast group using an . - - - - UDP guarantees neither that messages arrive, nor that they arrive in the correct order. - - - To view the logging results, a custom application can be developed that listens for logging - events. - - - When decoding events send via this appender remember to use the same encoding - to decode the events as was used to send the events. See the - property to specify the encoding to use. - - - - This example shows how to log receive logging events that are sent - on IP address 244.0.0.1 and port 8080 to the console. The event is - encoded in the packet as a unicode string and it is decoded as such. - - IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); - UdpClient udpClient; - byte[] buffer; - string loggingEvent; - - try - { - udpClient = new UdpClient(8080); - - while(true) - { - buffer = udpClient.Receive(ref remoteEndPoint); - loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); - Console.WriteLine(loggingEvent); - } - } - catch(Exception e) - { - Console.WriteLine(e.ToString()); - } - - - Dim remoteEndPoint as IPEndPoint - Dim udpClient as UdpClient - Dim buffer as Byte() - Dim loggingEvent as String - - Try - remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) - udpClient = new UdpClient(8080) - While True - buffer = udpClient.Receive(ByRef remoteEndPoint) - loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) - Console.WriteLine(loggingEvent) - Wend - Catch e As Exception - Console.WriteLine(e.ToString()) - End Try - - - An example configuration section to log information using this appender to the - IP 224.0.0.1 on port 8080: - - - - - - - - - - Gert Driesen - Nicko Cadell - - - - Initializes a new instance of the class. - - - The default constructor initializes all fields to their default values. - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The appender will be ignored if no was specified or - an invalid remote or local TCP port number was specified. - - - The required property was not specified. - The TCP port number assigned to or is less than or greater than . - - - - This method is called by the method. - - The event to log. - - - Sends the event using an UDP datagram. - - - Exceptions are passed to the . - - - - - - Closes the UDP connection and releases all resources associated with - this instance. - - - - Disables the underlying and releases all managed - and unmanaged resources associated with the . - - - - - - Initializes the underlying connection. - - - - The underlying is initialized and binds to the - port number from which you intend to communicate. - - - Exceptions are passed to the . - - - - - - The IP address of the remote host or multicast group to which - the logging event will be sent. - - - - - The TCP port number of the remote host or multicast group to - which the logging event will be sent. - - - - - The cached remote endpoint to which the logging events will be sent. - - - - - The TCP port number from which the will communicate. - - - - - The instance that will be used for sending the - logging events. - - - - - The encoding to use for the packet. - - - - - Gets or sets the IP address of the remote host or multicast group to which - the underlying should sent the logging event. - - - The IP address of the remote host or multicast group to which the logging event - will be sent. - - - - Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to - 239.255.255.255). Multicast packets can pass across different networks through routers, so - it is possible to use multicasts in an Internet scenario as long as your network provider - supports multicasting. - - - Hosts that want to receive particular multicast messages must register their interest by joining - the multicast group. Multicast messages are not sent to networks where no host has joined - the multicast group. Class D IP addresses are used for multicast groups, to differentiate - them from normal host addresses, allowing nodes to easily detect if a message is of interest. - - - Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: - - - - - IP Address - Description - - - 224.0.0.1 - - - Sends a message to all system on the subnet. - - - - - 224.0.0.2 - - - Sends a message to all routers on the subnet. - - - - - 224.0.0.12 - - - The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. - - - - - - - A complete list of actually reserved multicast addresses and their owners in the ranges - defined by RFC 3171 can be found at the IANA web site. - - - The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative - addresses. These addresses can be reused with other local groups. Routers are typically - configured with filters to prevent multicast traffic in this range from flowing outside - of the local network. - - - - - - Gets or sets the TCP port number of the remote host or multicast group to which - the underlying should sent the logging event. - - - An integer value in the range to - indicating the TCP port number of the remote host or multicast group to which the logging event - will be sent. - - - The underlying will send messages to this TCP port number - on the remote host or multicast group. - - The value specified is less than or greater than . - - - - Gets or sets the TCP port number from which the underlying will communicate. - - - An integer value in the range to - indicating the TCP port number from which the underlying will communicate. - - - - The underlying will bind to this port for sending messages. - - - Setting the value to 0 (the default) will cause the udp client not to bind to - a local port. - - - The value specified is less than or greater than . - - - - Gets or sets used to write the packets. - - - The used to write the packets. - - - - The used to write the packets. - - - - - - Gets or sets the underlying . - - - The underlying . - - - creates a to send logging events - over a network. Classes deriving from can use this - property to get or set this . Use the underlying - returned from if you require access beyond that which - provides. - - - - - Gets or sets the cached remote endpoint to which the logging events should be sent. - - - The cached remote endpoint to which the logging events will be sent. - - - The method will initialize the remote endpoint - with the values of the and - properties. - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Syslog port 514 - - - - - Initializes a new instance of the class. - - - This instance of the class is set up to write - to a remote syslog daemon. - - - - - Add a mapping of level to severity - - The mapping to add - - - Add a mapping to this appender. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to a remote syslog daemon. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to syslog severity mappings set on this appender. - - - - - - Translates a log4net level to a syslog severity. - - A log4net level. - A syslog severity. - - - Translates a log4net level to a syslog severity. - - - - - - Generate a syslog priority. - - The syslog facility. - The syslog severity. - A syslog priority. - - - Generate a syslog priority. - - - - - - The facility. The default facility is . - - - - - The message identity - - - - - Mapping from level object to syslog severity - - - - - Message identity - - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - - - - Syslog facility - - - Set to one of the values. The list of - facilities is predefined and cannot be extended. The default value - is . - - - - - syslog severities - - - - The syslog severities. - - - - - - system is unusable - - - - - action must be taken immediately - - - - - critical conditions - - - - - error conditions - - - - - warning conditions - - - - - normal but significant condition - - - - - informational - - - - - debug-level messages - - - - - syslog facilities - - - - The syslog facilities - - - - - - kernel messages - - - - - random user-level messages - - - - - mail system - - - - - system daemons - - - - - security/authorization messages - - - - - messages generated internally by syslogd - - - - - line printer subsystem - - - - - network news subsystem - - - - - UUCP subsystem - - - - - clock (cron/at) daemon - - - - - security/authorization messages (private) - - - - - ftp daemon - - - - - NTP subsystem - - - - - log audit - - - - - log alert - - - - - clock daemon - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - - - The mapped syslog severity for the specified level - - - - Required property. - The mapped syslog severity for the specified level - - - - - - Delivers logging events to a remote logging sink. - - - - This Appender is designed to deliver events to a remote sink. - That is any object that implements the - interface. It delivers the events using .NET remoting. The - object to deliver events to is specified by setting the - appenders property. - - The RemotingAppender buffers events before sending them. This allows it to - make more efficient use of the remoting infrastructure. - - Once the buffer is full the events are still not sent immediately. - They are scheduled to be sent using a pool thread. The effect is that - the send occurs asynchronously. This is very important for a - number of non obvious reasons. The remoting infrastructure will - flow thread local variables (stored in the ), - if they are marked as , across the - remoting boundary. If the server is not contactable then - the remoting infrastructure will clear the - objects from the . To prevent a logging failure from - having side effects on the calling application the remoting call must be made - from a separate thread to the one used by the application. A - thread is used for this. If no thread is available then - the events will block in the thread pool manager until a thread is available. - - Because the events are sent asynchronously using pool threads it is possible to close - this appender before all the queued events have been sent. - When closing the appender attempts to wait until all the queued events have been sent, but - this will timeout after 30 seconds regardless. - - If this appender is being closed because the - event has fired it may not be possible to send all the queued events. During process - exit the runtime limits the time that a - event handler is allowed to run for. If the runtime terminates the threads before - the queued events have been sent then they will be lost. To ensure that all events - are sent the appender must be closed before the application exits. See - for details on how to shutdown - log4net programmatically. - - - Nicko Cadell - Gert Driesen - Daniel Cazzulino - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Send the contents of the buffer to the remote sink. - - - The events are not sent immediately. They are scheduled to be sent - using a pool thread. The effect is that the send occurs asynchronously. - This is very important for a number of non obvious reasons. The remoting - infrastructure will flow thread local variables (stored in the ), - if they are marked as , across the - remoting boundary. If the server is not contactable then - the remoting infrastructure will clear the - objects from the . To prevent a logging failure from - having side effects on the calling application the remoting call must be made - from a separate thread to the one used by the application. A - thread is used for this. If no thread is available then - the events will block in the thread pool manager until a thread is available. - - The events to send. - - - - Override base class close. - - - - This method waits while there are queued work items. The events are - sent asynchronously using work items. These items - will be sent once a thread pool thread is available to send them, therefore - it is possible to close the appender before all the queued events have been - sent. - - This method attempts to wait until all the queued events have been sent, but this - method will timeout after 30 seconds regardless. - - If the appender is being closed because the - event has fired it may not be possible to send all the queued events. During process - exit the runtime limits the time that a - event handler is allowed to run for. - - - - - A work item is being queued into the thread pool - - - - - A work item from the thread pool has completed - - - - - Send the contents of the buffer to the remote sink. - - - This method is designed to be used with the . - This method expects to be passed an array of - objects in the state param. - - the logging events to send - - - - The URL of the remote sink. - - - - - The local proxy (.NET remoting) for the remote logging sink. - - - - - The number of queued callbacks currently waiting or executing - - - - - Event used to signal when there are no queued work items - - - This event is set when there are no queued work items. In this - state it is safe to close the appender. - - - - - Gets or sets the URL of the well-known object that will accept - the logging events. - - - The well-known URL of the remote sink. - - - - The URL of the remoting sink that will accept logging events. - The sink must implement the - interface. - - - - - - Interface used to deliver objects to a remote sink. - - - This interface must be implemented by a remoting sink - if the is to be used - to deliver logging events to the sink. - - - - - Delivers logging events to the remote sink - - Array of events to log. - - - Delivers logging events to the remote sink - - - - - - Appender that rolls log files based on size or date or both. - - - - RollingFileAppender can roll log files based on size or date or both - depending on the setting of the property. - When set to the log file will be rolled - once its size exceeds the . - When set to the log file will be rolled - once the date boundary specified in the property - is crossed. - When set to the log file will be - rolled once the date boundary specified in the property - is crossed, but within a date boundary the file will also be rolled - once its size exceeds the . - When set to the log file will be rolled when - the appender is configured. This effectively means that the log file can be - rolled once per program execution. - - - A of few additional optional features have been added: - - Attach date pattern for current log file - Backup number increments for newer files - Infinite number of backups by file size - - - - - - For large or infinite numbers of backup files a - greater than zero is highly recommended, otherwise all the backup files need - to be renamed each time a new backup is created. - - - When Date/Time based rolling is used setting - to will reduce the number of file renamings to few or none. - - - - - - Changing or without clearing - the log file directory of backup files will cause unexpected and unwanted side effects. - - - - - If Date/Time based rolling is enabled this appender will attempt to roll existing files - in the directory without a Date/Time tag based on the last write date of the base log file. - The appender only rolls the log file when a message is logged. If Date/Time based rolling - is enabled then the appender will not roll the log file at the Date/Time boundary but - at the point when the next message is logged after the boundary has been crossed. - - - - The extends the and - has the same behavior when opening the log file. - The appender will first try to open the file for writing when - is called. This will typically be during configuration. - If the file cannot be opened for writing the appender will attempt - to open the file again each time a message is logged to the appender. - If the file cannot be opened for writing when a message is logged then - the message will be discarded by this appender. - - - When rolling a backup file necessitates deleting an older backup file the - file to be deleted is moved to a temporary name before being deleted. - - - - - A maximum number of backup files when rolling on date/time boundaries is not supported. - - - - Nicko Cadell - Gert Driesen - Aspi Havewala - Douglas de la Torre - Edward Smit - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - The fully qualified type of the RollingFileAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Sets the quiet writer being used. - - - This method can be overridden by sub classes. - - the writer to set - - - - Write out a logging event. - - the event to write to file. - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Write out an array of logging events. - - the events to write to file. - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Performs any required rolling before outputting the next event - - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Creates and opens the file for logging. If - is false then the fully qualified name is determined and used. - - the name of the file to open - true to append to existing file - - This method will ensure that the directory structure - for the specified exists. - - - - - Get the current output file name - - the base file name - the output file name - - The output file name is based on the base fileName specified. - If is set then the output - file name is the same as the base file passed in. Otherwise - the output file depends on the date pattern, on the count - direction or both. - - - - - Determines curSizeRollBackups (only within the current roll point) - - - - - Generates a wildcard pattern that can be used to find all files - that are similar to the base file name. - - - - - - - Builds a list of filenames for all files matching the base filename plus a file - pattern. - - - - - - - Initiates a roll over if needed for crossing a date boundary since the last run. - - - - - Initializes based on existing conditions at time of . - - - - Initializes based on existing conditions at time of . - The following is done - - determine curSizeRollBackups (only within the current roll point) - initiates a roll over if needed for crossing a date boundary since the last run. - - - - - - - Does the work of bumping the 'current' file counter higher - to the highest count when an incremental file name is seen. - The highest count is either the first file (when count direction - is greater than 0) or the last file (when count direction less than 0). - In either case, we want to know the highest count that is present. - - - - - - - Attempts to extract a number from the end of the file name that indicates - the number of the times the file has been rolled over. - - - Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. - - - - - - - Takes a list of files and a base file name, and looks for - 'incremented' versions of the base file. Bumps the max - count up to the highest count seen. - - - - - - - Calculates the RollPoint for the datePattern supplied. - - the date pattern to calculate the check period for - The RollPoint that is most accurate for the date pattern supplied - - Essentially the date pattern is examined to determine what the - most suitable roll point is. The roll point chosen is the roll point - with the smallest period that can be detected using the date pattern - supplied. i.e. if the date pattern only outputs the year, month, day - and hour then the smallest roll point that can be detected would be - and hourly roll point as minutes could not be detected. - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Sets initial conditions including date/time roll over information, first check, - scheduledFilename, and calls to initialize - the current number of backups. - - - - - - - - - .1, .2, .3, etc. - - - - - Rollover the file(s) to date/time tagged file(s). - - set to true if the file to be rolled is currently open - - - Rollover the file(s) to date/time tagged file(s). - Resets curSizeRollBackups. - If fileIsOpen is set then the new file is opened (through SafeOpenFile). - - - - - - Renames file to file . - - Name of existing file to roll. - New name for file. - - - Renames file to file . It - also checks for existence of target file and deletes if it does. - - - - - - Test if a file exists at a specified path - - the path to the file - true if the file exists - - - Test if a file exists at a specified path - - - - - - Deletes the specified file if it exists. - - The file to delete. - - - Delete a file if is exists. - The file is first moved to a new filename then deleted. - This allows the file to be removed even when it cannot - be deleted, but it still can be moved. - - - - - - Implements file roll base on file size. - - - - If the maximum number of size based backups is reached - (curSizeRollBackups == maxSizeRollBackups) then the oldest - file is deleted -- its index determined by the sign of countDirection. - If countDirection < 0, then files - {File.1, ..., File.curSizeRollBackups -1} - are renamed to {File.2, ..., - File.curSizeRollBackups}. Moreover, File is - renamed File.1 and closed. - - - A new file is created to receive further log output. - - - If maxSizeRollBackups is equal to zero, then the - File is truncated with no backup files created. - - - If maxSizeRollBackups < 0, then File is - renamed if needed and no files are deleted. - - - - - - Implements file roll. - - the base name to rename - - - If the maximum number of size based backups is reached - (curSizeRollBackups == maxSizeRollBackups) then the oldest - file is deleted -- its index determined by the sign of countDirection. - If countDirection < 0, then files - {File.1, ..., File.curSizeRollBackups -1} - are renamed to {File.2, ..., - File.curSizeRollBackups}. - - - If maxSizeRollBackups is equal to zero, then the - File is truncated with no backup files created. - - - If maxSizeRollBackups < 0, then File is - renamed if needed and no files are deleted. - - - This is called by to rename the files. - - - - - - Get the start time of the next window for the current rollpoint - - the current date - the type of roll point we are working with - the start time for the next roll point an interval after the currentDateTime date - - - Returns the date of the next roll point after the currentDateTime date passed to the method. - - - The basic strategy is to subtract the time parts that are less significant - than the rollpoint from the current time. This should roll the time back to - the start of the time window for the current rollpoint. Then we add 1 window - worth of time and get the start time of the next window for the rollpoint. - - - - - - This object supplies the current date/time. Allows test code to plug in - a method to control this class when testing date/time based rolling. The default - implementation uses the underlying value of DateTime.Now. - - - - - The date pattern. By default, the pattern is set to ".yyyy-MM-dd" - meaning daily rollover. - - - - - The actual formatted filename that is currently being written to - or will be the file transferred to on roll over - (based on staticLogFileName). - - - - - The timestamp when we shall next recompute the filename. - - - - - Holds date of last roll over - - - - - The type of rolling done - - - - - The default maximum file size is 10MB - - - - - There is zero backup files by default - - - - - How many sized based backups have been made so far - - - - - The rolling file count direction. - - - - - The rolling mode used in this appender. - - - - - Cache flag set if we are rolling by date. - - - - - Cache flag set if we are rolling by size. - - - - - Value indicating whether to always log to the same file. - - - - - Value indicating whether to preserve the file name extension when rolling. - - - - - FileName provided in configuration. Used for rolling properly - - - - - The 1st of January 1970 in UTC - - - - - Gets or sets the strategy for determining the current date and time. The default - implementation is to use LocalDateTime which internally calls through to DateTime.Now. - - - An implementation of the interface which returns the current date and time. - - - - Gets or sets the used to return the current date and time. - - - The default strategy is . - - - - - - Gets or sets the date pattern to be used for generating file names - when rolling over on date. - - - The date pattern to be used for generating file names when rolling - over on date. - - - - Takes a string in the same format as expected by - . - - - This property determines the rollover schedule when rolling over - on date. - - - - - - Gets or sets the maximum number of backup files that are kept before - the oldest is erased. - - - The maximum number of backup files that are kept before the oldest is - erased. - - - - If set to zero, then there will be no backup files and the log file - will be truncated when it reaches . - - - If a negative number is supplied then no deletions will be made. Note - that this could result in very slow performance as a large number of - files are rolled over unless is used. - - - The maximum applies to each time based group of files and - not the total. - - - - - - Gets or sets the maximum size that the output file is allowed to reach - before being rolled over to backup files. - - - The maximum size in bytes that the output file is allowed to reach before being - rolled over to backup files. - - - - This property is equivalent to except - that it is required for differentiating the setter taking a - argument from the setter taking a - argument. - - - The default maximum file size is 10MB (10*1024*1024). - - - - - - Gets or sets the maximum size that the output file is allowed to reach - before being rolled over to backup files. - - - The maximum size that the output file is allowed to reach before being - rolled over to backup files. - - - - This property allows you to specify the maximum size with the - suffixes "KB", "MB" or "GB" so that the size is interpreted being - expressed respectively in kilobytes, megabytes or gigabytes. - - - For example, the value "10KB" will be interpreted as 10240 bytes. - - - The default maximum file size is 10MB. - - - If you have the option to set the maximum file size programmatically - consider using the property instead as this - allows you to set the size in bytes as a . - - - - - - Gets or sets the rolling file count direction. - - - The rolling file count direction. - - - - Indicates if the current file is the lowest numbered file or the - highest numbered file. - - - By default newer files have lower numbers ( < 0), - i.e. log.1 is most recent, log.5 is the 5th backup, etc... - - - >= 0 does the opposite i.e. - log.1 is the first backup made, log.5 is the 5th backup made, etc. - For infinite backups use >= 0 to reduce - rollover costs. - - The default file count direction is -1. - - - - - Gets or sets the rolling style. - - The rolling style. - - - The default rolling style is . - - - When set to this appender's - property is set to false, otherwise - the appender would append to a single file rather than rolling - the file each time it is opened. - - - - - - Gets or sets a value indicating whether to preserve the file name extension when rolling. - - - true if the file name extension should be preserved. - - - - By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. - However, under Windows the new file name will loose any program associations as the - extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or - file.curSizeRollBackup.log to maintain any program associations. - - - - - - Gets or sets a value indicating whether to always log to - the same file. - - - true if always should be logged to the same file, otherwise false. - - - - By default file.log is always the current file. Optionally - file.log.yyyy-mm-dd for current formatted datePattern can by the currently - logging file (or file.log.curSizeRollBackup or even - file.log.yyyy-mm-dd.curSizeRollBackup). - - - This will make time based rollovers with a large number of backups - much faster as the appender it won't have to rename all the backups! - - - - - - Style of rolling to use - - - - Style of rolling to use - - - - - - Roll files once per program execution - - - - Roll files once per program execution. - Well really once each time this appender is - configured. - - - Setting this option also sets AppendToFile to - false on the RollingFileAppender, otherwise - this appender would just be a normal file appender. - - - - - - Roll files based only on the size of the file - - - - - Roll files based only on the date - - - - - Roll files based on both the size and date of the file - - - - - The code assumes that the following 'time' constants are in a increasing sequence. - - - - The code assumes that the following 'time' constants are in a increasing sequence. - - - - - - Roll the log not based on the date - - - - - Roll the log for each minute - - - - - Roll the log for each hour - - - - - Roll the log twice a day (midday and midnight) - - - - - Roll the log each day (midnight) - - - - - Roll the log each week - - - - - Roll the log each month - - - - - This interface is used to supply Date/Time information to the . - - - This interface is used to supply Date/Time information to the . - Used primarily to allow test classes to plug themselves in so they can - supply test date/times. - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Default implementation of that returns the current time. - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Send an e-mail when a specific logging event occurs, typically on errors - or fatal errors. - - - - The number of logging events delivered in this e-mail depend on - the value of option. The - keeps only the last - logging events in its - cyclic buffer. This keeps memory requirements at a reasonable level while - still delivering useful application context. - - - Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. - For these features to be enabled you need to ensure that you are using a version of - the log4net assembly that is built against the MS .NET 1.1 framework and that you are - running the your application on the MS .NET 1.1 runtime. On all other platforms only sending - unauthenticated messages to a server listening on port 25 (the default) is supported. - - - Authentication is supported by setting the property to - either or . - If using authentication then the - and properties must also be set. - - - To set the SMTP server port use the property. The default port is 25. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Default constructor - - - - - - Sends the contents of the cyclic buffer as an e-mail message. - - The logging events to send. - - - - Send the email message - - the body text to include in the mail - - - - Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - - Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses - that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - - Gets or sets a semicolon-delimited list of recipient e-mail addresses - that will be blind carbon copied. - - - A semicolon-delimited list of e-mail addresses. - - - - A semicolon-delimited list of recipient e-mail addresses. - - - - - - Gets or sets the e-mail address of the sender. - - - The e-mail address of the sender. - - - - The e-mail address of the sender. - - - - - - Gets or sets the subject line of the e-mail message. - - - The subject line of the e-mail message. - - - - The subject line of the e-mail message. - - - - - - Gets or sets the name of the SMTP relay mail server to use to send - the e-mail messages. - - - The name of the e-mail relay server. If SmtpServer is not set, the - name of the local SMTP server is used. - - - - The name of the e-mail relay server. If SmtpServer is not set, the - name of the local SMTP server is used. - - - - - - Obsolete - - - Use the BufferingAppenderSkeleton Fix methods instead - - - - Obsolete property. - - - - - - The mode to use to authentication with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - Valid Authentication mode values are: , - , and . - The default value is . When using - you must specify the - and to use to authenticate. - When using the Windows credentials for the current - thread, if impersonating, or the process will be used to authenticate. - - - - - - The username to use to authenticate with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - A and must be specified when - is set to , - otherwise the username will be ignored. - - - - - - The password to use to authenticate with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - A and must be specified when - is set to , - otherwise the password will be ignored. - - - - - - The port on which the SMTP server is listening - - - Server Port is only available on the MS .NET 1.1 runtime. - - The port on which the SMTP server is listening. The default - port is 25. The Port can only be changed when running on - the MS .NET 1.1 runtime. - - - - - - Gets or sets the priority of the e-mail message - - - One of the values. - - - - Sets the priority of the e-mails generated by this - appender. The default priority is . - - - If you are using this appender to report errors then - you may want to set the priority to . - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Values for the property. - - - - SMTP authentication modes. - - - - - - No authentication - - - - - Basic authentication. - - - Requires a username and password to be supplied - - - - - Integrated authentication - - - Uses the Windows credentials from the current thread or process to authenticate. - - - - - Send an email when a specific logging event occurs, typically on errors - or fatal errors. Rather than sending via smtp it writes a file into the - directory specified by . This allows services such - as the IIS SMTP agent to manage sending the messages. - - - - The configuration for this appender is identical to that of the SMTPAppender, - except that instead of specifying the SMTPAppender.SMTPHost you specify - . - - - The number of logging events delivered in this e-mail depend on - the value of option. The - keeps only the last - logging events in its - cyclic buffer. This keeps memory requirements at a reasonable level while - still delivering useful application context. - - - Niall Daley - Nicko Cadell - - - - Default constructor - - - - Default constructor - - - - - - Sends the contents of the cyclic buffer as an e-mail message. - - The logging events to send. - - - Sends the contents of the cyclic buffer as an e-mail message. - - - - - - Activate the options on this appender. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Convert a path into a fully qualified path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - - - - The security context to use for privileged calls - - - - - Gets or sets a semicolon-delimited list of recipient e-mail addresses. - - - A semicolon-delimited list of e-mail addresses. - - - - A semicolon-delimited list of e-mail addresses. - - - - - - Gets or sets the e-mail address of the sender. - - - The e-mail address of the sender. - - - - The e-mail address of the sender. - - - - - - Gets or sets the subject line of the e-mail message. - - - The subject line of the e-mail message. - - - - The subject line of the e-mail message. - - - - - - Gets or sets the path to write the messages to. - - - - Gets or sets the path to write the messages to. This should be the same - as that used by the agent sending the messages. - - - - - - Gets or sets the used to write to the pickup directory. - - - The used to write to the pickup directory. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appender that allows clients to connect via Telnet to receive log messages - - - - The TelnetAppender accepts socket connections and streams logging messages - back to the client. - The output is provided in a telnet-friendly way so that a log can be monitored - over a TCP/IP socket. - This allows simple remote monitoring of application logging. - - - The default is 23 (the telnet port). - - - Keith Long - Nicko Cadell - - - - Default constructor - - - - Default constructor - - - - - - The fully qualified type of the TelnetAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Overrides the parent method to close the socket handler - - - - Closes all the outstanding connections. - - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Create the socket handler and wait for connections - - - - - - Writes the logging event to each connected client. - - The event to log. - - - Writes the logging event to each connected client. - - - - - - Gets or sets the TCP port number on which this will listen for connections. - - - An integer value in the range to - indicating the TCP port number on which this will listen for connections. - - - - The default value is 23 (the telnet port). - - - The value specified is less than - or greater than . - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Helper class to manage connected clients - - - - The SocketHandler class is used to accept connections from - clients. It is threaded so that clients can connect/disconnect - asynchronously. - - - - - - Opens a new server port on - - the local port to listen on for connections - - - Creates a socket handler on the specified local server port. - - - - - - Sends a string message to each of the connected clients - - the text to send - - - Sends a string message to each of the connected clients - - - - - - Add a client to the internal clients list - - client to add - - - - Remove a client from the internal clients list - - client to remove - - - - Callback used to accept a connection on the server socket - - The result of the asynchronous operation - - - On connection adds to the list of connections - if there are two many open connections you will be disconnected - - - - - - Close all network connections - - - - Make sure we close all network connections - - - - - - Test if this handler has active connections - - - true if this handler has active connections - - - - This property will be true while this handler has - active connections, that is at least one connection that - the handler will attempt to send a message to. - - - - - - Class that represents a client connected to this handler - - - - Class that represents a client connected to this handler - - - - - - Create this for the specified - - the client's socket - - - Opens a stream writer on the socket. - - - - - - Write a string to the client - - string to send - - - Write a string to the client - - - - - - Cleanup the clients connection - - - - Close the socket connection. - - - - - - Appends log events to the system. - - - - The application configuration file can be used to control what listeners - are actually used. See the MSDN documentation for the - class for details on configuring the - trace system. - - - Events are written using the System.Diagnostics.Trace.Write(string,string) - method. The event's logger name is the default value for the category parameter - of the Write method. - - - Compact Framework
    - The Compact Framework does not support the - class for any operation except Assert. When using the Compact Framework this - appender will write to the system rather than - the Trace system. This appender will therefore behave like the . -
    -
    - Douglas de la Torre - Nicko Cadell - Gert Driesen - Ron Grabowski -
    - - - Initializes a new instance of the . - - - - Default constructor. - - - - - - Initializes a new instance of the - with a specified layout. - - The layout to use with this appender. - - - Obsolete constructor. - - - - - - Writes the logging event to the system. - - The event to log. - - - Writes the logging event to the system. - - - - - - Immediate flush means that the underlying writer or output stream - will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logs events are not actually written to persistent media if and - when the application crashes. - - - The default value is true. - - - - - Defaults to %logger - - - - - Gets or sets a value that indicates whether the appender will - flush at the end of each write. - - - The default behavior is to flush at the end of each - write. If the option is set tofalse, then the underlying - stream can defer writing to physical medium to a later time. - - - Avoiding the flush operation at the end of each append results - in a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - - The category parameter sent to the Trace method. - - - - Defaults to %logger which will use the logger name of the current - as the category parameter. - - - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Assembly level attribute that specifies a domain to alias to this assembly's repository. - - - - AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. - - - An assembly's logger repository is defined by its , - however this can be overridden by an assembly loaded before the target assembly. - - - An assembly can alias another assembly's domain to its repository by - specifying this attribute with the name of the target domain. - - - This attribute can only be specified on the assembly and may be used - as many times as necessary to alias all the required domains. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute that specifies a repository to alias to this assembly's repository. - - - - An assembly's logger repository is defined by its , - however this can be overridden by an assembly loaded before the target assembly. - - - An assembly can alias another assembly's repository to its repository by - specifying this attribute with the name of the target repository. - - - This attribute can only be specified on the assembly and may be used - as many times as necessary to alias all the required repositories. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class with - the specified repository to alias to this assembly's repository. - - The repository to alias to this assemby's repository. - - - Initializes a new instance of the class with - the specified repository to alias to this assembly's repository. - - - - - - Gets or sets the repository to alias to this assemby's repository. - - - The repository to alias to this assemby's repository. - - - - The name of the repository to alias to this assemby's repository. - - - - - - Initializes a new instance of the class with - the specified domain to alias to this assembly's repository. - - The domain to alias to this assemby's repository. - - - Obsolete. Use instead of . - - - - - - Use this class to quickly configure a . - - - - Allows very simple programmatic configuration of log4net. - - - Only one appender can be configured using this configurator. - The appender is set at the root of the hierarchy and all logging - events will be delivered to that appender. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - The fully qualified type of the BasicConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Initializes the log4net system with a default configuration. - - - - Initializes the log4net logging system using a - that will write to Console.Out. The log messages are - formatted using the layout object - with the - layout style. - - - - - - Initializes the log4net system using the specified appender. - - The appender to use to log all logging events. - - - Initializes the log4net system using the specified appender. - - - - - - Initializes the log4net system using the specified appenders. - - The appenders to use to log all logging events. - - - Initializes the log4net system using the specified appenders. - - - - - - Initializes the with a default configuration. - - The repository to configure. - - - Initializes the specified repository using a - that will write to Console.Out. The log messages are - formatted using the layout object - with the - layout style. - - - - - - Initializes the using the specified appender. - - The repository to configure. - The appender to use to log all logging events. - - - Initializes the using the specified appender. - - - - - - Initializes the using the specified appenders. - - The repository to configure. - The appenders to use to log all logging events. - - - Initializes the using the specified appender. - - - - - - Base class for all log4net configuration attributes. - - - This is an abstract class that must be extended by - specific configurators. This attribute allows the - configurator to be parameterized by an assembly level - attribute. - - Nicko Cadell - Gert Driesen - - - - Constructor used by subclasses. - - the ordering priority for this configurator - - - The is used to order the configurator - attributes before they are invoked. Higher priority configurators are executed - before lower priority ones. - - - - - - Configures the for the specified assembly. - - The assembly that this attribute was defined on. - The repository to configure. - - - Abstract method implemented by a subclass. When this method is called - the subclass should configure the . - - - - - - Compare this instance to another ConfiguratorAttribute - - the object to compare to - see - - - Compares the priorities of the two instances. - Sorts by priority in descending order. Objects with the same priority are - randomly ordered. - - - - - - Assembly level attribute that specifies the logging domain for the assembly. - - - - DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - Assemblies are mapped to logging domains. Each domain has its own - logging repository. This attribute specified on the assembly controls - the configuration of the domain. The property specifies the name - of the domain that this assembly is a part of. The - specifies the type of the repository objects to create for the domain. If - this attribute is not specified and a is not specified - then the assembly will be part of the default shared logging domain. - - - This attribute can only be specified on the assembly and may only be used - once per assembly. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute that specifies the logging repository for the assembly. - - - - Assemblies are mapped to logging repository. This attribute specified - on the assembly controls - the configuration of the repository. The property specifies the name - of the repository that this assembly is a part of. The - specifies the type of the object - to create for the assembly. If this attribute is not specified or a - is not specified then the assembly will be part of the default shared logging repository. - - - This attribute can only be specified on the assembly and may only be used - once per assembly. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initialize a new instance of the class - with the name of the repository. - - The name of the repository. - - - Initialize the attribute with the name for the assembly's repository. - - - - - - Gets or sets the name of the logging repository. - - - The string name to use as the name of the repository associated with this - assembly. - - - - This value does not have to be unique. Several assemblies can share the - same repository. They will share the logging configuration of the repository. - - - - - - Gets or sets the type of repository to create for this assembly. - - - The type of repository to create for this assembly. - - - - The type of the repository to create for the assembly. - The type must implement the - interface. - - - This will be the type of repository created when - the repository is created. If multiple assemblies reference the - same repository then the repository is only created once using the - of the first assembly to call into the - repository. - - - - - - Initializes a new instance of the class. - - - - Obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - - - - Initialize a new instance of the class - with the name of the domain. - - The name of the domain. - - - Obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - - - - Use this class to initialize the log4net environment using an Xml tree. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - Configures a using an Xml tree. - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - - - Automatically configures the log4net system based on the - application's configuration settings. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - 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 - log4net that contains the configuration data. - - - - - Automatically configures the using settings - stored in the application's configuration file. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - 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 - log4net that contains the configuration data. - - The repository to configure. - - - - Configures log4net using a log4net element - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - Loads the log4net configuration from the XML element - supplied as . - - The element to parse. - - - - Configures the using the specified XML - element. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - Loads the log4net configuration from the XML element - supplied as . - - The repository to configure. - The element to parse. - - - - Configures log4net using the specified configuration file. - - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures log4net using the specified configuration file. - - A stream to load the XML configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The stream to load the XML configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures log4net using the file specified, monitors the file for changes - and reloads the configuration if a change is detected. - - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the using the file specified, - monitors the file for changes and reloads the configuration if a change - is detected. - - The repository to configure. - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Assembly level attribute to configure the . - - - - AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute to configure the . - - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - If neither of the or - properties are set the configuration is loaded from the application's .config file. - If set the property takes priority over the - property. The property - specifies a path to a file to load the config from. The path is relative to the - application's base directory; . - The property is used as a postfix to the assembly file name. - The config file must be located in the application's base directory; . - For example in a console application setting the to - config has the same effect as not specifying the or - properties. - - - The property can be set to cause the - to watch the configuration file for changes. - - - - Log4net will only look for assembly level configuration attributes once. - When using the log4net assembly level attributes to control the configuration - of log4net you must ensure that the first call to any of the - methods is made from the assembly with the configuration - attributes. - - - If you cannot guarantee the order in which log4net calls will be made from - different assemblies you must use programmatic configuration instead, i.e. - call the method directly. - - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Default constructor - - - - - - Configures the for the specified assembly. - - The assembly that this attribute was defined on. - The repository to configure. - - - Configure the repository using the . - The specified must extend the - class otherwise the will not be able to - configure it. - - - The does not extend . - - - - Attempt to load configuration from the local file system - - The assembly that this attribute was defined on. - The repository to configure. - - - - Configure the specified repository using a - - The repository to configure. - the FileInfo pointing to the config file - - - - Attempt to load configuration from a URI - - The assembly that this attribute was defined on. - The repository to configure. - - - - The fully qualified type of the XmlConfiguratorAttribute class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the filename of the configuration file. - - - The filename of the configuration file. - - - - If specified, this is the name of the configuration file to use with - the . This file path is relative to the - application base directory (). - - - The takes priority over the . - - - - - - Gets or sets the extension of the configuration file. - - - The extension of the configuration file. - - - - If specified this is the extension for the configuration file. - The path to the config file is built by using the application - base directory (), - the assembly file name and the config file extension. - - - If the is set to MyExt then - possible config file names would be: MyConsoleApp.exe.MyExt or - MyClassLibrary.dll.MyExt. - - - The takes priority over the . - - - - - - Gets or sets a value indicating whether to watch the configuration file. - - - true if the configuration should be watched, false otherwise. - - - - If this flag is specified and set to true then the framework - will watch the configuration file and will reload the config each time - the file is modified. - - - The config file can only be watched if it is loaded from local disk. - In a No-Touch (Smart Client) deployment where the application is downloaded - from a web server the config file may not reside on the local disk - and therefore it may not be able to watch it. - - - Watching configuration is not supported on the SSCLI. - - - - - - Class to register for the log4net section of the configuration file - - - The log4net section of the configuration file needs to have a section - handler registered. This is the section handler used. It simply returns - the XML element that is the root of the section. - - - Example of registering the log4net section handler : - - - -
    - - - log4net configuration XML goes here - - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Parses the configuration section. - - The configuration settings in a corresponding parent configuration section. - The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. - The for the log4net section. - The for the log4net section. - - - Returns the containing the configuration data, - - - - - - Assembly level attribute that specifies a plugin to attach to - the repository. - - - - Specifies the type of a plugin to create and attach to the - assembly's repository. The plugin type must implement the - interface. - - - Nicko Cadell - Gert Driesen - - - - Interface used to create plugins. - - - - Interface used to create a plugin. - - - Nicko Cadell - Gert Driesen - - - - Creates the plugin object. - - the new plugin instance - - - Create and return a new plugin instance. - - - - - - Initializes a new instance of the class - with the specified type. - - The type name of plugin to create. - - - Create the attribute with the plugin type specified. - - - Where possible use the constructor that takes a . - - - - - - Initializes a new instance of the class - with the specified type. - - The type of plugin to create. - - - Create the attribute with the plugin type specified. - - - - - - Creates the plugin object defined by this attribute. - - - - Creates the instance of the object as - specified by this attribute. - - - The plugin object. - - - - Returns a representation of the properties of this object. - - - - Overrides base class method to - return a representation of the properties of this object. - - - A representation of the properties of this object - - - - Gets or sets the type for the plugin. - - - The type for the plugin. - - - - The type for the plugin. - - - - - - Gets or sets the type name for the plugin. - - - The type name for the plugin. - - - - The type name for the plugin. - - - Where possible use the property instead. - - - - - - Assembly level attribute to configure the . - - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - Nicko Cadell - - - - Construct provider attribute with type specified - - the type of the provider to use - - - The provider specified must subclass the - class. - - - - - - Configures the SecurityContextProvider - - The assembly that this attribute was defined on. - The repository to configure. - - - Creates a provider instance from the specified. - Sets this as the default security context provider . - - - - - - The fully qualified type of the SecurityContextProviderAttribute class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the type of the provider to use. - - - the type of the provider to use. - - - - The provider specified must subclass the - class. - - - - - - Use this class to initialize the log4net environment using an Xml tree. - - - - Configures a using an Xml tree. - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - - - Automatically configures the log4net system based on the - application's configuration settings. - - - - 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 - log4net that contains the configuration data. - - - To use this method to configure log4net you must specify - the section - handler for the log4net configuration section. See the - for an example. - - - - - - - Automatically configures the using settings - stored in the application's configuration file. - - - - 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 - log4net that contains the configuration data. - - - To use this method to configure log4net you must specify - the section - handler for the log4net configuration section. See the - for an example. - - - The repository to configure. - - - - Configures log4net using a log4net element - - - - Loads the log4net configuration from the XML element - supplied as . - - - The element to parse. - - - - Configures the using the specified XML - element. - - - Loads the log4net configuration from the XML element - supplied as . - - The repository to configure. - The element to parse. - - - - Configures log4net using the specified configuration file. - - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The first element matching <configuration> will be read as the - configuration. If this file is also a .NET .config file then you must specify - a configuration section for the log4net element otherwise .NET will - complain. Set the type for the section handler to , for example: - - -
    - - - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures log4net using the specified configuration URI. - - A URI to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The must support the URI scheme specified. - - - - - - Configures log4net using the specified configuration data stream. - - A stream to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The first element matching <configuration> will be read as the - configuration. If this file is also a .NET .config file then you must specify - a configuration section for the log4net element otherwise .NET will - complain. Set the type for the section handler to , for example: - - -
    - - - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures the using the specified configuration - URI. - - The repository to configure. - A URI to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The must support the URI scheme specified. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The stream to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures log4net using the file specified, monitors the file for changes - and reloads the configuration if a change is detected. - - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the using the file specified, - monitors the file for changes and reloads the configuration if a change - is detected. - - The repository to configure. - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the specified repository using a log4net element. - - The hierarchy to configure. - The element to parse. - - - Loads the log4net configuration from the XML element - supplied as . - - - This method is ultimately called by one of the Configure methods - to load the configuration from an . - - - - - - Maps repository names to ConfigAndWatchHandler instances to allow a particular - ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is - reconfigured. - - - - - The fully qualified type of the XmlConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Class used to watch config files. - - - - Uses the to monitor - changes to a specified file. Because multiple change notifications - may be raised when the file is modified, a timer is used to - compress the notifications into a single event. The timer - waits for time before delivering - the event notification. If any further - change notifications arrive while the timer is waiting it - is reset and waits again for to - elapse. - - - - - - The default amount of time to wait after receiving notification - before reloading the config file. - - - - - Holds the FileInfo used to configure the XmlConfigurator - - - - - Holds the repository being configured. - - - - - The timer used to compress the notification events. - - - - - Watches file for changes. This object should be disposed when no longer - needed to free system handles on the watched resources. - - - - - Initializes a new instance of the class to - watch a specified config file used to configure a repository. - - The repository to configure. - The configuration file to watch. - - - Initializes a new instance of the class. - - - - - - Event handler used by . - - The firing the event. - The argument indicates the file that caused the event to be fired. - - - This handler reloads the configuration from the file when the event is fired. - - - - - - Event handler used by . - - The firing the event. - The argument indicates the file that caused the event to be fired. - - - This handler reloads the configuration from the file when the event is fired. - - - - - - Called by the timer when the configuration has been updated. - - null - - - - Release the handles held by the watcher and timer. - - - - - The implementation of the interface suitable - for use with the compact framework - - - - This implementation is a simple - mapping between repository name and - object. - - - The .NET Compact Framework 1.0 does not support retrieving assembly - level attributes therefore unlike the DefaultRepositorySelector - this selector does not examine the calling assembly for attributes. - - - Nicko Cadell - - - - Interface used by the to select the . - - - - The uses a - to specify the policy for selecting the correct - to return to the caller. - - - Nicko Cadell - Gert Driesen - - - - Gets the for the specified assembly. - - The assembly to use to lookup to the - The for the assembly. - - - Gets the for the specified assembly. - - - How the association between and - is made is not defined. The implementation may choose any method for - this association. The results of this method must be repeatable, i.e. - when called again with the same arguments the result must be the - save value. - - - - - - Gets the named . - - The name to use to lookup to the . - The named - - Lookup a named . This is the repository created by - calling . - - - - - Creates a new repository for the assembly specified. - - The assembly to use to create the domain to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the domain - specified such that a call to with the - same assembly specified will return the same repository instance. - - - How the association between and - is made is not defined. The implementation may choose any method for - this association. - - - - - - Creates a new repository with the name specified. - - The name to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the name - specified such that a call to with the - same name will return the same repository instance. - - - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets an array of all currently defined repositories. - - - An array of the instances created by - this . - - - Gets an array of all of the repositories created by this selector. - - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - Create a new repository selector - - the type of the repositories to create, must implement - - - Create an new compact repository selector. - The default type for repositories must be specified, - an appropriate value would be . - - - throw if is null - throw if does not implement - - - - Get the for the specified assembly - - not used - The default - - - The argument is not used. This selector does not create a - separate repository for each assembly. - - - As a named repository is not specified the default repository is - returned. The default repository is named log4net-default-repository. - - - - - - Get the named - - the name of the repository to lookup - The named - - - Get the named . The default - repository is log4net-default-repository. Other repositories - must be created using the . - If the named repository does not exist an exception is thrown. - - - throw if is null - throw if the does not exist - - - - Create a new repository for the assembly specified - - not used - the type of repository to create, must implement - the repository created - - - The argument is not used. This selector does not create a - separate repository for each assembly. - - - If the is null then the - default repository type specified to the constructor is used. - - - As a named repository is not specified the default repository is - returned. The default repository is named log4net-default-repository. - - - - - - Create a new repository for the repository specified - - the repository to associate with the - the type of repository to create, must implement . - If this param is null then the default repository type is used. - the repository created - - - The created will be associated with the repository - specified such that a call to with the - same repository specified will return the same repository instance. - - - If the named repository already exists an exception will be thrown. - - - If is null then the default - repository type specified to the constructor is used. - - - throw if is null - throw if the already exists - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets a list of objects - - an array of all known objects - - - Gets an array of all of the repositories created by this selector. - - - - - - The fully qualified type of the CompactRepositorySelector class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Notify the registered listeners that the repository has been created - - The repository that has been created - - - Raises the LoggerRepositoryCreatedEvent - event. - - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - The default implementation of the interface. - - - - Uses attributes defined on the calling assembly to determine how to - configure the hierarchy for the repository. - - - Nicko Cadell - Gert Driesen - - - - Creates a new repository selector. - - The type of the repositories to create, must implement - - - Create an new repository selector. - The default type for repositories must be specified, - an appropriate value would be . - - - is . - does not implement . - - - - Gets the for the specified assembly. - - The assembly use to lookup the . - - - The type of the created and the repository - to create can be overridden by specifying the - attribute on the . - - - The default values are to use the - implementation of the interface and to use the - as the name of the repository. - - - The created will be automatically configured using - any attributes defined on - the . - - - The for the assembly - is . - - - - Gets the for the specified repository. - - The repository to use to lookup the . - The for the specified repository. - - - Returns the named repository. If is null - a is thrown. If the repository - does not exist a is thrown. - - - Use to create a repository. - - - is . - does not exist. - - - - Create a new repository for the assembly specified - - the assembly to use to create the repository to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The type of the created and - the repository to create can be overridden by specifying the - attribute on the - . The default values are to use the - implementation of the - interface and to use the - as the name of the repository. - - - The created will be automatically - configured using any - attributes defined on the . - - - If a repository for the already exists - that repository will be returned. An error will not be raised and that - repository may be of a different type to that specified in . - Also the attribute on the - assembly may be used to override the repository type specified in - . - - - is . - - - - Creates a new repository for the assembly specified. - - the assembly to use to create the repository to associate with the . - The type of repository to create, must implement . - The name to assign to the created repository - Set to true to read and apply the assembly attributes - The repository created. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The type of the created and - the repository to create can be overridden by specifying the - attribute on the - . The default values are to use the - implementation of the - interface and to use the - as the name of the repository. - - - The created will be automatically - configured using any - attributes defined on the . - - - If a repository for the already exists - that repository will be returned. An error will not be raised and that - repository may be of a different type to that specified in . - Also the attribute on the - assembly may be used to override the repository type specified in - . - - - is . - - - - Creates a new repository for the specified repository. - - The repository to associate with the . - The type of repository to create, must implement . - If this param is then the default repository type is used. - The new repository. - - - The created will be associated with the repository - specified such that a call to with the - same repository specified will return the same repository instance. - - - is . - already exists. - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets a list of objects - - an array of all known objects - - - Gets an array of all of the repositories created by this selector. - - - - - - Aliases a repository to an existing repository. - - The repository to alias. - The repository that the repository is aliased to. - - - The repository specified will be aliased to the repository when created. - The repository must not already exist. - - - When the repository is created it must utilize the same repository type as - the repository it is aliased to, otherwise the aliasing will fail. - - - - is . - -or- - is . - - - - - Notifies the registered listeners that the repository has been created. - - The repository that has been created. - - - Raises the event. - - - - - - Gets the repository name and repository type for the specified assembly. - - The assembly that has a . - in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. - in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. - is . - - - - Configures the repository using information from the assembly. - - The assembly containing - attributes which define the configuration for the repository. - The repository to configure. - - is . - -or- - is . - - - - - Loads the attribute defined plugins on the assembly. - - The assembly that contains the attributes. - The repository to add the plugins to. - - is . - -or- - is . - - - - - Loads the attribute defined aliases on the assembly. - - The assembly that contains the attributes. - The repository to alias to. - - is . - -or- - is . - - - - - The fully qualified type of the DefaultRepositorySelector class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - Defined error codes that can be passed to the method. - - - - Values passed to the method. - - - Nicko Cadell - - - - A general error - - - - - Error while writing output - - - - - Failed to flush file - - - - - Failed to close file - - - - - Unable to open output file - - - - - No layout specified - - - - - Failed to parse address - - - - - An evaluator that triggers on an Exception type - - - - This evaluator will trigger if the type of the Exception - passed to - is equal to a Type in . /// - - - Drew Schaeffer - - - - Test if an triggers an action - - - - Implementations of this interface allow certain appenders to decide - when to perform an appender specific action. - - - The action or behavior triggered is defined by the implementation. - - - Nicko Cadell - - - - Test if this event triggers the action - - The event to check - true if this event triggers the action, otherwise false - - - Return true if this event triggers the action - - - - - - The type that causes the trigger to fire. - - - - - Causes subclasses of to cause the trigger to fire. - - - - - Default ctor to allow dynamic creation through a configurator. - - - - - Constructs an evaluator and initializes to trigger on - - the type that triggers this evaluator. - If true, this evaluator will trigger on subclasses of . - - - - Is this the triggering event? - - The event to check - This method returns true, if the logging event Exception - Type is . - Otherwise it returns false - - - This evaluator will trigger if the Exception Type of the event - passed to - is . - - - - - - The type that triggers this evaluator. - - - - - If true, this evaluator will trigger on subclasses of . - - - - - Appenders may delegate their error handling to an . - - - - Error handling is a particularly tedious to get right because by - definition errors are hard to predict and to reproduce. - - - Nicko Cadell - Gert Driesen - - - - Handles the error and information about the error condition is passed as - a parameter. - - The message associated with the error. - The that was thrown when the error occurred. - The error code associated with the error. - - - Handles the error and information about the error condition is passed as - a parameter. - - - - - - Prints the error message passed as a parameter. - - The message associated with the error. - The that was thrown when the error occurred. - - - See . - - - - - - Prints the error message passed as a parameter. - - The message associated with the error. - - - See . - - - - - - Interface for objects that require fixing. - - - - Interface that indicates that the object requires fixing before it - can be taken outside the context of the appender's - method. - - - When objects that implement this interface are stored - in the context properties maps - and - are fixed - (see ) the - method will be called. - - - Nicko Cadell - - - - Get a portable version of this object - - the portable instance of this object - - - Get a portable instance object that represents the current - state of this object. The portable object can be stored - and logged from any thread with identical results. - - - - - - Interface that all loggers implement - - - - This interface supports logging events and testing if a level - is enabled for logging. - - - These methods will not throw exceptions. Note to implementor, ensure - that the implementation of these methods cannot allow an exception - to be thrown to the caller. - - - Nicko Cadell - Gert Driesen - - - - This generic form is intended to be used by wrappers. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - the exception to log, including its stack trace. Pass null to not log an exception. - - - Generates a logging event for the specified using - the and . - - - - - - This is the most generic printing method that is intended to be used - by wrappers. - - The event being logged. - - - Logs the specified logging event through this logger. - - - - - - Checks if this logger is enabled for a given passed as parameter. - - The level to check. - - true if this logger is enabled for level, otherwise false. - - - - Test if this logger is going to log events of the specified . - - - - - - Gets the name of the logger. - - - The name of the logger. - - - - The name of this logger - - - - - - Gets the where this - Logger instance is attached to. - - - The that this logger belongs to. - - - - Gets the where this - Logger instance is attached to. - - - - - - Base interface for all wrappers - - - - Base interface for all wrappers. - - - All wrappers must implement this interface. - - - Nicko Cadell - - - - Get the implementation behind this wrapper object. - - - The object that in implementing this object. - - - - The object that in implementing this - object. The Logger object may not - be the same object as this object because of logger decorators. - This gets the actual underlying objects that is used to process - the log events. - - - - - - Delegate used to handle logger repository creation event notifications - - The which created the repository. - The event args - that holds the instance that has been created. - - - Delegate used to handle logger repository creation event notifications. - - - - - - Provides data for the event. - - - - A - event is raised every time a is created. - - - - - - The created - - - - - Construct instance using specified - - the that has been created - - - Construct instance using specified - - - - - - The that has been created - - - The that has been created - - - - The that has been created - - - - - - Defines the default set of levels recognized by the system. - - - - Each has an associated . - - - Levels have a numeric that defines the relative - ordering between levels. Two Levels with the same - are deemed to be equivalent. - - - The levels that are recognized by log4net are set for each - and each repository can have different levels defined. The levels are stored - in the on the repository. Levels are - looked up by name from the . - - - When logging at level INFO the actual level used is not but - the value of LoggerRepository.LevelMap["INFO"]. The default value for this is - , but this can be changed by reconfiguring the level map. - - - Each level has a in addition to its . The - is the string that is written into the output log. By default - the display name is the same as the level name, but this can be used to alias levels - or to localize the log output. - - - Some of the predefined levels recognized by the system are: - - - - . - - - . - - - . - - - . - - - . - - - . - - - . - - - - Nicko Cadell - Gert Driesen - - - - Constructor - - Integer value for this level, higher values represent more severe levels. - The string name of this level. - The display name for this level. This may be localized or otherwise different from the name - - - Initializes a new instance of the class with - the specified level name and value. - - - - - - Constructor - - Integer value for this level, higher values represent more severe levels. - The string name of this level. - - - Initializes a new instance of the class with - the specified level name and value. - - - - - - Returns the representation of the current - . - - - A representation of the current . - - - - Returns the level . - - - - - - Compares levels. - - The object to compare against. - true if the objects are equal. - - - Compares the levels of instances, and - defers to base class if the target object is not a - instance. - - - - - - Returns a hash code - - A hash code for the current . - - - Returns a hash code suitable for use in hashing algorithms and data - structures like a hash table. - - - Returns the hash code of the level . - - - - - - Compares this instance to a specified object and returns an - indication of their relative values. - - A instance or to compare with this instance. - - A 32-bit signed integer that indicates the relative order of the - values compared. The return value has these meanings: - - - Value - Meaning - - - Less than zero - This instance is less than . - - - Zero - This instance is equal to . - - - Greater than zero - - This instance is greater than . - -or- - is . - - - - - - - must be an instance of - or ; otherwise, an exception is thrown. - - - is not a . - - - - Returns a value indicating whether a specified - is greater than another specified . - - A - A - - true if is greater than - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is less than another specified . - - A - A - - true if is less than - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is greater than or equal to another specified . - - A - A - - true if is greater than or equal to - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is less than or equal to another specified . - - A - A - - true if is less than or equal to - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether two specified - objects have the same value. - - A or . - A or . - - true if the value of is the same as the - value of ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether two specified - objects have different values. - - A or . - A or . - - true if the value of is different from - the value of ; otherwise, false. - - - - Compares two levels. - - - - - - Compares two specified instances. - - The first to compare. - The second to compare. - - A 32-bit signed integer that indicates the relative order of the - two values compared. The return value has these meanings: - - - Value - Meaning - - - Less than zero - is less than . - - - Zero - is equal to . - - - Greater than zero - is greater than . - - - - - - Compares two levels. - - - - - - The level designates a higher level than all the rest. - - - - - The level designates very severe error events. - System unusable, emergencies. - - - - - The level designates very severe error events. - System unusable, emergencies. - - - - - The level designates very severe error events - that will presumably lead the application to abort. - - - - - The level designates very severe error events. - Take immediate action, alerts. - - - - - The level designates very severe error events. - Critical condition, critical. - - - - - The level designates very severe error events. - - - - - The level designates error events that might - still allow the application to continue running. - - - - - The level designates potentially harmful - situations. - - - - - The level designates informational messages - that highlight the progress of the application at the highest level. - - - - - The level designates informational messages that - highlight the progress of the application at coarse-grained level. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates the lowest level possible. - - - - - Gets the name of this level. - - - The name of this level. - - - - Gets the name of this level. - - - - - - Gets the value of this level. - - - The value of this level. - - - - Gets the value of this level. - - - - - - Gets the display name of this level. - - - The display name of this level. - - - - Gets the display name of this level. - - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a LevelCollection instance. - - list to create a readonly wrapper arround - - A LevelCollection wrapper that is read-only. - - - - - Initializes a new instance of the LevelCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the LevelCollection class - that has the specified initial capacity. - - - The number of elements that the new LevelCollection is initially capable of storing. - - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified LevelCollection. - - The LevelCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - Copies the entire LevelCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire LevelCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the LevelCollection. - - The to be added to the end of the LevelCollection. - The index at which the value has been added. - - - - Removes all elements from the LevelCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the LevelCollection. - - The to check for. - true if is found in the LevelCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the LevelCollection. - - The to locate in the LevelCollection. - - The zero-based index of the first occurrence of - in the entire LevelCollection, if found; otherwise, -1. - - - - - Inserts an element into the LevelCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the LevelCollection. - - The to remove from the LevelCollection. - - The specified was not found in the LevelCollection. - - - - - Removes the element at the specified index of the LevelCollection. - - The zero-based index of the element to remove. - - is less than zero - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the LevelCollection. - - An for the entire LevelCollection. - - - - Adds the elements of another LevelCollection to the current LevelCollection. - - The LevelCollection whose elements should be added to the end of the current LevelCollection. - The new of the LevelCollection. - - - - Adds the elements of a array to the current LevelCollection. - - The array whose elements should be added to the end of the LevelCollection. - The new of the LevelCollection. - - - - Adds the elements of a collection to the current LevelCollection. - - The collection whose elements should be added to the end of the LevelCollection. - The new of the LevelCollection. - - - - Sets the capacity to the actual number of elements. - - - - - is less than zero - -or- - is equal to or greater than . - - - - - is less than zero - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the LevelCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - The zero-based index of the element to get or set. - - is less than zero - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false - - - - Gets or sets the number of elements the LevelCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - A value - - - - - Supports simple iteration over a . - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - An evaluator that triggers at a threshold level - - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - Nicko Cadell - - - - The threshold for triggering - - - - - Create a new evaluator using the threshold. - - - - Create a new evaluator using the threshold. - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Create a new evaluator using the specified threshold. - - the threshold to trigger at - - - Create a new evaluator using the specified threshold. - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Is this the triggering event? - - The event to check - This method returns true, if the event level - is equal or higher than the . - Otherwise it returns false - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - the threshold to trigger at - - - The that will cause this evaluator to trigger - - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Mapping between string name and Level object - - - - Mapping between string name and object. - This mapping is held separately for each . - The level name is case insensitive. - - - Nicko Cadell - - - - Mapping from level name to Level object. The - level name is case insensitive - - - - - Construct the level map - - - - Construct the level map. - - - - - - Clear the internal maps of all levels - - - - Clear the internal maps of all levels - - - - - - Create a new Level and add it to the map - - the string to display for the Level - the level value to give to the Level - - - Create a new Level and add it to the map - - - - - - - Create a new Level and add it to the map - - the string to display for the Level - the level value to give to the Level - the display name to give to the Level - - - Create a new Level and add it to the map - - - - - - Add a Level to the map - - the Level to add - - - Add a Level to the map - - - - - - Lookup a named level from the map - - the name of the level to lookup is taken from this level. - If the level is not set on the map then this level is added - the level in the map with the name specified - - - Lookup a named level from the map. The name of the level to lookup is taken - from the property of the - argument. - - - If no level with the specified name is found then the - argument is added to the level map - and returned. - - - - - - Lookup a by name - - The name of the Level to lookup - a Level from the map with the name specified - - - Returns the from the - map with the name specified. If the no level is - found then null is returned. - - - - - - Return all possible levels as a list of Level objects. - - all possible levels as a list of Level objects - - - Return all possible levels as a list of Level objects. - - - - - - The internal representation of caller location information. - - - - This class uses the System.Diagnostics.StackTrace class to generate - a call stack. The caller's information is then extracted from this stack. - - - The System.Diagnostics.StackTrace class is not supported on the - .NET Compact Framework 1.0 therefore caller location information is not - available on that framework. - - - The System.Diagnostics.StackTrace class has this to say about Release builds: - - - "StackTrace information will be most informative with Debug build configurations. - By default, Debug builds include debug symbols, while Release builds do not. The - debug symbols contain most of the file, method name, line number, and column - information used in constructing StackFrame and StackTrace objects. StackTrace - might not report as many method calls as expected, due to code transformations - that occur during optimization." - - - This means that in a Release build the caller information may be incomplete or may - not exist at all! Therefore caller location information cannot be relied upon in a Release build. - - - Nicko Cadell - Gert Driesen - - - - When location information is not available the constant - NA is returned. Current value of this string - constant is ?. - - - - - Constructor - - The declaring type of the method that is - the stack boundary into the logging system for this call. - - - Initializes a new instance of the - class based on the current thread. - - - - - - Constructor - - The fully qualified class name. - The method name. - The file name. - The line number of the method within the file. - - - Initializes a new instance of the - class with the specified data. - - - - - - The fully qualified type of the LocationInfo class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the fully qualified class name of the caller making the logging - request. - - - The fully qualified class name of the caller making the logging - request. - - - - Gets the fully qualified class name of the caller making the logging - request. - - - - - - Gets the file name of the caller. - - - The file name of the caller. - - - - Gets the file name of the caller. - - - - - - Gets the line number of the caller. - - - The line number of the caller. - - - - Gets the line number of the caller. - - - - - - Gets the method name of the caller. - - - The method name of the caller. - - - - Gets the method name of the caller. - - - - - - Gets all available caller information - - - All available caller information, in the format - fully.qualified.classname.of.caller.methodName(Filename:line) - - - - Gets all available caller information, in the format - fully.qualified.classname.of.caller.methodName(Filename:line) - - - - - - Gets the stack frames from the stack trace of the caller making the log request - - - - - Static manager that controls the creation of repositories - - - - Static manager that controls the creation of repositories - - - This class is used by the wrapper managers (e.g. ) - to provide access to the objects. - - - This manager also holds the that is used to - lookup and create repositories. The selector can be set either programmatically using - the property, or by setting the log4net.RepositorySelector - AppSetting in the applications config file to the fully qualified type name of the - selector to use. - - - Nicko Cadell - Gert Driesen - - - - Private constructor to prevent instances. Only static methods should be used. - - - - Private constructor to prevent instances. Only static methods should be used. - - - - - - Hook the shutdown event - - - - On the full .NET runtime, the static constructor hooks up the - AppDomain.ProcessExit and AppDomain.DomainUnload> events. - These are used to shutdown the log4net system as the application exits. - - - - - - Register for ProcessExit and DomainUnload events on the AppDomain - - - - This needs to be in a separate method because the events make - a LinkDemand for the ControlAppDomain SecurityPermission. Because - this is a LinkDemand it is demanded at JIT time. Therefore we cannot - catch the exception in the method itself, we have to catch it in the - caller. - - - - - - Return the default instance. - - the repository to lookup in - Return the default instance - - - Gets the for the repository specified - by the argument. - - - - - - Returns the default instance. - - The assembly to use to lookup the repository. - The default instance. - - - - Return the default instance. - - the repository to lookup in - Return the default instance - - - Gets the for the repository specified - by the argument. - - - - - - Returns the default instance. - - The assembly to use to lookup the repository. - The default instance. - - - Returns the default instance. - - - - - - Returns the named logger if it exists. - - The repository to lookup in. - The fully qualified logger name to look for. - - The logger found, or null if the named logger does not exist in the - specified repository. - - - - If the named logger exists (in the specified repository) then it - returns a reference to the logger, otherwise it returns - null. - - - - - - Returns the named logger if it exists. - - The assembly to use to lookup the repository. - The fully qualified logger name to look for. - - The logger found, or null if the named logger does not exist in the - specified assembly's repository. - - - - If the named logger exists (in the specified assembly's repository) then it - returns a reference to the logger, otherwise it returns - null. - - - - - - Returns all the currently defined loggers in the specified repository. - - The repository to lookup in. - All the defined loggers. - - - The root logger is not included in the returned array. - - - - - - Returns all the currently defined loggers in the specified assembly's repository. - - The assembly to use to lookup the repository. - All the defined loggers. - - - The root logger is not included in the returned array. - - - - - - Retrieves or creates a named logger. - - The repository to lookup in. - The name of the logger to retrieve. - The logger with the name specified. - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - - - - Retrieves or creates a named logger. - - The assembly to use to lookup the repository. - The name of the logger to retrieve. - The logger with the name specified. - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - - - - Shorthand for . - - The repository to lookup in. - The of which the fullname will be used as the name of the logger to retrieve. - The logger with the name specified. - - - Gets the logger for the fully qualified name of the type specified. - - - - - - Shorthand for . - - the assembly to use to lookup the repository - The of which the fullname will be used as the name of the logger to retrieve. - The logger with the name specified. - - - Gets the logger for the fully qualified name of the type specified. - - - - - - Shuts down the log4net system. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in all the - default repositories. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - The repository to shutdown. - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository for the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - The assembly to use to lookup the repository. - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository for the repository. The repository is looked up using - the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Resets all values contained in this repository instance to their defaults. - - The repository to reset. - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - - - - Resets all values contained in this repository instance to their defaults. - - The assembly to use to lookup the repository to reset. - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - - - - Creates a repository with the specified name. - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name. - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The name must be unique. Repositories cannot be redefined. - An Exception will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The name must be unique. Repositories cannot be redefined. - An Exception will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository for the specified assembly and repository type. - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - - - - Creates a repository for the specified assembly and repository type. - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - - - - Gets an array of all currently defined repositories. - - An array of all the known objects. - - - Gets an array of all currently defined repositories. - - - - - - Internal method to get pertinent version info. - - A string of version info. - - - - Called when the event fires - - the that is exiting - null - - - Called when the event fires. - - - When the event is triggered the log4net system is . - - - - - - Called when the event fires - - the that is exiting - null - - - Called when the event fires. - - - When the event is triggered the log4net system is . - - - - - - The fully qualified type of the LoggerManager class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Initialize the default repository selector - - - - - Gets or sets the repository selector used by the . - - - The repository selector used by the . - - - - The repository selector () is used by - the to create and select repositories - (). - - - The caller to supplies either a string name - or an assembly (if not supplied the assembly is inferred using - ). - - - This context is used by the selector to lookup a specific repository. - - - For the full .NET Framework, the default repository is DefaultRepositorySelector; - for the .NET Compact Framework CompactRepositorySelector is the default - repository. - - - - - - Implementation of the interface. - - - - This class should be used as the base for all wrapper implementations. - - - Nicko Cadell - Gert Driesen - - - - Constructs a new wrapper for the specified logger. - - The logger to wrap. - - - Constructs a new wrapper for the specified logger. - - - - - - The logger that this object is wrapping - - - - - Gets the implementation behind this wrapper object. - - - The object that this object is implementing. - - - - The Logger object may not be the same object as this object - because of logger decorators. - - - This gets the actual underlying objects that is used to process - the log events. - - - - - - Portable data structure used by - - - - Portable data structure used by - - - Nicko Cadell - - - - The logger name. - - - - The logger name. - - - - - - Level of logging event. - - - - Level of logging event. Level cannot be Serializable - because it is a flyweight. Due to its special serialization it - cannot be declared final either. - - - - - - The application supplied message. - - - - The application supplied message of logging event. - - - - - - The name of thread - - - - The name of thread in which this logging event was generated - - - - - - The time the event was logged - - - - The TimeStamp is stored in the local time zone for this computer. - - - - - - Location information for the caller. - - - - Location information for the caller. - - - - - - String representation of the user - - - - String representation of the user's windows name, - like DOMAIN\username - - - - - - String representation of the identity. - - - - String representation of the current thread's principal identity. - - - - - - The string representation of the exception - - - - The string representation of the exception - - - - - - String representation of the AppDomain. - - - - String representation of the AppDomain. - - - - - - Additional event specific properties - - - - A logger or an appender may attach additional - properties to specific events. These properties - have a string key and an object value. - - - - - - Flags passed to the property - - - - Flags passed to the property - - - Nicko Cadell - - - - Fix the MDC - - - - - Fix the NDC - - - - - Fix the rendered message - - - - - Fix the thread name - - - - - Fix the callers location information - - - CAUTION: Very slow to generate - - - - - Fix the callers windows user name - - - CAUTION: Slow to generate - - - - - Fix the domain friendly name - - - - - Fix the callers principal name - - - CAUTION: May be slow to generate - - - - - Fix the exception text - - - - - Fix the event properties. Active properties must implement in order to be eligible for fixing. - - - - - No fields fixed - - - - - All fields fixed - - - - - Partial fields fixed - - - - This set of partial fields gives good performance. The following fields are fixed: - - - - - - - - - - - - - The internal representation of logging events. - - - - When an affirmative decision is made to log then a - instance is created. This instance - is passed around to the different log4net components. - - - This class is of concern to those wishing to extend log4net. - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - for incurred by calling but it - is essential to maintaining data consistency. - - - Nicko Cadell - Gert Driesen - Douglas de la Torre - Daniel Cazzulino - - - - The key into the Properties map for the host name value. - - - - - The key into the Properties map for the thread identity value. - - - - - The key into the Properties map for the user name value. - - - - - Initializes a new instance of the class - from the supplied parameters. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - The name of the logger of this event. - The level of this event. - The message of this event. - The exception for this event. - - - Except , and , - all fields of LoggingEvent are filled when actually needed. Call - to cache all data locally - to prevent inconsistencies. - - This method is called by the log4net framework - to create a logging event. - - - - - - Initializes a new instance of the class - using specific data. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - Data used to initialize the logging event. - The fields in the struct that have already been fixed. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - The parameter should be used to specify which fields in the - struct have been preset. Fields not specified in the - will be captured from the environment if requested or fixed. - - - - - - Initializes a new instance of the class - using specific data. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - Data used to initialize the logging event. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - This constructor sets this objects flags to , - this assumes that all the data relating to this event is passed in via the - parameter and no other data should be captured from the environment. - - - - - - Initializes a new instance of the class - using specific data. - - Data used to initialize the logging event. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - This constructor sets this objects flags to , - this assumes that all the data relating to this event is passed in via the - parameter and no other data should be captured from the environment. - - - - - - Serialization constructor - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Ensure that the repository is set. - - the value for the repository - - - - Write the rendered message to a TextWriter - - the writer to write the message to - - - Unlike the property this method - does store the message data in the internal cache. Therefore - if called only once this method should be faster than the - property, however if the message is - to be accessed multiple times then the property will be more efficient. - - - - - - Serializes this object into the provided. - - The to populate with data. - The destination for this serialization. - - - The data in this event must be fixed before it can be serialized. - - - The method must be called during the - method call if this event - is to be used outside that method. - - - - - - Gets the portable data for this . - - The for this event. - - - A new can be constructed using a - instance. - - - Does a fix of the data - in the logging event before returning the event data. - - - - - - Gets the portable data for this . - - The set of data to ensure is fixed in the LoggingEventData - The for this event. - - - A new can be constructed using a - instance. - - - - - - Returns this event's exception's rendered using the - . - - - This event's exception's rendered using the . - - - - Obsolete. Use instead. - - - - - - Returns this event's exception's rendered using the - . - - - This event's exception's rendered using the . - - - - Returns this event's exception's rendered using the - . - - - - - - Fix instance fields that hold volatile data. - - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - incurred by calling but it - is essential to maintaining data consistency. - - - Calling is equivalent to - calling passing the parameter - false. - - - See for more - information. - - - - - - Fixes instance fields that hold volatile data. - - Set to true to not fix data that takes a long time to fix. - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - for incurred by calling but it - is essential to maintaining data consistency. - - - The param controls the data that - is fixed. Some of the data that can be fixed takes a long time to - generate, therefore if you do not require those settings to be fixed - they can be ignored by setting the param - to true. This setting will ignore the - and settings. - - - Set to false to ensure that all - settings are fixed. - - - - - - Fix the fields specified by the parameter - - the fields to fix - - - Only fields specified in the will be fixed. - Fields will not be fixed if they have previously been fixed. - It is not possible to 'unfix' a field. - - - - - - Lookup a composite property in this event - - the key for the property to lookup - the value for the property - - - This event has composite properties that combine together properties from - several different contexts in the following order: - - - this events properties - - This event has that can be set. These - properties are specific to this event only. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - - - Get all the composite properties in this event - - the containing all the properties - - - See for details of the composite properties - stored by the event. - - - This method returns a single containing all the - properties defined for this event. - - - - - - The internal logging event data. - - - - - The internal logging event data. - - - - - The internal logging event data. - - - - - The fully qualified Type of the calling - logger class in the stack frame (i.e. the declaring type of the method). - - - - - The application supplied message of logging event. - - - - - The exception that was thrown. - - - This is not serialized. The string representation - is serialized instead. - - - - - The repository that generated the logging event - - - This is not serialized. - - - - - The fix state for this event - - - These flags indicate which fields have been fixed. - Not serialized. - - - - - Indicated that the internal cache is updateable (ie not fixed) - - - This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler - changes in the caching strategy. - - - - - Gets the time when the current process started. - - - This is the time when this process started. - - - - The TimeStamp is stored in the local time zone for this computer. - - - Tries to get the start time for the current process. - Failing that it returns the time of the first call to - this property. - - - Note that AppDomains may be loaded and unloaded within the - same process without the process terminating and therefore - without the process start time being reset. - - - - - - Gets the of the logging event. - - - The of the logging event. - - - - Gets the of the logging event. - - - - - - Gets the time of the logging event. - - - The time of the logging event. - - - - The TimeStamp is stored in the local time zone for this computer. - - - - - - Gets the name of the logger that logged the event. - - - The name of the logger that logged the event. - - - - Gets the name of the logger that logged the event. - - - - - - Gets the location information for this logging event. - - - The location information for this logging event. - - - - The collected information is cached for future use. - - - See the class for more information on - supported frameworks and the different behavior in Debug and - Release builds. - - - - - - Gets the message object used to initialize this event. - - - The message object used to initialize this event. - - - - Gets the message object used to initialize this event. - Note that this event may not have a valid message object. - If the event is serialized the message object will not - be transferred. To get the text of the message the - property must be used - not this property. - - - If there is no defined message object for this event then - null will be returned. - - - - - - Gets the exception object used to initialize this event. - - - The exception object used to initialize this event. - - - - Gets the exception object used to initialize this event. - Note that this event may not have a valid exception object. - If the event is serialized the exception object will not - be transferred. To get the text of the exception the - method must be used - not this property. - - - If there is no defined exception object for this event then - null will be returned. - - - - - - The that this event was created in. - - - - The that this event was created in. - - - - - - Gets the message, rendered through the . - - - The message rendered through the . - - - - The collected information is cached for future use. - - - - - - Gets the name of the current thread. - - - The name of the current thread, or the thread ID when - the name is not available. - - - - The collected information is cached for future use. - - - - - - Gets the name of the current user. - - - The name of the current user, or NOT AVAILABLE when the - underlying runtime has no support for retrieving the name of the - current user. - - - - Calls WindowsIdentity.GetCurrent().Name to get the name of - the current windows user. - - - To improve performance, we could cache the string representation of - the name, and reuse that as long as the identity stayed constant. - Once the identity changed, we would need to re-assign and re-render - the string. - - - However, the WindowsIdentity.GetCurrent() call seems to - return different objects every time, so the current implementation - doesn't do this type of caching. - - - Timing for these operations: - - - - Method - Results - - - WindowsIdentity.GetCurrent() - 10000 loops, 00:00:00.2031250 seconds - - - WindowsIdentity.GetCurrent().Name - 10000 loops, 00:00:08.0468750 seconds - - - - This means we could speed things up almost 40 times by caching the - value of the WindowsIdentity.GetCurrent().Name property, since - this takes (8.04-0.20) = 7.84375 seconds. - - - - - - Gets the identity of the current thread principal. - - - The string name of the identity of the current thread principal. - - - - Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get - the name of the current thread principal. - - - - - - Gets the AppDomain friendly name. - - - The AppDomain friendly name. - - - - Gets the AppDomain friendly name. - - - - - - Additional event specific properties. - - - Additional event specific properties. - - - - A logger or an appender may attach additional - properties to specific events. These properties - have a string key and an object value. - - - This property is for events that have been added directly to - this event. The aggregate properties (which include these - event properties) can be retrieved using - and . - - - Once the properties have been fixed this property - returns the combined cached properties. This ensures that updates to - this property are always reflected in the underlying storage. When - returning the combined properties there may be more keys in the - Dictionary than expected. - - - - - - The fixed fields in this event - - - The set of fields that are fixed in this event - - - - Fields will not be fixed if they have previously been fixed. - It is not possible to 'unfix' a field. - - - - - - Implementation of wrapper interface. - - - - This implementation of the interface - forwards to the held by the base class. - - - This logger has methods to allow the caller to log at the following - levels: - - - - DEBUG - - The and methods log messages - at the DEBUG level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - INFO - - The and methods log messages - at the INFO level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - WARN - - The and methods log messages - at the WARN level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - ERROR - - The and methods log messages - at the ERROR level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - FATAL - - The and methods log messages - at the FATAL level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - - The values for these levels and their semantic meanings can be changed by - configuring the for the repository. - - - Nicko Cadell - Gert Driesen - - - - The ILog interface is use by application to log messages into - the log4net framework. - - - - Use the to obtain logger instances - that implement this interface. The - static method is used to get logger instances. - - - This class contains methods for logging at different levels and also - has properties for determining if those logging levels are - enabled in the current configuration. - - - This interface can be implemented in different ways. This documentation - specifies reasonable behavior that a caller can expect from the actual - implementation, however different implementations reserve the right to - do things differently. - - - Simple example of logging messages - - ILog log = LogManager.GetLogger("application-log"); - - log.Info("Application Start"); - log.Debug("This is a debug message"); - - if (log.IsDebugEnabled) - { - log.Debug("This is another debug message"); - } - - - - - Nicko Cadell - Gert Driesen - - - Log a message object with the level. - - Log a message object with the level. - - The message object to log. - - - This method first checks if this logger is DEBUG - enabled by comparing the level of this logger with the - level. If this logger is - DEBUG enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of - the additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Logs a message object with the level. - - - - This method first checks if this logger is INFO - enabled by comparing the level of this logger with the - level. If this logger is - INFO enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Logs a message object with the INFO level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Log a message object with the level. - - - - This method first checks if this logger is WARN - enabled by comparing the level of this logger with the - level. If this logger is - WARN enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Logs a message object with the level. - - The message object to log. - - - This method first checks if this logger is ERROR - enabled by comparing the level of this logger with the - level. If this logger is - ERROR enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Log a message object with the level. - - - - This method first checks if this logger is FATAL - enabled by comparing the level of this logger with the - level. If this logger is - FATAL enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - - This function is intended to lessen the computational cost of - disabled log debug statements. - - For some ILog interface log, when you write: - - log.Debug("This is entry number: " + i ); - - - You incur the cost constructing the message, string construction and concatenation in - this case, regardless of whether the message is logged or not. - - - If you are worried about speed (who isn't), then you should write: - - - if (log.IsDebugEnabled) - { - log.Debug("This is entry number: " + i ); - } - - - This way you will not incur the cost of parameter - construction if debugging is disabled for log. On - the other hand, if the log is debug enabled, you - will incur the cost of evaluating whether the logger is debug - enabled twice. Once in and once in - the . This is an insignificant overhead - since evaluating a logger takes about 1% of the time it - takes to actually log. This is the preferred style of logging. - - Alternatively if your logger is available statically then the is debug - enabled state can be stored in a static variable like this: - - - private static readonly bool isDebugEnabled = log.IsDebugEnabled; - - - Then when you come to log you can write: - - - if (isDebugEnabled) - { - log.Debug("This is entry number: " + i ); - } - - - This way the debug enabled state is only queried once - when the class is loaded. Using a private static readonly - variable is the most efficient because it is a run time constant - and can be heavily optimized by the JIT compiler. - - - Of course if you use a static readonly variable to - hold the enabled state of the logger then you cannot - change the enabled state at runtime to vary the logging - that is produced. You have to decide if you need absolute - speed or runtime flexibility. - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Construct a new wrapper for the specified logger. - - The logger to wrap. - - - Construct a new wrapper for the specified logger. - - - - - - Virtual method called when the configuration of the repository changes - - the repository holding the levels - - - Virtual method called when the configuration of the repository changes - - - - - - Logs a message object with the DEBUG level. - - The message object to log. - - - This method first checks if this logger is DEBUG - enabled by comparing the level of this logger with the - DEBUG level. If this logger is - DEBUG enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the DEBUG level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the DEBUG level including - the stack trace of the passed - as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the INFO level. - - The message object to log. - - - This method first checks if this logger is INFO - enabled by comparing the level of this logger with the - INFO level. If this logger is - INFO enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of - the additivity flag. - - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the INFO level. - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the INFO level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the WARN level. - - the message object to log - - - This method first checks if this logger is WARN - enabled by comparing the level of this logger with the - WARN level. If this logger is - WARN enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the WARN level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the WARN level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the ERROR level. - - The message object to log. - - - This method first checks if this logger is ERROR - enabled by comparing the level of this logger with the - ERROR level. If this logger is - ERROR enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the ERROR level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the ERROR level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the FATAL level. - - The message object to log. - - - This method first checks if this logger is FATAL - enabled by comparing the level of this logger with the - FATAL level. If this logger is - FATAL enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the FATAL level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the FATAL level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Event handler for the event - - the repository - Empty - - - - The fully qualified name of this declaring type not the type of any subclass. - - - - - Checks if this logger is enabled for the DEBUG - level. - - - true if this logger is enabled for DEBUG events, - false otherwise. - - - - This function is intended to lessen the computational cost of - disabled log debug statements. - - - For some log Logger object, when you write: - - - log.Debug("This is entry number: " + i ); - - - You incur the cost constructing the message, concatenation in - this case, regardless of whether the message is logged or not. - - - If you are worried about speed, then you should write: - - - if (log.IsDebugEnabled()) - { - log.Debug("This is entry number: " + i ); - } - - - This way you will not incur the cost of parameter - construction if debugging is disabled for log. On - the other hand, if the log is debug enabled, you - will incur the cost of evaluating whether the logger is debug - enabled twice. Once in IsDebugEnabled and once in - the Debug. This is an insignificant overhead - since evaluating a logger takes about 1% of the time it - takes to actually log. - - - - - - Checks if this logger is enabled for the INFO level. - - - true if this logger is enabled for INFO events, - false otherwise. - - - - See for more information and examples - of using this method. - - - - - - - Checks if this logger is enabled for the WARN level. - - - true if this logger is enabled for WARN events, - false otherwise. - - - - See for more information and examples - of using this method. - - - - - - - Checks if this logger is enabled for the ERROR level. - - - true if this logger is enabled for ERROR events, - false otherwise. - - - - See for more information and examples of using this method. - - - - - - - Checks if this logger is enabled for the FATAL level. - - - true if this logger is enabled for FATAL events, - false otherwise. - - - - See for more information and examples of using this method. - - - - - - - A SecurityContext used by log4net when interacting with protected resources - - - - A SecurityContext used by log4net when interacting with protected resources - for example with operating system services. This can be used to impersonate - a principal that has been granted privileges on the system resources. - - - Nicko Cadell - - - - Impersonate this SecurityContext - - State supplied by the caller - An instance that will - revoke the impersonation of this SecurityContext, or null - - - Impersonate this security context. Further calls on the current - thread should now be made in the security context provided - by this object. When the result - method is called the security - context of the thread should be reverted to the state it was in - before was called. - - - - - - The providers default instances. - - - - A configured component that interacts with potentially protected system - resources uses a to provide the elevated - privileges required. If the object has - been not been explicitly provided to the component then the component - will request one from this . - - - By default the is - an instance of which returns only - objects. This is a reasonable default - where the privileges required are not know by the system. - - - This default behavior can be overridden by subclassing the - and overriding the method to return - the desired objects. The default provider - can be replaced by programmatically setting the value of the - property. - - - An alternative is to use the log4net.Config.SecurityContextProviderAttribute - This attribute can be applied to an assembly in the same way as the - log4net.Config.XmlConfiguratorAttribute". The attribute takes - the type to use as the as an argument. - - - Nicko Cadell - - - - The default provider - - - - - Protected default constructor to allow subclassing - - - - Protected default constructor to allow subclassing - - - - - - Create a SecurityContext for a consumer - - The consumer requesting the SecurityContext - An impersonation context - - - The default implementation is to return a . - - - Subclasses should override this method to provide their own - behavior. - - - - - - Gets or sets the default SecurityContextProvider - - - The default SecurityContextProvider - - - - The default provider is used by configured components that - require a and have not had one - given to them. - - - By default this is an instance of - that returns objects. - - - The default provider can be set programmatically by setting - the value of this property to a sub class of - that has the desired behavior. - - - - - - An evaluator that triggers after specified number of seconds. - - - - This evaluator will trigger if the specified time period - has passed since last check. - - - Robert Sevcik - - - - The default time threshold for triggering in seconds. Zero means it won't trigger at all. - - - - - The time threshold for triggering in seconds. Zero means it won't trigger at all. - - - - - The time of last check. This gets updated when the object is created and when the evaluator triggers. - - - - - Create a new evaluator using the time threshold in seconds. - - - - Create a new evaluator using the time threshold in seconds. - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Create a new evaluator using the specified time threshold in seconds. - - - The time threshold in seconds to trigger after. - Zero means it won't trigger at all. - - - - Create a new evaluator using the specified time threshold in seconds. - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Is this the triggering event? - - The event to check - This method returns true, if the specified time period - has passed since last check.. - Otherwise it returns false - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - The time threshold in seconds to trigger after - - - The time threshold in seconds to trigger after. - Zero means it won't trigger at all. - - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Delegate used to handle creation of new wrappers. - - The logger to wrap in a wrapper. - - - Delegate used to handle creation of new wrappers. This delegate - is called from the - method to construct the wrapper for the specified logger. - - - The delegate to use is supplied to the - constructor. - - - - - - Maps between logger objects and wrapper objects. - - - - This class maintains a mapping between objects and - objects. Use the method to - lookup the for the specified . - - - New wrapper instances are created by the - method. The default behavior is for this method to delegate construction - of the wrapper to the delegate supplied - to the constructor. This allows specialization of the behavior without - requiring subclassing of this type. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the - - The handler to use to create the wrapper objects. - - - Initializes a new instance of the class with - the specified handler to create the wrapper objects. - - - - - - Gets the wrapper object for the specified logger. - - The wrapper object for the specified logger - - - If the logger is null then the corresponding wrapper is null. - - - Looks up the wrapper it it has previously been requested and - returns it. If the wrapper has never been requested before then - the virtual method is - called. - - - - - - Creates the wrapper object for the specified logger. - - The logger to wrap in a wrapper. - The wrapper object for the logger. - - - This implementation uses the - passed to the constructor to create the wrapper. This method - can be overridden in a subclass. - - - - - - Called when a monitored repository shutdown event is received. - - The that is shutting down - - - This method is called when a that this - is holding loggers for has signaled its shutdown - event . The default - behavior of this method is to release the references to the loggers - and their wrappers generated for this repository. - - - - - - Event handler for repository shutdown event. - - The sender of the event. - The event args. - - - - Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings - - - - - The handler to use to create the extension wrapper objects. - - - - - Internal reference to the delegate used to register for repository shutdown events. - - - - - Gets the map of logger repositories. - - - Map of logger repositories. - - - - Gets the hashtable that is keyed on . The - values are hashtables keyed on with the - value being the corresponding . - - - - - - Formats a as "HH:mm:ss,fff". - - - - Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". - - - Nicko Cadell - Gert Driesen - - - - Render a as a string. - - - - Interface to abstract the rendering of a - instance into a string. - - - The method is used to render the - date to a text writer. - - - Nicko Cadell - Gert Driesen - - - - Formats the specified date as a string. - - The date to format. - The writer to write to. - - - Format the as a string and write it - to the provided. - - - - - - String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. - - - - - String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. - - - - - String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. - - - - - Renders the date into a string. Format is "HH:mm:ss". - - The date to render into a string. - The string builder to write to. - - - Subclasses should override this method to render the date - into a string using a precision up to the second. This method - will be called at most once per second and the result will be - reused if it is needed again during the same second. - - - - - - Renders the date into a string. Format is "HH:mm:ss,fff". - - The date to render into a string. - The writer to write to. - - - Uses the method to generate the - time string up to the seconds and then appends the current - milliseconds. The results from are - cached and is called at most once - per second. - - - Sub classes should override - rather than . - - - - - - Last stored time with precision up to the second. - - - - - Last stored time with precision up to the second, formatted - as a string. - - - - - Last stored time with precision up to the second, formatted - as a string. - - - - - Formats a as "dd MMM yyyy HH:mm:ss,fff" - - - - Formats a in the format - "dd MMM yyyy HH:mm:ss,fff" for example, - "06 Nov 1994 15:49:37,459". - - - Nicko Cadell - Gert Driesen - Angelika Schnagl - - - - Default constructor. - - - - Initializes a new instance of the class. - - - - - - Formats the date without the milliseconds part - - The date to format. - The string builder to write to. - - - Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" - for example, "06 Nov 1994 15:49:37". - - - The base class will append the ",fff" milliseconds section. - This method will only be called at most once per second. - - - - - - The format info for the invariant culture. - - - - - Formats the as "yyyy-MM-dd HH:mm:ss,fff". - - - - Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Formats the date without the milliseconds part - - The date to format. - The string builder to write to. - - - Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". - - - The base class will append the ",fff" milliseconds section. - This method will only be called at most once per second. - - - - - - Formats the using the method. - - - - Formats the using the method. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The format string. - - - Initializes a new instance of the class - with the specified format string. - - - The format string must be compatible with the options - that can be supplied to . - - - - - - Formats the date using . - - The date to convert to a string. - The writer to write to. - - - Uses the date format string supplied to the constructor to call - the method to format the date. - - - - - - The format string used to format the . - - - - The format string must be compatible with the options - that can be supplied to . - - - - - - This filter drops all . - - - - You can add this filter to the end of a filter chain to - switch from the default "accept all unless instructed otherwise" - filtering behavior to a "deny all unless instructed otherwise" - behavior. - - - Nicko Cadell - Gert Driesen - - - - Subclass this type to implement customized logging event filtering - - - - Users should extend this class to implement customized logging - event filtering. Note that and - , the parent class of all standard - appenders, have built-in filtering rules. It is suggested that you - first use and understand the built-in rules before rushing to write - your own custom filters. - - - This abstract class assumes and also imposes that filters be - organized in a linear chain. The - method of each filter is called sequentially, in the order of their - addition to the chain. - - - The method must return one - of the integer constants , - or . - - - If the value is returned, then the log event is dropped - immediately without consulting with the remaining filters. - - - If the value is returned, then the next filter - in the chain is consulted. If there are no more filters in the - chain, then the log event is logged. Thus, in the presence of no - filters, the default behavior is to log all logging events. - - - If the value is returned, then the log - event is logged without consulting the remaining filters. - - - The philosophy of log4net filters is largely inspired from the - Linux ipchains. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface to provide customized logging event filtering - - - - Users should implement this interface to implement customized logging - event filtering. Note that and - , the parent class of all standard - appenders, have built-in filtering rules. It is suggested that you - first use and understand the built-in rules before rushing to write - your own custom filters. - - - This abstract class assumes and also imposes that filters be - organized in a linear chain. The - method of each filter is called sequentially, in the order of their - addition to the chain. - - - The method must return one - of the integer constants , - or . - - - If the value is returned, then the log event is dropped - immediately without consulting with the remaining filters. - - - If the value is returned, then the next filter - in the chain is consulted. If there are no more filters in the - chain, then the log event is logged. Thus, in the presence of no - filters, the default behavior is to log all logging events. - - - If the value is returned, then the log - event is logged without consulting the remaining filters. - - - The philosophy of log4net filters is largely inspired from the - Linux ipchains. - - - Nicko Cadell - Gert Driesen - - - - Decide if the logging event should be logged through an appender. - - The LoggingEvent to decide upon - The decision of the filter - - - If the decision is , then the event will be - dropped. If the decision is , then the next - filter, if any, will be invoked. If the decision is then - the event will be logged without consulting with other filters in - the chain. - - - - - - Property to get and set the next filter - - - The next filter in the chain - - - - Filters are typically composed into chains. This property allows the next filter in - the chain to be accessed. - - - - - - Points to the next filter in the filter chain. - - - - See for more information. - - - - - - Initialize the filter with the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Typically filter's options become active immediately on set, - however this method must still be called. - - - - - - Decide if the should be logged through an appender. - - The to decide upon - The decision of the filter - - - If the decision is , then the event will be - dropped. If the decision is , then the next - filter, if any, will be invoked. If the decision is then - the event will be logged without consulting with other filters in - the chain. - - - This method is marked abstract and must be implemented - in a subclass. - - - - - - Property to get and set the next filter - - - The next filter in the chain - - - - Filters are typically composed into chains. This property allows the next filter in - the chain to be accessed. - - - - - - Default constructor - - - - - Always returns the integer constant - - the LoggingEvent to filter - Always returns - - - Ignores the event being logged and just returns - . This can be used to change the default filter - chain behavior from to . This filter - should only be used as the last filter in the chain - as any further filters will be ignored! - - - - - - The return result from - - - - The return result from - - - - - - The log event must be dropped immediately without - consulting with the remaining filters, if any, in the chain. - - - - - This filter is neutral with respect to the log event. - The remaining filters, if any, should be consulted for a final decision. - - - - - The log event must be logged immediately without - consulting with the remaining filters, if any, in the chain. - - - - - This is a very simple filter based on matching. - - - - The filter admits two options and - . If there is an exact match between the value - of the option and the of the - , then the method returns in - case the option value is set - to true, if it is false then - is returned. If the does not match then - the result will be . - - - Nicko Cadell - Gert Driesen - - - - flag to indicate if the filter should on a match - - - - - the to match against - - - - - Default constructor - - - - - Tests if the of the logging event matches that of the filter - - the event to filter - see remarks - - - If the of the event matches the level of the - filter then the result of the function depends on the - value of . If it is true then - the function will return , it it is false then it - will return . If the does not match then - the result will be . - - - - - - when matching - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - The that the filter will match - - - - The level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - This is a simple filter based on matching. - - - - The filter admits three options and - that determine the range of priorities that are matched, and - . If there is a match between the range - of priorities and the of the , then the - method returns in case the - option value is set to true, if it is false - then is returned. If there is no match, is returned. - - - Nicko Cadell - Gert Driesen - - - - Flag to indicate the behavior when matching a - - - - - the minimum value to match - - - - - the maximum value to match - - - - - Default constructor - - - - - Check if the event should be logged. - - the logging event to check - see remarks - - - If the of the logging event is outside the range - matched by this filter then - is returned. If the is matched then the value of - is checked. If it is true then - is returned, otherwise - is returned. - - - - - - when matching and - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - Set the minimum matched - - - - The minimum level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - Sets the maximum matched - - - - The maximum level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - Simple filter to match a string in the event's logger name. - - - - The works very similar to the . It admits two - options and . If the - of the starts - with the value of the option, then the - method returns in - case the option value is set to true, - if it is false then is returned. - - - Daniel Cazzulino - - - - Flag to indicate the behavior when we have a match - - - - - The logger name string to substring match against the event - - - - - Default constructor - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The rendered message is matched against the . - If the equals the beginning of - the incoming () - then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - when matching - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - The that the filter will match - - - - This filter will attempt to match this value against logger name in - the following way. The match will be done against the beginning of the - logger name (using ). The match is - case sensitive. If a match is found then - the result depends on the value of . - - - - - - Simple filter to match a keyed string in the - - - - Simple filter to match a keyed string in the - - - As the MDC has been replaced with layered properties the - should be used instead. - - - Nicko Cadell - Gert Driesen - - - - Simple filter to match a string an event property - - - - Simple filter to match a string in the value for a - specific event property - - - Nicko Cadell - - - - Simple filter to match a string in the rendered message - - - - Simple filter to match a string in the rendered message - - - Nicko Cadell - Gert Driesen - - - - Flag to indicate the behavior when we have a match - - - - - The string to substring match against the message - - - - - A string regex to match - - - - - A regex object to match (generated from m_stringRegexToMatch) - - - - - Default constructor - - - - - Initialize and precompile the Regex if required - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The rendered message is matched against the . - If the occurs as a substring within - the message then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - when matching or - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - Sets the static string to match - - - - The string that will be substring matched against - the rendered message. If the message contains this - string then the filter will match. If a match is found then - the result depends on the value of . - - - One of or - must be specified. - - - - - - Sets the regular expression to match - - - - The regular expression pattern that will be matched against - the rendered message. If the message matches this - pattern then the filter will match. If a match is found then - the result depends on the value of . - - - One of or - must be specified. - - - - - - The key to use to lookup the string from the event properties - - - - - Default constructor - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The event property for the is matched against - the . - If the occurs as a substring within - the property value then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - The key to lookup in the event properties and then match against. - - - - The key name to use to lookup in the properties map of the - . The match will be performed against - the value of this property if it exists. - - - - - - Simple filter to match a string in the - - - - Simple filter to match a string in the - - - As the MDC has been replaced with named stacks stored in the - properties collections the should - be used instead. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Sets the to "NDC". - - - - - - Write the event appdomain name to the output - - - - Writes the to the output writer. - - - Daniel Cazzulino - Nicko Cadell - - - - Abstract class that provides the formatting functionality that - derived classes need. - - - Conversion specifiers in a conversion patterns are parsed to - individual PatternConverters. Each of which is responsible for - converting a logging event in a converter specific manner. - - Nicko Cadell - - - - Abstract class that provides the formatting functionality that - derived classes need. - - - - Conversion specifiers in a conversion patterns are parsed to - individual PatternConverters. Each of which is responsible for - converting a logging event in a converter specific manner. - - - Nicko Cadell - Gert Driesen - - - - Initial buffer size - - - - - Maximum buffer size before it is recycled - - - - - Protected constructor - - - - Initializes a new instance of the class. - - - - - - Evaluate this pattern converter and write the output to a writer. - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the appropriate way. - - - - - - Set the next pattern converter in the chains - - the pattern converter that should follow this converter in the chain - the next converter - - - The PatternConverter can merge with its neighbor during this method (or a sub class). - Therefore the return value may or may not be the value of the argument passed in. - - - - - - Write the pattern converter to the writer with appropriate formatting - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - This method calls to allow the subclass to perform - appropriate conversion of the pattern converter. If formatting options have - been specified via the then this method will - apply those formattings before writing the output. - - - - - - Fast space padding method. - - to which the spaces will be appended. - The number of spaces to be padded. - - - Fast space padding method. - - - - - - The option string to the converter - - - - - Write an dictionary to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the to a writer in the form: - - - {key1=value1, key2=value2, key3=value3} - - - If the specified - is not null then it is used to render the key and value to text, otherwise - the object's ToString method is called. - - - - - - Write an dictionary to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the to a writer in the form: - - - {key1=value1, key2=value2, key3=value3} - - - If the specified - is not null then it is used to render the key and value to text, otherwise - the object's ToString method is called. - - - - - - Write an object to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the Object to a writer. If the specified - is not null then it is used to render the object to text, otherwise - the object's ToString method is called. - - - - - - Get the next pattern converter in the chain - - - the next pattern converter in the chain - - - - Get the next pattern converter in the chain - - - - - - Gets or sets the formatting info for this converter - - - The formatting info for this converter - - - - Gets or sets the formatting info for this converter - - - - - - Gets or sets the option value for this converter - - - The option for this converter - - - - Gets or sets the option value for this converter - - - - - - - - - - - Initializes a new instance of the class. - - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The on which the pattern converter should be executed. - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - - Flag indicating if this converter handles exceptions - - - false if this converter handles exceptions - - - - - Flag indicating if this converter handles the logging event exception - - false if this converter handles the logging event exception - - - If this converter handles the exception object contained within - , then this property should be set to - false. Otherwise, if the layout ignores the exception - object, then the property should be set to true. - - - Set this value to override a this default setting. The default - value is true, this converter does not handle the exception. - - - - - - Write the event appdomain name to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output . - - - - - - Converter for items in the ASP.Net Cache. - - - - Outputs an item from the . - - - Ron Grabowski - - - - Abstract class that provides access to the current HttpContext () that - derived classes need. - - - This class handles the case when HttpContext.Current is null by writing - to the writer. - - Ron Grabowski - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - - Write the ASP.Net Cache item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. If no property has been set, all key value pairs from the Cache will - be written to the output. - - - - - - Converter for items in the . - - - - Outputs an item from the . - - - Ron Grabowski - - - - Write the ASP.Net HttpContext item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. - - - - - - Converter for items in the ASP.Net Cache. - - - - Outputs an item from the . - - - Ron Grabowski - - - - Write the ASP.Net Cache item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. - - - - - - Converter for items in the ASP.Net Cache. - - - - Outputs an item from the . - - - Ron Grabowski - - - - Write the ASP.Net Cache item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. If no property has been set, all key value pairs from the Session will - be written to the output. - - - - - - Date pattern converter, uses a to format - the date of a . - - - - Render the to the writer as a string. - - - The value of the determines - the formatting of the date. The following values are allowed: - - - Option value - Output - - - ISO8601 - - Uses the formatter. - Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. - - - - DATE - - Uses the formatter. - Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". - - - - ABSOLUTE - - Uses the formatter. - Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". - - - - other - - Any other pattern string uses the formatter. - This formatter passes the pattern string to the - method. - For details on valid patterns see - DateTimeFormatInfo Class. - - - - - - The is in the local time zone and is rendered in that zone. - To output the time in Universal time see . - - - Nicko Cadell - - - - The used to render the date to a string - - - - The used to render the date to a string - - - - - - Initialize the converter pattern based on the property. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Convert the pattern into the rendered message - - that will receive the formatted result. - the event being logged - - - Pass the to the - for it to render it to the writer. - - - The passed is in the local time zone. - - - - - - The fully qualified type of the DatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the exception text to the output - - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - - - If there is no exception then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - Nicko Cadell - - - - Default constructor - - - - - Write the exception text to the output - - that will receive the formatted result. - the event being logged - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - - - If there is no exception or the exception property specified - by the Option value does not exist then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - Recognized values for the Option parameter are: - - - - Message - - - Source - - - StackTrace - - - TargetSite - - - HelpLink - - - - - - - Writes the caller location file name to the output - - - - Writes the value of the for - the event to the output writer. - - - Nicko Cadell - - - - Write the caller location file name to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the for - the to the output . - - - - - - Write the caller location info to the output - - - - Writes the to the output writer. - - - Nicko Cadell - - - - Write the caller location info to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output writer. - - - - - - Writes the event identity to the output - - - - Writes the value of the to - the output writer. - - - Daniel Cazzulino - Nicko Cadell - - - - Writes the event identity to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the - to - the output . - - - - - - Write the event level to the output - - - - Writes the display name of the event - to the writer. - - - Nicko Cadell - - - - Write the event level to the output - - that will receive the formatted result. - the event being logged - - - Writes the of the - to the . - - - - - - Write the caller location line number to the output - - - - Writes the value of the for - the event to the output writer. - - - Nicko Cadell - - - - Write the caller location line number to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the for - the to the output . - - - - - - Converter for logger name - - - - Outputs the of the event. - - - Nicko Cadell - - - - Converter to output and truncate '.' separated strings - - - - This abstract class supports truncating a '.' separated string - to show a specified number of elements from the right hand side. - This is used to truncate class names that are fully qualified. - - - Subclasses should override the method to - return the fully qualified string. - - - Nicko Cadell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Get the fully qualified string data - - the event being logged - the fully qualified name - - - Overridden by subclasses to get the fully qualified name before the - precision is applied to it. - - - Return the fully qualified '.' (dot/period) separated string. - - - - - - Convert the pattern to the rendered message - - that will receive the formatted result. - the event being logged - - Render the to the precision - specified by the property. - - - - - The fully qualified type of the NamedPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the fully qualified name of the logger - - the event being logged - The fully qualified logger name - - - Returns the of the . - - - - - - Writes the event message to the output - - - - Uses the method - to write out the event message. - - - Nicko Cadell - - - - Writes the event message to the output - - that will receive the formatted result. - the event being logged - - - Uses the method - to write out the event message. - - - - - - Write the method name to the output - - - - Writes the caller location to - the output. - - - Nicko Cadell - - - - Write the method name to the output - - that will receive the formatted result. - the event being logged - - - Writes the caller location to - the output. - - - - - - Converter to include event NDC - - - - Outputs the value of the event property named NDC. - - - The should be used instead. - - - Nicko Cadell - - - - Write the event NDC to the output - - that will receive the formatted result. - the event being logged - - - As the thread context stacks are now stored in named event properties - this converter simply looks up the value of the NDC property. - - - The should be used instead. - - - - - - Property pattern converter - - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - Nicko Cadell - - - - Write the property value to the output - - that will receive the formatted result. - the event being logged - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - - - - Converter to output the relative time of the event - - - - Converter to output the time of the event relative to the start of the program. - - - Nicko Cadell - - - - Write the relative time to the output - - that will receive the formatted result. - the event being logged - - - Writes out the relative time of the event in milliseconds. - That is the number of milliseconds between the event - and the . - - - - - - Helper method to get the time difference between two DateTime objects - - start time (in the current local time zone) - end time (in the current local time zone) - the time difference in milliseconds - - - - Write the caller stack frames to the output - - - - Writes the to the output writer, using format: - type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) - - - Adam Davies - - - - Write the caller stack frames to the output - - - - Writes the to the output writer, using format: - type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 - - - Michael Cromwell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the strack frames to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output writer. - - - - - - Returns the Name of the method - - - This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter - string - - - - The fully qualified type of the StackTracePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - The fully qualified type of the StackTraceDetailPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Converter to include event thread name - - - - Writes the to the output. - - - Nicko Cadell - - - - Write the ThreadName to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the . - - - - - - Pattern converter for the class name - - - - Outputs the of the event. - - - Nicko Cadell - - - - Gets the fully qualified name of the class - - the event being logged - The fully qualified type name for the caller location - - - Returns the of the . - - - - - - Converter to include event user name - - Douglas de la Torre - Nicko Cadell - - - - Convert the pattern to the rendered message - - that will receive the formatted result. - the event being logged - - - - Write the TimeStamp to the output - - - - Date pattern converter, uses a to format - the date of a . - - - Uses a to format the - in Universal time. - - - See the for details on the date pattern syntax. - - - - Nicko Cadell - - - - Write the TimeStamp to the output - - that will receive the formatted result. - the event being logged - - - Pass the to the - for it to render it to the writer. - - - The passed is in the local time zone, this is converted - to Universal time before it is rendered. - - - - - - - The fully qualified type of the UtcDatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - A Layout that renders only the Exception text from the logging event - - - - A Layout that renders only the Exception text from the logging event. - - - This Layout should only be used with appenders that utilize multiple - layouts (e.g. ). - - - Nicko Cadell - Gert Driesen - - - - Extend this abstract class to create your own log layout format. - - - - This is the base implementation of the - interface. Most layout objects should extend this class. - - - - - - Subclasses must implement the - method. - - - Subclasses should set the in their default - constructor. - - - - Nicko Cadell - Gert Driesen - - - - Interface implemented by layout objects - - - - An object is used to format a - as text. The method is called by an - appender to transform the into a string. - - - The layout can also supply and - text that is appender before any events and after all the events respectively. - - - Nicko Cadell - Gert Driesen - - - - Implement this method to create your own layout format. - - The TextWriter to write the formatted event to - The event to format - - - This method is called by an appender to format - the as text and output to a writer. - - - If the caller does not have a and prefers the - event to be formatted as a then the following - code can be used to format the event into a . - - - StringWriter writer = new StringWriter(); - Layout.Format(writer, loggingEvent); - string formattedEvent = writer.ToString(); - - - - - - The content type output by this layout. - - The content type - - - The content type output by this layout. - - - This is a MIME type e.g. "text/plain". - - - - - - The header for the layout format. - - the layout header - - - The Header text will be appended before any logging events - are formatted and appended. - - - - - - The footer for the layout format. - - the layout footer - - - The Footer text will be appended after all the logging events - have been formatted and appended. - - - - - - Flag indicating if this layout handle exceptions - - false if this layout handles exceptions - - - If this layout handles the exception object contained within - , then the layout should return - false. Otherwise, if the layout ignores the exception - object, then the layout should return true. - - - - - - The header text - - - - See for more information. - - - - - - The footer text - - - - See for more information. - - - - - - Flag indicating if this layout handles exceptions - - - - false if this layout handles exceptions - - - - - - Empty default constructor - - - - Empty default constructor - - - - - - Activate component options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - This method must be implemented by the subclass. - - - - - - Implement this method to create your own layout format. - - The TextWriter to write the formatted event to - The event to format - - - This method is called by an appender to format - the as text. - - - - - - Convenience method for easily formatting the logging event into a string variable. - - - - Creates a new StringWriter instance to store the formatted logging event. - - - - - The content type output by this layout. - - The content type is "text/plain" - - - The content type output by this layout. - - - This base class uses the value "text/plain". - To change this value a subclass must override this - property. - - - - - - The header for the layout format. - - the layout header - - - The Header text will be appended before any logging events - are formatted and appended. - - - - - - The footer for the layout format. - - the layout footer - - - The Footer text will be appended after all the logging events - have been formatted and appended. - - - - - - Flag indicating if this layout handles exceptions - - false if this layout handles exceptions - - - If this layout handles the exception object contained within - , then the layout should return - false. Otherwise, if the layout ignores the exception - object, then the layout should return true. - - - Set this value to override a this default setting. The default - value is true, this layout does not handle the exception. - - - - - - Default constructor - - - - Constructs a ExceptionLayout - - - - - - Activate component options - - - - Part of the component activation - framework. - - - This method does nothing as options become effective immediately. - - - - - - Gets the exception text from the logging event - - The TextWriter to write the formatted event to - the event being logged - - - Write the exception string to the . - The exception string is retrieved from . - - - - - - Interface for raw layout objects - - - - Interface used to format a - to an object. - - - This interface should not be confused with the - interface. This interface is used in - only certain specialized situations where a raw object is - required rather than a formatted string. The - is not generally useful than this interface. - - - Nicko Cadell - Gert Driesen - - - - Implement this method to create your own layout format. - - The event to format - returns the formatted event - - - Implement this method to create your own layout format. - - - - - - Adapts any to a - - - - Where an is required this adapter - allows a to be specified. - - - Nicko Cadell - Gert Driesen - - - - The layout to adapt - - - - - Construct a new adapter - - the layout to adapt - - - Create the adapter for the specified . - - - - - - Format the logging event as an object. - - The event to format - returns the formatted event - - - Format the logging event as an object. - - - Uses the object supplied to - the constructor to perform the formatting. - - - - - - A flexible layout configurable with pattern string. - - - - The goal of this class is to a - as a string. The results - depend on the conversion pattern. - - - The conversion pattern is closely related to the conversion - pattern of the printf function in C. A conversion pattern is - composed of literal text and format control expressions called - conversion specifiers. - - - You are free to insert any literal text within the conversion - pattern. - - - Each conversion specifier starts with a percent sign (%) and is - followed by optional format modifiers and a conversion - pattern name. The conversion pattern name specifies the type of - data, e.g. logger, level, date, thread name. The format - modifiers control such things as field width, padding, left and - right justification. The following is a simple example. - - - Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume - that the log4net environment was set to use a PatternLayout. Then the - statements - - - ILog log = LogManager.GetLogger(typeof(TestApp)); - log.Debug("Message 1"); - log.Warn("Message 2"); - - would yield the output - - DEBUG [main]: Message 1 - WARN [main]: Message 2 - - - Note that there is no explicit separator between text and - conversion specifiers. The pattern parser knows when it has reached - the end of a conversion specifier when it reads a conversion - character. In the example above the conversion specifier - %-5level means the level of the logging event should be left - justified to a width of five characters. - - - The recognized conversion pattern names are: - - - - Conversion Pattern Name - Effect - - - a - Equivalent to appdomain - - - appdomain - - Used to output the friendly name of the AppDomain where the - logging event was generated. - - - - aspnet-cache - - - Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-context - - - Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-request - - - Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-session - - - Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - c - Equivalent to logger - - - C - Equivalent to type - - - class - Equivalent to type - - - d - Equivalent to date - - - date - - - Used to output the date of the logging event in the local time zone. - To output the date in universal time use the %utcdate pattern. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %date{HH:mm:ss,fff} or - %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %date{ISO8601} or %date{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - exception - - - Used to output the exception passed in with the log message. - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - If there is no exception then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - - - F - Equivalent to file - - - file - - - Used to output the file name where the logging request was - issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - identity - - - Used to output the user name for the currently active user - (Principal.Identity.Name). - - - WARNING Generating caller information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - - - l - Equivalent to location - - - L - Equivalent to line - - - location - - - Used to output location information of the caller which generated - the logging event. - - - The location information depends on the CLI implementation but - usually consists of the fully qualified name of the calling - method followed by the callers source the file name and line - number between parentheses. - - - The location information can be very useful. However, its - generation is extremely slow. Its use should be avoided - unless execution speed is not an issue. - - - See the note below on the availability of caller location information. - - - - - level - - - Used to output the level of the logging event. - - - - - line - - - Used to output the line number from where the logging request - was issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - logger - - - Used to output the logger of the logging event. The - logger conversion specifier can be optionally followed by - precision specifier, that is a decimal constant in - brackets. - - - If a precision specifier is given, then only the corresponding - number of right most components of the logger name will be - printed. By default the logger name is printed in full. - - - For example, for the logger name "a.b.c" the pattern - %logger{2} will output "b.c". - - - - - m - Equivalent to message - - - M - Equivalent to method - - - message - - - Used to output the application supplied message associated with - the logging event. - - - - - mdc - - - The MDC (old name for the ThreadContext.Properties) is now part of the - combined event properties. This pattern is supported for compatibility - but is equivalent to property. - - - - - method - - - Used to output the method name where the logging request was - issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - n - Equivalent to newline - - - newline - - - Outputs the platform dependent line separator character or - characters. - - - This conversion pattern offers the same performance as using - non-portable line separator strings such as "\n", or "\r\n". - Thus, it is the preferred way of specifying a line separator. - - - - - ndc - - - Used to output the NDC (nested diagnostic context) associated - with the thread that generated the logging event. - - - - - p - Equivalent to level - - - P - Equivalent to property - - - properties - Equivalent to property - - - property - - - Used to output the an event specific property. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %property{user} would include the value - from the property that is keyed by the string 'user'. Each property value - that is to be included in the log must be specified separately. - Properties are added to events by loggers or appenders. By default - the log4net:HostName property is set to the name of machine on - which the event was originally logged. - - - If no key is specified, e.g. %property then all the keys and their - values are printed in a comma separated list. - - - The properties of an event are combined from a number of different - contexts. These are listed below in the order in which they are searched. - - - - the event properties - - The event has that can be set. These - properties are specific to this event only. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - - r - Equivalent to timestamp - - - stacktrace - - - Used to output the stack trace of the logging event - The stack trace level specifier may be enclosed - between braces. For example, %stacktrace{level}. - If no stack trace level specifier is given then 1 is assumed - - - Output uses the format: - type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 - - - This pattern is not available for Compact Framework assemblies. - - - - - stacktracedetail - - - Used to output the stack trace of the logging event - The stack trace level specifier may be enclosed - between braces. For example, %stacktracedetail{level}. - If no stack trace level specifier is given then 1 is assumed - - - Output uses the format: - type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) - - - This pattern is not available for Compact Framework assemblies. - - - - - t - Equivalent to thread - - - timestamp - - - Used to output the number of milliseconds elapsed since the start - of the application until the creation of the logging event. - - - - - thread - - - Used to output the name of the thread that generated the - logging event. Uses the thread number if no name is available. - - - - - type - - - Used to output the fully qualified type name of the caller - issuing the logging request. This conversion specifier - can be optionally followed by precision specifier, that - is a decimal constant in brackets. - - - If a precision specifier is given, then only the corresponding - number of right most components of the class name will be - printed. By default the class name is output in fully qualified form. - - - For example, for the class name "log4net.Layout.PatternLayout", the - pattern %type{1} will output "PatternLayout". - - - WARNING Generating the caller class information is - slow. Thus, its use should be avoided unless execution speed is - not an issue. - - - See the note below on the availability of caller location information. - - - - - u - Equivalent to identity - - - username - - - Used to output the WindowsIdentity for the currently - active user. - - - WARNING Generating caller WindowsIdentity information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - - - utcdate - - - Used to output the date of the logging event in universal time. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %utcdate{HH:mm:ss,fff} or - %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %utcdate{ISO8601} or %utcdate{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - w - Equivalent to username - - - x - Equivalent to ndc - - - X - Equivalent to mdc - - - % - - - The sequence %% outputs a single percent sign. - - - - - - The single letter patterns are deprecated in favor of the - longer more descriptive pattern names. - - - By default the relevant information is output as is. However, - with the aid of format modifiers it is possible to change the - minimum field width, the maximum field width and justification. - - - The optional format modifier is placed between the percent sign - and the conversion pattern name. - - - The first optional format modifier is the left justification - flag which is just the minus (-) character. Then comes the - optional minimum field width modifier. This is a decimal - constant that represents the minimum number of characters to - output. If the data item requires fewer characters, it is padded on - either the left or the right until the minimum width is - reached. The default is to pad on the left (right justify) but you - can specify right padding with the left justification flag. The - padding character is space. If the data item is larger than the - minimum field width, the field is expanded to accommodate the - data. The value is never truncated. - - - This behavior can be changed using the maximum field - width modifier which is designated by a period followed by a - decimal constant. If the data item is longer than the maximum - field, then the extra characters are removed from the - beginning of the data item and not from the end. For - example, it the maximum field width is eight and the data item is - ten characters long, then the first two characters of the data item - are dropped. This behavior deviates from the printf function in C - where truncation is done from the end. - - - Below are various format modifier examples for the logger - conversion specifier. - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Format modifierleft justifyminimum widthmaximum widthcomment
    %20loggerfalse20none - - Left pad with spaces if the logger name is less than 20 - characters long. - -
    %-20loggertrue20none - - Right pad with spaces if the logger - name is less than 20 characters long. - -
    %.30loggerNAnone30 - - Truncate from the beginning if the logger - name is longer than 30 characters. - -
    %20.30loggerfalse2030 - - Left pad with spaces if the logger name is shorter than 20 - characters. However, if logger name is longer than 30 characters, - then truncate from the beginning. - -
    %-20.30loggertrue2030 - - Right pad with spaces if the logger name is shorter than 20 - characters. However, if logger name is longer than 30 characters, - then truncate from the beginning. - -
    -
    - - Note about caller location information.
    - The following patterns %type %file %line %method %location %class %C %F %L %l %M - all generate caller location information. - Location information uses the System.Diagnostics.StackTrace class to generate - a call stack. The caller's information is then extracted from this stack. -
    - - - The System.Diagnostics.StackTrace class is not supported on the - .NET Compact Framework 1.0 therefore caller location information is not - available on that framework. - - - - - The System.Diagnostics.StackTrace class has this to say about Release builds: - - - "StackTrace information will be most informative with Debug build configurations. - By default, Debug builds include debug symbols, while Release builds do not. The - debug symbols contain most of the file, method name, line number, and column - information used in constructing StackFrame and StackTrace objects. StackTrace - might not report as many method calls as expected, due to code transformations - that occur during optimization." - - - This means that in a Release build the caller information may be incomplete or may - not exist at all! Therefore caller location information cannot be relied upon in a Release build. - - - - Additional pattern converters may be registered with a specific - instance using the method. - -
    - - This is a more detailed pattern. - %timestamp [%thread] %level %logger %ndc - %message%newline - - - A similar pattern except that the relative time is - right padded if less than 6 digits, thread name is right padded if - less than 15 characters and truncated if longer and the logger - name is left padded if shorter than 30 characters and truncated if - longer. - %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline - - Nicko Cadell - Gert Driesen - Douglas de la Torre - Daniel Cazzulino -
    - - - Default pattern string for log output. - - - - Default pattern string for log output. - Currently set to the string "%message%newline" - which just prints the application supplied message. - - - - - - A detailed conversion pattern - - - - A conversion pattern which includes Time, Thread, Logger, and Nested Context. - Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. - - - - - - Internal map of converter identifiers to converter types. - - - - This static map is overridden by the m_converterRegistry instance map - - - - - - the pattern - - - - - the head of the pattern converter chain - - - - - patterns defined on this PatternLayout only - - - - - Initialize the global registry - - - - Defines the builtin global rules. - - - - - - Constructs a PatternLayout using the DefaultConversionPattern - - - - The default pattern just produces the application supplied message. - - - Note to Inheritors: This constructor calls the virtual method - . If you override this method be - aware that it will be called before your is called constructor. - - - As per the contract the - method must be called after the properties on this object have been - configured. - - - - - - Constructs a PatternLayout using the supplied conversion pattern - - the pattern to use - - - Note to Inheritors: This constructor calls the virtual method - . If you override this method be - aware that it will be called before your is called constructor. - - - When using this constructor the method - need not be called. This may not be the case when using a subclass. - - - - - - Create the pattern parser instance - - the pattern to parse - The that will format the event - - - Creates the used to parse the conversion string. Sets the - global and instance rules on the . - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a formatted string as specified by the conversion pattern. - - the event being logged - The TextWriter to write the formatted event to - - - Parse the using the patter format - specified in the property. - - - - - - Add a converter to this PatternLayout - - the converter info - - - This version of the method is used by the configurator. - Programmatic users should use the alternative method. - - - - - - Add a converter to this PatternLayout - - the name of the conversion pattern for this converter - the type of the converter - - - Add a named pattern converter to this instance. This - converter will be used in the formatting of the event. - This method must be called before . - - - The specified must extend the - type. - - - - - - The pattern formatting string - - - - The ConversionPattern option. This is the string which - controls formatting and consists of a mix of literal content and - conversion specifiers. - - - - - - Type converter for the interface - - - - Used to convert objects to the interface. - Supports converting from the interface to - the interface using the . - - - Nicko Cadell - Gert Driesen - - - - Interface supported by type converters - - - - This interface supports conversion from arbitrary types - to a single target type. See . - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Test if the can be converted to the - type supported by this converter. - - - - - - Convert the source object to the type supported by this object - - the object to convert - the converted object - - - Converts the to the type supported - by this converter. - - - - - - Can the sourceType be converted to an - - the source to be to be converted - true if the source type can be converted to - - - Test if the can be converted to a - . Only is supported - as the . - - - - - - Convert the value to a object - - the value to convert - the object - - - Convert the object to a - object. If the object - is a then the - is used to adapt between the two interfaces, otherwise an - exception is thrown. - - - - - - Extract the value of a property from the - - - - Extract the value of a property from the - - - Nicko Cadell - - - - Constructs a RawPropertyLayout - - - - - Lookup the property for - - The event to format - returns property value - - - Looks up and returns the object value of the property - named . If there is no property defined - with than name then null will be returned. - - - - - - The name of the value to lookup in the LoggingEvent Properties collection. - - - Value to lookup in the LoggingEvent Properties collection - - - - String name of the property to lookup in the . - - - - - - Extract the date from the - - - - Extract the date from the - - - Nicko Cadell - Gert Driesen - - - - Constructs a RawTimeStampLayout - - - - - Gets the as a . - - The event to format - returns the time stamp - - - Gets the as a . - - - The time stamp is in local time. To format the time stamp - in universal time use . - - - - - - Extract the date from the - - - - Extract the date from the - - - Nicko Cadell - Gert Driesen - - - - Constructs a RawUtcTimeStampLayout - - - - - Gets the as a . - - The event to format - returns the time stamp - - - Gets the as a . - - - The time stamp is in universal time. To format the time stamp - in local time use . - - - - - - A very simple layout - - - - SimpleLayout consists of the level of the log statement, - followed by " - " and then the log message itself. For example, - - DEBUG - Hello world - - - - Nicko Cadell - Gert Driesen - - - - Constructs a SimpleLayout - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a simple formatted output. - - the event being logged - The TextWriter to write the formatted event to - - - Formats the event as the level of the even, - followed by " - " and then the log message itself. The - output is terminated by a newline. - - - - - - Layout that formats the log events as XML elements. - - - - The output of the consists of a series of - log4net:event elements. It does not output a complete well-formed XML - file. The output is designed to be included as an external entity - in a separate file to form a correct XML file. - - - For example, if abc is the name of the file where - the output goes, then a well-formed XML file would - be: - - - <?xml version="1.0" ?> - - <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> - <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> - &data; - </log4net:events> - - - This approach enforces the independence of the - and the appender where it is embedded. - - - The version attribute helps components to correctly - interpret output generated by . The value of - this attribute should be "1.2" for release 1.2 and later. - - - Alternatively the Header and Footer properties can be - configured to output the correct XML header, open tag and close tag. - When setting the Header and Footer properties it is essential - that the underlying data store not be appendable otherwise the data - will become invalid XML. - - - Nicko Cadell - Gert Driesen - - - - Layout that formats the log events as XML elements. - - - - This is an abstract class that must be subclassed by an implementation - to conform to a specific schema. - - - Deriving classes must implement the method. - - - Nicko Cadell - Gert Driesen - - - - Protected constructor to support subclasses - - - - Initializes a new instance of the class - with no location info. - - - - - - Protected constructor to support subclasses - - - - The parameter determines whether - location information will be output by the layout. If - is set to true, then the - file name and line number of the statement at the origin of the log - statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a formatted string. - - The event being logged. - The TextWriter to write the formatted event to - - - Format the and write it to the . - - - This method creates an that writes to the - . The is passed - to the method. Subclasses should override the - method rather than this method. - - - - - - Does the actual writing of the XML. - - The writer to use to output the event to. - The event to write. - - - Subclasses should override this method to format - the as XML. - - - - - - Flag to indicate if location information should be included in - the XML events. - - - - - The string to replace invalid chars with - - - - - Gets a value indicating whether to include location information in - the XML events. - - - true if location information should be included in the XML - events; otherwise, false. - - - - If is set to true, then the file - name and line number of the statement at the origin of the log - statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - The string to replace characters that can not be expressed in XML with. - - - Not all characters may be expressed in XML. This property contains the - string to replace those that can not with. This defaults to a ?. Set it - to the empty string to simply remove offending characters. For more - details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets - Character replacement will occur in the log message, the property names - and the property values. - - - - - - - Gets the content type output by this layout. - - - As this is the XML layout, the value is always "text/xml". - - - - As this is the XML layout, the value is always "text/xml". - - - - - - Constructs an XmlLayout - - - - - Constructs an XmlLayout. - - - - The LocationInfo option takes a boolean value. By - default, it is set to false which means there will be no location - information output by this layout. If the the option is set to - true, then the file name and line number of the statement - at the origin of the log statement will be output. - - - If you are embedding this layout within an SmtpAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Builds a cache of the element names - - - - - - Does the actual writing of the XML. - - The writer to use to output the event to. - The event to write. - - - Override the base class method - to write the to the . - - - - - - The prefix to use for all generated element names - - - - - The prefix to use for all element names - - - - The default prefix is log4net. Set this property - to change the prefix. If the prefix is set to an empty string - then no prefix will be written. - - - - - - Set whether or not to base64 encode the message. - - - - By default the log message will be written as text to the xml - output. This can cause problems when the message contains binary - data. By setting this to true the contents of the message will be - base64 encoded. If this is set then invalid character replacement - (see ) will not be performed - on the log message. - - - - - - Set whether or not to base64 encode the property values. - - - - By default the properties will be written as text to the xml - output. This can cause problems when one or more properties contain - binary data. By setting this to true the values of the properties - will be base64 encoded. If this is set then invalid character replacement - (see ) will not be performed - on the property values. - - - - - - Layout that formats the log events as XML elements compatible with the log4j schema - - - - Formats the log events according to the http://logging.apache.org/log4j schema. - - - Nicko Cadell - - - - The 1st of January 1970 in UTC - - - - - Constructs an XMLLayoutSchemaLog4j - - - - - Constructs an XMLLayoutSchemaLog4j. - - - - The LocationInfo option takes a boolean value. By - default, it is set to false which means there will be no location - information output by this layout. If the the option is set to - true, then the file name and line number of the statement - at the origin of the log statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Actually do the writing of the xml - - the writer to use - the event to write - - - Generate XML that is compatible with the log4j schema. - - - - - - The version of the log4j schema to use. - - - - Only version 1.2 of the log4j schema is supported. - - - - - - The default object Renderer. - - - - The default renderer supports rendering objects and collections to strings. - - - See the method for details of the output. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface in order to render objects as strings - - - - Certain types require special case conversion to - string form. This conversion is done by an object renderer. - Object renderers implement the - interface. - - - Nicko Cadell - Gert Driesen - - - - Render the object to a string - - The map used to lookup renderers - The object to render - The writer to render to - - - Render the object to a - string. - - - The parameter is - provided to lookup and render other objects. This is - very useful where contains - nested objects of unknown type. The - method can be used to render these objects. - - - - - - Default constructor - - - - Default constructor - - - - - - Render the object to a string - - The map used to lookup renderers - The object to render - The writer to render to - - - Render the object to a string. - - - The parameter is - provided to lookup and render other objects. This is - very useful where contains - nested objects of unknown type. The - method can be used to render these objects. - - - The default renderer supports rendering objects to strings as follows: - - - - Value - Rendered String - - - null - - "(null)" - - - - - - - For a one dimensional array this is the - array type name, an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. - - - For example: int[] {1, 2, 3}. - - - If the array is not one dimensional the - Array.ToString() is returned. - - - - - , & - - - Rendered as an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. - - - For example: {a, b, c}. - - - All collection classes that implement its subclasses, - or generic equivalents all implement the interface. - - - - - - - - Rendered as the key, an equals sign ('='), and the value (using the appropriate - renderer). - - - For example: key=value. - - - - - other - - Object.ToString() - - - - - - - - Render the array argument into a string - - The map used to lookup renderers - the array to render - The writer to render to - - - For a one dimensional array this is the - array type name, an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. For example: - int[] {1, 2, 3}. - - - If the array is not one dimensional the - Array.ToString() is returned. - - - - - - Render the enumerator argument into a string - - The map used to lookup renderers - the enumerator to render - The writer to render to - - - Rendered as an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. For example: - {a, b, c}. - - - - - - Render the DictionaryEntry argument into a string - - The map used to lookup renderers - the DictionaryEntry to render - The writer to render to - - - Render the key, an equals sign ('='), and the value (using the appropriate - renderer). For example: key=value. - - - - - - Map class objects to an . - - - - Maintains a mapping between types that require special - rendering and the that - is used to render them. - - - The method is used to render an - object using the appropriate renderers defined in this map. - - - Nicko Cadell - Gert Driesen - - - - Default Constructor - - - - Default constructor. - - - - - - Render using the appropriate renderer. - - the object to render to a string - the object rendered as a string - - - This is a convenience method used to render an object to a string. - The alternative method - should be used when streaming output to a . - - - - - - Render using the appropriate renderer. - - the object to render to a string - The writer to render to - - - Find the appropriate renderer for the type of the - parameter. This is accomplished by calling the - method. Once a renderer is found, it is - applied on the object and the result is returned - as a . - - - - - - Gets the renderer for the specified object type - - the object to lookup the renderer for - the renderer for - - - Gets the renderer for the specified object type. - - - Syntactic sugar method that calls - with the type of the object parameter. - - - - - - Gets the renderer for the specified type - - the type to lookup the renderer for - the renderer for the specified type - - - Returns the renderer for the specified type. - If no specific renderer has been defined the - will be returned. - - - - - - Internal function to recursively search interfaces - - the type to lookup the renderer for - the renderer for the specified type - - - - Clear the map of renderers - - - - Clear the custom renderers defined by using - . The - cannot be removed. - - - - - - Register an for . - - the type that will be rendered by - the renderer for - - - Register an object renderer for a specific source type. - This renderer will be returned from a call to - specifying the same as an argument. - - - - - - Get the default renderer instance - - the default renderer - - - Get the default renderer - - - - - - Interface implemented by logger repository plugins. - - - - Plugins define additional behavior that can be associated - with a . - The held by the - property is used to store the plugins for a repository. - - - The log4net.Config.PluginAttribute can be used to - attach plugins to repositories created using configuration - attributes. - - - Nicko Cadell - Gert Driesen - - - - Attaches the plugin to the specified . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - This method is called to notify the plugin that - it should stop operating and should detach from - the repository. - - - - - - Gets the name of the plugin. - - - The name of the plugin. - - - - Plugins are stored in the - keyed by name. Each plugin instance attached to a - repository must be a unique name. - - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a PluginCollection instance. - - list to create a readonly wrapper arround - - A PluginCollection wrapper that is read-only. - - - - - Initializes a new instance of the PluginCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the PluginCollection class - that has the specified initial capacity. - - - The number of elements that the new PluginCollection is initially capable of storing. - - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified PluginCollection. - - The PluginCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - - Copies the entire PluginCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire PluginCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the PluginCollection. - - The to be added to the end of the PluginCollection. - The index at which the value has been added. - - - - Removes all elements from the PluginCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the PluginCollection. - - The to check for. - true if is found in the PluginCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the PluginCollection. - - The to locate in the PluginCollection. - - The zero-based index of the first occurrence of - in the entire PluginCollection, if found; otherwise, -1. - - - - - Inserts an element into the PluginCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the PluginCollection. - - The to remove from the PluginCollection. - - The specified was not found in the PluginCollection. - - - - - Removes the element at the specified index of the PluginCollection. - - The zero-based index of the element to remove. - - is less than zero. - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the PluginCollection. - - An for the entire PluginCollection. - - - - Adds the elements of another PluginCollection to the current PluginCollection. - - The PluginCollection whose elements should be added to the end of the current PluginCollection. - The new of the PluginCollection. - - - - Adds the elements of a array to the current PluginCollection. - - The array whose elements should be added to the end of the PluginCollection. - The new of the PluginCollection. - - - - Adds the elements of a collection to the current PluginCollection. - - The collection whose elements should be added to the end of the PluginCollection. - The new of the PluginCollection. - - - - Sets the capacity to the actual number of elements. - - - - - is less than zero. - -or- - is equal to or greater than . - - - - - is less than zero. - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the PluginCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - An object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - - The at the specified index. - - The zero-based index of the element to get or set. - - is less than zero. - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false. - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false. - - - - Gets or sets the number of elements the PluginCollection can contain. - - - The number of elements the PluginCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - - A value - - - - - Supports simple iteration over a . - - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - The current element in the collection. - - - - - - - - Map of repository plugins. - - - - This class is a name keyed map of the plugins that are - attached to a repository. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The repository that the plugins should be attached to. - - - Initialize a new instance of the class with a - repository that the plugins should be attached to. - - - - - - Adds a to the map. - - The to add to the map. - - - The will be attached to the repository when added. - - - If there already exists a plugin with the same name - attached to the repository then the old plugin will - be and replaced with - the new plugin. - - - - - - Removes a from the map. - - The to remove from the map. - - - Remove a specific plugin from this map. - - - - - - Gets a by name. - - The name of the to lookup. - - The from the map with the name specified, or - null if no plugin is found. - - - - Lookup a plugin by name. If the plugin is not found null - will be returned. - - - - - - Gets all possible plugins as a list of objects. - - All possible plugins as a list of objects. - - - Get a collection of all the plugins defined in this map. - - - - - - Base implementation of - - - - Default abstract implementation of the - interface. This base class can be used by implementors - of the interface. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - the name of the plugin - - Initializes a new Plugin with the specified name. - - - - - Attaches this plugin to a . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - This method is called to notify the plugin that - it should stop operating and should detach from - the repository. - - - - - - The name of this plugin. - - - - - The repository this plugin is attached to. - - - - - Gets or sets the name of the plugin. - - - The name of the plugin. - - - - Plugins are stored in the - keyed by name. Each plugin instance attached to a - repository must be a unique name. - - - The name of the plugin must not change one the - plugin has been attached to a repository. - - - - - - The repository for this plugin - - - The that this plugin is attached to. - - - - Gets or sets the that this plugin is - attached to. - - - - - - Plugin that listens for events from the - - - - This plugin publishes an instance of - on a specified . This listens for logging events delivered from - a remote . - - - When an event is received it is relogged within the attached repository - as if it had been raised locally. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Initializes a new instance of the class. - - - The property must be set. - - - - - - Construct with sink Uri. - - The name to publish the sink under in the remoting infrastructure. - See for more details. - - - Initializes a new instance of the class - with specified name. - - - - - - Attaches this plugin to a . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - When the plugin is shutdown the remote logging - sink is disconnected. - - - - - - The fully qualified type of the RemoteLoggingServerPlugin class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the URI of this sink. - - - The URI of this sink. - - - - This is the name under which the object is marshaled. - - - - - - - Delivers objects to a remote sink. - - - - Internal class used to listen for logging events - and deliver them to the local repository. - - - - - - Constructor - - The repository to log to. - - - Initializes a new instance of the for the - specified . - - - - - - Logs the events to the repository. - - The events to log. - - - The events passed are logged to the - - - - - - Obtains a lifetime service object to control the lifetime - policy for this instance. - - null to indicate that this instance should live forever. - - - Obtains a lifetime service object to control the lifetime - policy for this instance. This object should live forever - therefore this implementation returns null. - - - - - - The underlying that events should - be logged to. - - - - - Default implementation of - - - - This default implementation of the - interface is used to create the default subclass - of the object. - - - Nicko Cadell - Gert Driesen - - - - Interface abstracts creation of instances - - - - This interface is used by the to - create new objects. - - - The method is called - to create a named . - - - Implement this interface to create new subclasses of . - - - Nicko Cadell - Gert Driesen - - - - Create a new instance - - The that will own the . - The name of the . - The instance for the specified name. - - - Create a new instance with the - specified name. - - - Called by the to create - new named instances. - - - If the is null then the root logger - must be returned. - - - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Create a new instance - - The that will own the . - The name of the . - The instance for the specified name. - - - Create a new instance with the - specified name. - - - Called by the to create - new named instances. - - - If the is null then the root logger - must be returned. - - - - - - Default internal subclass of - - - - This subclass has no additional behavior over the - class but does allow instances - to be created. - - - - - - Implementation of used by - - - - Internal class used to provide implementation of - interface. Applications should use to get - logger instances. - - - This is one of the central classes in the log4net implementation. One of the - distinctive features of log4net are hierarchical loggers and their - evaluation. The organizes the - instances into a rooted tree hierarchy. - - - The class is abstract. Only concrete subclasses of - can be created. The - is used to create instances of this type for the . - - - Nicko Cadell - Gert Driesen - Aspi Havewala - Douglas de la Torre - - - - This constructor created a new instance and - sets its name. - - The name of the . - - - This constructor is protected and designed to be used by - a subclass that is not abstract. - - - Loggers are constructed by - objects. See for the default - logger creator. - - - - - - Add to the list of appenders of this - Logger instance. - - An appender to add to this logger - - - Add to the list of appenders of this - Logger instance. - - - If is already in the list of - appenders, then it won't be added again. - - - - - - Look for the appender named as name - - The name of the appender to lookup - The appender with the name specified, or null. - - - Returns the named appender, or null if the appender is not found. - - - - - - Remove all previously added appenders from this Logger instance. - - - - Remove all previously added appenders from this Logger instance. - - - This is useful when re-reading configuration information. - - - - - - Remove the appender passed as parameter form the list of appenders. - - The appender to remove - The appender removed from the list - - - Remove the appender passed as parameter form the list of appenders. - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Remove the appender passed as parameter form the list of appenders. - - The name of the appender to remove - The appender removed from the list - - - Remove the named appender passed as parameter form the list of appenders. - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - This generic form is intended to be used by wrappers. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generate a logging event for the specified using - the and . - - - This method must not throw any exception to the caller. - - - - - - This is the most generic printing method that is intended to be used - by wrappers. - - The event being logged. - - - Logs the specified logging event through this logger. - - - This method must not throw any exception to the caller. - - - - - - Checks if this logger is enabled for a given passed as parameter. - - The level to check. - - true if this logger is enabled for level, otherwise false. - - - - Test if this logger is going to log events of the specified . - - - This method must not throw any exception to the caller. - - - - - - Deliver the to the attached appenders. - - The event to log. - - - Call the appenders in the hierarchy starting at - this. If no appenders could be found, emit a - warning. - - - This method calls all the appenders inherited from the - hierarchy circumventing any evaluation of whether to log or not - to log the particular log request. - - - - - - Closes all attached appenders implementing the interface. - - - - Used to ensure that the appenders are correctly shutdown. - - - - - - This is the most generic printing method. This generic form is intended to be used by wrappers - - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generate a logging event for the specified using - the . - - - - - - Creates a new logging event and logs the event without further checks. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generates a logging event and delivers it to the attached - appenders. - - - - - - Creates a new logging event and logs the event without further checks. - - The event being logged. - - - Delivers the logging event to the attached appenders. - - - - - - The fully qualified type of the Logger class. - - - - - The name of this logger. - - - - - The assigned level of this logger. - - - - The level variable need not be - assigned a value in which case it is inherited - form the hierarchy. - - - - - - The parent of this logger. - - - - The parent of this logger. - All loggers have at least one ancestor which is the root logger. - - - - - - Loggers need to know what Hierarchy they are in. - - - - Loggers need to know what Hierarchy they are in. - The hierarchy that this logger is a member of is stored - here. - - - - - - Helper implementation of the interface - - - - - Flag indicating if child loggers inherit their parents appenders - - - - Additivity is set to true by default, that is children inherit - the appenders of their ancestors by default. If this variable is - set to false then the appenders found in the - ancestors of this logger are not used. However, the children - of this logger will inherit its appenders, unless the children - have their additivity flag set to false too. See - the user manual for more details. - - - - - - Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl - - - - - Gets or sets the parent logger in the hierarchy. - - - The parent logger in the hierarchy. - - - - Part of the Composite pattern that makes the hierarchy. - The hierarchy is parent linked rather than child linked. - - - - - - Gets or sets a value indicating if child loggers inherit their parent's appenders. - - - true if child loggers inherit their parent's appenders. - - - - Additivity is set to true by default, that is children inherit - the appenders of their ancestors by default. If this variable is - set to false then the appenders found in the - ancestors of this logger are not used. However, the children - of this logger will inherit its appenders, unless the children - have their additivity flag set to false too. See - the user manual for more details. - - - - - - Gets the effective level for this logger. - - The nearest level in the logger hierarchy. - - - Starting from this logger, searches the logger hierarchy for a - non-null level and returns it. Otherwise, returns the level of the - root logger. - - The Logger class is designed so that this method executes as - quickly as possible. - - - - - Gets or sets the where this - Logger instance is attached to. - - The hierarchy that this logger belongs to. - - - This logger must be attached to a single . - - - - - - Gets or sets the assigned , if any, for this Logger. - - - The of this logger. - - - - The assigned can be null. - - - - - - Get the appenders contained in this logger as an - . - - A collection of the appenders in this logger - - - Get the appenders contained in this logger as an - . If no appenders - can be found, then a is returned. - - - - - - Gets the logger name. - - - The name of the logger. - - - - The name of this logger - - - - - - Gets the where this - Logger instance is attached to. - - - The that this logger belongs to. - - - - Gets the where this - Logger instance is attached to. - - - - - - Construct a new Logger - - the name of the logger - - - Initializes a new instance of the class - with the specified name. - - - - - - Delegate used to handle logger creation event notifications. - - The in which the has been created. - The event args that hold the instance that has been created. - - - Delegate used to handle logger creation event notifications. - - - - - - Provides data for the event. - - - - A event is raised every time a - is created. - - - - - - The created - - - - - Constructor - - The that has been created. - - - Initializes a new instance of the event argument - class,with the specified . - - - - - - Gets the that has been created. - - - The that has been created. - - - - The that has been created. - - - - - - Hierarchical organization of loggers - - - - The casual user should not have to deal with this class - directly. - - - This class is specialized in retrieving loggers by name and - also maintaining the logger hierarchy. Implements the - interface. - - - The structure of the logger hierarchy is maintained by the - method. The hierarchy is such that children - link to their parent but parents do not have any references to their - children. Moreover, loggers can be instantiated in any order, in - particular descendant before ancestor. - - - In case a descendant is created before a particular ancestor, - then it creates a provision node for the ancestor and adds itself - to the provision node. Other descendants of the same ancestor add - themselves to the previously created provision node. - - - Nicko Cadell - Gert Driesen - - - - Base implementation of - - - - Default abstract implementation of the interface. - - - Skeleton implementation of the interface. - All types can extend this type. - - - Nicko Cadell - Gert Driesen - - - - Interface implemented by logger repositories. - - - - This interface is implemented by logger repositories. e.g. - . - - - This interface is used by the - to obtain interfaces. - - - Nicko Cadell - Gert Driesen - - - - Check if the named logger exists in the repository. If so return - its reference, otherwise returns null. - - The name of the logger to lookup - The Logger object with the name specified - - - If the names logger exists it is returned, otherwise - null is returned. - - - - - - Returns all the currently defined loggers as an Array. - - All the defined loggers - - - Returns all the currently defined loggers as an Array. - - - - - - Returns a named logger instance - - The name of the logger to retrieve - The logger object with the name specified - - - Returns a named logger instance. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - - - Shutdown the repository - - - Shutting down a repository will safely close and remove - all appenders in all loggers including the root logger. - - - Some appenders need to be closed before the - application exists. Otherwise, pending logging events might be - lost. - - - The method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Reset the repositories configuration to a default state - - - - Reset all values contained in this instance to their - default state. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the through this repository. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are configured as an Array. - - All the Appenders - - - Returns all the Appenders that are configured as an Array. - - - - - - The name of the repository - - - The name of the repository - - - - The name of the repository. - - - - - - RendererMap accesses the object renderer map for this repository. - - - RendererMap accesses the object renderer map for this repository. - - - - RendererMap accesses the object renderer map for this repository. - - - The RendererMap holds a mapping between types and - objects. - - - - - - The plugin map for this repository. - - - The plugin map for this repository. - - - - The plugin map holds the instances - that have been attached to this repository. - - - - - - Get the level map for the Repository. - - - - Get the level map for the Repository. - - - The level map defines the mappings between - level names and objects in - this repository. - - - - - - The threshold for all events in this repository - - - The threshold for all events in this repository - - - - The threshold for all events in this repository. - - - - - - Flag indicates if this repository has been configured. - - - Flag indicates if this repository has been configured. - - - - Flag indicates if this repository has been configured. - - - - - - Collection of internal messages captured during the most - recent configuration process. - - - - - Event to notify that the repository has been shutdown. - - - Event to notify that the repository has been shutdown. - - - - Event raised when the repository has been shutdown. - - - - - - Event to notify that the repository has had its configuration reset. - - - Event to notify that the repository has had its configuration reset. - - - - Event raised when the repository's configuration has been - reset to default. - - - - - - Event to notify that the repository has had its configuration changed. - - - Event to notify that the repository has had its configuration changed. - - - - Event raised when the repository's configuration has been changed. - - - - - - Repository specific properties - - - Repository specific properties - - - - These properties can be specified on a repository specific basis. - - - - - - Default Constructor - - - - Initializes the repository with default (empty) properties. - - - - - - Construct the repository using specific properties - - the properties to set for this repository - - - Initializes the repository with specified properties. - - - - - - Test if logger exists - - The name of the logger to lookup - The Logger object with the name specified - - - Check if the named logger exists in the repository. If so return - its reference, otherwise returns null. - - - - - - Returns all the currently defined loggers in the repository - - All the defined loggers - - - Returns all the currently defined loggers in the repository as an Array. - - - - - - Return a new logger instance - - The name of the logger to retrieve - The logger object with the name specified - - - Return a new logger instance. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - - - - Shutdown the repository - - - - Shutdown the repository. Can be overridden in a subclass. - This base class implementation notifies the - listeners and all attached plugins of the shutdown event. - - - - - - Reset the repositories configuration to a default state - - - - Reset all values contained in this instance to their - default state. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the logEvent through this repository. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are configured as an Array. - - All the Appenders - - - Returns all the Appenders that are configured as an Array. - - - - - - The fully qualified type of the LoggerRepositorySkeleton class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Adds an object renderer for a specific class. - - The type that will be rendered by the renderer supplied. - The object renderer used to render the object. - - - Adds an object renderer for a specific class. - - - - - - Notify the registered listeners that the repository is shutting down - - Empty EventArgs - - - Notify any listeners that this repository is shutting down. - - - - - - Notify the registered listeners that the repository has had its configuration reset - - Empty EventArgs - - - Notify any listeners that this repository's configuration has been reset. - - - - - - Notify the registered listeners that the repository has had its configuration changed - - Empty EventArgs - - - Notify any listeners that this repository's configuration has changed. - - - - - - Raise a configuration changed event on this repository - - EventArgs.Empty - - - Applications that programmatically change the configuration of the repository should - raise this event notification to notify listeners. - - - - - - The name of the repository - - - The string name of the repository - - - - The name of this repository. The name is - used to store and lookup the repositories - stored by the . - - - - - - The threshold for all events in this repository - - - The threshold for all events in this repository - - - - The threshold for all events in this repository - - - - - - RendererMap accesses the object renderer map for this repository. - - - RendererMap accesses the object renderer map for this repository. - - - - RendererMap accesses the object renderer map for this repository. - - - The RendererMap holds a mapping between types and - objects. - - - - - - The plugin map for this repository. - - - The plugin map for this repository. - - - - The plugin map holds the instances - that have been attached to this repository. - - - - - - Get the level map for the Repository. - - - - Get the level map for the Repository. - - - The level map defines the mappings between - level names and objects in - this repository. - - - - - - Flag indicates if this repository has been configured. - - - Flag indicates if this repository has been configured. - - - - Flag indicates if this repository has been configured. - - - - - - Contains a list of internal messages captures during the - last configuration. - - - - - Event to notify that the repository has been shutdown. - - - Event to notify that the repository has been shutdown. - - - - Event raised when the repository has been shutdown. - - - - - - Event to notify that the repository has had its configuration reset. - - - Event to notify that the repository has had its configuration reset. - - - - Event raised when the repository's configuration has been - reset to default. - - - - - - Event to notify that the repository has had its configuration changed. - - - Event to notify that the repository has had its configuration changed. - - - - Event raised when the repository's configuration has been changed. - - - - - - Repository specific properties - - - Repository specific properties - - - These properties can be specified on a repository specific basis - - - - - Basic Configurator interface for repositories - - - - Interface used by basic configurator to configure a - with a default . - - - A should implement this interface to support - configuration by the . - - - Nicko Cadell - Gert Driesen - - - - Initialize the repository using the specified appender - - the appender to use to log all logging events - - - Configure the repository to route all logging events to the - specified appender. - - - - - - Initialize the repository using the specified appenders - - the appenders to use to log all logging events - - - Configure the repository to route all logging events to the - specified appenders. - - - - - - Configure repository using XML - - - - Interface used by Xml configurator to configure a . - - - A should implement this interface to support - configuration by the . - - - Nicko Cadell - Gert Driesen - - - - Initialize the repository using the specified config - - the element containing the root of the config - - - The schema for the XML configuration data is defined by - the implementation. - - - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Construct with properties - - The properties to pass to this repository. - - - Initializes a new instance of the class. - - - - - - Construct with a logger factory - - The factory to use to create new logger instances. - - - Initializes a new instance of the class with - the specified . - - - - - - Construct with properties and a logger factory - - The properties to pass to this repository. - The factory to use to create new logger instances. - - - Initializes a new instance of the class with - the specified . - - - - - - Test if a logger exists - - The name of the logger to lookup - The Logger object with the name specified - - - Check if the named logger exists in the hierarchy. If so return - its reference, otherwise returns null. - - - - - - Returns all the currently defined loggers in the hierarchy as an Array - - All the defined loggers - - - Returns all the currently defined loggers in the hierarchy as an Array. - The root logger is not included in the returned - enumeration. - - - - - - Return a new logger instance named as the first parameter using - the default factory. - - - - Return a new logger instance named as the first parameter using - the default factory. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - The name of the logger to retrieve - The logger object with the name specified - - - - Shutting down a hierarchy will safely close and remove - all appenders in all loggers including the root logger. - - - - Shutting down a hierarchy will safely close and remove - all appenders in all loggers including the root logger. - - - Some appenders need to be closed before the - application exists. Otherwise, pending logging events might be - lost. - - - The Shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Reset all values contained in this hierarchy instance to their default. - - - - Reset all values contained in this hierarchy instance to their - default. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the logEvent through this hierarchy. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are currently configured - - An array containing all the currently configured appenders - - - Returns all the instances that are currently configured. - All the loggers are searched for appenders. The appenders may also be containers - for appenders and these are also searched for additional loggers. - - - The list returned is unordered but does not contain duplicates. - - - - - - Collect the appenders from an . - The appender may also be a container. - - - - - - - Collect the appenders from an container - - - - - - - Initialize the log4net system using the specified appender - - the appender to use to log all logging events - - - - Initialize the log4net system using the specified appenders - - the appenders to use to log all logging events - - - - Initialize the log4net system using the specified appenders - - the appenders to use to log all logging events - - - This method provides the same functionality as the - method implemented - on this object, but it is protected and therefore can be called by subclasses. - - - - - - Initialize the log4net system using the specified config - - the element containing the root of the config - - - - Initialize the log4net system using the specified config - - the element containing the root of the config - - - This method provides the same functionality as the - method implemented - on this object, but it is protected and therefore can be called by subclasses. - - - - - - Test if this hierarchy is disabled for the specified . - - The level to check against. - - true if the repository is disabled for the level argument, false otherwise. - - - - If this hierarchy has not been configured then this method will - always return true. - - - This method will return true if this repository is - disabled for level object passed as parameter and - false otherwise. - - - See also the property. - - - - - - Clear all logger definitions from the internal hashtable - - - - This call will clear all logger definitions from the internal - hashtable. Invoking this method will irrevocably mess up the - logger hierarchy. - - - You should really know what you are doing before - invoking this method. - - - - - - Return a new logger instance named as the first parameter using - . - - The name of the logger to retrieve - The factory that will make the new logger instance - The logger object with the name specified - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated by the - parameter and linked with its existing - ancestors as well as children. - - - - - - Sends a logger creation event to all registered listeners - - The newly created logger - - Raises the logger creation event. - - - - - Updates all the parents of the specified logger - - The logger to update the parents for - - - This method loops through all the potential parents of - . There 3 possible cases: - - - - No entry for the potential parent of exists - - We create a ProvisionNode for this potential - parent and insert in that provision node. - - - - The entry is of type Logger for the potential parent. - - The entry is 's nearest existing parent. We - update 's parent field with this entry. We also break from - he loop because updating our parent's parent is our parent's - responsibility. - - - - The entry is of type ProvisionNode for this potential parent. - - We add to the list of children for this - potential parent. - - - - - - - - Replace a with a in the hierarchy. - - - - - - We update the links for all the children that placed themselves - in the provision node 'pn'. The second argument 'log' is a - reference for the newly created Logger, parent of all the - children in 'pn'. - - - We loop on all the children 'c' in 'pn'. - - - If the child 'c' has been already linked to a child of - 'log' then there is no need to update 'c'. - - - Otherwise, we set log's parent field to c's parent and set - c's parent field to log. - - - - - - Define or redefine a Level using the values in the argument - - the level values - - - Define or redefine a Level using the values in the argument - - - Supports setting levels via the configuration file. - - - - - - Set a Property using the values in the argument - - the property value - - - Set a Property using the values in the argument. - - - Supports setting property values via the configuration file. - - - - - - The fully qualified type of the Hierarchy class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Event used to notify that a logger has been created. - - - - Event raised when a logger is created. - - - - - - Has no appender warning been emitted - - - - Flag to indicate if we have already issued a warning - about not having an appender warning. - - - - - - Get the root of this hierarchy - - - - Get the root of this hierarchy. - - - - - - Gets or sets the default instance. - - The default - - - The logger factory is used to create logger instances. - - - - - - A class to hold the value, name and display name for a level - - - - A class to hold the value, name and display name for a level - - - - - - Override Object.ToString to return sensible debug info - - string info about this object - - - - Value of the level - - - - If the value is not set (defaults to -1) the value will be looked - up for the current level with the same name. - - - - - - Name of the level - - - The name of the level - - - - The name of the level. - - - - - - Display name for the level - - - The display name of the level - - - - The display name of the level. - - - - - - Used internally to accelerate hash table searches. - - - - Internal class used to improve performance of - string keyed hashtables. - - - The hashcode of the string is cached for reuse. - The string is stored as an interned value. - When comparing two objects for equality - the reference equality of the interned strings is compared. - - - Nicko Cadell - Gert Driesen - - - - Construct key with string name - - - - Initializes a new instance of the class - with the specified name. - - - Stores the hashcode of the string and interns - the string key to optimize comparisons. - - - The Compact Framework 1.0 the - method does not work. On the Compact Framework - the string keys are not interned nor are they - compared by reference. - - - The name of the logger. - - - - Returns a hash code for the current instance. - - A hash code for the current instance. - - - Returns the cached hashcode. - - - - - - Determines whether two instances - are equal. - - The to compare with the current . - - true if the specified is equal to the current ; otherwise, false. - - - - Compares the references of the interned strings. - - - - - - Provision nodes are used where no logger instance has been specified - - - - instances are used in the - when there is no specified - for that node. - - - A provision node holds a list of child loggers on behalf of - a logger that does not exist. - - - Nicko Cadell - Gert Driesen - - - - Create a new provision node with child node - - A child logger to add to this node. - - - Initializes a new instance of the class - with the specified child logger. - - - - - - The sits at the root of the logger hierarchy tree. - - - - The is a regular except - that it provides several guarantees. - - - First, it cannot be assigned a null - level. Second, since the root logger cannot have a parent, the - property always returns the value of the - level field without walking the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Construct a - - The level to assign to the root logger. - - - Initializes a new instance of the class with - the specified logging level. - - - The root logger names itself as "root". However, the root - logger cannot be retrieved by name. - - - - - - The fully qualified type of the RootLogger class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the assigned level value without walking the logger hierarchy. - - The assigned level value without walking the logger hierarchy. - - - Because the root logger cannot have a parent and its level - must not be null this property just returns the - value of . - - - - - - Gets or sets the assigned for the root logger. - - - The of the root logger. - - - - Setting the level of the root logger to a null reference - may have catastrophic results. We prevent this here. - - - - - - Initializes the log4net environment using an XML DOM. - - - - Configures a using an XML DOM. - - - Nicko Cadell - Gert Driesen - - - - Construct the configurator for a hierarchy - - The hierarchy to build. - - - Initializes a new instance of the class - with the specified . - - - - - - Configure the hierarchy by parsing a DOM tree of XML elements. - - The root element to parse. - - - Configure the hierarchy by parsing a DOM tree of XML elements. - - - - - - Parse appenders by IDREF. - - The appender ref element. - The instance of the appender that the ref refers to. - - - Parse an XML element that represents an appender and return - the appender. - - - - - - Parses an appender element. - - The appender element. - The appender instance or null when parsing failed. - - - Parse an XML element that represents an appender and return - the appender instance. - - - - - - Parses a logger element. - - The logger element. - - - Parse an XML element that represents a logger. - - - - - - Parses the root logger element. - - The root element. - - - Parse an XML element that represents the root logger. - - - - - - Parses the children of a logger element. - - The category element. - The logger instance. - Flag to indicate if the logger is the root logger. - - - Parse the child elements of a <logger> element. - - - - - - Parses an object renderer. - - The renderer element. - - - Parse an XML element that represents a renderer. - - - - - - Parses a level element. - - The level element. - The logger object to set the level on. - Flag to indicate if the logger is the root logger. - - - Parse an XML element that represents a level. - - - - - - Sets a parameter on an object. - - The parameter element. - The object to set the parameter on. - - The parameter name must correspond to a writable property - on the object. The value of the parameter is a string, - therefore this function will attempt to set a string - property first. If unable to set a string property it - will inspect the property and its argument type. It will - attempt to call a static method called Parse on the - type of the property. This method will take a single - string argument and return a value that can be used to - set the property. - - - - - Test if an element has no attributes or child elements - - the element to inspect - true if the element has any attributes or child elements, false otherwise - - - - Test if a is constructible with Activator.CreateInstance. - - the type to inspect - true if the type is creatable using a default constructor, false otherwise - - - - Look for a method on the that matches the supplied - - the type that has the method - the name of the method - the method info found - - - The method must be a public instance method on the . - The method must be named or "Add" followed by . - The method must take a single parameter. - - - - - - Converts a string value to a target type. - - The type of object to convert the string to. - The string value to use as the value of the object. - - - An object of type with value or - null when the conversion could not be performed. - - - - - - Creates an object as specified in XML. - - The XML element that contains the definition of the object. - The object type to use if not explicitly specified. - The type that the returned object must be or must inherit from. - The object or null - - - Parse an XML element and create an object instance based on the configuration - data. - - - The type of the instance may be specified in the XML. If not - specified then the is used - as the type. However the type is specified it must support the - type. - - - - - - key: appenderName, value: appender. - - - - - The Hierarchy being configured. - - - - - The fully qualified type of the XmlHierarchyConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - - - - - - - - - - - - - - - - - Delegate used to handle logger repository shutdown event notifications - - The that is shutting down. - Empty event args - - - Delegate used to handle logger repository shutdown event notifications. - - - - - - Delegate used to handle logger repository configuration reset event notifications - - The that has had its configuration reset. - Empty event args - - - Delegate used to handle logger repository configuration reset event notifications. - - - - - - Delegate used to handle event notifications for logger repository configuration changes. - - The that has had its configuration changed. - Empty event arguments. - - - Delegate used to handle event notifications for logger repository configuration changes. - - - - - - Write the name of the current AppDomain to the output - - - - Write the name of the current AppDomain to the output writer - - - Nicko Cadell - - - - Write the name of the current AppDomain to the output - - the writer to write to - null, state is not set - - - Writes name of the current AppDomain to the output . - - - - - - Write the current date to the output - - - - Date pattern converter, uses a to format - the current date and time to the writer as a string. - - - The value of the determines - the formatting of the date. The following values are allowed: - - - Option value - Output - - - ISO8601 - - Uses the formatter. - Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. - - - - DATE - - Uses the formatter. - Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". - - - - ABSOLUTE - - Uses the formatter. - Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". - - - - other - - Any other pattern string uses the formatter. - This formatter passes the pattern string to the - method. - For details on valid patterns see - DateTimeFormatInfo Class. - - - - - - The date and time is in the local time zone and is rendered in that zone. - To output the time in Universal time see . - - - Nicko Cadell - - - - The used to render the date to a string - - - - The used to render the date to a string - - - - - - Initialize the converter options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the current date to the output - - that will receive the formatted result. - null, state is not set - - - Pass the current date and time to the - for it to render it to the writer. - - - The date and time passed is in the local time zone. - - - - - - The fully qualified type of the DatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write an folder path to the output - - - - Write an special path environment folder path to the output writer. - The value of the determines - the name of the variable to output. - should be a value in the enumeration. - - - Ron Grabowski - - - - Write an special path environment folder path to the output - - the writer to write to - null, state is not set - - - Writes the special path environment folder path to the output . - The name of the special path environment folder path to output must be set - using the - property. - - - - - - The fully qualified type of the EnvironmentFolderPathPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write an environment variable to the output - - - - Write an environment variable to the output writer. - The value of the determines - the name of the variable to output. - - - Nicko Cadell - - - - Write an environment variable to the output - - the writer to write to - null, state is not set - - - Writes the environment variable to the output . - The name of the environment variable to output must be set - using the - property. - - - - - - The fully qualified type of the EnvironmentPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the current thread identity to the output - - - - Write the current thread identity to the output writer - - - Nicko Cadell - - - - Write the current thread identity to the output - - the writer to write to - null, state is not set - - - Writes the current thread identity to the output . - - - - - - The fully qualified type of the IdentityPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Pattern converter for literal string instances in the pattern - - - - Writes the literal string value specified in the - property to - the output. - - - Nicko Cadell - - - - Set the next converter in the chain - - The next pattern converter in the chain - The next pattern converter - - - Special case the building of the pattern converter chain - for instances. Two adjacent - literals in the pattern can be represented by a single combined - pattern converter. This implementation detects when a - is added to the chain - after this converter and combines its value with this converter's - literal value. - - - - - - Write the literal to the output - - the writer to write to - null, not set - - - Override the formatting behavior to ignore the FormattingInfo - because we have a literal instead. - - - Writes the value of - to the output . - - - - - - Convert this pattern into the rendered message - - that will receive the formatted result. - null, not set - - - This method is not used. - - - - - - Writes a newline to the output - - - - Writes the system dependent line terminator to the output. - This behavior can be overridden by setting the : - - - - Option Value - Output - - - DOS - DOS or Windows line terminator "\r\n" - - - UNIX - UNIX line terminator "\n" - - - - Nicko Cadell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the current process ID to the output - - - - Write the current process ID to the output writer - - - Nicko Cadell - - - - Write the current process ID to the output - - the writer to write to - null, state is not set - - - Write the current process ID to the output . - - - - - - The fully qualified type of the ProcessIdPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Property pattern converter - - - - This pattern converter reads the thread and global properties. - The thread properties take priority over global properties. - See for details of the - thread properties. See for - details of the global properties. - - - If the is specified then that will be used to - lookup a single property. If no is specified - then all properties will be dumped as a list of key value pairs. - - - Nicko Cadell - - - - Write the property value to the output - - that will receive the formatted result. - null, state is not set - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - - - - A Pattern converter that generates a string of random characters - - - - The converter generates a string of random characters. By default - the string is length 4. This can be changed by setting the - to the string value of the length required. - - - The random characters in the string are limited to uppercase letters - and numbers only. - - - The random number generator used by this class is not cryptographically secure. - - - Nicko Cadell - - - - Shared random number generator - - - - - Length of random string to generate. Default length 4. - - - - - Initialize the converter options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write a randoim string to the output - - the writer to write to - null, state is not set - - - Write a randoim string to the output . - - - - - - The fully qualified type of the RandomStringPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the current threads username to the output - - - - Write the current threads username to the output writer - - - Nicko Cadell - - - - Write the current threads username to the output - - the writer to write to - null, state is not set - - - Write the current threads username to the output . - - - - - - The fully qualified type of the UserNamePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the UTC date time to the output - - - - Date pattern converter, uses a to format - the current date and time in Universal time. - - - See the for details on the date pattern syntax. - - - - Nicko Cadell - - - - Write the current date and time to the output - - that will receive the formatted result. - null, state is not set - - - Pass the current date and time to the - for it to render it to the writer. - - - The date is in Universal time when it is rendered. - - - - - - - The fully qualified type of the UtcDatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Type converter for Boolean. - - - - Supports conversion from string to bool type. - - - - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Convert the source object to the type supported by this object - - the object to convert - the converted object - - - Uses the method to convert the - argument to a . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Exception base type for conversion errors. - - - - This type extends . It - does not add any new functionality but does differentiate the - type of exception being thrown. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - A message to include with the exception. - - - Initializes a new instance of the class - with the specified message. - - - - - - Constructor - - A message to include with the exception. - A nested exception to include. - - - Initializes a new instance of the class - with the specified message and inner exception. - - - - - - Serialization constructor - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Creates a new instance of the class. - - The conversion destination type. - The value to convert. - An instance of the . - - - Creates a new instance of the class. - - - - - - Creates a new instance of the class. - - The conversion destination type. - The value to convert. - A nested exception to include. - An instance of the . - - - Creates a new instance of the class. - - - - - - Register of type converters for specific types. - - - - Maintains a registry of type converters used to convert between - types. - - - Use the and - methods to register new converters. - The and methods - lookup appropriate converters to use. - - - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - Initializes a new instance of the class. - - - - - Static constructor. - - - - This constructor defines the intrinsic type converters. - - - - - - Adds a converter for a specific type. - - The type being converted to. - The type converter to use to convert to the destination type. - - - Adds a converter instance for a specific type. - - - - - - Adds a converter for a specific type. - - The type being converted to. - The type of the type converter to use to convert to the destination type. - - - Adds a converter for a specific type. - - - - - - Gets the type converter to use to convert values to the destination type. - - The type being converted from. - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - Gets the type converter to use to convert values to the destination type. - - - - - - Gets the type converter to use to convert values to the destination type. - - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - Gets the type converter to use to convert values to the destination type. - - - - - - Lookups the type converter to use as specified by the attributes on the - destination type. - - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - - Creates the instance of the type converter. - - The type of the type converter. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - The type specified for the type converter must implement - the or interfaces - and must have a public default (no argument) constructor. - - - - - - The fully qualified type of the ConverterRegistry class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Mapping from to type converter. - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to an encoding - the encoding - - - Uses the method to - convert the argument to an . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Interface supported by type converters - - - - This interface supports conversion from a single type to arbitrary types. - See . - - - Nicko Cadell - - - - Returns whether this converter can convert the object to the specified type - - A Type that represents the type you want to convert to - true if the conversion is possible - - - Test if the type supported by this converter can be converted to the - . - - - - - - Converts the given value object to the specified type, using the arguments - - the object to convert - The Type to convert the value parameter to - the converted object - - - Converts the (which must be of the type supported - by this converter) to the specified.. - - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to an IPAddress - the IPAddress - - - Uses the method to convert the - argument to an . - If that fails then the string is resolved as a DNS hostname. - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - The string is used as the - of the . - - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a PatternLayout - the PatternLayout - - - Creates and returns a new using - the as the - . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Convert between string and - - - - Supports conversion from string to type, - and from a type to a string. - - - The string is used as the - of the . - - - - - - Nicko Cadell - - - - Can the target type be converted to the type supported by this object - - A that represents the type you want to convert to - true if the conversion is possible - - - Returns true if the is - assignable from a type. - - - - - - Converts the given value object to the specified type, using the arguments - - the object to convert - The Type to convert the value parameter to - the converted object - - - Uses the method to convert the - argument to a . - - - - The object cannot be converted to the - . To check for this condition use the - method. - - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a PatternString - the PatternString - - - Creates and returns a new using - the as the - . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a Type - the Type - - - Uses the method to convert the - argument to a . - Additional effort is made to locate partially specified types - by searching the loaded assemblies. - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Attribute used to associate a type converter - - - - Class and Interface level attribute that specifies a type converter - to use with the associated type. - - - To associate a type converter with a target type apply a - TypeConverterAttribute to the target type. Specify the - type of the type converter on the attribute. - - - Nicko Cadell - Gert Driesen - - - - The string type name of the type converter - - - - - Default constructor - - - - Default constructor - - - - - - Create a new type converter attribute for the specified type name - - The string type name of the type converter - - - The type specified must implement the - or the interfaces. - - - - - - Create a new type converter attribute for the specified type - - The type of the type converter - - - The type specified must implement the - or the interfaces. - - - - - - The string type name of the type converter - - - The string type name of the type converter - - - - The type specified must implement the - or the interfaces. - - - - - - A straightforward implementation of the interface. - - - - This is the default implementation of the - interface. Implementors of the interface - should aggregate an instance of this type. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Append on on all attached appenders. - - The event being logged. - The number of appenders called. - - - Calls the method on all - attached appenders. - - - - - - Append on on all attached appenders. - - The array of events being logged. - The number of appenders called. - - - Calls the method on all - attached appenders. - - - - - - Calls the DoAppende method on the with - the objects supplied. - - The appender - The events - - - If the supports the - interface then the will be passed - through using that interface. Otherwise the - objects in the array will be passed one at a time. - - - - - - Attaches an appender. - - The appender to add. - - - If the appender is already in the list it won't be added again. - - - - - - Gets an attached appender with the specified name. - - The name of the appender to get. - - The appender with the name specified, or null if no appender with the - specified name is found. - - - - Lookup an attached appender by name. - - - - - - Removes all attached appenders. - - - - Removes and closes all attached appenders - - - - - - Removes the specified appender from the list of attached appenders. - - The appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - List of appenders - - - - - Array of appenders, used to cache the m_appenderList - - - - - The fully qualified type of the AppenderAttachedImpl class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets all attached appenders. - - - A collection of attached appenders, or null if there - are no attached appenders. - - - - The read only collection of all currently attached appenders. - - - - - - This class aggregates several PropertiesDictionary collections together. - - - - Provides a dictionary style lookup over an ordered list of - collections. - - - Nicko Cadell - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Add a Properties Dictionary to this composite collection - - the properties to add - - - Properties dictionaries added first take precedence over dictionaries added - later. - - - - - - Flatten this composite collection into a single properties dictionary - - the flattened dictionary - - - Reduces the collection of ordered dictionaries to a single dictionary - containing the resultant values for the keys. - - - - - - Gets the value of a property - - - The value for the property with the specified key - - - - Looks up the value for the specified. - The collections are searched - in the order in which they were added to this collection. The value - returned is the value held by the first collection that contains - the specified key. - - - If none of the collections contain the specified key then - null is returned. - - - - - - Base class for Context Properties implementations - - - - This class defines a basic property get set accessor - - - Nicko Cadell - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Gets or sets the value of a property - - - - - - Wrapper class used to map converter names to converter types - - - - Pattern converter info class used during configuration by custom - PatternString and PatternLayer converters. - - - - - - default constructor - - - - - - - - - - - Gets or sets the name of the conversion pattern - - - - The name of the pattern in the format string - - - - - - Gets or sets the type of the converter - - - - The value specified must extend the - type. - - - - - - - - - - - Subclass of that maintains a count of - the number of bytes written. - - - - This writer counts the number of bytes written. - - - Nicko Cadell - Gert Driesen - - - - that does not leak exceptions - - - - does not throw exceptions when things go wrong. - Instead, it delegates error handling to its . - - - Nicko Cadell - Gert Driesen - - - - Adapter that extends and forwards all - messages to an instance of . - - - - Adapter that extends and forwards all - messages to an instance of . - - - Nicko Cadell - - - - The writer to forward messages to - - - - - Create an instance of that forwards all - messages to a . - - The to forward to - - - Create an instance of that forwards all - messages to a . - - - - - - Closes the writer and releases any system resources associated with the writer - - - - - - - - - Dispose this writer - - flag indicating if we are being disposed - - - Dispose this writer - - - - - - Flushes any buffered output - - - - Clears all buffers for the writer and causes any buffered data to be written - to the underlying device - - - - - - Writes a character to the wrapped TextWriter - - the value to write to the TextWriter - - - Writes a character to the wrapped TextWriter - - - - - - Writes a character buffer to the wrapped TextWriter - - the data buffer - the start index - the number of characters to write - - - Writes a character buffer to the wrapped TextWriter - - - - - - Writes a string to the wrapped TextWriter - - the value to write to the TextWriter - - - Writes a string to the wrapped TextWriter - - - - - - Gets or sets the underlying . - - - The underlying . - - - - Gets or sets the underlying . - - - - - - The Encoding in which the output is written - - - The - - - - The Encoding in which the output is written - - - - - - Gets an object that controls formatting - - - The format provider - - - - Gets an object that controls formatting - - - - - - Gets or sets the line terminator string used by the TextWriter - - - The line terminator to use - - - - Gets or sets the line terminator string used by the TextWriter - - - - - - Constructor - - the writer to actually write to - the error handler to report error to - - - Create a new QuietTextWriter using a writer and error handler - - - - - - Writes a character to the underlying writer - - the char to write - - - Writes a character to the underlying writer - - - - - - Writes a buffer to the underlying writer - - the buffer to write - the start index to write from - the number of characters to write - - - Writes a buffer to the underlying writer - - - - - - Writes a string to the output. - - The string data to write to the output. - - - Writes a string to the output. - - - - - - Closes the underlying output writer. - - - - Closes the underlying output writer. - - - - - - The error handler instance to pass all errors to - - - - - Flag to indicate if this writer is closed - - - - - Gets or sets the error handler that all errors are passed to. - - - The error handler that all errors are passed to. - - - - Gets or sets the error handler that all errors are passed to. - - - - - - Gets a value indicating whether this writer is closed. - - - true if this writer is closed, otherwise false. - - - - Gets a value indicating whether this writer is closed. - - - - - - Constructor - - The to actually write to. - The to report errors to. - - - Creates a new instance of the class - with the specified and . - - - - - - Writes a character to the underlying writer and counts the number of bytes written. - - the char to write - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Writes a buffer to the underlying writer and counts the number of bytes written. - - the buffer to write - the start index to write from - the number of characters to write - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Writes a string to the output and counts the number of bytes written. - - The string data to write to the output. - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Total number of bytes written. - - - - - Gets or sets the total number of bytes written. - - - The total number of bytes written. - - - - Gets or sets the total number of bytes written. - - - - - - A fixed size rolling buffer of logging events. - - - - An array backed fixed size leaky bucket. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The maximum number of logging events in the buffer. - - - Initializes a new instance of the class with - the specified maximum number of buffered logging events. - - - The argument is not a positive integer. - - - - Appends a to the buffer. - - The event to append to the buffer. - The event discarded from the buffer, if the buffer is full, otherwise null. - - - Append an event to the buffer. If the buffer still contains free space then - null is returned. If the buffer is full then an event will be dropped - to make space for the new event, the event dropped is returned. - - - - - - Get and remove the oldest event in the buffer. - - The oldest logging event in the buffer - - - Gets the oldest (first) logging event in the buffer and removes it - from the buffer. - - - - - - Pops all the logging events from the buffer into an array. - - An array of all the logging events in the buffer. - - - Get all the events in the buffer and clear the buffer. - - - - - - Clear the buffer - - - - Clear the buffer of all events. The events in the buffer are lost. - - - - - - Gets the th oldest event currently in the buffer. - - The th oldest event currently in the buffer. - - - If is outside the range 0 to the number of events - currently in the buffer, then null is returned. - - - - - - Gets the maximum size of the buffer. - - The maximum size of the buffer. - - - Gets the maximum size of the buffer - - - - - - Gets the number of logging events in the buffer. - - The number of logging events in the buffer. - - - This number is guaranteed to be in the range 0 to - (inclusive). - - - - - - An always empty . - - - - A singleton implementation of the - interface that always represents an empty collection. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Copies the elements of the to an - , starting at a particular Array index. - - The one-dimensional - that is the destination of the elements copied from - . The Array must have zero-based - indexing. - The zero-based index in array at which - copying begins. - - - As the collection is empty no values are copied into the array. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - The singleton instance of the empty collection. - - - - - Gets the singleton instance of the empty collection. - - The singleton instance of the empty collection. - - - Gets the singleton instance of the empty collection. - - - - - - Gets a value indicating if access to the is synchronized (thread-safe). - - - true if access to the is synchronized (thread-safe); otherwise, false. - - - - For the this property is always true. - - - - - - Gets the number of elements contained in the . - - - The number of elements contained in the . - - - - As the collection is empty the is always 0. - - - - - - Gets an object that can be used to synchronize access to the . - - - An object that can be used to synchronize access to the . - - - - As the collection is empty and thread safe and synchronized this instance is also - the object. - - - - - - An always empty . - - - - A singleton implementation of the - interface that always represents an empty collection. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Copies the elements of the to an - , starting at a particular Array index. - - The one-dimensional - that is the destination of the elements copied from - . The Array must have zero-based - indexing. - The zero-based index in array at which - copying begins. - - - As the collection is empty no values are copied into the array. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - Adds an element with the provided key and value to the - . - - The to use as the key of the element to add. - The to use as the value of the element to add. - - - As the collection is empty no new values can be added. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - Removes all elements from the . - - - - As the collection is empty no values can be removed. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - Determines whether the contains an element - with the specified key. - - The key to locate in the . - false - - - As the collection is empty the method always returns false. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - Removes the element with the specified key from the . - - The key of the element to remove. - - - As the collection is empty no values can be removed. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - The singleton instance of the empty dictionary. - - - - - Gets the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets a value indicating if access to the is synchronized (thread-safe). - - - true if access to the is synchronized (thread-safe); otherwise, false. - - - - For the this property is always true. - - - - - - Gets the number of elements contained in the - - - The number of elements contained in the . - - - - As the collection is empty the is always 0. - - - - - - Gets an object that can be used to synchronize access to the . - - - An object that can be used to synchronize access to the . - - - - As the collection is empty and thread safe and synchronized this instance is also - the object. - - - - - - Gets a value indicating whether the has a fixed size. - - true - - - As the collection is empty always returns true. - - - - - - Gets a value indicating whether the is read-only. - - true - - - As the collection is empty always returns true. - - - - - - Gets an containing the keys of the . - - An containing the keys of the . - - - As the collection is empty a is returned. - - - - - - Gets an containing the values of the . - - An containing the values of the . - - - As the collection is empty a is returned. - - - - - - Gets or sets the element with the specified key. - - The key of the element to get or set. - null - - - As the collection is empty no values can be looked up or stored. - If the index getter is called then null is returned. - A is thrown if the setter is called. - - - This dictionary is always empty and cannot be modified. - - - - Contain the information obtained when parsing formatting modifiers - in conversion modifiers. - - - - Holds the formatting information extracted from the format string by - the . This is used by the - objects when rendering the output. - - - Nicko Cadell - Gert Driesen - - - - Defaut Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - - - Initializes a new instance of the class - with the specified parameters. - - - - - - Gets or sets the minimum value. - - - The minimum value. - - - - Gets or sets the minimum value. - - - - - - Gets or sets the maximum value. - - - The maximum value. - - - - Gets or sets the maximum value. - - - - - - Gets or sets a flag indicating whether left align is enabled - or not. - - - A flag indicating whether left align is enabled or not. - - - - Gets or sets a flag indicating whether left align is enabled or not. - - - - - - Implementation of Properties collection for the - - - - This class implements a properties collection that is thread safe and supports both - storing properties and capturing a read only copy of the current propertied. - - - This class is optimized to the scenario where the properties are read frequently - and are modified infrequently. - - - Nicko Cadell - - - - The read only copy of the properties. - - - - This variable is declared volatile to prevent the compiler and JIT from - reordering reads and writes of this thread performed on different threads. - - - - - - Lock object used to synchronize updates within this instance - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property from the global context - - the key for the entry to remove - - - Removing an entry from the global context properties is relatively expensive compared - with reading a value. - - - - - - Clear the global context properties - - - - - Get a readonly immutable copy of the properties - - the current global context properties - - - This implementation is fast because the GlobalContextProperties class - stores a readonly copy of the properties. - - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Reading the value for a key is faster than setting the value. - When the value is written a new read only copy of - the properties is created. - - - - - - Manages a mapping from levels to - - - - Manages an ordered mapping from instances - to subclasses. - - - Nicko Cadell - - - - Default constructor - - - - Initialise a new instance of . - - - - - - Add a to this mapping - - the entry to add - - - If a has previously been added - for the same then that entry will be - overwritten. - - - - - - Lookup the mapping for the specified level - - the level to lookup - the for the level or null if no mapping found - - - Lookup the value for the specified level. Finds the nearest - mapping value for the level that is equal to or less than the - specified. - - - If no mapping could be found then null is returned. - - - - - - Initialize options - - - - Caches the sorted list of in an array - - - - - - Implementation of Properties collection for the - - - - Class implements a collection of properties that is specific to each thread. - The class is not synchronized as each thread has its own . - - - This class stores its properties in a slot on the named - log4net.Util.LogicalThreadContextProperties. - - - The requires a link time - for the - . - If the calling code does not have this permission then this context will be disabled. - It will not store any property values set on it. - - - Nicko Cadell - - - - Flag used to disable this context if we don't have permission to access the CallContext. - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property - - the key for the entry to remove - - - Remove the value for the specified from the context. - - - - - - Clear all the context properties - - - - Clear all the context properties - - - - - - Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. - - create the dictionary if it does not exist, otherwise return null if is does not exist - the properties for this thread - - - The collection returned is only to be used on the calling thread. If the - caller needs to share the collection between different threads then the - caller must clone the collection before doings so. - - - - - - Gets the call context get data. - - The peroperties dictionary stored in the call context - - The method has a - security link demand, therfore we must put the method call in a seperate method - that we can wrap in an exception handler. - - - - - Sets the call context data. - - The properties. - - The method has a - security link demand, therfore we must put the method call in a seperate method - that we can wrap in an exception handler. - - - - - The fully qualified type of the LogicalThreadContextProperties class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Get or set the property value for the specified. - - - - - - - - - - - - - Outputs log statements from within the log4net assembly. - - - - Log4net components cannot make log4net logging calls. However, it is - sometimes useful for the user to learn about what log4net is - doing. - - - All log4net internal debug calls go to the standard output stream - whereas internal error messages are sent to the standard error output - stream. - - - Nicko Cadell - Gert Driesen - - - - Formats Prefix, Source, and Message in the same format as the value - sent to Console.Out and Trace.Write. - - - - - - Initializes a new instance of the class. - - - - - - - - - Static constructor that initializes logging by reading - settings from the application configuration file. - - - - The log4net.Internal.Debug application setting - controls internal debugging. This setting should be set - to true to enable debugging. - - - The log4net.Internal.Quiet application setting - suppresses all internal logging including error messages. - This setting should be set to true to enable message - suppression. - - - - - - Raises the LogReceived event when an internal messages is received. - - - - - - - - - Writes log4net internal debug messages to the - standard output stream. - - - The message to log. - - - All internal debug messages are prepended with - the string "log4net: ". - - - - - - Writes log4net internal debug messages to the - standard output stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal debug messages are prepended with - the string "log4net: ". - - - - - - Writes log4net internal warning messages to the - standard error stream. - - The Type that generated this message. - The message to log. - - - All internal warning messages are prepended with - the string "log4net:WARN ". - - - - - - Writes log4net internal warning messages to the - standard error stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal warning messages are prepended with - the string "log4net:WARN ". - - - - - - Writes log4net internal error messages to the - standard error stream. - - The Type that generated this message. - The message to log. - - - All internal error messages are prepended with - the string "log4net:ERROR ". - - - - - - Writes log4net internal error messages to the - standard error stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal debug messages are prepended with - the string "log4net:ERROR ". - - - - - - Writes output to the standard output stream. - - The message to log. - - - Writes to both Console.Out and System.Diagnostics.Trace. - Note that the System.Diagnostics.Trace is not supported - on the Compact Framework. - - - If the AppDomain is not configured with a config file then - the call to System.Diagnostics.Trace may fail. This is only - an issue if you are programmatically creating your own AppDomains. - - - - - - Writes output to the standard error stream. - - The message to log. - - - Writes to both Console.Error and System.Diagnostics.Trace. - Note that the System.Diagnostics.Trace is not supported - on the Compact Framework. - - - If the AppDomain is not configured with a config file then - the call to System.Diagnostics.Trace may fail. This is only - an issue if you are programmatically creating your own AppDomains. - - - - - - Default debug level - - - - - In quietMode not even errors generate any output. - - - - - The event raised when an internal message has been received. - - - - - The Type that generated the internal message. - - - - - The DateTime stamp of when the internal message was received. - - - - - A string indicating the severity of the internal message. - - - "log4net: ", - "log4net:ERROR ", - "log4net:WARN " - - - - - The internal log message. - - - - - The Exception related to the message. - - - Optional. Will be null if no Exception was passed. - - - - - Gets or sets a value indicating whether log4net internal logging - is enabled or disabled. - - - true if log4net internal logging is enabled, otherwise - false. - - - - When set to true, internal debug level logging will be - displayed. - - - This value can be set by setting the application setting - log4net.Internal.Debug in the application configuration - file. - - - The default value is false, i.e. debugging is - disabled. - - - - - The following example enables internal debugging using the - application configuration file : - - - - - - - - - - - - - Gets or sets a value indicating whether log4net should generate no output - from internal logging, not even for errors. - - - true if log4net should generate no output at all from internal - logging, otherwise false. - - - - When set to true will cause internal logging at all levels to be - suppressed. This means that no warning or error reports will be logged. - This option overrides the setting and - disables all debug also. - - This value can be set by setting the application setting - log4net.Internal.Quiet in the application configuration file. - - - The default value is false, i.e. internal logging is not - disabled. - - - - The following example disables internal logging using the - application configuration file : - - - - - - - - - - - - - - - - - Test if LogLog.Debug is enabled for output. - - - true if Debug is enabled - - - - Test if LogLog.Debug is enabled for output. - - - - - - Test if LogLog.Warn is enabled for output. - - - true if Warn is enabled - - - - Test if LogLog.Warn is enabled for output. - - - - - - Test if LogLog.Error is enabled for output. - - - true if Error is enabled - - - - Test if LogLog.Error is enabled for output. - - - - - - Subscribes to the LogLog.LogReceived event and stores messages - to the supplied IList instance. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Represents a native error code and message. - - - - Represents a Win32 platform native error. - - - Nicko Cadell - Gert Driesen - - - - Create an instance of the class with the specified - error number and message. - - The number of the native error. - The message of the native error. - - - Create an instance of the class with the specified - error number and message. - - - - - - Create a new instance of the class for the last Windows error. - - - An instance of the class for the last windows error. - - - - The message for the error number is lookup up using the - native Win32 FormatMessage function. - - - - - - Create a new instance of the class. - - the error number for the native error - - An instance of the class for the specified - error number. - - - - The message for the specified error number is lookup up using the - native Win32 FormatMessage function. - - - - - - Retrieves the message corresponding with a Win32 message identifier. - - Message identifier for the requested message. - - The message corresponding with the specified message identifier. - - - - The message will be searched for in system message-table resource(s) - using the native FormatMessage function. - - - - - - Return error information string - - error information string - - - Return error information string - - - - - - Formats a message string. - - Formatting options, and how to interpret the parameter. - Location of the message definition. - Message identifier for the requested message. - Language identifier for the requested message. - If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . - If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. - Pointer to an array of values that are used as insert values in the formatted message. - - - The function requires a message definition as input. The message definition can come from a - buffer passed into the function. It can come from a message table resource in an - already-loaded module. Or the caller can ask the function to search the system's message - table resource(s) for the message definition. The function finds the message definition - in a message table resource based on a message identifier and a language identifier. - The function copies the formatted message text to an output buffer, processing any embedded - insert sequences if requested. - - - To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. - - - - - If the function succeeds, the return value is the number of TCHARs stored in the output - buffer, excluding the terminating null character. - - - If the function fails, the return value is zero. To get extended error information, - call . - - - - - - Gets the number of the native error. - - - The number of the native error. - - - - Gets the number of the native error. - - - - - - Gets the message of the native error. - - - The message of the native error. - - - - - Gets the message of the native error. - - - - - An always empty . - - - - A singleton implementation of the over a collection - that is empty and not modifiable. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Test if the enumerator can advance, if so advance. - - false as the cannot advance. - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will always return false. - - - - - - Resets the enumerator back to the start. - - - - As the enumerator is over an empty collection does nothing. - - - - - - The singleton instance of the . - - - - - Gets the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets the current object from the enumerator. - - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current key from the enumerator. - - - Throws an exception because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current value from the enumerator. - - The current value from the enumerator. - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current entry from the enumerator. - - - Throws an because the - never has a current entry. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - An always empty . - - - - A singleton implementation of the over a collection - that is empty and not modifiable. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Test if the enumerator can advance, if so advance - - false as the cannot advance. - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will always return false. - - - - - - Resets the enumerator back to the start. - - - - As the enumerator is over an empty collection does nothing. - - - - - - The singleton instance of the . - - - - - Get the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets the current object from the enumerator. - - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - A SecurityContext used when a SecurityContext is not required - - - - The is a no-op implementation of the - base class. It is used where a - is required but one has not been provided. - - - Nicko Cadell - - - - Singleton instance of - - - - Singleton instance of - - - - - - Private constructor - - - - Private constructor for singleton pattern. - - - - - - Impersonate this SecurityContext - - State supplied by the caller - null - - - No impersonation is done and null is always returned. - - - - - - Implements log4net's default error handling policy which consists - of emitting a message for the first error in an appender and - ignoring all subsequent errors. - - - - The error message is processed using the LogLog sub-system. - - - This policy aims at protecting an otherwise working application - from being flooded with error messages when logging fails. - - - Nicko Cadell - Gert Driesen - Ron Grabowski - - - - Default Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - The prefix to use for each message. - - - Initializes a new instance of the class - with the specified prefix. - - - - - - Reset the error handler back to its initial disabled state. - - - - - Log an Error - - The error message. - The exception. - The internal error code. - - - Sends the error information to 's Error method. - - - - - - Log an Error - - The error message. - The exception. - - - Prints the message and the stack trace of the exception on the standard - error output stream. - - - - - - Log an error - - The error message. - - - Print a the error message passed as parameter on the standard - error output stream. - - - - - - The date the error was recorded. - - - - - Flag to indicate if it is the first error - - - - - The message recorded during the first error. - - - - - The exception recorded during the first error. - - - - - The error code recorded during the first error. - - - - - String to prefix each message with - - - - - The fully qualified type of the OnlyOnceErrorHandler class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Is error logging enabled - - - - Is error logging enabled. Logging is only enabled for the - first error delivered to the . - - - - - - The date the first error that trigged this error handler occured. - - - - - The message from the first error that trigged this error handler. - - - - - The exception from the first error that trigged this error handler. - - - May be . - - - - - The error code from the first error that trigged this error handler. - - - Defaults to - - - - - A convenience class to convert property values to specific types. - - - - Utility functions for converting types and parsing values. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Converts a string to a value. - - String to convert. - The default value. - The value of . - - - If is "true", then true is returned. - If is "false", then false is returned. - Otherwise, is returned. - - - - - - Parses a file size into a number. - - String to parse. - The default value. - The value of . - - - Parses a file size of the form: number[KB|MB|GB] into a - long value. It is scaled with the appropriate multiplier. - - - is returned when - cannot be converted to a value. - - - - - - Converts a string to an object. - - The target type to convert to. - The string to convert to an object. - - The object converted from a string or null when the - conversion failed. - - - - Converts a string to an object. Uses the converter registry to try - to convert the string value into the specified target type. - - - - - - Checks if there is an appropriate type conversion from the source type to the target type. - - The type to convert from. - The type to convert to. - true if there is a conversion from the source type to the target type. - - Checks if there is an appropriate type conversion from the source type to the target type. - - - - - - - Converts an object to the target type. - - The object to convert to the target type. - The type to convert to. - The converted object. - - - Converts an object to the target type. - - - - - - Instantiates an object given a class name. - - The fully qualified class name of the object to instantiate. - The class to which the new object should belong. - The object to return in case of non-fulfillment. - - An instance of the or - if the object could not be instantiated. - - - - Checks that the is a subclass of - . If that test fails or the object could - not be instantiated, then is returned. - - - - - - Performs variable substitution in string from the - values of keys found in . - - The string on which variable substitution is performed. - The dictionary to use to lookup variables. - The result of the substitutions. - - - The variable substitution delimiters are ${ and }. - - - For example, if props contains key=value, then the call - - - - string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); - - - - will set the variable s to "Value of key is value.". - - - If no value could be found for the specified key, then substitution - defaults to an empty string. - - - For example, if system properties contains no value for the key - "nonExistentKey", then the call - - - - string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); - - - - will set s to "Value of nonExistentKey is []". - - - An Exception is thrown if contains a start - delimiter "${" which is not balanced by a stop delimiter "}". - - - - - - Converts the string representation of the name or numeric value of one or - more enumerated constants to an equivalent enumerated object. - - The type to convert to. - The enum string value. - If true, ignore case; otherwise, regard case. - An object of type whose value is represented by . - - - - The fully qualified type of the OptionConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Most of the work of the class - is delegated to the PatternParser class. - - - - The PatternParser processes a pattern string and - returns a chain of objects. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The pattern to parse. - - - Initializes a new instance of the class - with the specified pattern string. - - - - - - Parses the pattern into a chain of pattern converters. - - The head of a chain of pattern converters. - - - Parses the pattern into a chain of pattern converters. - - - - - - Build the unified cache of converters from the static and instance maps - - the list of all the converter names - - - Build the unified cache of converters from the static and instance maps - - - - - - Internal method to parse the specified pattern to find specified matches - - the pattern to parse - the converter names to match in the pattern - - - The matches param must be sorted such that longer strings come before shorter ones. - - - - - - Process a parsed literal - - the literal text - - - - Process a parsed converter pattern - - the name of the converter - the optional option for the converter - the formatting info for the converter - - - - Resets the internal state of the parser and adds the specified pattern converter - to the chain. - - The pattern converter to add. - - - - The first pattern converter in the chain - - - - - the last pattern converter in the chain - - - - - The pattern - - - - - Internal map of converter identifiers to converter types - - - - This map overrides the static s_globalRulesRegistry map. - - - - - - The fully qualified type of the PatternParser class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Get the converter registry used by this parser - - - The converter registry used by this parser - - - - Get the converter registry used by this parser - - - - - - Sort strings by length - - - - that orders strings by string length. - The longest strings are placed first - - - - - - This class implements a patterned string. - - - - This string has embedded patterns that are resolved and expanded - when the string is formatted. - - - This class functions similarly to the - in that it accepts a pattern and renders it to a string. Unlike the - however the PatternString - does not render the properties of a specific but - of the process in general. - - - The recognized conversion pattern names are: - - - - Conversion Pattern Name - Effect - - - appdomain - - - Used to output the friendly name of the current AppDomain. - - - - - date - - - Used to output the current date and time in the local time zone. - To output the date in universal time use the %utcdate pattern. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %date{HH:mm:ss,fff} or - %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %date{ISO8601} or %date{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - env - - - Used to output the a specific environment variable. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %env{COMPUTERNAME} would include the value - of the COMPUTERNAME environment variable. - - - The env pattern is not supported on the .NET Compact Framework. - - - - - identity - - - Used to output the user name for the currently active user - (Principal.Identity.Name). - - - - - newline - - - Outputs the platform dependent line separator character or - characters. - - - This conversion pattern name offers the same performance as using - non-portable line separator strings such as "\n", or "\r\n". - Thus, it is the preferred way of specifying a line separator. - - - - - processid - - - Used to output the system process ID for the current process. - - - - - property - - - Used to output a specific context property. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %property{user} would include the value - from the property that is keyed by the string 'user'. Each property value - that is to be included in the log must be specified separately. - Properties are stored in logging contexts. By default - the log4net:HostName property is set to the name of machine on - which the event was originally logged. - - - If no key is specified, e.g. %property then all the keys and their - values are printed in a comma separated list. - - - The properties of an event are combined from a number of different - contexts. These are listed below in the order in which they are searched. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - random - - - Used to output a random string of characters. The string is made up of - uppercase letters and numbers. By default the string is 4 characters long. - The length of the string can be specified within braces directly following the - pattern specifier, e.g. %random{8} would output an 8 character string. - - - - - username - - - Used to output the WindowsIdentity for the currently - active user. - - - - - utcdate - - - Used to output the date of the logging event in universal time. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %utcdate{HH:mm:ss,fff} or - %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %utcdate{ISO8601} or %utcdate{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - % - - - The sequence %% outputs a single percent sign. - - - - - - Additional pattern converters may be registered with a specific - instance using or - . - - - See the for details on the - format modifiers supported by the patterns. - - - Nicko Cadell - - - - Internal map of converter identifiers to converter types. - - - - - the pattern - - - - - the head of the pattern converter chain - - - - - patterns defined on this PatternString only - - - - - Initialize the global registry - - - - - Default constructor - - - - Initialize a new instance of - - - - - - Constructs a PatternString - - The pattern to use with this PatternString - - - Initialize a new instance of with the pattern specified. - - - - - - Initialize object options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Create the used to parse the pattern - - the pattern to parse - The - - - Returns PatternParser used to parse the conversion string. Subclasses - may override this to return a subclass of PatternParser which recognize - custom conversion pattern name. - - - - - - Produces a formatted string as specified by the conversion pattern. - - The TextWriter to write the formatted event to - - - Format the pattern to the . - - - - - - Format the pattern as a string - - the pattern formatted as a string - - - Format the pattern to a string. - - - - - - Add a converter to this PatternString - - the converter info - - - This version of the method is used by the configurator. - Programmatic users should use the alternative method. - - - - - - Add a converter to this PatternString - - the name of the conversion pattern for this converter - the type of the converter - - - Add a converter to this PatternString - - - - - - Gets or sets the pattern formatting string - - - The pattern formatting string - - - - The ConversionPattern option. This is the string which - controls formatting and consists of a mix of literal content and - conversion specifiers. - - - - - - String keyed object map. - - - - While this collection is serializable only member - objects that are serializable will - be serialized along with this collection. - - - Nicko Cadell - Gert Driesen - - - - String keyed object map that is read only. - - - - This collection is readonly and cannot be modified. - - - While this collection is serializable only member - objects that are serializable will - be serialized along with this collection. - - - Nicko Cadell - Gert Driesen - - - - The Hashtable used to store the properties data - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Copy Constructor - - properties to copy - - - Initializes a new instance of the class. - - - - - - Deserialization constructor - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Gets the key names. - - An array of all the keys. - - - Gets the key names. - - - - - - Test if the dictionary contains a specified key - - the key to look for - true if the dictionary contains the specified key - - - Test if the dictionary contains a specified key - - - - - - Serializes this object into the provided. - - The to populate with data. - The destination for this serialization. - - - Serializes this object into the provided. - - - - - - See - - - - - See - - - - - - See - - - - - - - Remove all properties from the properties collection - - - - - See - - - - - - - See - - - - - - - See - - - - - Gets or sets the value of the property with the specified key. - - - The value of the property with the specified key. - - The key of the property to get or set. - - - The property value will only be serialized if it is serializable. - If it cannot be serialized it will be silently ignored if - a serialization operation is performed. - - - - - - The hashtable used to store the properties - - - The internal collection used to store the properties - - - - The hashtable used to store the properties - - - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - The number of properties in this collection - - - - - See - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - properties to copy - - - Initializes a new instance of the class. - - - - - - Initializes a new instance of the class - with serialized data. - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Because this class is sealed the serialization constructor is private. - - - - - - Remove the entry with the specified key from this dictionary - - the key for the entry to remove - - - Remove the entry with the specified key from this dictionary - - - - - - See - - an enumerator - - - Returns a over the contest of this collection. - - - - - - See - - the key to remove - - - Remove the entry with the specified key from this dictionary - - - - - - See - - the key to lookup in the collection - true if the collection contains the specified key - - - Test if this collection contains a specified key. - - - - - - Remove all properties from the properties collection - - - - Remove all properties from the properties collection - - - - - - See - - the key - the value to store for the key - - - Store a value for the specified . - - - Thrown if the is not a string - - - - See - - - - - - - See - - - - - Gets or sets the value of the property with the specified key. - - - The value of the property with the specified key. - - The key of the property to get or set. - - - The property value will only be serialized if it is serializable. - If it cannot be serialized it will be silently ignored if - a serialization operation is performed. - - - - - - See - - - false - - - - This collection is modifiable. This property always - returns false. - - - - - - See - - - The value for the key specified. - - - - Get or set a value for the specified . - - - Thrown if the is not a string - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - A class to hold the key and data for a property set in the config file - - - - A class to hold the key and data for a property set in the config file - - - - - - Override Object.ToString to return sensible debug info - - string info about this object - - - - Property Key - - - Property Key - - - - Property Key. - - - - - - Property Value - - - Property Value - - - - Property Value. - - - - - - A that ignores the message - - - - This writer is used in special cases where it is necessary - to protect a writer from being closed by a client. - - - Nicko Cadell - - - - Constructor - - the writer to actually write to - - - Create a new ProtectCloseTextWriter using a writer - - - - - - Attach this instance to a different underlying - - the writer to attach to - - - Attach this instance to a different underlying - - - - - - Does not close the underlying output writer. - - - - Does not close the underlying output writer. - This method does nothing. - - - - - - Defines a lock that supports single writers and multiple readers - - - - ReaderWriterLock is used to synchronize access to a resource. - At any given time, it allows either concurrent read access for - multiple threads, or write access for a single thread. In a - situation where a resource is changed infrequently, a - ReaderWriterLock provides better throughput than a simple - one-at-a-time lock, such as . - - - If a platform does not support a System.Threading.ReaderWriterLock - implementation then all readers and writers are serialized. Therefore - the caller must not rely on multiple simultaneous readers. - - - Nicko Cadell - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Acquires a reader lock - - - - blocks if a different thread has the writer - lock, or if at least one thread is waiting for the writer lock. - - - - - - Decrements the lock count - - - - decrements the lock count. When the count - reaches zero, the lock is released. - - - - - - Acquires the writer lock - - - - This method blocks if another thread has a reader lock or writer lock. - - - - - - Decrements the lock count on the writer lock - - - - ReleaseWriterLock decrements the writer lock count. - When the count reaches zero, the writer lock is released. - - - - - - A that can be and reused - - - - A that can be and reused. - This uses a single buffer for string operations. - - - Nicko Cadell - - - - Create an instance of - - the format provider to use - - - Create an instance of - - - - - - Override Dispose to prevent closing of writer - - flag - - - Override Dispose to prevent closing of writer - - - - - - Reset this string writer so that it can be reused. - - the maximum buffer capacity before it is trimmed - the default size to make the buffer - - - Reset this string writer so that it can be reused. - The internal buffers are cleared and reset. - - - - - - Utility class for system specific information. - - - - Utility class of static methods for system specific information. - - - Nicko Cadell - Gert Driesen - Alexey Solofnenko - - - - Private constructor to prevent instances. - - - - Only static methods are exposed from this type. - - - - - - Initialize default values for private static fields. - - - - Only static methods are exposed from this type. - - - - - - Gets the assembly location path for the specified assembly. - - The assembly to get the location for. - The location of the assembly. - - - This method does not guarantee to return the correct path - to the assembly. If only tries to give an indication as to - where the assembly was loaded from. - - - - - - Gets the fully qualified name of the , including - the name of the assembly from which the was - loaded. - - The to get the fully qualified name for. - The fully qualified name for the . - - - This is equivalent to the Type.AssemblyQualifiedName property, - but this method works on the .NET Compact Framework 1.0 as well as - the full .NET runtime. - - - - - - Gets the short name of the . - - The to get the name for. - The short name of the . - - - The short name of the assembly is the - without the version, culture, or public key. i.e. it is just the - assembly's file name without the extension. - - - Use this rather than Assembly.GetName().Name because that - is not available on the Compact Framework. - - - Because of a FileIOPermission security demand we cannot do - the obvious Assembly.GetName().Name. We are allowed to get - the of the assembly so we - start from there and strip out just the assembly name. - - - - - - Gets the file name portion of the , including the extension. - - The to get the file name for. - The file name of the assembly. - - - Gets the file name portion of the , including the extension. - - - - - - Loads the type specified in the type string. - - A sibling type to use to load the type. - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified, it will be loaded from the assembly - containing the specified relative type. If the type is not found in the assembly - then all the loaded assemblies will be searched for the type. - - - - - - Loads the type specified in the type string. - - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified it will be loaded from the - assembly that is directly calling this method. If the type is not found - in the assembly then all the loaded assemblies will be searched for the type. - - - - - - Loads the type specified in the type string. - - An assembly to load the type from. - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified it will be loaded from the specified - assembly. If the type is not found in the assembly then all the loaded assemblies - will be searched for the type. - - - - - - Generate a new guid - - A new Guid - - - Generate a new guid - - - - - - Create an - - The name of the parameter that caused the exception - The value of the argument that causes this exception - The message that describes the error - the ArgumentOutOfRangeException object - - - Create a new instance of the class - with a specified error message, the parameter name, and the value - of the argument. - - - The Compact Framework does not support the 3 parameter constructor for the - type. This method provides an - implementation that works for all platforms. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Lookup an application setting - - the application settings key to lookup - the value for the key, or null - - - Configuration APIs are not supported under the Compact Framework - - - - - - Convert a path into a fully qualified local file path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - The path specified must be a local file path, a URI is not supported. - - - - - - Creates a new case-insensitive instance of the class with the default initial capacity. - - A new case-insensitive instance of the class with the default initial capacity - - - The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. - - - - - - Gets an empty array of types. - - - - The Type.EmptyTypes field is not available on - the .NET Compact Framework 1.0. - - - - - - The fully qualified type of the SystemInfo class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Cache the host name for the current machine - - - - - Cache the application friendly name - - - - - Text to output when a null is encountered. - - - - - Text to output when an unsupported feature is requested. - - - - - Start time for the current process. - - - - - Gets the system dependent line terminator. - - - The system dependent line terminator. - - - - Gets the system dependent line terminator. - - - - - - Gets the base directory for this . - - The base directory path for the current . - - - Gets the base directory for this . - - - The value returned may be either a local file path or a URI. - - - - - - Gets the path to the configuration file for the current . - - The path to the configuration file for the current . - - - The .NET Compact Framework 1.0 does not have a concept of a configuration - file. For this runtime, we use the entry assembly location as the root for - the configuration file name. - - - The value returned may be either a local file path or a URI. - - - - - - Gets the path to the file that first executed in the current . - - The path to the entry assembly. - - - Gets the path to the file that first executed in the current . - - - - - - Gets the ID of the current thread. - - The ID of the current thread. - - - On the .NET framework, the AppDomain.GetCurrentThreadId method - is used to obtain the thread ID for the current thread. This is the - operating system ID for the thread. - - - On the .NET Compact Framework 1.0 it is not possible to get the - operating system thread ID for the current thread. The native method - GetCurrentThreadId is implemented inline in a header file - and cannot be called. - - - On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this - gives a stable id unrelated to the operating system thread ID which may - change if the runtime is using fibers. - - - - - - Get the host name or machine name for the current machine - - - The hostname or machine name - - - - Get the host name or machine name for the current machine - - - The host name () or - the machine name (Environment.MachineName) for - the current machine, or if neither of these are available - then NOT AVAILABLE is returned. - - - - - - Get this application's friendly name - - - The friendly name of this application as a string - - - - If available the name of the application is retrieved from - the AppDomain using AppDomain.CurrentDomain.FriendlyName. - - - Otherwise the file name of the entry assembly is used. - - - - - - Get the start time for the current process. - - - - This is the time at which the log4net library was loaded into the - AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime - this is not the start time for the current process. - - - The log4net library should be loaded by an application early during its - startup, therefore this start time should be a good approximation for - the actual start time. - - - Note that AppDomains may be loaded and unloaded within the - same process without the process terminating, however this start time - will be set per AppDomain. - - - - - - Text to output when a null is encountered. - - - - Use this value to indicate a null has been encountered while - outputting a string representation of an item. - - - The default value is (null). This value can be overridden by specifying - a value for the log4net.NullText appSetting in the application's - .config file. - - - - - - Text to output when an unsupported feature is requested. - - - - Use this value when an unsupported feature is requested. - - - The default value is NOT AVAILABLE. This value can be overridden by specifying - a value for the log4net.NotAvailableText appSetting in the application's - .config file. - - - - - - Utility class that represents a format string. - - - - Utility class that represents a format string. - - - Nicko Cadell - - - - Initialise the - - An that supplies culture-specific formatting information. - A containing zero or more format items. - An array containing zero or more objects to format. - - - - Format the string and arguments - - the formatted string - - - - Replaces the format item in a specified with the text equivalent - of the value of a corresponding instance in a specified array. - A specified parameter supplies culture-specific formatting information. - - An that supplies culture-specific formatting information. - A containing zero or more format items. - An array containing zero or more objects to format. - - A copy of format in which the format items have been replaced by the - equivalent of the corresponding instances of in args. - - - - This method does not throw exceptions. If an exception thrown while formatting the result the - exception and arguments are returned in the result string. - - - - - - Process an error during StringFormat - - - - - Dump the contents of an array into a string builder - - - - - Dump an object to a string - - - - - The fully qualified type of the SystemStringFormat class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Implementation of Properties collection for the - - - - Class implements a collection of properties that is specific to each thread. - The class is not synchronized as each thread has its own . - - - Nicko Cadell - - - - The thread local data slot to use to store a PropertiesDictionary. - - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property - - the key for the entry to remove - - - Remove a property - - - - - - Clear all properties - - - - Clear all properties - - - - - - Get the PropertiesDictionary for this thread. - - create the dictionary if it does not exist, otherwise return null if is does not exist - the properties for this thread - - - The collection returned is only to be used on the calling thread. If the - caller needs to share the collection between different threads then the - caller must clone the collection before doing so. - - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Gets or sets the value of a property - - - - - - Implementation of Stack for the - - - - Implementation of Stack for the - - - Nicko Cadell - - - - The stack store. - - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - Clears all the contextual information held in this stack. - - - - Clears all the contextual information held in this stack. - Only call this if you think that this tread is being reused after - a previous call execution which may not have completed correctly. - You do not need to use this method if you always guarantee to call - the method of the - returned from even in exceptional circumstances, - for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) - syntax. - - - - - - Removes the top context from this stack. - - The message in the context that was removed from the top of this stack. - - - Remove the top context from this stack, and return - it to the caller. If this stack is empty then an - empty string (not ) is returned. - - - - - - Pushes a new context message into this stack. - - The new context message. - - An that can be used to clean up the context stack. - - - - Pushes a new context onto this stack. An - is returned that can be used to clean up this stack. This - can be easily combined with the using keyword to scope the - context. - - - Simple example of using the Push method with the using keyword. - - using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) - { - log.Warn("This should have an ThreadContext Stack message"); - } - - - - - - Gets the current context information for this stack. - - The current context information. - - - - Gets the current context information for this stack. - - Gets the current context information - - - Gets the current context information for this stack. - - - - - - Get a portable version of this object - - the portable instance of this object - - - Get a cross thread portable version of this object - - - - - - The number of messages in the stack - - - The current number of messages in the stack - - - - The current number of messages in the stack. That is - the number of times has been called - minus the number of times has been called. - - - - - - Gets and sets the internal stack used by this - - The internal storage stack - - - This property is provided only to support backward compatability - of the . Tytpically the internal stack should not - be modified. - - - - - - Inner class used to represent a single context frame in the stack. - - - - Inner class used to represent a single context frame in the stack. - - - - - - Constructor - - The message for this context. - The parent context in the chain. - - - Initializes a new instance of the class - with the specified message and parent context. - - - - - - Get the message. - - The message. - - - Get the message. - - - - - - Gets the full text of the context down to the root level. - - - The full text of the context down to the root level. - - - - Gets the full text of the context down to the root level. - - - - - - Struct returned from the method. - - - - This struct implements the and is designed to be used - with the pattern to remove the stack frame at the end of the scope. - - - - - - The ThreadContextStack internal stack - - - - - The depth to trim the stack to when this instance is disposed - - - - - Constructor - - The internal stack used by the ThreadContextStack. - The depth to return the stack to when this object is disposed. - - - Initializes a new instance of the class with - the specified stack and return depth. - - - - - - Returns the stack to the correct depth. - - - - Returns the stack to the correct depth. - - - - - - Implementation of Stacks collection for the - - - - Implementation of Stacks collection for the - - - Nicko Cadell - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - The fully qualified type of the ThreadContextStacks class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the named thread context stack - - - The named stack - - - - Gets the named thread context stack - - - - - - Utility class for transforming strings. - - - - Utility class for transforming strings. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Write a string to an - - the writer to write to - the string to write - The string to replace non XML compliant chars with - - - The test is escaped either using XML escape entities - or using CDATA sections. - - - - - - Replace invalid XML characters in text string - - the XML text input string - the string to use in place of invalid characters - A string that does not contain invalid XML characters. - - - Certain Unicode code points are not allowed in the XML InfoSet, for - details see: http://www.w3.org/TR/REC-xml/#charsets. - - - This method replaces any illegal characters in the input string - with the mask string specified. - - - - - - Count the number of times that the substring occurs in the text - - the text to search - the substring to find - the number of times the substring occurs in the text - - - The substring is assumed to be non repeating within itself. - - - - - - Characters illegal in XML 1.0 - - - - - Impersonate a Windows Account - - - - This impersonates a Windows account. - - - How the impersonation is done depends on the value of . - This allows the context to either impersonate a set of user credentials specified - using username, domain name and password or to revert to the process credentials. - - - - - - Default constructor - - - - Default constructor - - - - - - Initialize the SecurityContext based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The security context will try to Logon the specified user account and - capture a primary token for impersonation. - - - The required , - or properties were not specified. - - - - Impersonate the Windows account specified by the and properties. - - caller provided state - - An instance that will revoke the impersonation of this SecurityContext - - - - Depending on the property either - impersonate a user using credentials supplied or revert - to the process credentials. - - - - - - Create a given the userName, domainName and password. - - the user name - the domain name - the password - the for the account specified - - - Uses the Windows API call LogonUser to get a principal token for the account. This - token is used to initialize the WindowsIdentity. - - - - - - Gets or sets the impersonation mode for this security context - - - The impersonation mode for this security context - - - - Impersonate either a user with user credentials or - revert this thread to the credentials of the process. - The value is one of the - enum. - - - The default value is - - - When the mode is set to - the user's credentials are established using the - , and - values. - - - When the mode is set to - no other properties need to be set. If the calling thread is - impersonating then it will be reverted back to the process credentials. - - - - - - Gets or sets the Windows username for this security context - - - The Windows username for this security context - - - - This property must be set if - is set to (the default setting). - - - - - - Gets or sets the Windows domain name for this security context - - - The Windows domain name for this security context - - - - The default value for is the local machine name - taken from the property. - - - This property must be set if - is set to (the default setting). - - - - - - Sets the password for the Windows account specified by the and properties. - - - The password for the Windows account specified by the and properties. - - - - This property must be set if - is set to (the default setting). - - - - - - The impersonation modes for the - - - - See the property for - details. - - - - - - Impersonate a user using the credentials supplied - - - - - Revert this the thread to the credentials of the process - - - - - Adds to - - - - Helper class to expose the - through the interface. - - - - - - Constructor - - the impersonation context being wrapped - - - Constructor - - - - - - Revert the impersonation - - - - Revert the impersonation - - - - - - The log4net Global Context. - - - - The GlobalContext provides a location for global debugging - information to be stored. - - - The global context has a properties map and these properties can - be included in the output of log messages. The - supports selecting and outputing these properties. - - - By default the log4net:HostName property is set to the name of - the current machine. - - - - - GlobalContext.Properties["hostname"] = Environment.MachineName; - - - - Nicko Cadell - - - - Private Constructor. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - The global context properties instance - - - - - The global properties map. - - - The global properties map. - - - - The global properties map. - - - - - - Provides information about the environment the assembly has - been built for. - - - - Version of the assembly - - - Version of the framework targeted - - - Type of framework targeted - - - Does it target a client profile? - - - - Identifies the version and target for this assembly. - - - - - The log4net Logical Thread Context. - - - - The LogicalThreadContext provides a location for specific debugging - information to be stored. - The LogicalThreadContext properties override any or - properties with the same name. - - - The Logical Thread Context has a properties map and a stack. - The properties and stack can - be included in the output of log messages. The - supports selecting and outputting these properties. - - - The Logical Thread Context provides a diagnostic context for the current call context. - This is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The Logical Thread Context is managed on a per basis. - - - The requires a link time - for the - . - If the calling code does not have this permission then this context will be disabled. - It will not store any property values set on it. - - - Example of using the thread context properties to store a username. - - LogicalThreadContext.Properties["user"] = userName; - log.Info("This log message has a LogicalThreadContext Property called 'user'"); - - - Example of how to push a message into the context stack - - using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) - { - log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); - - } // at the end of the using block the message is automatically popped - - - - Nicko Cadell - - - - Private Constructor. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - The thread context properties instance - - - - - The thread context stacks instance - - - - - The thread properties map - - - The thread properties map - - - - The LogicalThreadContext properties override any - or properties with the same name. - - - - - - The thread stacks - - - stack map - - - - The logical thread stacks. - - - - - - This class is used by client applications to request logger instances. - - - - This class has static methods that are used by a client to request - a logger instance. The method is - used to retrieve a logger. - - - See the interface for more details. - - - Simple example of logging messages - - ILog log = LogManager.GetLogger("application-log"); - - log.Info("Application Start"); - log.Debug("This is a debug message"); - - if (log.IsDebugEnabled) - { - log.Debug("This is another debug message"); - } - - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - Returns the named logger if it exists. - - Returns the named logger if it exists. - - - - If the named logger exists (in the default repository) then it - returns a reference to the logger, otherwise it returns null. - - - The fully qualified logger name to look for. - The logger found, or null if no logger could be found. - - - - Returns the named logger if it exists. - - - - If the named logger exists (in the specified repository) then it - returns a reference to the logger, otherwise it returns - null. - - - The repository to lookup in. - The fully qualified logger name to look for. - - The logger found, or null if the logger doesn't exist in the specified - repository. - - - - - Returns the named logger if it exists. - - - - If the named logger exists (in the repository for the specified assembly) then it - returns a reference to the logger, otherwise it returns - null. - - - The assembly to use to lookup the repository. - The fully qualified logger name to look for. - - The logger, or null if the logger doesn't exist in the specified - assembly's repository. - - - - Get the currently defined loggers. - - Returns all the currently defined loggers in the default repository. - - - The root logger is not included in the returned array. - - All the defined loggers. - - - - Returns all the currently defined loggers in the specified repository. - - The repository to lookup in. - - The root logger is not included in the returned array. - - All the defined loggers. - - - - Returns all the currently defined loggers in the specified assembly's repository. - - The assembly to use to lookup the repository. - - The root logger is not included in the returned array. - - All the defined loggers. - - - Get or create a logger. - - Retrieves or creates a named logger. - - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The name of the logger to retrieve. - The logger with the name specified. - - - - Retrieves or creates a named logger. - - - - Retrieve a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The repository to lookup in. - The name of the logger to retrieve. - The logger with the name specified. - - - - Retrieves or creates a named logger. - - - - Retrieve a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The assembly to use to lookup the repository. - The name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Get the logger for the fully qualified name of the type specified. - - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Gets the logger for the fully qualified name of the type specified. - - The repository to lookup in. - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Gets the logger for the fully qualified name of the type specified. - - The assembly to use to lookup the repository. - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shuts down the log4net system. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in all the - default repositories. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - Shutdown a logger repository. - - Shuts down the default repository. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - default repository. - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - The repository to shutdown. - - - - Shuts down the repository specified. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository. The repository is looked up using - the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - The assembly to use to lookup the repository. - - - Reset the configuration of a repository - - Resets all values contained in this repository instance to their defaults. - - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - - - - Resets all values contained in this repository instance to their defaults. - - - - Reset all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - The repository to reset. - - - - Resets all values contained in this repository instance to their defaults. - - - - Reset all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - The assembly to use to lookup the repository to reset. - - - Get the logger repository. - - Returns the default instance. - - - - Gets the for the repository specified - by the callers assembly (). - - - The instance for the default repository. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The repository to lookup in. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The assembly to use to lookup the repository. - - - Get a logger repository. - - Returns the default instance. - - - - Gets the for the repository specified - by the callers assembly (). - - - The instance for the default repository. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The repository to lookup in. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The assembly to use to lookup the repository. - - - Create a domain - - Creates a repository with the specified repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to will return - the same repository instance. - - - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - Create a logger repository. - - Creates a repository with the specified repository type. - - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The created will be associated with the repository - specified such that a call to will return - the same repository instance. - - - - - - Creates a repository with the specified name. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name. - - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - The specified repository already exists. - - - - Creates a repository for the specified assembly and repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - - Creates a repository for the specified assembly and repository type. - - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - - Gets the list of currently defined repositories. - - - - Get an array of all the objects that have been created. - - - An array of all the known objects. - - - - Looks up the wrapper object for the logger specified. - - The logger to get the wrapper for. - The wrapper for the logger specified. - - - - Looks up the wrapper objects for the loggers specified. - - The loggers to get the wrappers for. - The wrapper objects for the loggers specified. - - - - Create the objects used by - this manager. - - The logger to wrap. - The wrapper for the logger specified. - - - - The wrapper map to use to hold the objects. - - - - - Implementation of Mapped Diagnostic Contexts. - - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - The MDC class is similar to the class except that it is - based on a map instead of a stack. It provides mapped - diagnostic contexts. A Mapped Diagnostic Context, or - MDC in short, is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The MDC is managed on a per thread basis. - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - Gets the context value identified by the parameter. - - The key to lookup in the MDC. - The string value held for the key, or a null reference if no corresponding value is found. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - If the parameter does not look up to a - previously defined context then null will be returned. - - - - - - Add an entry to the MDC - - The key to store the value under. - The value to store. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Puts a context value (the parameter) as identified - with the parameter into the current thread's - context map. - - - If a value is already defined for the - specified then the value will be replaced. If the - is specified as null then the key value mapping will be removed. - - - - - - Removes the key value mapping for the key specified. - - The key to remove. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Remove the specified entry from this thread's MDC - - - - - - Clear all entries in the MDC - - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Remove all the entries from this thread's MDC - - - - - - Implementation of Nested Diagnostic Contexts. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - A Nested Diagnostic Context, or NDC in short, is an instrument - to distinguish interleaved log output from different sources. Log - output is typically interleaved when a server handles multiple - clients near-simultaneously. - - - Interleaved log output can still be meaningful if each log entry - from different contexts had a distinctive stamp. This is where NDCs - come into play. - - - Note that NDCs are managed on a per thread basis. The NDC class - is made up of static methods that operate on the context of the - calling thread. - - - How to push a message into the context - - using(NDC.Push("my context message")) - { - ... all log calls will have 'my context message' included ... - - } // at the end of the using block the message is automatically removed - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - Clears all the contextual information held on the current thread. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Clears the stack of NDC data held on the current thread. - - - - - - Creates a clone of the stack of context information. - - A clone of the context info for this thread. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - The results of this method can be passed to the - method to allow child threads to inherit the context of their - parent thread. - - - - - - Inherits the contextual information from another thread. - - The context stack to inherit. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - This thread will use the context information from the stack - supplied. This can be used to initialize child threads with - the same contextual information as their parent threads. These - contexts will NOT be shared. Any further contexts that - are pushed onto the stack will not be visible to the other. - Call to obtain a stack to pass to - this method. - - - - - - Removes the top context from the stack. - - - The message in the context that was removed from the top - of the stack. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Remove the top context from the stack, and return - it to the caller. If the stack is empty then an - empty string (not null) is returned. - - - - - - Pushes a new context message. - - The new context message. - - An that can be used to clean up - the context stack. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Pushes a new context onto the context stack. An - is returned that can be used to clean up the context stack. This - can be easily combined with the using keyword to scope the - context. - - - Simple example of using the Push method with the using keyword. - - using(log4net.NDC.Push("NDC_Message")) - { - log.Warn("This should have an NDC message"); - } - - - - - - Removes the context information for this thread. It is - not required to call this method. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - This method is not implemented. - - - - - - Forces the stack depth to be at most . - - The maximum depth of the stack - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Forces the stack depth to be at most . - This may truncate the head of the stack. This only affects the - stack in the current thread. Also it does not prevent it from - growing, it only sets the maximum depth at the time of the - call. This can be used to return to a known context depth. - - - - - - Gets the current context depth. - - The current context depth. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - The number of context values pushed onto the context stack. - - - Used to record the current depth of the context. This can then - be restored using the method. - - - - - - - The log4net Thread Context. - - - - The ThreadContext provides a location for thread specific debugging - information to be stored. - The ThreadContext properties override any - properties with the same name. - - - The thread context has a properties map and a stack. - The properties and stack can - be included in the output of log messages. The - supports selecting and outputting these properties. - - - The Thread Context provides a diagnostic context for the current thread. - This is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The Thread Context is managed on a per thread basis. - - - Example of using the thread context properties to store a username. - - ThreadContext.Properties["user"] = userName; - log.Info("This log message has a ThreadContext Property called 'user'"); - - - Example of how to push a message into the context stack - - using(ThreadContext.Stacks["NDC"].Push("my context message")) - { - log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); - - } // at the end of the using block the message is automatically popped - - - - Nicko Cadell - - - - Private Constructor. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - The thread context properties instance - - - - - The thread context stacks instance - - - - - The thread properties map - - - The thread properties map - - - - The ThreadContext properties override any - properties with the same name. - - - - - - The thread stacks - - - stack map - - - - The thread local stacks. - - - - - diff --git a/source/packages/log4net.2.0.0/lib/net11-full/log4net.dll b/source/packages/log4net.2.0.0/lib/net11-full/log4net.dll deleted file mode 100644 index 528f17baac823048be30614199349cc0305bb755..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 294912 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⁢@$elu5RL{*<@> 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 - - - log4net - - - - - Appender that logs to a database. - - - - appends logging events to a table within a - database. The appender can be configured to specify the connection - string by setting the property. - The connection type (provider) can be specified by setting the - property. For more information on database connection strings for - your specific database see http://www.connectionstrings.com/. - - - Records are written into the database either using a prepared - statement or a stored procedure. The property - is set to (System.Data.CommandType.Text) to specify a prepared statement - or to (System.Data.CommandType.StoredProcedure) to specify a stored - procedure. - - - The prepared statement text or the name of the stored procedure - must be set in the property. - - - The prepared statement or stored procedure can take a number - of parameters. Parameters are added using the - method. This adds a single to the - ordered list of parameters. The - type may be subclassed if required to provide database specific - functionality. The specifies - the parameter name, database type, size, and how the value should - be generated using a . - - - - An example of a SQL Server table that could be logged to: - - CREATE TABLE [dbo].[Log] ( - [ID] [int] IDENTITY (1, 1) NOT NULL , - [Date] [datetime] NOT NULL , - [Thread] [varchar] (255) NOT NULL , - [Level] [varchar] (20) NOT NULL , - [Logger] [varchar] (255) NOT NULL , - [Message] [varchar] (4000) NOT NULL - ) ON [PRIMARY] - - - - An example configuration to log to the above table: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Julian Biddle - Nicko Cadell - Gert Driesen - Lance Nehring - - - - Abstract base class implementation of that - buffers events in a fixed size buffer. - - - - This base class should be used by appenders that need to buffer a - number of events before logging them. For example the - buffers events and then submits the entire contents of the buffer to - the underlying database in one go. - - - Subclasses should override the - method to deliver the buffered events. - - The BufferingAppenderSkeleton maintains a fixed size cyclic - buffer of events. The size of the buffer is set using - the property. - - A is used to inspect - each event as it arrives in the appender. If the - triggers, then the current buffer is sent immediately - (see ). Otherwise the event - is stored in the buffer. For example, an evaluator can be used to - deliver the events immediately when an ERROR event arrives. - - - The buffering appender can be configured in a mode. - By default the appender is NOT lossy. When the buffer is full all - the buffered events are sent with . - If the property is set to true then the - buffer will not be sent when it is full, and new events arriving - in the appender will overwrite the oldest event in the buffer. - In lossy mode the buffer will only be sent when the - triggers. This can be useful behavior when you need to know about - ERROR events but not about events with a lower level, configure an - evaluator that will trigger when an ERROR event arrives, the whole - buffer will be sent which gives a history of events leading up to - the ERROR event. - - - Nicko Cadell - Gert Driesen - - - - Abstract base class implementation of . - - - - This class provides the code for common functionality, such - as support for threshold filtering and support for general filters. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface for your own strategies for printing log statements. - - - - Implementors should consider extending the - class which provides a default implementation of this interface. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Log the logging event in Appender specific way. - - The event to log - - - This method is called to log a message into this appender. - - - - - - Gets or sets the name of this appender. - - The name of the appender. - - The name uniquely identifies the appender. - - - - - Interface for appenders that support bulk logging. - - - - This interface extends the interface to - support bulk logging of objects. Appenders - should only implement this interface if they can bulk log efficiently. - - - Nicko Cadell - - - - Log the array of logging events in Appender specific way. - - The events to log - - - This method is called to log an array of events into this appender. - - - - - - Interface used to delay activate a configured object. - - - - This allows an object to defer activation of its options until all - options have been set. This is required for components which have - related options that remain ambiguous until all are set. - - - If a component implements this interface then the method - must be called by the container after its all the configured properties have been set - and before the component can be used. - - - Nicko Cadell - - - - Activate the options that were previously set with calls to properties. - - - - This allows an object to defer activation of its options until all - options have been set. This is required for components which have - related options that remain ambiguous until all are set. - - - If a component implements this interface then this method must be called - after its properties have been set before the component can be used. - - - - - - Initial buffer size - - - - - Maximum buffer size before it is recycled - - - - - Default constructor - - - Empty default constructor - - - - - Finalizes this appender by calling the implementation's - method. - - - - If this appender has not been closed then the Finalize method - will call . - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Closes the appender and release resources. - - - - Release any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - This method cannot be overridden by subclasses. This method - delegates the closing of the appender to the - method which must be overridden in the subclass. - - - - - - Performs threshold checks and invokes filters before - delegating actual logging to the subclasses specific - method. - - The event to log. - - - This method cannot be overridden by derived classes. A - derived class should override the method - which is called by this method. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - Calls and checks that - it returns true. - - - - - If all of the above steps succeed then the - will be passed to the abstract method. - - - - - - Performs threshold checks and invokes filters before - delegating actual logging to the subclasses specific - method. - - The array of events to log. - - - This method cannot be overridden by derived classes. A - derived class should override the method - which is called by this method. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - Calls and checks that - it returns true. - - - - - If all of the above steps succeed then the - will be passed to the method. - - - - - - Test if the logging event should we output by this appender - - the event to test - true if the event should be output, false if the event should be ignored - - - This method checks the logging event against the threshold level set - on this appender and also against the filters specified on this - appender. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - - - - - Adds a filter to the end of the filter chain. - - the filter to add to this appender - - - The Filters are organized in a linked list. - - - Setting this property causes the new filter to be pushed onto the - back of the filter chain. - - - - - - Clears the filter list for this appender. - - - - Clears the filter list for this appender. - - - - - - Checks if the message level is below this appender's threshold. - - to test against. - - - If there is no threshold set, then the return value is always true. - - - - true if the meets the - requirements of this appender. - - - - - Is called when the appender is closed. Derived classes should override - this method if resources need to be released. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Subclasses of should implement this method - to perform actual logging. - - The event to append. - - - A subclass must implement this method to perform - logging of the . - - This method will be called by - if all the conditions listed for that method are met. - - - To restrict the logging of events in the appender - override the method. - - - - - - Append a bulk array of logging events. - - the array of logging events - - - This base class implementation calls the - method for each element in the bulk array. - - - A sub class that can better process a bulk array of events should - override this method in addition to . - - - - - - Called before as a precondition. - - - - This method is called by - before the call to the abstract method. - - - This method can be overridden in a subclass to extend the checks - made before the event is passed to the method. - - - A subclass should ensure that they delegate this call to - this base class if it is overridden. - - - true if the call to should proceed. - - - - Renders the to a string. - - The event to render. - The event rendered as a string. - - - Helper method to render a to - a string. This appender must have a - set to render the to - a string. - - If there is exception data in the logging event and - the layout does not process the exception, this method - will append the exception text to the rendered string. - - - Where possible use the alternative version of this method - . - That method streams the rendering onto an existing Writer - which can give better performance if the caller already has - a open and ready for writing. - - - - - - Renders the to a string. - - The event to render. - The TextWriter to write the formatted event to - - - Helper method to render a to - a string. This appender must have a - set to render the to - a string. - - If there is exception data in the logging event and - the layout does not process the exception, this method - will append the exception text to the rendered string. - - - Use this method in preference to - where possible. If, however, the caller needs to render the event - to a string then does - provide an efficient mechanism for doing so. - - - - - - The layout of this appender. - - - See for more information. - - - - - The name of this appender. - - - See for more information. - - - - - The level threshold of this appender. - - - - There is no level threshold filtering by default. - - - See for more information. - - - - - - It is assumed and enforced that errorHandler is never null. - - - - It is assumed and enforced that errorHandler is never null. - - - See for more information. - - - - - - The first filter in the filter chain. - - - - Set to null initially. - - - See for more information. - - - - - - The last filter in the filter chain. - - - See for more information. - - - - - Flag indicating if this appender is closed. - - - See for more information. - - - - - The guard prevents an appender from repeatedly calling its own DoAppend method - - - - - StringWriter used to render events - - - - - The fully qualified type of the AppenderSkeleton class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the threshold of this appender. - - - The threshold of the appender. - - - - All log events with lower level than the threshold level are ignored - by the appender. - - - In configuration files this option is specified by setting the - value of the option to a level - string, such as "DEBUG", "INFO" and so on. - - - - - - Gets or sets the for this appender. - - The of the appender - - - The provides a default - implementation for the property. - - - - - - The filter chain. - - The head of the filter chain filter chain. - - - Returns the head Filter. The Filters are organized in a linked list - and so all Filters on this Appender are available through the result. - - - - - - Gets or sets the for this appender. - - The layout of the appender. - - - See for more information. - - - - - - - Gets or sets the name of this appender. - - The name of the appender. - - - The name uniquely identifies the appender. - - - - - - Tests if this appender requires a to be set. - - - - In the rather exceptional case, where the appender - implementation admits a layout but can also work without it, - then the appender should return true. - - - This default implementation always returns false. - - - - true if the appender requires a layout object, otherwise false. - - - - - The default buffer size. - - - The default size of the cyclic buffer used to store events. - This is set to 512 by default. - - - - - Initializes a new instance of the class. - - - - Protected default constructor to allow subclassing. - - - - - - Initializes a new instance of the class. - - the events passed through this appender must be - fixed by the time that they arrive in the derived class' SendBuffer method. - - - Protected constructor to allow subclassing. - - - The should be set if the subclass - expects the events delivered to be fixed even if the - is set to zero, i.e. when no buffering occurs. - - - - - - Flush the currently buffered events - - - - Flushes any events that have been buffered. - - - If the appender is buffering in mode then the contents - of the buffer will NOT be flushed to the appender. - - - - - - Flush the currently buffered events - - set to true to flush the buffer of lossy events - - - Flushes events that have been buffered. If is - false then events will only be flushed if this buffer is non-lossy mode. - - - If the appender is buffering in mode then the contents - of the buffer will only be flushed if is true. - In this case the contents of the buffer will be tested against the - and if triggering will be output. All other buffered - events will be discarded. - - - If is true then the buffer will always - be emptied by calling this method. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Close this appender instance. - - - - Close this appender instance. If this appender is marked - as not then the remaining events in - the buffer must be sent when the appender is closed. - - - - - - This method is called by the method. - - the event to log - - - Stores the in the cyclic buffer. - - - The buffer will be sent (i.e. passed to the - method) if one of the following conditions is met: - - - - The cyclic buffer is full and this appender is - marked as not lossy (see ) - - - An is set and - it is triggered for the - specified. - - - - Before the event is stored in the buffer it is fixed - (see ) to ensure that - any data referenced by the event will be valid when the buffer - is processed. - - - - - - Sends the contents of the buffer. - - The first logging event. - The buffer containing the events that need to be send. - - - The subclass must override . - - - - - - Sends the events. - - The events that need to be send. - - - The subclass must override this method to process the buffered events. - - - - - - The size of the cyclic buffer used to hold the logging events. - - - Set to by default. - - - - - The cyclic buffer used to store the logging events. - - - - - The triggering event evaluator that causes the buffer to be sent immediately. - - - The object that is used to determine if an event causes the entire - buffer to be sent immediately. This field can be null, which - indicates that event triggering is not to be done. The evaluator - can be set using the property. If this appender - has the ( property) set to - true then an must be set. - - - - - Indicates if the appender should overwrite events in the cyclic buffer - when it becomes full, or if the buffer should be flushed when the - buffer is full. - - - If this field is set to true then an must - be set. - - - - - The triggering event evaluator filters discarded events. - - - The object that is used to determine if an event that is discarded should - really be discarded or if it should be sent to the appenders. - This field can be null, which indicates that all discarded events will - be discarded. - - - - - Value indicating which fields in the event should be fixed - - - By default all fields are fixed - - - - - The events delivered to the subclass must be fixed. - - - - - Gets or sets a value that indicates whether the appender is lossy. - - - true if the appender is lossy, otherwise false. The default is false. - - - - This appender uses a buffer to store logging events before - delivering them. A triggering event causes the whole buffer - to be send to the remote sink. If the buffer overruns before - a triggering event then logging events could be lost. Set - to false to prevent logging events - from being lost. - - If is set to true then an - must be specified. - - - - - Gets or sets the size of the cyclic buffer used to hold the - logging events. - - - The size of the cyclic buffer used to hold the logging events. - - - - The option takes a positive integer - representing the maximum number of logging events to collect in - a cyclic buffer. When the is reached, - oldest events are deleted as new events are added to the - buffer. By default the size of the cyclic buffer is 512 events. - - - If the is set to a value less than - or equal to 1 then no buffering will occur. The logging event - will be delivered synchronously (depending on the - and properties). Otherwise the event will - be buffered. - - - - - - Gets or sets the that causes the - buffer to be sent immediately. - - - The that causes the buffer to be - sent immediately. - - - - The evaluator will be called for each event that is appended to this - appender. If the evaluator triggers then the current buffer will - immediately be sent (see ). - - If is set to true then an - must be specified. - - - - - Gets or sets the value of the to use. - - - The value of the to use. - - - - The evaluator will be called for each event that is discarded from this - appender. If the evaluator triggers then the current buffer will immediately - be sent (see ). - - - - - - Gets or sets a value indicating if only part of the logging event data - should be fixed. - - - true if the appender should only fix part of the logging event - data, otherwise false. The default is false. - - - - Setting this property to true will cause only part of the - event data to be fixed and serialized. This will improve performance. - - - See for more information. - - - - - - Gets or sets a the fields that will be fixed in the event - - - The event fields that will be fixed before the event is buffered - - - - The logging event needs to have certain thread specific values - captured before it can be buffered. See - for details. - - - - - - - Initializes a new instance of the class. - - - Public default constructor to initialize a new instance of this class. - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Override the parent method to close the database - - - - Closes the database command and database connection. - - - - - - Inserts the events into the database. - - The events to insert into the database. - - - Insert all the events specified in the - array into the database. - - - - - - Adds a parameter to the command. - - The parameter to add to the command. - - - Adds a parameter to the ordered list of command parameters. - - - - - - Writes the events to the database using the transaction specified. - - The transaction that the events will be executed under. - The array of events to insert into the database. - - - The transaction argument can be null if the appender has been - configured not to use transactions. See - property for more information. - - - - - - Formats the log message into database statement text. - - The event being logged. - - This method can be overridden by subclasses to provide - more control over the format of the database statement. - - - Text that can be passed to a . - - - - - Creates an instance used to connect to the database. - - - This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). - - The of the object. - The connectionString output from the ResolveConnectionString method. - An instance with a valid connection string. - - - - Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey - property. - - - ConnectiongStringName is only supported on .NET 2.0 and higher. - - Additional information describing the connection string. - A connection string used to connect to the database. - - - - Retrieves the class type of the ADO.NET provider. - - - - Gets the Type of the ADO.NET provider to use to connect to the - database. This method resolves the type specified in the - property. - - - Subclasses can override this method to return a different type - if necessary. - - - The of the ADO.NET provider - - - - Prepares the database command and initialize the parameters. - - - - - Connects to the database. - - - - - Cleanup the existing command. - - - If true, a message will be written using LogLog.Warn if an exception is encountered when calling Dispose. - - - - - Cleanup the existing connection. - - - Calls the IDbConnection's method. - - - - - Flag to indicate if we are using a command object - - - - Set to true when the appender is to use a prepared - statement or stored procedure to insert into the database. - - - - - - The list of objects. - - - - The list of objects. - - - - - - The security context to use for privileged calls - - - - - The that will be used - to insert logging events into a database. - - - - - The database command. - - - - - Database connection string. - - - - - The appSettings key from App.Config that contains the connection string. - - - - - String type name of the type name. - - - - - The text of the command. - - - - - The command type. - - - - - Indicates whether to use transactions when writing to the database. - - - - - Indicates whether to use transactions when writing to the database. - - - - - The fully qualified type of the AdoNetAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the database connection string that is used to connect to - the database. - - - The database connection string used to connect to the database. - - - - The connections string is specific to the connection type. - See for more information. - - - Connection string for MS Access via ODBC: - "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" - - Another connection string for MS Access via ODBC: - "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" - - Connection string for MS Access via OLE DB: - "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" - - - - - The appSettings key from App.Config that contains the connection string. - - - - - Gets or sets the type name of the connection - that should be created. - - - The type name of the connection. - - - - The type name of the ADO.NET provider to use. - - - The default is to use the OLE DB provider. - - - Use the OLE DB Provider. This is the default value. - System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Use the MS SQL Server Provider. - System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Use the ODBC Provider. - Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral - This is an optional package that you can download from - http://msdn.microsoft.com/downloads - search for ODBC .NET Data Provider. - - Use the Oracle Provider. - System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - This is an optional package that you can download from - http://msdn.microsoft.com/downloads - search for .NET Managed Provider for Oracle. - - - - - Gets or sets the command text that is used to insert logging events - into the database. - - - The command text used to insert logging events into the database. - - - - Either the text of the prepared statement or the - name of the stored procedure to execute to write into - the database. - - - The property determines if - this text is a prepared statement or a stored procedure. - - - - - - Gets or sets the command type to execute. - - - The command type to execute. - - - - This value may be either (System.Data.CommandType.Text) to specify - that the is a prepared statement to execute, - or (System.Data.CommandType.StoredProcedure) to specify that the - property is the name of a stored procedure - to execute. - - - The default value is (System.Data.CommandType.Text). - - - - - - Should transactions be used to insert logging events in the database. - - - true if transactions should be used to insert logging events in - the database, otherwise false. The default value is true. - - - - Gets or sets a value that indicates whether transactions should be used - to insert logging events in the database. - - - When set a single transaction will be used to insert the buffered events - into the database. Otherwise each event will be inserted without using - an explicit transaction. - - - - - - Gets or sets the used to call the NetSend method. - - - The used to call the NetSend method. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Should this appender try to reconnect to the database on error. - - - true if the appender should try to reconnect to the database after an - error has occurred, otherwise false. The default value is false, - i.e. not to try to reconnect. - - - - The default behaviour is for the appender not to try to reconnect to the - database if an error occurs. Subsequent logging events are discarded. - - - To force the appender to attempt to reconnect to the database set this - property to true. - - - When the appender attempts to connect to the database there may be a - delay of up to the connection timeout specified in the connection string. - This delay will block the calling application's thread. - Until the connection can be reestablished this potential delay may occur multiple times. - - - - - - Gets or sets the underlying . - - - The underlying . - - - creates a to insert - logging events into a database. Classes deriving from - can use this property to get or set this . Use the - underlying returned from if - you require access beyond that which provides. - - - - - Parameter type used by the . - - - - This class provides the basic database parameter properties - as defined by the interface. - - This type can be subclassed to provide database specific - functionality. The two methods that are called externally are - and . - - - - - - Initializes a new instance of the class. - - - Default constructor for the AdoNetAppenderParameter class. - - - - - Prepare the specified database command object. - - The command to prepare. - - - Prepares the database command object by adding - this parameter to its collection of parameters. - - - - - - Renders the logging event and set the parameter value in the command. - - The command containing the parameter. - The event to be rendered. - - - Renders the logging event using this parameters layout - object. Sets the value of the parameter on the command object. - - - - - - The name of this parameter. - - - - - The database type for this parameter. - - - - - Flag to infer type rather than use the DbType - - - - - The precision for this parameter. - - - - - The scale for this parameter. - - - - - The size for this parameter. - - - - - The to use to render the - logging event into an object for this parameter. - - - - - Gets or sets the name of this parameter. - - - The name of this parameter. - - - - The name of this parameter. The parameter name - must match up to a named parameter to the SQL stored procedure - or prepared statement. - - - - - - Gets or sets the database type for this parameter. - - - The database type for this parameter. - - - - The database type for this parameter. This property should - be set to the database type from the - enumeration. See . - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the type from the value. - - - - - - - Gets or sets the precision for this parameter. - - - The precision for this parameter. - - - - The maximum number of digits used to represent the Value. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the precision from the value. - - - - - - - Gets or sets the scale for this parameter. - - - The scale for this parameter. - - - - The number of decimal places to which Value is resolved. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the scale from the value. - - - - - - - Gets or sets the size for this parameter. - - - The size for this parameter. - - - - The maximum size, in bytes, of the data within the column. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the size from the value. - - - - - - - Gets or sets the to use to - render the logging event into an object for this - parameter. - - - The used to render the - logging event into an object for this parameter. - - - - The that renders the value for this - parameter. - - - The can be used to adapt - any into a - for use in the property. - - - - - - Appends logging events to the terminal using ANSI color escape sequences. - - - - AnsiColorTerminalAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. It also allows the color of a specific level of message to be set. - - - This appender expects the terminal to understand the VT100 control set - in order to interpret the color codes. If the terminal or console does not - understand the control codes the behavior is not defined. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes each message to the System.Console.Out or - System.Console.Error that is set at the time the event is appended. - Therefore it is possible to programmatically redirect the output of this appender - (for example NUnit does this to capture program output). While this is the desired - behavior of this appender it may have security implications in your application. - - - When configuring the ANSI colored terminal appender, a mapping should be - specified to map a logging level to a color. For example: - - - - - - - - - - - - - - - The Level is the standard log4net logging level and ForeColor and BackColor can be any - of the following values: - - Blue - Green - Red - White - Yellow - Purple - Cyan - - These color values cannot be combined together to make new colors. - - - The attributes can be any combination of the following: - - Brightforeground is brighter - Dimforeground is dimmer - Underscoremessage is underlined - Blinkforeground is blinking (does not work on all terminals) - Reverseforeground and background are reversed - Hiddenoutput is hidden - Strikethroughmessage has a line through it - - While any of these attributes may be combined together not all combinations - work well together, for example setting both Bright and Dim attributes makes - no sense. - - - Patrick Wagstrom - Nicko Cadell - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Ansi code to reset terminal - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Add a mapping of level to color - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the foreground and background colours - for a level. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to color mappings set on this appender. - - - - - - Flag to write output to the error stream rather than the standard output stream - - - - - Mapping from level object to color value - - - - - Target is the value of the console output stream. - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The enum of possible display attributes - - - - The following flags can be combined together to - form the ANSI color attributes. - - - - - - - text is bright - - - - - text is dim - - - - - text is underlined - - - - - text is blinking - - - Not all terminals support this attribute - - - - - text and background colors are reversed - - - - - text is hidden - - - - - text is displayed with a strikethrough - - - - - The enum of possible foreground or background color values for - use with the color mapping method - - - - The output can be in one for the following ANSI colors. - - - - - - - color is black - - - - - color is red - - - - - color is green - - - - - color is yellow - - - - - color is blue - - - - - color is magenta - - - - - color is cyan - - - - - color is white - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and the color it should be displayed in. - - - - - - An entry in the - - - - This is an abstract base class for types that are stored in the - object. - - - Nicko Cadell - - - - Default protected constructor - - - - Default protected constructor - - - - - - Initialize any options defined on this entry - - - - Should be overridden by any classes that need to initialise based on their options - - - - - - The level that is the key for this mapping - - - The that is the key for this mapping - - - - Get or set the that is the key for this - mapping subclass. - - - - - - Initialize the options for the object - - - - Combine the and together - and append the attributes. - - - - - - The mapped foreground color for the specified level - - - - Required property. - The mapped foreground color for the specified level - - - - - - The mapped background color for the specified level - - - - Required property. - The mapped background color for the specified level - - - - - - The color attributes for the specified level - - - - Required property. - The color attributes for the specified level - - - - - - The combined , and - suitable for setting the ansi terminal color. - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a AppenderCollection instance. - - list to create a readonly wrapper arround - - An AppenderCollection wrapper that is read-only. - - - - - An empty readonly static AppenderCollection - - - - - Initializes a new instance of the AppenderCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the AppenderCollection class - that has the specified initial capacity. - - - The number of elements that the new AppenderCollection is initially capable of storing. - - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified AppenderCollection. - - The AppenderCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - - Copies the entire AppenderCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire AppenderCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the AppenderCollection. - - The to be added to the end of the AppenderCollection. - The index at which the value has been added. - - - - Removes all elements from the AppenderCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the AppenderCollection. - - The to check for. - true if is found in the AppenderCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the AppenderCollection. - - The to locate in the AppenderCollection. - - The zero-based index of the first occurrence of - in the entire AppenderCollection, if found; otherwise, -1. - - - - - Inserts an element into the AppenderCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the AppenderCollection. - - The to remove from the AppenderCollection. - - The specified was not found in the AppenderCollection. - - - - - Removes the element at the specified index of the AppenderCollection. - - The zero-based index of the element to remove. - - is less than zero - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the AppenderCollection. - - An for the entire AppenderCollection. - - - - Adds the elements of another AppenderCollection to the current AppenderCollection. - - The AppenderCollection whose elements should be added to the end of the current AppenderCollection. - The new of the AppenderCollection. - - - - Adds the elements of a array to the current AppenderCollection. - - The array whose elements should be added to the end of the AppenderCollection. - The new of the AppenderCollection. - - - - Adds the elements of a collection to the current AppenderCollection. - - The collection whose elements should be added to the end of the AppenderCollection. - The new of the AppenderCollection. - - - - Sets the capacity to the actual number of elements. - - - - - Return the collection elements as an array - - the array - - - - is less than zero - -or- - is equal to or greater than . - - - - - is less than zero - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the AppenderCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - The zero-based index of the element to get or set. - - is less than zero - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false - - - - Gets or sets the number of elements the AppenderCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - - A value - - - - - Supports simple iteration over a . - - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - - - - - Appends log events to the ASP.NET system. - - - - - Diagnostic information and tracing messages that you specify are appended to the output - of the page that is sent to the requesting browser. Optionally, you can view this information - from a separate trace viewer (Trace.axd) that displays trace information for every page in a - given application. - - - Trace statements are processed and displayed only when tracing is enabled. You can control - whether tracing is displayed to a page, to the trace viewer, or both. - - - The logging event is passed to the or - method depending on the level of the logging event. - The event's logger name is the default value for the category parameter of the Write/Warn method. - - - Nicko Cadell - Gert Driesen - Ron Grabowski - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Write the logging event to the ASP.NET trace - - the event to log - - - Write the logging event to the ASP.NET trace - HttpContext.Current.Trace - (). - - - - - - Defaults to %logger - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The category parameter sent to the Trace method. - - - - Defaults to %logger which will use the logger name of the current - as the category parameter. - - - - - - - - Buffers events and then forwards them to attached appenders. - - - - The events are buffered in this appender until conditions are - met to allow the appender to deliver the events to the attached - appenders. See for the - conditions that cause the buffer to be sent. - - The forwarding appender can be used to specify different - thresholds and filters for the same appender at different locations - within the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Interface for attaching appenders to objects. - - - - Interface for attaching, removing and retrieving appenders. - - - Nicko Cadell - Gert Driesen - - - - Attaches an appender. - - The appender to add. - - - Add the specified appender. The implementation may - choose to allow or deny duplicate appenders. - - - - - - Gets an attached appender with the specified name. - - The name of the appender to get. - - The appender with the name specified, or null if no appender with the - specified name is found. - - - - Returns an attached appender with the specified. - If no appender with the specified name is found null will be - returned. - - - - - - Removes all attached appenders. - - - - Removes and closes all attached appenders - - - - - - Removes the specified appender from the list of attached appenders. - - The appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Gets all attached appenders. - - - A collection of attached appenders. - - - - Gets a collection of attached appenders. - If there are no attached appenders the - implementation should return an empty - collection rather than null. - - - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Send the events. - - The events that need to be send. - - - Forwards the events to the attached appenders. - - - - - - Adds an to the list of appenders of this - instance. - - The to add to this appender. - - - If the specified is already in the list of - appenders, then it won't be added again. - - - - - - Looks for the appender with the specified name. - - The name of the appender to lookup. - - The appender with the specified name, or null. - - - - Get the named appender attached to this buffering appender. - - - - - - Removes all previously added appenders from this appender. - - - - This is useful when re-reading configuration information. - - - - - - Removes the specified appender from the list of appenders. - - The appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Implementation of the interface - - - - - Gets the appenders contained in this appender as an - . - - - If no appenders can be found, then an - is returned. - - - A collection of the appenders in this appender. - - - - - Appends logging events to the console. - - - - ColoredConsoleAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. It also allows the color of a specific type of message to be set. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes directly to the application's attached console - not to the System.Console.Out or System.Console.Error TextWriter. - The System.Console.Out and System.Console.Error streams can be - programmatically redirected (for example NUnit does this to capture program output). - This appender will ignore these redirections because it needs to use Win32 - API calls to colorize the output. To respect these redirections the - must be used. - - - When configuring the colored console appender, mapping should be - specified to map a logging level to a color. For example: - - - - - - - - - - - - - - The Level is the standard log4net logging level and ForeColor and BackColor can be any - combination of the following values: - - Blue - Green - Red - White - Yellow - Purple - Cyan - HighIntensity - - - - Rick Hobbs - Nicko Cadell - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - flag set to true to write to the console error stream - - When is set to true, output is written to - the standard error output stream. Otherwise, output is written to the standard - output stream. - - - - - Add a mapping of level to color - done by the config file - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the foreground and background colors - for a level. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to color mappings set on this appender. - - - - - - Flag to write output to the error stream rather than the standard output stream - - - - - Mapping from level object to color value - - - - - The console output stream writer to write to - - - - This writer is not thread safe. - - - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The enum of possible color values for use with the color mapping method - - - - The following flags can be combined together to - form the colors. - - - - - - - color is blue - - - - - color is green - - - - - color is red - - - - - color is white - - - - - color is yellow - - - - - color is purple - - - - - color is cyan - - - - - color is intensified - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and the color it should be displayed in. - - - - - - Initialize the options for the object - - - - Combine the and together. - - - - - - The mapped foreground color for the specified level - - - - Required property. - The mapped foreground color for the specified level. - - - - - - The mapped background color for the specified level - - - - Required property. - The mapped background color for the specified level. - - - - - - The combined and suitable for - setting the console color. - - - - - Appends logging events to the console. - - - - ConsoleAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes each message to the System.Console.Out or - System.Console.Error that is set at the time the event is appended. - Therefore it is possible to programmatically redirect the output of this appender - (for example NUnit does this to capture program output). While this is the desired - behavior of this appender it may have security implications in your application. - - - Nicko Cadell - Gert Driesen - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - flag set to true to write to the console error stream - - When is set to true, output is written to - the standard error output stream. Otherwise, output is written to the standard - output stream. - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appends log events to the system. - - - - The application configuration file can be used to control what listeners - are actually used. See the MSDN documentation for the - class for details on configuring the - debug system. - - - Events are written using the - method. The event's logger name is passed as the value for the category name to the Write method. - - - Nicko Cadell - - - - Initializes a new instance of the . - - - - Default constructor. - - - - - - Initializes a new instance of the - with a specified layout. - - The layout to use with this appender. - - - Obsolete constructor. - - - - - - Writes the logging event to the system. - - The event to log. - - - Writes the logging event to the system. - If is true then the - is called. - - - - - - Immediate flush means that the underlying writer or output stream - will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logs events are not actually written to persistent media if and - when the application crashes. - - - The default value is true. - - - - - Gets or sets a value that indicates whether the appender will - flush at the end of each write. - - - The default behavior is to flush at the end of each - write. If the option is set tofalse, then the underlying - stream can defer writing to physical medium to a later time. - - - Avoiding the flush operation at the end of each append results - in a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Writes events to the system event log. - - - - The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. - See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog - - - The EventID of the event log entry can be - set using the EventID property () - on the . - - - The Category of the event log entry can be - set using the Category property () - on the . - - - There is a limit of 32K characters for an event log message - - - When configuring the EventLogAppender a mapping can be - specified to map a logging level to an event log entry type. For example: - - - <mapping> - <level value="ERROR" /> - <eventLogEntryType value="Error" /> - </mapping> - <mapping> - <level value="DEBUG" /> - <eventLogEntryType value="Information" /> - </mapping> - - - The Level is the standard log4net logging level and eventLogEntryType can be any value - from the enum, i.e.: - - Erroran error event - Warninga warning event - Informationan informational event - - - - Aspi Havewala - Douglas de la Torre - Nicko Cadell - Gert Driesen - Thomas Voss - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initializes a new instance of the class - with the specified . - - The to use with this appender. - - - Obsolete constructor. - - - - - - Add a mapping of level to - done by the config file - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the event log entry type for a level. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Create an event log source - - - Uses different API calls under NET_2_0 - - - - - This method is called by the - method. - - the event to log - - Writes the event to the system event log using the - . - - If the event has an EventID property (see ) - set then this integer will be used as the event log event id. - - - There is a limit of 32K characters for an event log message - - - - - - Get the equivalent for a - - the Level to convert to an EventLogEntryType - The equivalent for a - - Because there are fewer applicable - values to use in logging levels than there are in the - this is a one way mapping. There is - a loss of information during the conversion. - - - - - The log name is the section in the event logs where the messages - are stored. - - - - - Name of the application to use when logging. This appears in the - application column of the event log named by . - - - - - The name of the machine which holds the event log. This is - currently only allowed to be '.' i.e. the current machine. - - - - - Mapping from level object to EventLogEntryType - - - - - The security context to use for privileged calls - - - - - The event ID to use unless one is explicitly specified via the LoggingEvent's properties. - - - - - The event category to use unless one is explicitly specified via the LoggingEvent's properties. - - - - - The fully qualified type of the EventLogAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - The name of the log where messages will be stored. - - - The string name of the log where messages will be stored. - - - This is the name of the log as it appears in the Event Viewer - tree. The default value is to log into the Application - log, this is where most applications write their events. However - if you need a separate log for your application (or applications) - then you should set the appropriately. - This should not be used to distinguish your event log messages - from those of other applications, the - property should be used to distinguish events. This property should be - used to group together events into a single log. - - - - - - Property used to set the Application name. This appears in the - event logs when logging. - - - The string used to distinguish events from different sources. - - - Sets the event log source property. - - - - - This property is used to return the name of the computer to use - when accessing the event logs. Currently, this is the current - computer, denoted by a dot "." - - - The string name of the machine holding the event log that - will be logged into. - - - This property cannot be changed. It is currently set to '.' - i.e. the local machine. This may be changed in future. - - - - - Gets or sets the used to write to the EventLog. - - - The used to write to the EventLog. - - - - The system security context used to write to the EventLog. - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. - - - - The EventID of the event log entry will normally be - set using the EventID property () - on the . - This property provides the fallback value which defaults to 0. - - - - - - Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. - - - - The Category of the event log entry will normally be - set using the Category property () - on the . - This property provides the fallback value which defaults to 0. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and its event log entry type. - - - - - - The for this entry - - - - Required property. - The for this entry - - - - - - Appends logging events to a file. - - - - Logging events are sent to the file specified by - the property. - - - The file can be opened in either append or overwrite mode - by specifying the property. - If the file path is relative it is taken as relative from - the application base directory. The file encoding can be - specified by setting the property. - - - The layout's and - values will be written each time the file is opened and closed - respectively. If the property is - then the file may contain multiple copies of the header and footer. - - - This appender will first try to open the file for writing when - is called. This will typically be during configuration. - If the file cannot be opened for writing the appender will attempt - to open the file again each time a message is logged to the appender. - If the file cannot be opened for writing when a message is logged then - the message will be discarded by this appender. - - - The supports pluggable file locking models via - the property. - The default behavior, implemented by - is to obtain an exclusive write lock on the file until this appender is closed. - The alternative models only hold a - write lock while the appender is writing a logging event () - or synchronize by using a named system wide Mutex (). - - - All locking strategies have issues and you should seriously consider using a different strategy that - avoids having multiple processes logging to the same file. - - - Nicko Cadell - Gert Driesen - Rodrigo B. de Oliveira - Douglas de la Torre - Niall Daley - - - - Sends logging events to a . - - - - An Appender that writes to a . - - - This appender may be used stand alone if initialized with an appropriate - writer, however it is typically used as a base class for an appender that - can open a to write to. - - - Nicko Cadell - Gert Driesen - Douglas de la Torre - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initializes a new instance of the class and - sets the output destination to a new initialized - with the specified . - - The layout to use with this appender. - The to output to. - - - Obsolete constructor. - - - - - - Initializes a new instance of the class and sets - the output destination to the specified . - - The layout to use with this appender - The to output to - - The must have been previously opened. - - - - Obsolete constructor. - - - - - - This method determines if there is a sense in attempting to append. - - - - This method checks if an output target has been set and if a - layout has been set. - - - false if any of the preconditions fail. - - - - This method is called by the - method. - - The event to log. - - - Writes a log statement to the output stream if the output stream exists - and is writable. - - - The format of the output will depend on the appender's layout. - - - - - - This method is called by the - method. - - The array of events to log. - - - This method writes all the bulk logged events to the output writer - before flushing the stream. - - - - - - Close this appender instance. The underlying stream or writer is also closed. - - - Closed appenders cannot be reused. - - - - - Writes the footer and closes the underlying . - - - - Writes the footer and closes the underlying . - - - - - - Closes the underlying . - - - - Closes the underlying . - - - - - - Clears internal references to the underlying - and other variables. - - - - Subclasses can override this method for an alternate closing behavior. - - - - - - Writes a footer as produced by the embedded layout's property. - - - - Writes a footer as produced by the embedded layout's property. - - - - - - Writes a header produced by the embedded layout's property. - - - - Writes a header produced by the embedded layout's property. - - - - - - Called to allow a subclass to lazily initialize the writer - - - - This method is called when an event is logged and the or - have not been set. This allows a subclass to - attempt to initialize the writer multiple times. - - - - - - This is the where logging events - will be written to. - - - - - Immediate flush means that the underlying - or output stream will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logging events are not actually persisted if and when the application - crashes. - - - The default value is true. - - - - - - The fully qualified type of the TextWriterAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or set whether the appender will flush at the end - of each append operation. - - - - The default behavior is to flush at the end of each - append operation. - - - If this option is set to false, then the underlying - stream can defer persisting the logging event to a later - time. - - - - Avoiding the flush operation at the end of each append results in - a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - Sets the where the log output will go. - - - - The specified must be open and writable. - - - The will be closed when the appender - instance is closed. - - - Note: Logging to an unopened will fail. - - - - - - Gets or set the and the underlying - , if any, for this appender. - - - The for this appender. - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Gets or sets the where logging events - will be written to. - - - The where logging events are written. - - - - This is the where logging events - will be written to. - - - - - - Default constructor - - - - Default constructor - - - - - - Construct a new appender using the layout, file and append mode. - - the layout to use with this appender - the full path to the file to write to - flag to indicate if the file should be appended to - - - Obsolete constructor. - - - - - - Construct a new appender using the layout and file specified. - The file will be appended to. - - the layout to use with this appender - the full path to the file to write to - - - Obsolete constructor. - - - - - - Activate the options on the file appender. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - This will cause the file to be opened. - - - - - - Closes any previously opened file and calls the parent's . - - - - Resets the filename and the file stream. - - - - - - Called to initialize the file writer - - - - Will be called for each logged message until the file is - successfully opened. - - - - - - This method is called by the - method. - - The event to log. - - - Writes a log statement to the output stream if the output stream exists - and is writable. - - - The format of the output will depend on the appender's layout. - - - - - - This method is called by the - method. - - The array of events to log. - - - Acquires the output file locks once before writing all the events to - the stream. - - - - - - Writes a footer as produced by the embedded layout's property. - - - - Writes a footer as produced by the embedded layout's property. - - - - - - Writes a header produced by the embedded layout's property. - - - - Writes a header produced by the embedded layout's property. - - - - - - Closes the underlying . - - - - Closes the underlying . - - - - - - Closes the previously opened file. - - - - Writes the to the file and then - closes the file. - - - - - - Sets and opens the file where the log output will go. The specified file must be writable. - - The path to the log file. Must be a fully qualified path. - If true will append to fileName. Otherwise will truncate fileName - - - Calls but guarantees not to throw an exception. - Errors are passed to the . - - - - - - Sets and opens the file where the log output will go. The specified file must be writable. - - The path to the log file. Must be a fully qualified path. - If true will append to fileName. Otherwise will truncate fileName - - - If there was already an opened file, then the previous file - is closed first. - - - This method will ensure that the directory structure - for the specified exists. - - - - - - Sets the quiet writer used for file output - - the file stream that has been opened for writing - - - This implementation of creates a - over the and passes it to the - method. - - - This method can be overridden by sub classes that want to wrap the - in some way, for example to encrypt the output - data using a System.Security.Cryptography.CryptoStream. - - - - - - Sets the quiet writer being used. - - the writer over the file stream that has been opened for writing - - - This method can be overridden by sub classes that want to - wrap the in some way. - - - - - - Convert a path into a fully qualified path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - - - - Flag to indicate if we should append to the file - or overwrite the file. The default is to append. - - - - - The name of the log file. - - - - - The encoding to use for the file stream. - - - - - The security context to use for privileged calls - - - - - The stream to log to. Has added locking semantics - - - - - The locking model to use - - - - - The fully qualified type of the FileAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the path to the file that logging will be written to. - - - The path to the file that logging will be written to. - - - - If the path is relative it is taken as relative from - the application base directory. - - - - - - Gets or sets a flag that indicates whether the file should be - appended to or overwritten. - - - Indicates whether the file should be appended to or overwritten. - - - - If the value is set to false then the file will be overwritten, if - it is set to true then the file will be appended to. - - The default value is true. - - - - - Gets or sets used to write to the file. - - - The used to write to the file. - - - - The default encoding set is - which is the encoding for the system's current ANSI code page. - - - - - - Gets or sets the used to write to the file. - - - The used to write to the file. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Gets or sets the used to handle locking of the file. - - - The used to lock the file. - - - - Gets or sets the used to handle locking of the file. - - - There are three built in locking models, , and . - The first locks the file from the start of logging to the end, the - second locks only for the minimal amount of time when logging each message - and the last synchronizes processes using a named system wide Mutex. - - - The default locking model is the . - - - - - - Write only that uses the - to manage access to an underlying resource. - - - - - True asynchronous writes are not supported, the implementation forces a synchronous write. - - - - - Exception base type for log4net. - - - - This type extends . It - does not add any new functionality but does differentiate the - type of exception being thrown. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - A message to include with the exception. - - - Initializes a new instance of the class with - the specified message. - - - - - - Constructor - - A message to include with the exception. - A nested exception to include. - - - Initializes a new instance of the class - with the specified message and inner exception. - - - - - - Serialization constructor - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Locking model base class - - - - Base class for the locking models available to the derived loggers. - - - - - - Open the output file - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Acquire the lock on the file in preparation for writing to it. - Return a stream pointing to the file. - must be called to release the lock on the output file. - - - - - - Release the lock on the file - - - - Release the lock on the file. No further writes will be made to the - stream until is called again. - - - - - - Helper method that creates a FileStream under CurrentAppender's SecurityContext. - - - - Typically called during OpenFile or AcquireLock. - - - If the directory portion of the does not exist, it is created - via Directory.CreateDirecctory. - - - - - - - - - - Helper method to close under CurrentAppender's SecurityContext. - - - Does not set to null. - - - - - - Gets or sets the for this LockingModel - - - The for this LockingModel - - - - The file appender this locking model is attached to and working on - behalf of. - - - The file appender is used to locate the security context and the error handler to use. - - - The value of this property will be set before is - called. - - - - - - Hold an exclusive lock on the output file - - - - Open the file once for writing and hold it open until is called. - Maintains an exclusive lock on the file during this time. - - - - - - Open the file specified and prepare for logging. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Does nothing. The lock is already taken - - - - - - Release the lock on the file - - - - Does nothing. The lock will be released when the file is closed. - - - - - - Acquires the file lock for each write - - - - Opens the file once for each / cycle, - thus holding the lock for the minimal amount of time. This method of locking - is considerably slower than but allows - other processes to move/delete the log file whilst logging continues. - - - - - - Prepares to open the file when the first message is logged. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Acquire the lock on the file in preparation for writing to it. - Return a stream pointing to the file. - must be called to release the lock on the output file. - - - - - - Release the lock on the file - - - - Release the lock on the file. No further writes will be made to the - stream until is called again. - - - - - - Provides cross-process file locking. - - Ron Grabowski - Steve Wranovsky - - - - Open the file specified and prepare for logging. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Does nothing. The lock is already taken - - - - - - - - - - - This appender forwards logging events to attached appenders. - - - - The forwarding appender can be used to specify different thresholds - and filters for the same appender at different locations within the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Forward the logging event to the attached appenders - - The event to log. - - - Delivers the logging event to all the attached appenders. - - - - - - Forward the logging events to the attached appenders - - The array of events to log. - - - Delivers the logging events to all the attached appenders. - - - - - - Adds an to the list of appenders of this - instance. - - The to add to this appender. - - - If the specified is already in the list of - appenders, then it won't be added again. - - - - - - Looks for the appender with the specified name. - - The name of the appender to lookup. - - The appender with the specified name, or null. - - - - Get the named appender attached to this appender. - - - - - - Removes all previously added appenders from this appender. - - - - This is useful when re-reading configuration information. - - - - - - Removes the specified appender from the list of appenders. - - The appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Implementation of the interface - - - - - Gets the appenders contained in this appender as an - . - - - If no appenders can be found, then an - is returned. - - - A collection of the appenders in this appender. - - - - - Logs events to a local syslog service. - - - - This appender uses the POSIX libc library functions openlog, syslog, and closelog. - If these functions are not available on the local system then this appender will not work! - - - The functions openlog, syslog, and closelog are specified in SUSv2 and - POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. - - - This appender talks to a local syslog service. If you need to log to a remote syslog - daemon and you cannot configure your local syslog service to do this you may be - able to use the to log via UDP. - - - Syslog messages must have a facility and and a severity. The severity - is derived from the Level of the logging event. - The facility must be chosen from the set of defined syslog - values. The facilities list is predefined - and cannot be extended. - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - Rob Lyon - Nicko Cadell - - - - Initializes a new instance of the class. - - - This instance of the class is set up to write - to a local syslog service. - - - - - Add a mapping of level to severity - - The mapping to add - - - Adds a to this appender. - - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to a remote syslog daemon. - - - The format of the output will depend on the appender's layout. - - - - - - Close the syslog when the appender is closed - - - - Close the syslog when the appender is closed - - - - - - Translates a log4net level to a syslog severity. - - A log4net level. - A syslog severity. - - - Translates a log4net level to a syslog severity. - - - - - - Generate a syslog priority. - - The syslog facility. - The syslog severity. - A syslog priority. - - - - The facility. The default facility is . - - - - - The message identity - - - - - Marshaled handle to the identity string. We have to hold on to the - string as the openlog and syslog APIs just hold the - pointer to the ident and dereference it for each log message. - - - - - Mapping from level object to syslog severity - - - - - Open connection to system logger. - - - - - Generate a log message. - - - - The libc syslog method takes a format string and a variable argument list similar - to the classic printf function. As this type of vararg list is not supported - by C# we need to specify the arguments explicitly. Here we have specified the - format string with a single message argument. The caller must set the format - string to "%s". - - - - - - Close descriptor used to write to system logger. - - - - - Message identity - - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - - - - Syslog facility - - - Set to one of the values. The list of - facilities is predefined and cannot be extended. The default value - is . - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - syslog severities - - - - The log4net Level maps to a syslog severity using the - method and the - class. The severity is set on . - - - - - - system is unusable - - - - - action must be taken immediately - - - - - critical conditions - - - - - error conditions - - - - - warning conditions - - - - - normal but significant condition - - - - - informational - - - - - debug-level messages - - - - - syslog facilities - - - - The syslog facility defines which subsystem the logging comes from. - This is set on the property. - - - - - - kernel messages - - - - - random user-level messages - - - - - mail system - - - - - system daemons - - - - - security/authorization messages - - - - - messages generated internally by syslogd - - - - - line printer subsystem - - - - - network news subsystem - - - - - UUCP subsystem - - - - - clock (cron/at) daemon - - - - - security/authorization messages (private) - - - - - ftp daemon - - - - - NTP subsystem - - - - - log audit - - - - - log alert - - - - - clock daemon - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - - - The mapped syslog severity for the specified level - - - - Required property. - The mapped syslog severity for the specified level - - - - - - Stores logging events in an array. - - - - The memory appender stores all the logging events - that are appended in an in-memory array. - - - Use the method to get - the current list of events that have been appended. - - - Use the method to clear the - current list of events. - - - Julian Biddle - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Gets the events that have been logged. - - The events that have been logged - - - Gets the events that have been logged. - - - - - - This method is called by the method. - - the event to log - - Stores the in the events list. - - - - - Clear the list of events - - - Clear the list of events - - - - - The list of events that have been appended. - - - - - Value indicating which fields in the event should be fixed - - - By default all fields are fixed - - - - - Gets or sets a value indicating whether only part of the logging event - data should be fixed. - - - true if the appender should only fix part of the logging event - data, otherwise false. The default is false. - - - - Setting this property to true will cause only part of the event - data to be fixed and stored in the appender, hereby improving performance. - - - See for more information. - - - - - - Gets or sets the fields that will be fixed in the event - - - - The logging event needs to have certain thread specific values - captured before it can be buffered. See - for details. - - - - - - Logs entries by sending network messages using the - native function. - - - - You can send messages only to names that are active - on the network. If you send the message to a user name, - that user must be logged on and running the Messenger - service to receive the message. - - - The receiver will get a top most window displaying the - messages one at a time, therefore this appender should - not be used to deliver a high volume of messages. - - - The following table lists some possible uses for this appender : - - - - - Action - Property Value(s) - - - Send a message to a user account on the local machine - - - = <name of the local machine> - - - = <user name> - - - - - Send a message to a user account on a remote machine - - - = <name of the remote machine> - - - = <user name> - - - - - Send a message to a domain user account - - - = <name of a domain controller | uninitialized> - - - = <user name> - - - - - Send a message to all the names in a workgroup or domain - - - = <workgroup name | domain name>* - - - - - Send a message from the local machine to a remote machine - - - = <name of the local machine | uninitialized> - - - = <name of the remote machine> - - - - - - - Note : security restrictions apply for sending - network messages, see - for more information. - - - - - An example configuration section to log information - using this appender from the local machine, named - LOCAL_PC, to machine OPERATOR_PC : - - - - - - - - - - Nicko Cadell - Gert Driesen - - - - The DNS or NetBIOS name of the server on which the function is to execute. - - - - - The sender of the network message. - - - - - The message alias to which the message should be sent. - - - - - The security context to use for privileged calls - - - - - Initializes the appender. - - - The default constructor initializes all fields to their default values. - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The appender will be ignored if no was specified. - - - The required property was not specified. - - - - This method is called by the method. - - The event to log. - - - Sends the event using a network message. - - - - - - Sends a buffer of information to a registered message alias. - - The DNS or NetBIOS name of the server on which the function is to execute. - The message alias to which the message buffer should be sent - The originator of the message. - The message text. - The length, in bytes, of the message text. - - - The following restrictions apply for sending network messages: - - - - - Platform - Requirements - - - Windows NT - - - No special group membership is required to send a network message. - - - Admin, Accounts, Print, or Server Operator group membership is required to - successfully send a network message on a remote server. - - - - - Windows 2000 or later - - - If you send a message on a domain controller that is running Active Directory, - access is allowed or denied based on the access control list (ACL) for the securable - object. The default ACL permits only Domain Admins and Account Operators to send a network message. - - - On a member server or workstation, only Administrators and Server Operators can send a network message. - - - - - - - For more information see Security Requirements for the Network Management Functions. - - - - - If the function succeeds, the return value is zero. - - - - - - Gets or sets the sender of the message. - - - The sender of the message. - - - If this property is not specified, the message is sent from the local computer. - - - - - Gets or sets the message alias to which the message should be sent. - - - The recipient of the message. - - - This property should always be specified in order to send a message. - - - - - Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. - - - DNS or NetBIOS name of the remote server on which the function is to execute. - - - - For Windows NT 4.0 and earlier, the string should begin with \\. - - - If this property is not specified, the local computer is used. - - - - - - Gets or sets the used to call the NetSend method. - - - The used to call the NetSend method. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appends log events to the OutputDebugString system. - - - - OutputDebugStringAppender appends log events to the - OutputDebugString system. - - - The string is passed to the native OutputDebugString - function. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Write the logging event to the output debug string API - - the event to log - - - Write the logging event to the output debug string API - - - - - - Stub for OutputDebugString native method - - the string to output - - - Stub for OutputDebugString native method - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Logs events to a remote syslog daemon. - - - - The BSD syslog protocol is used to remotely log to - a syslog daemon. The syslogd listens for for messages - on UDP port 514. - - - The syslog UDP protocol is not authenticated. Most syslog daemons - do not accept remote log messages because of the security implications. - You may be able to use the LocalSyslogAppender to talk to a local - syslog service. - - - There is an RFC 3164 that claims to document the BSD Syslog Protocol. - This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. - This appender generates what the RFC calls an "Original Device Message", - i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation - this format of message will be accepted by all current syslog daemon - implementations. The daemon will attach the current time and the source - hostname or IP address to any messages received. - - - Syslog messages must have a facility and and a severity. The severity - is derived from the Level of the logging event. - The facility must be chosen from the set of defined syslog - values. The facilities list is predefined - and cannot be extended. - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - Rob Lyon - Nicko Cadell - - - - Sends logging events as connectionless UDP datagrams to a remote host or a - multicast group using an . - - - - UDP guarantees neither that messages arrive, nor that they arrive in the correct order. - - - To view the logging results, a custom application can be developed that listens for logging - events. - - - When decoding events send via this appender remember to use the same encoding - to decode the events as was used to send the events. See the - property to specify the encoding to use. - - - - This example shows how to log receive logging events that are sent - on IP address 244.0.0.1 and port 8080 to the console. The event is - encoded in the packet as a unicode string and it is decoded as such. - - IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); - UdpClient udpClient; - byte[] buffer; - string loggingEvent; - - try - { - udpClient = new UdpClient(8080); - - while(true) - { - buffer = udpClient.Receive(ref remoteEndPoint); - loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); - Console.WriteLine(loggingEvent); - } - } - catch(Exception e) - { - Console.WriteLine(e.ToString()); - } - - - Dim remoteEndPoint as IPEndPoint - Dim udpClient as UdpClient - Dim buffer as Byte() - Dim loggingEvent as String - - Try - remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) - udpClient = new UdpClient(8080) - While True - buffer = udpClient.Receive(ByRef remoteEndPoint) - loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) - Console.WriteLine(loggingEvent) - Wend - Catch e As Exception - Console.WriteLine(e.ToString()) - End Try - - - An example configuration section to log information using this appender to the - IP 224.0.0.1 on port 8080: - - - - - - - - - - Gert Driesen - Nicko Cadell - - - - Initializes a new instance of the class. - - - The default constructor initializes all fields to their default values. - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The appender will be ignored if no was specified or - an invalid remote or local TCP port number was specified. - - - The required property was not specified. - The TCP port number assigned to or is less than or greater than . - - - - This method is called by the method. - - The event to log. - - - Sends the event using an UDP datagram. - - - Exceptions are passed to the . - - - - - - Closes the UDP connection and releases all resources associated with - this instance. - - - - Disables the underlying and releases all managed - and unmanaged resources associated with the . - - - - - - Initializes the underlying connection. - - - - The underlying is initialized and binds to the - port number from which you intend to communicate. - - - Exceptions are passed to the . - - - - - - The IP address of the remote host or multicast group to which - the logging event will be sent. - - - - - The TCP port number of the remote host or multicast group to - which the logging event will be sent. - - - - - The cached remote endpoint to which the logging events will be sent. - - - - - The TCP port number from which the will communicate. - - - - - The instance that will be used for sending the - logging events. - - - - - The encoding to use for the packet. - - - - - Gets or sets the IP address of the remote host or multicast group to which - the underlying should sent the logging event. - - - The IP address of the remote host or multicast group to which the logging event - will be sent. - - - - Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to - 239.255.255.255). Multicast packets can pass across different networks through routers, so - it is possible to use multicasts in an Internet scenario as long as your network provider - supports multicasting. - - - Hosts that want to receive particular multicast messages must register their interest by joining - the multicast group. Multicast messages are not sent to networks where no host has joined - the multicast group. Class D IP addresses are used for multicast groups, to differentiate - them from normal host addresses, allowing nodes to easily detect if a message is of interest. - - - Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: - - - - - IP Address - Description - - - 224.0.0.1 - - - Sends a message to all system on the subnet. - - - - - 224.0.0.2 - - - Sends a message to all routers on the subnet. - - - - - 224.0.0.12 - - - The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. - - - - - - - A complete list of actually reserved multicast addresses and their owners in the ranges - defined by RFC 3171 can be found at the IANA web site. - - - The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative - addresses. These addresses can be reused with other local groups. Routers are typically - configured with filters to prevent multicast traffic in this range from flowing outside - of the local network. - - - - - - Gets or sets the TCP port number of the remote host or multicast group to which - the underlying should sent the logging event. - - - An integer value in the range to - indicating the TCP port number of the remote host or multicast group to which the logging event - will be sent. - - - The underlying will send messages to this TCP port number - on the remote host or multicast group. - - The value specified is less than or greater than . - - - - Gets or sets the TCP port number from which the underlying will communicate. - - - An integer value in the range to - indicating the TCP port number from which the underlying will communicate. - - - - The underlying will bind to this port for sending messages. - - - Setting the value to 0 (the default) will cause the udp client not to bind to - a local port. - - - The value specified is less than or greater than . - - - - Gets or sets used to write the packets. - - - The used to write the packets. - - - - The used to write the packets. - - - - - - Gets or sets the underlying . - - - The underlying . - - - creates a to send logging events - over a network. Classes deriving from can use this - property to get or set this . Use the underlying - returned from if you require access beyond that which - provides. - - - - - Gets or sets the cached remote endpoint to which the logging events should be sent. - - - The cached remote endpoint to which the logging events will be sent. - - - The method will initialize the remote endpoint - with the values of the and - properties. - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Syslog port 514 - - - - - Initializes a new instance of the class. - - - This instance of the class is set up to write - to a remote syslog daemon. - - - - - Add a mapping of level to severity - - The mapping to add - - - Add a mapping to this appender. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to a remote syslog daemon. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to syslog severity mappings set on this appender. - - - - - - Translates a log4net level to a syslog severity. - - A log4net level. - A syslog severity. - - - Translates a log4net level to a syslog severity. - - - - - - Generate a syslog priority. - - The syslog facility. - The syslog severity. - A syslog priority. - - - Generate a syslog priority. - - - - - - The facility. The default facility is . - - - - - The message identity - - - - - Mapping from level object to syslog severity - - - - - Message identity - - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - - - - Syslog facility - - - Set to one of the values. The list of - facilities is predefined and cannot be extended. The default value - is . - - - - - syslog severities - - - - The syslog severities. - - - - - - system is unusable - - - - - action must be taken immediately - - - - - critical conditions - - - - - error conditions - - - - - warning conditions - - - - - normal but significant condition - - - - - informational - - - - - debug-level messages - - - - - syslog facilities - - - - The syslog facilities - - - - - - kernel messages - - - - - random user-level messages - - - - - mail system - - - - - system daemons - - - - - security/authorization messages - - - - - messages generated internally by syslogd - - - - - line printer subsystem - - - - - network news subsystem - - - - - UUCP subsystem - - - - - clock (cron/at) daemon - - - - - security/authorization messages (private) - - - - - ftp daemon - - - - - NTP subsystem - - - - - log audit - - - - - log alert - - - - - clock daemon - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - - - The mapped syslog severity for the specified level - - - - Required property. - The mapped syslog severity for the specified level - - - - - - Delivers logging events to a remote logging sink. - - - - This Appender is designed to deliver events to a remote sink. - That is any object that implements the - interface. It delivers the events using .NET remoting. The - object to deliver events to is specified by setting the - appenders property. - - The RemotingAppender buffers events before sending them. This allows it to - make more efficient use of the remoting infrastructure. - - Once the buffer is full the events are still not sent immediately. - They are scheduled to be sent using a pool thread. The effect is that - the send occurs asynchronously. This is very important for a - number of non obvious reasons. The remoting infrastructure will - flow thread local variables (stored in the ), - if they are marked as , across the - remoting boundary. If the server is not contactable then - the remoting infrastructure will clear the - objects from the . To prevent a logging failure from - having side effects on the calling application the remoting call must be made - from a separate thread to the one used by the application. A - thread is used for this. If no thread is available then - the events will block in the thread pool manager until a thread is available. - - Because the events are sent asynchronously using pool threads it is possible to close - this appender before all the queued events have been sent. - When closing the appender attempts to wait until all the queued events have been sent, but - this will timeout after 30 seconds regardless. - - If this appender is being closed because the - event has fired it may not be possible to send all the queued events. During process - exit the runtime limits the time that a - event handler is allowed to run for. If the runtime terminates the threads before - the queued events have been sent then they will be lost. To ensure that all events - are sent the appender must be closed before the application exits. See - for details on how to shutdown - log4net programmatically. - - - Nicko Cadell - Gert Driesen - Daniel Cazzulino - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Send the contents of the buffer to the remote sink. - - - The events are not sent immediately. They are scheduled to be sent - using a pool thread. The effect is that the send occurs asynchronously. - This is very important for a number of non obvious reasons. The remoting - infrastructure will flow thread local variables (stored in the ), - if they are marked as , across the - remoting boundary. If the server is not contactable then - the remoting infrastructure will clear the - objects from the . To prevent a logging failure from - having side effects on the calling application the remoting call must be made - from a separate thread to the one used by the application. A - thread is used for this. If no thread is available then - the events will block in the thread pool manager until a thread is available. - - The events to send. - - - - Override base class close. - - - - This method waits while there are queued work items. The events are - sent asynchronously using work items. These items - will be sent once a thread pool thread is available to send them, therefore - it is possible to close the appender before all the queued events have been - sent. - - This method attempts to wait until all the queued events have been sent, but this - method will timeout after 30 seconds regardless. - - If the appender is being closed because the - event has fired it may not be possible to send all the queued events. During process - exit the runtime limits the time that a - event handler is allowed to run for. - - - - - A work item is being queued into the thread pool - - - - - A work item from the thread pool has completed - - - - - Send the contents of the buffer to the remote sink. - - - This method is designed to be used with the . - This method expects to be passed an array of - objects in the state param. - - the logging events to send - - - - The URL of the remote sink. - - - - - The local proxy (.NET remoting) for the remote logging sink. - - - - - The number of queued callbacks currently waiting or executing - - - - - Event used to signal when there are no queued work items - - - This event is set when there are no queued work items. In this - state it is safe to close the appender. - - - - - Gets or sets the URL of the well-known object that will accept - the logging events. - - - The well-known URL of the remote sink. - - - - The URL of the remoting sink that will accept logging events. - The sink must implement the - interface. - - - - - - Interface used to deliver objects to a remote sink. - - - This interface must be implemented by a remoting sink - if the is to be used - to deliver logging events to the sink. - - - - - Delivers logging events to the remote sink - - Array of events to log. - - - Delivers logging events to the remote sink - - - - - - Appender that rolls log files based on size or date or both. - - - - RollingFileAppender can roll log files based on size or date or both - depending on the setting of the property. - When set to the log file will be rolled - once its size exceeds the . - When set to the log file will be rolled - once the date boundary specified in the property - is crossed. - When set to the log file will be - rolled once the date boundary specified in the property - is crossed, but within a date boundary the file will also be rolled - once its size exceeds the . - When set to the log file will be rolled when - the appender is configured. This effectively means that the log file can be - rolled once per program execution. - - - A of few additional optional features have been added: - - Attach date pattern for current log file - Backup number increments for newer files - Infinite number of backups by file size - - - - - - For large or infinite numbers of backup files a - greater than zero is highly recommended, otherwise all the backup files need - to be renamed each time a new backup is created. - - - When Date/Time based rolling is used setting - to will reduce the number of file renamings to few or none. - - - - - - Changing or without clearing - the log file directory of backup files will cause unexpected and unwanted side effects. - - - - - If Date/Time based rolling is enabled this appender will attempt to roll existing files - in the directory without a Date/Time tag based on the last write date of the base log file. - The appender only rolls the log file when a message is logged. If Date/Time based rolling - is enabled then the appender will not roll the log file at the Date/Time boundary but - at the point when the next message is logged after the boundary has been crossed. - - - - The extends the and - has the same behavior when opening the log file. - The appender will first try to open the file for writing when - is called. This will typically be during configuration. - If the file cannot be opened for writing the appender will attempt - to open the file again each time a message is logged to the appender. - If the file cannot be opened for writing when a message is logged then - the message will be discarded by this appender. - - - When rolling a backup file necessitates deleting an older backup file the - file to be deleted is moved to a temporary name before being deleted. - - - - - A maximum number of backup files when rolling on date/time boundaries is not supported. - - - - Nicko Cadell - Gert Driesen - Aspi Havewala - Douglas de la Torre - Edward Smit - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - The fully qualified type of the RollingFileAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Sets the quiet writer being used. - - - This method can be overridden by sub classes. - - the writer to set - - - - Write out a logging event. - - the event to write to file. - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Write out an array of logging events. - - the events to write to file. - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Performs any required rolling before outputting the next event - - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Creates and opens the file for logging. If - is false then the fully qualified name is determined and used. - - the name of the file to open - true to append to existing file - - This method will ensure that the directory structure - for the specified exists. - - - - - Get the current output file name - - the base file name - the output file name - - The output file name is based on the base fileName specified. - If is set then the output - file name is the same as the base file passed in. Otherwise - the output file depends on the date pattern, on the count - direction or both. - - - - - Determines curSizeRollBackups (only within the current roll point) - - - - - Generates a wildcard pattern that can be used to find all files - that are similar to the base file name. - - - - - - - Builds a list of filenames for all files matching the base filename plus a file - pattern. - - - - - - - Initiates a roll over if needed for crossing a date boundary since the last run. - - - - - Initializes based on existing conditions at time of . - - - - Initializes based on existing conditions at time of . - The following is done - - determine curSizeRollBackups (only within the current roll point) - initiates a roll over if needed for crossing a date boundary since the last run. - - - - - - - Does the work of bumping the 'current' file counter higher - to the highest count when an incremental file name is seen. - The highest count is either the first file (when count direction - is greater than 0) or the last file (when count direction less than 0). - In either case, we want to know the highest count that is present. - - - - - - - Attempts to extract a number from the end of the file name that indicates - the number of the times the file has been rolled over. - - - Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. - - - - - - - Takes a list of files and a base file name, and looks for - 'incremented' versions of the base file. Bumps the max - count up to the highest count seen. - - - - - - - Calculates the RollPoint for the datePattern supplied. - - the date pattern to calculate the check period for - The RollPoint that is most accurate for the date pattern supplied - - Essentially the date pattern is examined to determine what the - most suitable roll point is. The roll point chosen is the roll point - with the smallest period that can be detected using the date pattern - supplied. i.e. if the date pattern only outputs the year, month, day - and hour then the smallest roll point that can be detected would be - and hourly roll point as minutes could not be detected. - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Sets initial conditions including date/time roll over information, first check, - scheduledFilename, and calls to initialize - the current number of backups. - - - - - - - - - .1, .2, .3, etc. - - - - - Rollover the file(s) to date/time tagged file(s). - - set to true if the file to be rolled is currently open - - - Rollover the file(s) to date/time tagged file(s). - Resets curSizeRollBackups. - If fileIsOpen is set then the new file is opened (through SafeOpenFile). - - - - - - Renames file to file . - - Name of existing file to roll. - New name for file. - - - Renames file to file . It - also checks for existence of target file and deletes if it does. - - - - - - Test if a file exists at a specified path - - the path to the file - true if the file exists - - - Test if a file exists at a specified path - - - - - - Deletes the specified file if it exists. - - The file to delete. - - - Delete a file if is exists. - The file is first moved to a new filename then deleted. - This allows the file to be removed even when it cannot - be deleted, but it still can be moved. - - - - - - Implements file roll base on file size. - - - - If the maximum number of size based backups is reached - (curSizeRollBackups == maxSizeRollBackups) then the oldest - file is deleted -- its index determined by the sign of countDirection. - If countDirection < 0, then files - {File.1, ..., File.curSizeRollBackups -1} - are renamed to {File.2, ..., - File.curSizeRollBackups}. Moreover, File is - renamed File.1 and closed. - - - A new file is created to receive further log output. - - - If maxSizeRollBackups is equal to zero, then the - File is truncated with no backup files created. - - - If maxSizeRollBackups < 0, then File is - renamed if needed and no files are deleted. - - - - - - Implements file roll. - - the base name to rename - - - If the maximum number of size based backups is reached - (curSizeRollBackups == maxSizeRollBackups) then the oldest - file is deleted -- its index determined by the sign of countDirection. - If countDirection < 0, then files - {File.1, ..., File.curSizeRollBackups -1} - are renamed to {File.2, ..., - File.curSizeRollBackups}. - - - If maxSizeRollBackups is equal to zero, then the - File is truncated with no backup files created. - - - If maxSizeRollBackups < 0, then File is - renamed if needed and no files are deleted. - - - This is called by to rename the files. - - - - - - Get the start time of the next window for the current rollpoint - - the current date - the type of roll point we are working with - the start time for the next roll point an interval after the currentDateTime date - - - Returns the date of the next roll point after the currentDateTime date passed to the method. - - - The basic strategy is to subtract the time parts that are less significant - than the rollpoint from the current time. This should roll the time back to - the start of the time window for the current rollpoint. Then we add 1 window - worth of time and get the start time of the next window for the rollpoint. - - - - - - This object supplies the current date/time. Allows test code to plug in - a method to control this class when testing date/time based rolling. The default - implementation uses the underlying value of DateTime.Now. - - - - - The date pattern. By default, the pattern is set to ".yyyy-MM-dd" - meaning daily rollover. - - - - - The actual formatted filename that is currently being written to - or will be the file transferred to on roll over - (based on staticLogFileName). - - - - - The timestamp when we shall next recompute the filename. - - - - - Holds date of last roll over - - - - - The type of rolling done - - - - - The default maximum file size is 10MB - - - - - There is zero backup files by default - - - - - How many sized based backups have been made so far - - - - - The rolling file count direction. - - - - - The rolling mode used in this appender. - - - - - Cache flag set if we are rolling by date. - - - - - Cache flag set if we are rolling by size. - - - - - Value indicating whether to always log to the same file. - - - - - Value indicating whether to preserve the file name extension when rolling. - - - - - FileName provided in configuration. Used for rolling properly - - - - - The 1st of January 1970 in UTC - - - - - Gets or sets the strategy for determining the current date and time. The default - implementation is to use LocalDateTime which internally calls through to DateTime.Now. - DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying - . - - - An implementation of the interface which returns the current date and time. - - - - Gets or sets the used to return the current date and time. - - - There are two built strategies for determining the current date and time, - - and . - - - The default strategy is . - - - - - - Gets or sets the date pattern to be used for generating file names - when rolling over on date. - - - The date pattern to be used for generating file names when rolling - over on date. - - - - Takes a string in the same format as expected by - . - - - This property determines the rollover schedule when rolling over - on date. - - - - - - Gets or sets the maximum number of backup files that are kept before - the oldest is erased. - - - The maximum number of backup files that are kept before the oldest is - erased. - - - - If set to zero, then there will be no backup files and the log file - will be truncated when it reaches . - - - If a negative number is supplied then no deletions will be made. Note - that this could result in very slow performance as a large number of - files are rolled over unless is used. - - - The maximum applies to each time based group of files and - not the total. - - - - - - Gets or sets the maximum size that the output file is allowed to reach - before being rolled over to backup files. - - - The maximum size in bytes that the output file is allowed to reach before being - rolled over to backup files. - - - - This property is equivalent to except - that it is required for differentiating the setter taking a - argument from the setter taking a - argument. - - - The default maximum file size is 10MB (10*1024*1024). - - - - - - Gets or sets the maximum size that the output file is allowed to reach - before being rolled over to backup files. - - - The maximum size that the output file is allowed to reach before being - rolled over to backup files. - - - - This property allows you to specify the maximum size with the - suffixes "KB", "MB" or "GB" so that the size is interpreted being - expressed respectively in kilobytes, megabytes or gigabytes. - - - For example, the value "10KB" will be interpreted as 10240 bytes. - - - The default maximum file size is 10MB. - - - If you have the option to set the maximum file size programmatically - consider using the property instead as this - allows you to set the size in bytes as a . - - - - - - Gets or sets the rolling file count direction. - - - The rolling file count direction. - - - - Indicates if the current file is the lowest numbered file or the - highest numbered file. - - - By default newer files have lower numbers ( < 0), - i.e. log.1 is most recent, log.5 is the 5th backup, etc... - - - >= 0 does the opposite i.e. - log.1 is the first backup made, log.5 is the 5th backup made, etc. - For infinite backups use >= 0 to reduce - rollover costs. - - The default file count direction is -1. - - - - - Gets or sets the rolling style. - - The rolling style. - - - The default rolling style is . - - - When set to this appender's - property is set to false, otherwise - the appender would append to a single file rather than rolling - the file each time it is opened. - - - - - - Gets or sets a value indicating whether to preserve the file name extension when rolling. - - - true if the file name extension should be preserved. - - - - By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. - However, under Windows the new file name will loose any program associations as the - extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or - file.curSizeRollBackup.log to maintain any program associations. - - - - - - Gets or sets a value indicating whether to always log to - the same file. - - - true if always should be logged to the same file, otherwise false. - - - - By default file.log is always the current file. Optionally - file.log.yyyy-mm-dd for current formatted datePattern can by the currently - logging file (or file.log.curSizeRollBackup or even - file.log.yyyy-mm-dd.curSizeRollBackup). - - - This will make time based rollovers with a large number of backups - much faster as the appender it won't have to rename all the backups! - - - - - - Style of rolling to use - - - - Style of rolling to use - - - - - - Roll files once per program execution - - - - Roll files once per program execution. - Well really once each time this appender is - configured. - - - Setting this option also sets AppendToFile to - false on the RollingFileAppender, otherwise - this appender would just be a normal file appender. - - - - - - Roll files based only on the size of the file - - - - - Roll files based only on the date - - - - - Roll files based on both the size and date of the file - - - - - The code assumes that the following 'time' constants are in a increasing sequence. - - - - The code assumes that the following 'time' constants are in a increasing sequence. - - - - - - Roll the log not based on the date - - - - - Roll the log for each minute - - - - - Roll the log for each hour - - - - - Roll the log twice a day (midday and midnight) - - - - - Roll the log each day (midnight) - - - - - Roll the log each week - - - - - Roll the log each month - - - - - This interface is used to supply Date/Time information to the . - - - This interface is used to supply Date/Time information to the . - Used primarily to allow test classes to plug themselves in so they can - supply test date/times. - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Default implementation of that returns the current time. - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Implementation of that returns the current time as the coordinated universal time (UTC). - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Send an e-mail when a specific logging event occurs, typically on errors - or fatal errors. - - - - The number of logging events delivered in this e-mail depend on - the value of option. The - keeps only the last - logging events in its - cyclic buffer. This keeps memory requirements at a reasonable level while - still delivering useful application context. - - - Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. - For these features to be enabled you need to ensure that you are using a version of - the log4net assembly that is built against the MS .NET 1.1 framework and that you are - running the your application on the MS .NET 1.1 runtime. On all other platforms only sending - unauthenticated messages to a server listening on port 25 (the default) is supported. - - - Authentication is supported by setting the property to - either or . - If using authentication then the - and properties must also be set. - - - To set the SMTP server port use the property. The default port is 25. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Default constructor - - - - - - Sends the contents of the cyclic buffer as an e-mail message. - - The logging events to send. - - - - Send the email message - - the body text to include in the mail - - - - Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - - Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses - that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - - Gets or sets a semicolon-delimited list of recipient e-mail addresses - that will be blind carbon copied. - - - A semicolon-delimited list of e-mail addresses. - - - - A semicolon-delimited list of recipient e-mail addresses. - - - - - - Gets or sets the e-mail address of the sender. - - - The e-mail address of the sender. - - - - The e-mail address of the sender. - - - - - - Gets or sets the subject line of the e-mail message. - - - The subject line of the e-mail message. - - - - The subject line of the e-mail message. - - - - - - Gets or sets the name of the SMTP relay mail server to use to send - the e-mail messages. - - - The name of the e-mail relay server. If SmtpServer is not set, the - name of the local SMTP server is used. - - - - The name of the e-mail relay server. If SmtpServer is not set, the - name of the local SMTP server is used. - - - - - - Obsolete - - - Use the BufferingAppenderSkeleton Fix methods instead - - - - Obsolete property. - - - - - - The mode to use to authentication with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - Valid Authentication mode values are: , - , and . - The default value is . When using - you must specify the - and to use to authenticate. - When using the Windows credentials for the current - thread, if impersonating, or the process will be used to authenticate. - - - - - - The username to use to authenticate with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - A and must be specified when - is set to , - otherwise the username will be ignored. - - - - - - The password to use to authenticate with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - A and must be specified when - is set to , - otherwise the password will be ignored. - - - - - - The port on which the SMTP server is listening - - - Server Port is only available on the MS .NET 1.1 runtime. - - The port on which the SMTP server is listening. The default - port is 25. The Port can only be changed when running on - the MS .NET 1.1 runtime. - - - - - - Gets or sets the priority of the e-mail message - - - One of the values. - - - - Sets the priority of the e-mails generated by this - appender. The default priority is . - - - If you are using this appender to report errors then - you may want to set the priority to . - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Values for the property. - - - - SMTP authentication modes. - - - - - - No authentication - - - - - Basic authentication. - - - Requires a username and password to be supplied - - - - - Integrated authentication - - - Uses the Windows credentials from the current thread or process to authenticate. - - - - - Send an email when a specific logging event occurs, typically on errors - or fatal errors. Rather than sending via smtp it writes a file into the - directory specified by . This allows services such - as the IIS SMTP agent to manage sending the messages. - - - - The configuration for this appender is identical to that of the SMTPAppender, - except that instead of specifying the SMTPAppender.SMTPHost you specify - . - - - The number of logging events delivered in this e-mail depend on - the value of option. The - keeps only the last - logging events in its - cyclic buffer. This keeps memory requirements at a reasonable level while - still delivering useful application context. - - - Niall Daley - Nicko Cadell - - - - Default constructor - - - - Default constructor - - - - - - Sends the contents of the cyclic buffer as an e-mail message. - - The logging events to send. - - - Sends the contents of the cyclic buffer as an e-mail message. - - - - - - Activate the options on this appender. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Convert a path into a fully qualified path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - - - - The security context to use for privileged calls - - - - - Gets or sets a semicolon-delimited list of recipient e-mail addresses. - - - A semicolon-delimited list of e-mail addresses. - - - - A semicolon-delimited list of e-mail addresses. - - - - - - Gets or sets the e-mail address of the sender. - - - The e-mail address of the sender. - - - - The e-mail address of the sender. - - - - - - Gets or sets the subject line of the e-mail message. - - - The subject line of the e-mail message. - - - - The subject line of the e-mail message. - - - - - - Gets or sets the path to write the messages to. - - - - Gets or sets the path to write the messages to. This should be the same - as that used by the agent sending the messages. - - - - - - Gets or sets the used to write to the pickup directory. - - - The used to write to the pickup directory. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appender that allows clients to connect via Telnet to receive log messages - - - - The TelnetAppender accepts socket connections and streams logging messages - back to the client. - The output is provided in a telnet-friendly way so that a log can be monitored - over a TCP/IP socket. - This allows simple remote monitoring of application logging. - - - The default is 23 (the telnet port). - - - Keith Long - Nicko Cadell - - - - Default constructor - - - - Default constructor - - - - - - The fully qualified type of the TelnetAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Overrides the parent method to close the socket handler - - - - Closes all the outstanding connections. - - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Create the socket handler and wait for connections - - - - - - Writes the logging event to each connected client. - - The event to log. - - - Writes the logging event to each connected client. - - - - - - Gets or sets the TCP port number on which this will listen for connections. - - - An integer value in the range to - indicating the TCP port number on which this will listen for connections. - - - - The default value is 23 (the telnet port). - - - The value specified is less than - or greater than . - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Helper class to manage connected clients - - - - The SocketHandler class is used to accept connections from - clients. It is threaded so that clients can connect/disconnect - asynchronously. - - - - - - Opens a new server port on - - the local port to listen on for connections - - - Creates a socket handler on the specified local server port. - - - - - - Sends a string message to each of the connected clients - - the text to send - - - Sends a string message to each of the connected clients - - - - - - Add a client to the internal clients list - - client to add - - - - Remove a client from the internal clients list - - client to remove - - - - Callback used to accept a connection on the server socket - - The result of the asynchronous operation - - - On connection adds to the list of connections - if there are two many open connections you will be disconnected - - - - - - Close all network connections - - - - Make sure we close all network connections - - - - - - Test if this handler has active connections - - - true if this handler has active connections - - - - This property will be true while this handler has - active connections, that is at least one connection that - the handler will attempt to send a message to. - - - - - - Class that represents a client connected to this handler - - - - Class that represents a client connected to this handler - - - - - - Create this for the specified - - the client's socket - - - Opens a stream writer on the socket. - - - - - - Write a string to the client - - string to send - - - Write a string to the client - - - - - - Cleanup the clients connection - - - - Close the socket connection. - - - - - - Appends log events to the system. - - - - The application configuration file can be used to control what listeners - are actually used. See the MSDN documentation for the - class for details on configuring the - trace system. - - - Events are written using the System.Diagnostics.Trace.Write(string,string) - method. The event's logger name is the default value for the category parameter - of the Write method. - - - Compact Framework
    - The Compact Framework does not support the - class for any operation except Assert. When using the Compact Framework this - appender will write to the system rather than - the Trace system. This appender will therefore behave like the . -
    -
    - Douglas de la Torre - Nicko Cadell - Gert Driesen - Ron Grabowski -
    - - - Initializes a new instance of the . - - - - Default constructor. - - - - - - Initializes a new instance of the - with a specified layout. - - The layout to use with this appender. - - - Obsolete constructor. - - - - - - Writes the logging event to the system. - - The event to log. - - - Writes the logging event to the system. - - - - - - Immediate flush means that the underlying writer or output stream - will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logs events are not actually written to persistent media if and - when the application crashes. - - - The default value is true. - - - - - Defaults to %logger - - - - - Gets or sets a value that indicates whether the appender will - flush at the end of each write. - - - The default behavior is to flush at the end of each - write. If the option is set tofalse, then the underlying - stream can defer writing to physical medium to a later time. - - - Avoiding the flush operation at the end of each append results - in a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - - The category parameter sent to the Trace method. - - - - Defaults to %logger which will use the logger name of the current - as the category parameter. - - - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Assembly level attribute that specifies a domain to alias to this assembly's repository. - - - - AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. - - - An assembly's logger repository is defined by its , - however this can be overridden by an assembly loaded before the target assembly. - - - An assembly can alias another assembly's domain to its repository by - specifying this attribute with the name of the target domain. - - - This attribute can only be specified on the assembly and may be used - as many times as necessary to alias all the required domains. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute that specifies a repository to alias to this assembly's repository. - - - - An assembly's logger repository is defined by its , - however this can be overridden by an assembly loaded before the target assembly. - - - An assembly can alias another assembly's repository to its repository by - specifying this attribute with the name of the target repository. - - - This attribute can only be specified on the assembly and may be used - as many times as necessary to alias all the required repositories. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class with - the specified repository to alias to this assembly's repository. - - The repository to alias to this assemby's repository. - - - Initializes a new instance of the class with - the specified repository to alias to this assembly's repository. - - - - - - Gets or sets the repository to alias to this assemby's repository. - - - The repository to alias to this assemby's repository. - - - - The name of the repository to alias to this assemby's repository. - - - - - - Initializes a new instance of the class with - the specified domain to alias to this assembly's repository. - - The domain to alias to this assemby's repository. - - - Obsolete. Use instead of . - - - - - - Use this class to quickly configure a . - - - - Allows very simple programmatic configuration of log4net. - - - Only one appender can be configured using this configurator. - The appender is set at the root of the hierarchy and all logging - events will be delivered to that appender. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - The fully qualified type of the BasicConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Initializes the log4net system with a default configuration. - - - - Initializes the log4net logging system using a - that will write to Console.Out. The log messages are - formatted using the layout object - with the - layout style. - - - - - - Initializes the log4net system using the specified appender. - - The appender to use to log all logging events. - - - Initializes the log4net system using the specified appender. - - - - - - Initializes the log4net system using the specified appenders. - - The appenders to use to log all logging events. - - - Initializes the log4net system using the specified appenders. - - - - - - Initializes the with a default configuration. - - The repository to configure. - - - Initializes the specified repository using a - that will write to Console.Out. The log messages are - formatted using the layout object - with the - layout style. - - - - - - Initializes the using the specified appender. - - The repository to configure. - The appender to use to log all logging events. - - - Initializes the using the specified appender. - - - - - - Initializes the using the specified appenders. - - The repository to configure. - The appenders to use to log all logging events. - - - Initializes the using the specified appender. - - - - - - Base class for all log4net configuration attributes. - - - This is an abstract class that must be extended by - specific configurators. This attribute allows the - configurator to be parameterized by an assembly level - attribute. - - Nicko Cadell - Gert Driesen - - - - Constructor used by subclasses. - - the ordering priority for this configurator - - - The is used to order the configurator - attributes before they are invoked. Higher priority configurators are executed - before lower priority ones. - - - - - - Configures the for the specified assembly. - - The assembly that this attribute was defined on. - The repository to configure. - - - Abstract method implemented by a subclass. When this method is called - the subclass should configure the . - - - - - - Compare this instance to another ConfiguratorAttribute - - the object to compare to - see - - - Compares the priorities of the two instances. - Sorts by priority in descending order. Objects with the same priority are - randomly ordered. - - - - - - Assembly level attribute that specifies the logging domain for the assembly. - - - - DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - Assemblies are mapped to logging domains. Each domain has its own - logging repository. This attribute specified on the assembly controls - the configuration of the domain. The property specifies the name - of the domain that this assembly is a part of. The - specifies the type of the repository objects to create for the domain. If - this attribute is not specified and a is not specified - then the assembly will be part of the default shared logging domain. - - - This attribute can only be specified on the assembly and may only be used - once per assembly. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute that specifies the logging repository for the assembly. - - - - Assemblies are mapped to logging repository. This attribute specified - on the assembly controls - the configuration of the repository. The property specifies the name - of the repository that this assembly is a part of. The - specifies the type of the object - to create for the assembly. If this attribute is not specified or a - is not specified then the assembly will be part of the default shared logging repository. - - - This attribute can only be specified on the assembly and may only be used - once per assembly. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initialize a new instance of the class - with the name of the repository. - - The name of the repository. - - - Initialize the attribute with the name for the assembly's repository. - - - - - - Gets or sets the name of the logging repository. - - - The string name to use as the name of the repository associated with this - assembly. - - - - This value does not have to be unique. Several assemblies can share the - same repository. They will share the logging configuration of the repository. - - - - - - Gets or sets the type of repository to create for this assembly. - - - The type of repository to create for this assembly. - - - - The type of the repository to create for the assembly. - The type must implement the - interface. - - - This will be the type of repository created when - the repository is created. If multiple assemblies reference the - same repository then the repository is only created once using the - of the first assembly to call into the - repository. - - - - - - Initializes a new instance of the class. - - - - Obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - - - - Initialize a new instance of the class - with the name of the domain. - - The name of the domain. - - - Obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - - - - Use this class to initialize the log4net environment using an Xml tree. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - Configures a using an Xml tree. - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - - - Automatically configures the log4net system based on the - application's configuration settings. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - 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 - log4net that contains the configuration data. - - - - - Automatically configures the using settings - stored in the application's configuration file. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - 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 - log4net that contains the configuration data. - - The repository to configure. - - - - Configures log4net using a log4net element - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - Loads the log4net configuration from the XML element - supplied as . - - The element to parse. - - - - Configures the using the specified XML - element. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - Loads the log4net configuration from the XML element - supplied as . - - The repository to configure. - The element to parse. - - - - Configures log4net using the specified configuration file. - - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures log4net using the specified configuration file. - - A stream to load the XML configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The stream to load the XML configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures log4net using the file specified, monitors the file for changes - and reloads the configuration if a change is detected. - - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the using the file specified, - monitors the file for changes and reloads the configuration if a change - is detected. - - The repository to configure. - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Assembly level attribute to configure the . - - - - AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute to configure the . - - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - If neither of the or - properties are set the configuration is loaded from the application's .config file. - If set the property takes priority over the - property. The property - specifies a path to a file to load the config from. The path is relative to the - application's base directory; . - The property is used as a postfix to the assembly file name. - The config file must be located in the application's base directory; . - For example in a console application setting the to - config has the same effect as not specifying the or - properties. - - - The property can be set to cause the - to watch the configuration file for changes. - - - - Log4net will only look for assembly level configuration attributes once. - When using the log4net assembly level attributes to control the configuration - of log4net you must ensure that the first call to any of the - methods is made from the assembly with the configuration - attributes. - - - If you cannot guarantee the order in which log4net calls will be made from - different assemblies you must use programmatic configuration instead, i.e. - call the method directly. - - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Default constructor - - - - - - Configures the for the specified assembly. - - The assembly that this attribute was defined on. - The repository to configure. - - - Configure the repository using the . - The specified must extend the - class otherwise the will not be able to - configure it. - - - The does not extend . - - - - Attempt to load configuration from the local file system - - The assembly that this attribute was defined on. - The repository to configure. - - - - Configure the specified repository using a - - The repository to configure. - the FileInfo pointing to the config file - - - - Attempt to load configuration from a URI - - The assembly that this attribute was defined on. - The repository to configure. - - - - The fully qualified type of the XmlConfiguratorAttribute class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the filename of the configuration file. - - - The filename of the configuration file. - - - - If specified, this is the name of the configuration file to use with - the . This file path is relative to the - application base directory (). - - - The takes priority over the . - - - - - - Gets or sets the extension of the configuration file. - - - The extension of the configuration file. - - - - If specified this is the extension for the configuration file. - The path to the config file is built by using the application - base directory (), - the assembly file name and the config file extension. - - - If the is set to MyExt then - possible config file names would be: MyConsoleApp.exe.MyExt or - MyClassLibrary.dll.MyExt. - - - The takes priority over the . - - - - - - Gets or sets a value indicating whether to watch the configuration file. - - - true if the configuration should be watched, false otherwise. - - - - If this flag is specified and set to true then the framework - will watch the configuration file and will reload the config each time - the file is modified. - - - The config file can only be watched if it is loaded from local disk. - In a No-Touch (Smart Client) deployment where the application is downloaded - from a web server the config file may not reside on the local disk - and therefore it may not be able to watch it. - - - Watching configuration is not supported on the SSCLI. - - - - - - Class to register for the log4net section of the configuration file - - - The log4net section of the configuration file needs to have a section - handler registered. This is the section handler used. It simply returns - the XML element that is the root of the section. - - - Example of registering the log4net section handler : - - - -
    - - - log4net configuration XML goes here - - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Parses the configuration section. - - The configuration settings in a corresponding parent configuration section. - The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. - The for the log4net section. - The for the log4net section. - - - Returns the containing the configuration data, - - - - - - Assembly level attribute that specifies a plugin to attach to - the repository. - - - - Specifies the type of a plugin to create and attach to the - assembly's repository. The plugin type must implement the - interface. - - - Nicko Cadell - Gert Driesen - - - - Interface used to create plugins. - - - - Interface used to create a plugin. - - - Nicko Cadell - Gert Driesen - - - - Creates the plugin object. - - the new plugin instance - - - Create and return a new plugin instance. - - - - - - Initializes a new instance of the class - with the specified type. - - The type name of plugin to create. - - - Create the attribute with the plugin type specified. - - - Where possible use the constructor that takes a . - - - - - - Initializes a new instance of the class - with the specified type. - - The type of plugin to create. - - - Create the attribute with the plugin type specified. - - - - - - Creates the plugin object defined by this attribute. - - - - Creates the instance of the object as - specified by this attribute. - - - The plugin object. - - - - Returns a representation of the properties of this object. - - - - Overrides base class method to - return a representation of the properties of this object. - - - A representation of the properties of this object - - - - Gets or sets the type for the plugin. - - - The type for the plugin. - - - - The type for the plugin. - - - - - - Gets or sets the type name for the plugin. - - - The type name for the plugin. - - - - The type name for the plugin. - - - Where possible use the property instead. - - - - - - Assembly level attribute to configure the . - - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - Nicko Cadell - - - - Construct provider attribute with type specified - - the type of the provider to use - - - The provider specified must subclass the - class. - - - - - - Configures the SecurityContextProvider - - The assembly that this attribute was defined on. - The repository to configure. - - - Creates a provider instance from the specified. - Sets this as the default security context provider . - - - - - - The fully qualified type of the SecurityContextProviderAttribute class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the type of the provider to use. - - - the type of the provider to use. - - - - The provider specified must subclass the - class. - - - - - - Use this class to initialize the log4net environment using an Xml tree. - - - - Configures a using an Xml tree. - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - - - Automatically configures the log4net system based on the - application's configuration settings. - - - - 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 - log4net that contains the configuration data. - - - To use this method to configure log4net you must specify - the section - handler for the log4net configuration section. See the - for an example. - - - - - - - Automatically configures the using settings - stored in the application's configuration file. - - - - 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 - log4net that contains the configuration data. - - - To use this method to configure log4net you must specify - the section - handler for the log4net configuration section. See the - for an example. - - - The repository to configure. - - - - Configures log4net using a log4net element - - - - Loads the log4net configuration from the XML element - supplied as . - - - The element to parse. - - - - Configures the using the specified XML - element. - - - Loads the log4net configuration from the XML element - supplied as . - - The repository to configure. - The element to parse. - - - - Configures log4net using the specified configuration file. - - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The first element matching <configuration> will be read as the - configuration. If this file is also a .NET .config file then you must specify - a configuration section for the log4net element otherwise .NET will - complain. Set the type for the section handler to , for example: - - -
    - - - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures log4net using the specified configuration URI. - - A URI to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The must support the URI scheme specified. - - - - - - Configures log4net using the specified configuration data stream. - - A stream to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The first element matching <configuration> will be read as the - configuration. If this file is also a .NET .config file then you must specify - a configuration section for the log4net element otherwise .NET will - complain. Set the type for the section handler to , for example: - - -
    - - - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures the using the specified configuration - URI. - - The repository to configure. - A URI to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The must support the URI scheme specified. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The stream to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures log4net using the file specified, monitors the file for changes - and reloads the configuration if a change is detected. - - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the using the file specified, - monitors the file for changes and reloads the configuration if a change - is detected. - - The repository to configure. - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the specified repository using a log4net element. - - The hierarchy to configure. - The element to parse. - - - Loads the log4net configuration from the XML element - supplied as . - - - This method is ultimately called by one of the Configure methods - to load the configuration from an . - - - - - - Maps repository names to ConfigAndWatchHandler instances to allow a particular - ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is - reconfigured. - - - - - The fully qualified type of the XmlConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Class used to watch config files. - - - - Uses the to monitor - changes to a specified file. Because multiple change notifications - may be raised when the file is modified, a timer is used to - compress the notifications into a single event. The timer - waits for time before delivering - the event notification. If any further - change notifications arrive while the timer is waiting it - is reset and waits again for to - elapse. - - - - - - The default amount of time to wait after receiving notification - before reloading the config file. - - - - - Holds the FileInfo used to configure the XmlConfigurator - - - - - Holds the repository being configured. - - - - - The timer used to compress the notification events. - - - - - Watches file for changes. This object should be disposed when no longer - needed to free system handles on the watched resources. - - - - - Initializes a new instance of the class to - watch a specified config file used to configure a repository. - - The repository to configure. - The configuration file to watch. - - - Initializes a new instance of the class. - - - - - - Event handler used by . - - The firing the event. - The argument indicates the file that caused the event to be fired. - - - This handler reloads the configuration from the file when the event is fired. - - - - - - Event handler used by . - - The firing the event. - The argument indicates the file that caused the event to be fired. - - - This handler reloads the configuration from the file when the event is fired. - - - - - - Called by the timer when the configuration has been updated. - - null - - - - Release the handles held by the watcher and timer. - - - - - The implementation of the interface suitable - for use with the compact framework - - - - This implementation is a simple - mapping between repository name and - object. - - - The .NET Compact Framework 1.0 does not support retrieving assembly - level attributes therefore unlike the DefaultRepositorySelector - this selector does not examine the calling assembly for attributes. - - - Nicko Cadell - - - - Interface used by the to select the . - - - - The uses a - to specify the policy for selecting the correct - to return to the caller. - - - Nicko Cadell - Gert Driesen - - - - Gets the for the specified assembly. - - The assembly to use to lookup to the - The for the assembly. - - - Gets the for the specified assembly. - - - How the association between and - is made is not defined. The implementation may choose any method for - this association. The results of this method must be repeatable, i.e. - when called again with the same arguments the result must be the - save value. - - - - - - Gets the named . - - The name to use to lookup to the . - The named - - Lookup a named . This is the repository created by - calling . - - - - - Creates a new repository for the assembly specified. - - The assembly to use to create the domain to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the domain - specified such that a call to with the - same assembly specified will return the same repository instance. - - - How the association between and - is made is not defined. The implementation may choose any method for - this association. - - - - - - Creates a new repository with the name specified. - - The name to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the name - specified such that a call to with the - same name will return the same repository instance. - - - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets an array of all currently defined repositories. - - - An array of the instances created by - this . - - - Gets an array of all of the repositories created by this selector. - - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - Create a new repository selector - - the type of the repositories to create, must implement - - - Create an new compact repository selector. - The default type for repositories must be specified, - an appropriate value would be . - - - throw if is null - throw if does not implement - - - - Get the for the specified assembly - - not used - The default - - - The argument is not used. This selector does not create a - separate repository for each assembly. - - - As a named repository is not specified the default repository is - returned. The default repository is named log4net-default-repository. - - - - - - Get the named - - the name of the repository to lookup - The named - - - Get the named . The default - repository is log4net-default-repository. Other repositories - must be created using the . - If the named repository does not exist an exception is thrown. - - - throw if is null - throw if the does not exist - - - - Create a new repository for the assembly specified - - not used - the type of repository to create, must implement - the repository created - - - The argument is not used. This selector does not create a - separate repository for each assembly. - - - If the is null then the - default repository type specified to the constructor is used. - - - As a named repository is not specified the default repository is - returned. The default repository is named log4net-default-repository. - - - - - - Create a new repository for the repository specified - - the repository to associate with the - the type of repository to create, must implement . - If this param is null then the default repository type is used. - the repository created - - - The created will be associated with the repository - specified such that a call to with the - same repository specified will return the same repository instance. - - - If the named repository already exists an exception will be thrown. - - - If is null then the default - repository type specified to the constructor is used. - - - throw if is null - throw if the already exists - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets a list of objects - - an array of all known objects - - - Gets an array of all of the repositories created by this selector. - - - - - - The fully qualified type of the CompactRepositorySelector class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Notify the registered listeners that the repository has been created - - The repository that has been created - - - Raises the LoggerRepositoryCreatedEvent - event. - - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - The default implementation of the interface. - - - - Uses attributes defined on the calling assembly to determine how to - configure the hierarchy for the repository. - - - Nicko Cadell - Gert Driesen - - - - Creates a new repository selector. - - The type of the repositories to create, must implement - - - Create an new repository selector. - The default type for repositories must be specified, - an appropriate value would be . - - - is . - does not implement . - - - - Gets the for the specified assembly. - - The assembly use to lookup the . - - - The type of the created and the repository - to create can be overridden by specifying the - attribute on the . - - - The default values are to use the - implementation of the interface and to use the - as the name of the repository. - - - The created will be automatically configured using - any attributes defined on - the . - - - The for the assembly - is . - - - - Gets the for the specified repository. - - The repository to use to lookup the . - The for the specified repository. - - - Returns the named repository. If is null - a is thrown. If the repository - does not exist a is thrown. - - - Use to create a repository. - - - is . - does not exist. - - - - Create a new repository for the assembly specified - - the assembly to use to create the repository to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The type of the created and - the repository to create can be overridden by specifying the - attribute on the - . The default values are to use the - implementation of the - interface and to use the - as the name of the repository. - - - The created will be automatically - configured using any - attributes defined on the . - - - If a repository for the already exists - that repository will be returned. An error will not be raised and that - repository may be of a different type to that specified in . - Also the attribute on the - assembly may be used to override the repository type specified in - . - - - is . - - - - Creates a new repository for the assembly specified. - - the assembly to use to create the repository to associate with the . - The type of repository to create, must implement . - The name to assign to the created repository - Set to true to read and apply the assembly attributes - The repository created. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The type of the created and - the repository to create can be overridden by specifying the - attribute on the - . The default values are to use the - implementation of the - interface and to use the - as the name of the repository. - - - The created will be automatically - configured using any - attributes defined on the . - - - If a repository for the already exists - that repository will be returned. An error will not be raised and that - repository may be of a different type to that specified in . - Also the attribute on the - assembly may be used to override the repository type specified in - . - - - is . - - - - Creates a new repository for the specified repository. - - The repository to associate with the . - The type of repository to create, must implement . - If this param is then the default repository type is used. - The new repository. - - - The created will be associated with the repository - specified such that a call to with the - same repository specified will return the same repository instance. - - - is . - already exists. - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets a list of objects - - an array of all known objects - - - Gets an array of all of the repositories created by this selector. - - - - - - Aliases a repository to an existing repository. - - The repository to alias. - The repository that the repository is aliased to. - - - The repository specified will be aliased to the repository when created. - The repository must not already exist. - - - When the repository is created it must utilize the same repository type as - the repository it is aliased to, otherwise the aliasing will fail. - - - - is . - -or- - is . - - - - - Notifies the registered listeners that the repository has been created. - - The repository that has been created. - - - Raises the event. - - - - - - Gets the repository name and repository type for the specified assembly. - - The assembly that has a . - in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. - in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. - is . - - - - Configures the repository using information from the assembly. - - The assembly containing - attributes which define the configuration for the repository. - The repository to configure. - - is . - -or- - is . - - - - - Loads the attribute defined plugins on the assembly. - - The assembly that contains the attributes. - The repository to add the plugins to. - - is . - -or- - is . - - - - - Loads the attribute defined aliases on the assembly. - - The assembly that contains the attributes. - The repository to alias to. - - is . - -or- - is . - - - - - The fully qualified type of the DefaultRepositorySelector class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - Defined error codes that can be passed to the method. - - - - Values passed to the method. - - - Nicko Cadell - - - - A general error - - - - - Error while writing output - - - - - Failed to flush file - - - - - Failed to close file - - - - - Unable to open output file - - - - - No layout specified - - - - - Failed to parse address - - - - - An evaluator that triggers on an Exception type - - - - This evaluator will trigger if the type of the Exception - passed to - is equal to a Type in . /// - - - Drew Schaeffer - - - - Test if an triggers an action - - - - Implementations of this interface allow certain appenders to decide - when to perform an appender specific action. - - - The action or behavior triggered is defined by the implementation. - - - Nicko Cadell - - - - Test if this event triggers the action - - The event to check - true if this event triggers the action, otherwise false - - - Return true if this event triggers the action - - - - - - The type that causes the trigger to fire. - - - - - Causes subclasses of to cause the trigger to fire. - - - - - Default ctor to allow dynamic creation through a configurator. - - - - - Constructs an evaluator and initializes to trigger on - - the type that triggers this evaluator. - If true, this evaluator will trigger on subclasses of . - - - - Is this the triggering event? - - The event to check - This method returns true, if the logging event Exception - Type is . - Otherwise it returns false - - - This evaluator will trigger if the Exception Type of the event - passed to - is . - - - - - - The type that triggers this evaluator. - - - - - If true, this evaluator will trigger on subclasses of . - - - - - Appenders may delegate their error handling to an . - - - - Error handling is a particularly tedious to get right because by - definition errors are hard to predict and to reproduce. - - - Nicko Cadell - Gert Driesen - - - - Handles the error and information about the error condition is passed as - a parameter. - - The message associated with the error. - The that was thrown when the error occurred. - The error code associated with the error. - - - Handles the error and information about the error condition is passed as - a parameter. - - - - - - Prints the error message passed as a parameter. - - The message associated with the error. - The that was thrown when the error occurred. - - - See . - - - - - - Prints the error message passed as a parameter. - - The message associated with the error. - - - See . - - - - - - Interface for objects that require fixing. - - - - Interface that indicates that the object requires fixing before it - can be taken outside the context of the appender's - method. - - - When objects that implement this interface are stored - in the context properties maps - and - are fixed - (see ) the - method will be called. - - - Nicko Cadell - - - - Get a portable version of this object - - the portable instance of this object - - - Get a portable instance object that represents the current - state of this object. The portable object can be stored - and logged from any thread with identical results. - - - - - - Interface that all loggers implement - - - - This interface supports logging events and testing if a level - is enabled for logging. - - - These methods will not throw exceptions. Note to implementor, ensure - that the implementation of these methods cannot allow an exception - to be thrown to the caller. - - - Nicko Cadell - Gert Driesen - - - - This generic form is intended to be used by wrappers. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - the exception to log, including its stack trace. Pass null to not log an exception. - - - Generates a logging event for the specified using - the and . - - - - - - This is the most generic printing method that is intended to be used - by wrappers. - - The event being logged. - - - Logs the specified logging event through this logger. - - - - - - Checks if this logger is enabled for a given passed as parameter. - - The level to check. - - true if this logger is enabled for level, otherwise false. - - - - Test if this logger is going to log events of the specified . - - - - - - Gets the name of the logger. - - - The name of the logger. - - - - The name of this logger - - - - - - Gets the where this - Logger instance is attached to. - - - The that this logger belongs to. - - - - Gets the where this - Logger instance is attached to. - - - - - - Base interface for all wrappers - - - - Base interface for all wrappers. - - - All wrappers must implement this interface. - - - Nicko Cadell - - - - Get the implementation behind this wrapper object. - - - The object that in implementing this object. - - - - The object that in implementing this - object. The Logger object may not - be the same object as this object because of logger decorators. - This gets the actual underlying objects that is used to process - the log events. - - - - - - Delegate used to handle logger repository creation event notifications - - The which created the repository. - The event args - that holds the instance that has been created. - - - Delegate used to handle logger repository creation event notifications. - - - - - - Provides data for the event. - - - - A - event is raised every time a is created. - - - - - - The created - - - - - Construct instance using specified - - the that has been created - - - Construct instance using specified - - - - - - The that has been created - - - The that has been created - - - - The that has been created - - - - - - Defines the default set of levels recognized by the system. - - - - Each has an associated . - - - Levels have a numeric that defines the relative - ordering between levels. Two Levels with the same - are deemed to be equivalent. - - - The levels that are recognized by log4net are set for each - and each repository can have different levels defined. The levels are stored - in the on the repository. Levels are - looked up by name from the . - - - When logging at level INFO the actual level used is not but - the value of LoggerRepository.LevelMap["INFO"]. The default value for this is - , but this can be changed by reconfiguring the level map. - - - Each level has a in addition to its . The - is the string that is written into the output log. By default - the display name is the same as the level name, but this can be used to alias levels - or to localize the log output. - - - Some of the predefined levels recognized by the system are: - - - - . - - - . - - - . - - - . - - - . - - - . - - - . - - - - Nicko Cadell - Gert Driesen - - - - Constructor - - Integer value for this level, higher values represent more severe levels. - The string name of this level. - The display name for this level. This may be localized or otherwise different from the name - - - Initializes a new instance of the class with - the specified level name and value. - - - - - - Constructor - - Integer value for this level, higher values represent more severe levels. - The string name of this level. - - - Initializes a new instance of the class with - the specified level name and value. - - - - - - Returns the representation of the current - . - - - A representation of the current . - - - - Returns the level . - - - - - - Compares levels. - - The object to compare against. - true if the objects are equal. - - - Compares the levels of instances, and - defers to base class if the target object is not a - instance. - - - - - - Returns a hash code - - A hash code for the current . - - - Returns a hash code suitable for use in hashing algorithms and data - structures like a hash table. - - - Returns the hash code of the level . - - - - - - Compares this instance to a specified object and returns an - indication of their relative values. - - A instance or to compare with this instance. - - A 32-bit signed integer that indicates the relative order of the - values compared. The return value has these meanings: - - - Value - Meaning - - - Less than zero - This instance is less than . - - - Zero - This instance is equal to . - - - Greater than zero - - This instance is greater than . - -or- - is . - - - - - - - must be an instance of - or ; otherwise, an exception is thrown. - - - is not a . - - - - Returns a value indicating whether a specified - is greater than another specified . - - A - A - - true if is greater than - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is less than another specified . - - A - A - - true if is less than - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is greater than or equal to another specified . - - A - A - - true if is greater than or equal to - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is less than or equal to another specified . - - A - A - - true if is less than or equal to - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether two specified - objects have the same value. - - A or . - A or . - - true if the value of is the same as the - value of ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether two specified - objects have different values. - - A or . - A or . - - true if the value of is different from - the value of ; otherwise, false. - - - - Compares two levels. - - - - - - Compares two specified instances. - - The first to compare. - The second to compare. - - A 32-bit signed integer that indicates the relative order of the - two values compared. The return value has these meanings: - - - Value - Meaning - - - Less than zero - is less than . - - - Zero - is equal to . - - - Greater than zero - is greater than . - - - - - - Compares two levels. - - - - - - The level designates a higher level than all the rest. - - - - - The level designates very severe error events. - System unusable, emergencies. - - - - - The level designates very severe error events. - System unusable, emergencies. - - - - - The level designates very severe error events - that will presumably lead the application to abort. - - - - - The level designates very severe error events. - Take immediate action, alerts. - - - - - The level designates very severe error events. - Critical condition, critical. - - - - - The level designates very severe error events. - - - - - The level designates error events that might - still allow the application to continue running. - - - - - The level designates potentially harmful - situations. - - - - - The level designates informational messages - that highlight the progress of the application at the highest level. - - - - - The level designates informational messages that - highlight the progress of the application at coarse-grained level. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates the lowest level possible. - - - - - Gets the name of this level. - - - The name of this level. - - - - Gets the name of this level. - - - - - - Gets the value of this level. - - - The value of this level. - - - - Gets the value of this level. - - - - - - Gets the display name of this level. - - - The display name of this level. - - - - Gets the display name of this level. - - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a LevelCollection instance. - - list to create a readonly wrapper arround - - A LevelCollection wrapper that is read-only. - - - - - Initializes a new instance of the LevelCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the LevelCollection class - that has the specified initial capacity. - - - The number of elements that the new LevelCollection is initially capable of storing. - - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified LevelCollection. - - The LevelCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - Copies the entire LevelCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire LevelCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the LevelCollection. - - The to be added to the end of the LevelCollection. - The index at which the value has been added. - - - - Removes all elements from the LevelCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the LevelCollection. - - The to check for. - true if is found in the LevelCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the LevelCollection. - - The to locate in the LevelCollection. - - The zero-based index of the first occurrence of - in the entire LevelCollection, if found; otherwise, -1. - - - - - Inserts an element into the LevelCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the LevelCollection. - - The to remove from the LevelCollection. - - The specified was not found in the LevelCollection. - - - - - Removes the element at the specified index of the LevelCollection. - - The zero-based index of the element to remove. - - is less than zero - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the LevelCollection. - - An for the entire LevelCollection. - - - - Adds the elements of another LevelCollection to the current LevelCollection. - - The LevelCollection whose elements should be added to the end of the current LevelCollection. - The new of the LevelCollection. - - - - Adds the elements of a array to the current LevelCollection. - - The array whose elements should be added to the end of the LevelCollection. - The new of the LevelCollection. - - - - Adds the elements of a collection to the current LevelCollection. - - The collection whose elements should be added to the end of the LevelCollection. - The new of the LevelCollection. - - - - Sets the capacity to the actual number of elements. - - - - - is less than zero - -or- - is equal to or greater than . - - - - - is less than zero - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the LevelCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - The zero-based index of the element to get or set. - - is less than zero - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false - - - - Gets or sets the number of elements the LevelCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - A value - - - - - Supports simple iteration over a . - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - An evaluator that triggers at a threshold level - - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - Nicko Cadell - - - - The threshold for triggering - - - - - Create a new evaluator using the threshold. - - - - Create a new evaluator using the threshold. - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Create a new evaluator using the specified threshold. - - the threshold to trigger at - - - Create a new evaluator using the specified threshold. - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Is this the triggering event? - - The event to check - This method returns true, if the event level - is equal or higher than the . - Otherwise it returns false - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - the threshold to trigger at - - - The that will cause this evaluator to trigger - - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Mapping between string name and Level object - - - - Mapping between string name and object. - This mapping is held separately for each . - The level name is case insensitive. - - - Nicko Cadell - - - - Mapping from level name to Level object. The - level name is case insensitive - - - - - Construct the level map - - - - Construct the level map. - - - - - - Clear the internal maps of all levels - - - - Clear the internal maps of all levels - - - - - - Create a new Level and add it to the map - - the string to display for the Level - the level value to give to the Level - - - Create a new Level and add it to the map - - - - - - - Create a new Level and add it to the map - - the string to display for the Level - the level value to give to the Level - the display name to give to the Level - - - Create a new Level and add it to the map - - - - - - Add a Level to the map - - the Level to add - - - Add a Level to the map - - - - - - Lookup a named level from the map - - the name of the level to lookup is taken from this level. - If the level is not set on the map then this level is added - the level in the map with the name specified - - - Lookup a named level from the map. The name of the level to lookup is taken - from the property of the - argument. - - - If no level with the specified name is found then the - argument is added to the level map - and returned. - - - - - - Lookup a by name - - The name of the Level to lookup - a Level from the map with the name specified - - - Returns the from the - map with the name specified. If the no level is - found then null is returned. - - - - - - Return all possible levels as a list of Level objects. - - all possible levels as a list of Level objects - - - Return all possible levels as a list of Level objects. - - - - - - The internal representation of caller location information. - - - - This class uses the System.Diagnostics.StackTrace class to generate - a call stack. The caller's information is then extracted from this stack. - - - The System.Diagnostics.StackTrace class is not supported on the - .NET Compact Framework 1.0 therefore caller location information is not - available on that framework. - - - The System.Diagnostics.StackTrace class has this to say about Release builds: - - - "StackTrace information will be most informative with Debug build configurations. - By default, Debug builds include debug symbols, while Release builds do not. The - debug symbols contain most of the file, method name, line number, and column - information used in constructing StackFrame and StackTrace objects. StackTrace - might not report as many method calls as expected, due to code transformations - that occur during optimization." - - - This means that in a Release build the caller information may be incomplete or may - not exist at all! Therefore caller location information cannot be relied upon in a Release build. - - - Nicko Cadell - Gert Driesen - - - - When location information is not available the constant - NA is returned. Current value of this string - constant is ?. - - - - - Constructor - - The declaring type of the method that is - the stack boundary into the logging system for this call. - - - Initializes a new instance of the - class based on the current thread. - - - - - - Constructor - - The fully qualified class name. - The method name. - The file name. - The line number of the method within the file. - - - Initializes a new instance of the - class with the specified data. - - - - - - The fully qualified type of the LocationInfo class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the fully qualified class name of the caller making the logging - request. - - - The fully qualified class name of the caller making the logging - request. - - - - Gets the fully qualified class name of the caller making the logging - request. - - - - - - Gets the file name of the caller. - - - The file name of the caller. - - - - Gets the file name of the caller. - - - - - - Gets the line number of the caller. - - - The line number of the caller. - - - - Gets the line number of the caller. - - - - - - Gets the method name of the caller. - - - The method name of the caller. - - - - Gets the method name of the caller. - - - - - - Gets all available caller information - - - All available caller information, in the format - fully.qualified.classname.of.caller.methodName(Filename:line) - - - - Gets all available caller information, in the format - fully.qualified.classname.of.caller.methodName(Filename:line) - - - - - - Gets the stack frames from the stack trace of the caller making the log request - - - - - Static manager that controls the creation of repositories - - - - Static manager that controls the creation of repositories - - - This class is used by the wrapper managers (e.g. ) - to provide access to the objects. - - - This manager also holds the that is used to - lookup and create repositories. The selector can be set either programmatically using - the property, or by setting the log4net.RepositorySelector - AppSetting in the applications config file to the fully qualified type name of the - selector to use. - - - Nicko Cadell - Gert Driesen - - - - Private constructor to prevent instances. Only static methods should be used. - - - - Private constructor to prevent instances. Only static methods should be used. - - - - - - Hook the shutdown event - - - - On the full .NET runtime, the static constructor hooks up the - AppDomain.ProcessExit and AppDomain.DomainUnload> events. - These are used to shutdown the log4net system as the application exits. - - - - - - Register for ProcessExit and DomainUnload events on the AppDomain - - - - This needs to be in a separate method because the events make - a LinkDemand for the ControlAppDomain SecurityPermission. Because - this is a LinkDemand it is demanded at JIT time. Therefore we cannot - catch the exception in the method itself, we have to catch it in the - caller. - - - - - - Return the default instance. - - the repository to lookup in - Return the default instance - - - Gets the for the repository specified - by the argument. - - - - - - Returns the default instance. - - The assembly to use to lookup the repository. - The default instance. - - - - Return the default instance. - - the repository to lookup in - Return the default instance - - - Gets the for the repository specified - by the argument. - - - - - - Returns the default instance. - - The assembly to use to lookup the repository. - The default instance. - - - Returns the default instance. - - - - - - Returns the named logger if it exists. - - The repository to lookup in. - The fully qualified logger name to look for. - - The logger found, or null if the named logger does not exist in the - specified repository. - - - - If the named logger exists (in the specified repository) then it - returns a reference to the logger, otherwise it returns - null. - - - - - - Returns the named logger if it exists. - - The assembly to use to lookup the repository. - The fully qualified logger name to look for. - - The logger found, or null if the named logger does not exist in the - specified assembly's repository. - - - - If the named logger exists (in the specified assembly's repository) then it - returns a reference to the logger, otherwise it returns - null. - - - - - - Returns all the currently defined loggers in the specified repository. - - The repository to lookup in. - All the defined loggers. - - - The root logger is not included in the returned array. - - - - - - Returns all the currently defined loggers in the specified assembly's repository. - - The assembly to use to lookup the repository. - All the defined loggers. - - - The root logger is not included in the returned array. - - - - - - Retrieves or creates a named logger. - - The repository to lookup in. - The name of the logger to retrieve. - The logger with the name specified. - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - - - - Retrieves or creates a named logger. - - The assembly to use to lookup the repository. - The name of the logger to retrieve. - The logger with the name specified. - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - - - - Shorthand for . - - The repository to lookup in. - The of which the fullname will be used as the name of the logger to retrieve. - The logger with the name specified. - - - Gets the logger for the fully qualified name of the type specified. - - - - - - Shorthand for . - - the assembly to use to lookup the repository - The of which the fullname will be used as the name of the logger to retrieve. - The logger with the name specified. - - - Gets the logger for the fully qualified name of the type specified. - - - - - - Shuts down the log4net system. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in all the - default repositories. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - The repository to shutdown. - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository for the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - The assembly to use to lookup the repository. - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository for the repository. The repository is looked up using - the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Resets all values contained in this repository instance to their defaults. - - The repository to reset. - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - - - - Resets all values contained in this repository instance to their defaults. - - The assembly to use to lookup the repository to reset. - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - - - - Creates a repository with the specified name. - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name. - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The name must be unique. Repositories cannot be redefined. - An Exception will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The name must be unique. Repositories cannot be redefined. - An Exception will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository for the specified assembly and repository type. - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - - - - Creates a repository for the specified assembly and repository type. - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - - - - Gets an array of all currently defined repositories. - - An array of all the known objects. - - - Gets an array of all currently defined repositories. - - - - - - Internal method to get pertinent version info. - - A string of version info. - - - - Called when the event fires - - the that is exiting - null - - - Called when the event fires. - - - When the event is triggered the log4net system is . - - - - - - Called when the event fires - - the that is exiting - null - - - Called when the event fires. - - - When the event is triggered the log4net system is . - - - - - - The fully qualified type of the LoggerManager class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Initialize the default repository selector - - - - - Gets or sets the repository selector used by the . - - - The repository selector used by the . - - - - The repository selector () is used by - the to create and select repositories - (). - - - The caller to supplies either a string name - or an assembly (if not supplied the assembly is inferred using - ). - - - This context is used by the selector to lookup a specific repository. - - - For the full .NET Framework, the default repository is DefaultRepositorySelector; - for the .NET Compact Framework CompactRepositorySelector is the default - repository. - - - - - - Implementation of the interface. - - - - This class should be used as the base for all wrapper implementations. - - - Nicko Cadell - Gert Driesen - - - - Constructs a new wrapper for the specified logger. - - The logger to wrap. - - - Constructs a new wrapper for the specified logger. - - - - - - The logger that this object is wrapping - - - - - Gets the implementation behind this wrapper object. - - - The object that this object is implementing. - - - - The Logger object may not be the same object as this object - because of logger decorators. - - - This gets the actual underlying objects that is used to process - the log events. - - - - - - Portable data structure used by - - - - Portable data structure used by - - - Nicko Cadell - - - - The logger name. - - - - The logger name. - - - - - - Level of logging event. - - - - Level of logging event. Level cannot be Serializable - because it is a flyweight. Due to its special serialization it - cannot be declared final either. - - - - - - The application supplied message. - - - - The application supplied message of logging event. - - - - - - The name of thread - - - - The name of thread in which this logging event was generated - - - - - - The time the event was logged - - - - The TimeStamp is stored in the local time zone for this computer. - - - - - - Location information for the caller. - - - - Location information for the caller. - - - - - - String representation of the user - - - - String representation of the user's windows name, - like DOMAIN\username - - - - - - String representation of the identity. - - - - String representation of the current thread's principal identity. - - - - - - The string representation of the exception - - - - The string representation of the exception - - - - - - String representation of the AppDomain. - - - - String representation of the AppDomain. - - - - - - Additional event specific properties - - - - A logger or an appender may attach additional - properties to specific events. These properties - have a string key and an object value. - - - - - - Flags passed to the property - - - - Flags passed to the property - - - Nicko Cadell - - - - Fix the MDC - - - - - Fix the NDC - - - - - Fix the rendered message - - - - - Fix the thread name - - - - - Fix the callers location information - - - CAUTION: Very slow to generate - - - - - Fix the callers windows user name - - - CAUTION: Slow to generate - - - - - Fix the domain friendly name - - - - - Fix the callers principal name - - - CAUTION: May be slow to generate - - - - - Fix the exception text - - - - - Fix the event properties. Active properties must implement in order to be eligible for fixing. - - - - - No fields fixed - - - - - All fields fixed - - - - - Partial fields fixed - - - - This set of partial fields gives good performance. The following fields are fixed: - - - - - - - - - - - - - The internal representation of logging events. - - - - When an affirmative decision is made to log then a - instance is created. This instance - is passed around to the different log4net components. - - - This class is of concern to those wishing to extend log4net. - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - for incurred by calling but it - is essential to maintaining data consistency. - - - Nicko Cadell - Gert Driesen - Douglas de la Torre - Daniel Cazzulino - - - - The key into the Properties map for the host name value. - - - - - The key into the Properties map for the thread identity value. - - - - - The key into the Properties map for the user name value. - - - - - Initializes a new instance of the class - from the supplied parameters. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - The name of the logger of this event. - The level of this event. - The message of this event. - The exception for this event. - - - Except , and , - all fields of LoggingEvent are filled when actually needed. Call - to cache all data locally - to prevent inconsistencies. - - This method is called by the log4net framework - to create a logging event. - - - - - - Initializes a new instance of the class - using specific data. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - Data used to initialize the logging event. - The fields in the struct that have already been fixed. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - The parameter should be used to specify which fields in the - struct have been preset. Fields not specified in the - will be captured from the environment if requested or fixed. - - - - - - Initializes a new instance of the class - using specific data. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - Data used to initialize the logging event. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - This constructor sets this objects flags to , - this assumes that all the data relating to this event is passed in via the - parameter and no other data should be captured from the environment. - - - - - - Initializes a new instance of the class - using specific data. - - Data used to initialize the logging event. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - This constructor sets this objects flags to , - this assumes that all the data relating to this event is passed in via the - parameter and no other data should be captured from the environment. - - - - - - Serialization constructor - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Ensure that the repository is set. - - the value for the repository - - - - Write the rendered message to a TextWriter - - the writer to write the message to - - - Unlike the property this method - does store the message data in the internal cache. Therefore - if called only once this method should be faster than the - property, however if the message is - to be accessed multiple times then the property will be more efficient. - - - - - - Serializes this object into the provided. - - The to populate with data. - The destination for this serialization. - - - The data in this event must be fixed before it can be serialized. - - - The method must be called during the - method call if this event - is to be used outside that method. - - - - - - Gets the portable data for this . - - The for this event. - - - A new can be constructed using a - instance. - - - Does a fix of the data - in the logging event before returning the event data. - - - - - - Gets the portable data for this . - - The set of data to ensure is fixed in the LoggingEventData - The for this event. - - - A new can be constructed using a - instance. - - - - - - Returns this event's exception's rendered using the - . - - - This event's exception's rendered using the . - - - - Obsolete. Use instead. - - - - - - Returns this event's exception's rendered using the - . - - - This event's exception's rendered using the . - - - - Returns this event's exception's rendered using the - . - - - - - - Fix instance fields that hold volatile data. - - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - incurred by calling but it - is essential to maintaining data consistency. - - - Calling is equivalent to - calling passing the parameter - false. - - - See for more - information. - - - - - - Fixes instance fields that hold volatile data. - - Set to true to not fix data that takes a long time to fix. - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - for incurred by calling but it - is essential to maintaining data consistency. - - - The param controls the data that - is fixed. Some of the data that can be fixed takes a long time to - generate, therefore if you do not require those settings to be fixed - they can be ignored by setting the param - to true. This setting will ignore the - and settings. - - - Set to false to ensure that all - settings are fixed. - - - - - - Fix the fields specified by the parameter - - the fields to fix - - - Only fields specified in the will be fixed. - Fields will not be fixed if they have previously been fixed. - It is not possible to 'unfix' a field. - - - - - - Lookup a composite property in this event - - the key for the property to lookup - the value for the property - - - This event has composite properties that combine together properties from - several different contexts in the following order: - - - this events properties - - This event has that can be set. These - properties are specific to this event only. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - - - Get all the composite properties in this event - - the containing all the properties - - - See for details of the composite properties - stored by the event. - - - This method returns a single containing all the - properties defined for this event. - - - - - - The internal logging event data. - - - - - The internal logging event data. - - - - - The internal logging event data. - - - - - The fully qualified Type of the calling - logger class in the stack frame (i.e. the declaring type of the method). - - - - - The application supplied message of logging event. - - - - - The exception that was thrown. - - - This is not serialized. The string representation - is serialized instead. - - - - - The repository that generated the logging event - - - This is not serialized. - - - - - The fix state for this event - - - These flags indicate which fields have been fixed. - Not serialized. - - - - - Indicated that the internal cache is updateable (ie not fixed) - - - This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler - changes in the caching strategy. - - - - - Gets the time when the current process started. - - - This is the time when this process started. - - - - The TimeStamp is stored in the local time zone for this computer. - - - Tries to get the start time for the current process. - Failing that it returns the time of the first call to - this property. - - - Note that AppDomains may be loaded and unloaded within the - same process without the process terminating and therefore - without the process start time being reset. - - - - - - Gets the of the logging event. - - - The of the logging event. - - - - Gets the of the logging event. - - - - - - Gets the time of the logging event. - - - The time of the logging event. - - - - The TimeStamp is stored in the local time zone for this computer. - - - - - - Gets the name of the logger that logged the event. - - - The name of the logger that logged the event. - - - - Gets the name of the logger that logged the event. - - - - - - Gets the location information for this logging event. - - - The location information for this logging event. - - - - The collected information is cached for future use. - - - See the class for more information on - supported frameworks and the different behavior in Debug and - Release builds. - - - - - - Gets the message object used to initialize this event. - - - The message object used to initialize this event. - - - - Gets the message object used to initialize this event. - Note that this event may not have a valid message object. - If the event is serialized the message object will not - be transferred. To get the text of the message the - property must be used - not this property. - - - If there is no defined message object for this event then - null will be returned. - - - - - - Gets the exception object used to initialize this event. - - - The exception object used to initialize this event. - - - - Gets the exception object used to initialize this event. - Note that this event may not have a valid exception object. - If the event is serialized the exception object will not - be transferred. To get the text of the exception the - method must be used - not this property. - - - If there is no defined exception object for this event then - null will be returned. - - - - - - The that this event was created in. - - - - The that this event was created in. - - - - - - Gets the message, rendered through the . - - - The message rendered through the . - - - - The collected information is cached for future use. - - - - - - Gets the name of the current thread. - - - The name of the current thread, or the thread ID when - the name is not available. - - - - The collected information is cached for future use. - - - - - - Gets the name of the current user. - - - The name of the current user, or NOT AVAILABLE when the - underlying runtime has no support for retrieving the name of the - current user. - - - - Calls WindowsIdentity.GetCurrent().Name to get the name of - the current windows user. - - - To improve performance, we could cache the string representation of - the name, and reuse that as long as the identity stayed constant. - Once the identity changed, we would need to re-assign and re-render - the string. - - - However, the WindowsIdentity.GetCurrent() call seems to - return different objects every time, so the current implementation - doesn't do this type of caching. - - - Timing for these operations: - - - - Method - Results - - - WindowsIdentity.GetCurrent() - 10000 loops, 00:00:00.2031250 seconds - - - WindowsIdentity.GetCurrent().Name - 10000 loops, 00:00:08.0468750 seconds - - - - This means we could speed things up almost 40 times by caching the - value of the WindowsIdentity.GetCurrent().Name property, since - this takes (8.04-0.20) = 7.84375 seconds. - - - - - - Gets the identity of the current thread principal. - - - The string name of the identity of the current thread principal. - - - - Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get - the name of the current thread principal. - - - - - - Gets the AppDomain friendly name. - - - The AppDomain friendly name. - - - - Gets the AppDomain friendly name. - - - - - - Additional event specific properties. - - - Additional event specific properties. - - - - A logger or an appender may attach additional - properties to specific events. These properties - have a string key and an object value. - - - This property is for events that have been added directly to - this event. The aggregate properties (which include these - event properties) can be retrieved using - and . - - - Once the properties have been fixed this property - returns the combined cached properties. This ensures that updates to - this property are always reflected in the underlying storage. When - returning the combined properties there may be more keys in the - Dictionary than expected. - - - - - - The fixed fields in this event - - - The set of fields that are fixed in this event - - - - Fields will not be fixed if they have previously been fixed. - It is not possible to 'unfix' a field. - - - - - - Implementation of wrapper interface. - - - - This implementation of the interface - forwards to the held by the base class. - - - This logger has methods to allow the caller to log at the following - levels: - - - - DEBUG - - The and methods log messages - at the DEBUG level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - INFO - - The and methods log messages - at the INFO level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - WARN - - The and methods log messages - at the WARN level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - ERROR - - The and methods log messages - at the ERROR level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - FATAL - - The and methods log messages - at the FATAL level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - - The values for these levels and their semantic meanings can be changed by - configuring the for the repository. - - - Nicko Cadell - Gert Driesen - - - - The ILog interface is use by application to log messages into - the log4net framework. - - - - Use the to obtain logger instances - that implement this interface. The - static method is used to get logger instances. - - - This class contains methods for logging at different levels and also - has properties for determining if those logging levels are - enabled in the current configuration. - - - This interface can be implemented in different ways. This documentation - specifies reasonable behavior that a caller can expect from the actual - implementation, however different implementations reserve the right to - do things differently. - - - Simple example of logging messages - - ILog log = LogManager.GetLogger("application-log"); - - log.Info("Application Start"); - log.Debug("This is a debug message"); - - if (log.IsDebugEnabled) - { - log.Debug("This is another debug message"); - } - - - - - Nicko Cadell - Gert Driesen - - - Log a message object with the level. - - Log a message object with the level. - - The message object to log. - - - This method first checks if this logger is DEBUG - enabled by comparing the level of this logger with the - level. If this logger is - DEBUG enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of - the additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Logs a message object with the level. - - - - This method first checks if this logger is INFO - enabled by comparing the level of this logger with the - level. If this logger is - INFO enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Logs a message object with the INFO level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Log a message object with the level. - - - - This method first checks if this logger is WARN - enabled by comparing the level of this logger with the - level. If this logger is - WARN enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Logs a message object with the level. - - The message object to log. - - - This method first checks if this logger is ERROR - enabled by comparing the level of this logger with the - level. If this logger is - ERROR enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Log a message object with the level. - - - - This method first checks if this logger is FATAL - enabled by comparing the level of this logger with the - level. If this logger is - FATAL enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - - This function is intended to lessen the computational cost of - disabled log debug statements. - - For some ILog interface log, when you write: - - log.Debug("This is entry number: " + i ); - - - You incur the cost constructing the message, string construction and concatenation in - this case, regardless of whether the message is logged or not. - - - If you are worried about speed (who isn't), then you should write: - - - if (log.IsDebugEnabled) - { - log.Debug("This is entry number: " + i ); - } - - - This way you will not incur the cost of parameter - construction if debugging is disabled for log. On - the other hand, if the log is debug enabled, you - will incur the cost of evaluating whether the logger is debug - enabled twice. Once in and once in - the . This is an insignificant overhead - since evaluating a logger takes about 1% of the time it - takes to actually log. This is the preferred style of logging. - - Alternatively if your logger is available statically then the is debug - enabled state can be stored in a static variable like this: - - - private static readonly bool isDebugEnabled = log.IsDebugEnabled; - - - Then when you come to log you can write: - - - if (isDebugEnabled) - { - log.Debug("This is entry number: " + i ); - } - - - This way the debug enabled state is only queried once - when the class is loaded. Using a private static readonly - variable is the most efficient because it is a run time constant - and can be heavily optimized by the JIT compiler. - - - Of course if you use a static readonly variable to - hold the enabled state of the logger then you cannot - change the enabled state at runtime to vary the logging - that is produced. You have to decide if you need absolute - speed or runtime flexibility. - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Construct a new wrapper for the specified logger. - - The logger to wrap. - - - Construct a new wrapper for the specified logger. - - - - - - Virtual method called when the configuration of the repository changes - - the repository holding the levels - - - Virtual method called when the configuration of the repository changes - - - - - - Logs a message object with the DEBUG level. - - The message object to log. - - - This method first checks if this logger is DEBUG - enabled by comparing the level of this logger with the - DEBUG level. If this logger is - DEBUG enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the DEBUG level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the DEBUG level including - the stack trace of the passed - as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the INFO level. - - The message object to log. - - - This method first checks if this logger is INFO - enabled by comparing the level of this logger with the - INFO level. If this logger is - INFO enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of - the additivity flag. - - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the INFO level. - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the INFO level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the WARN level. - - the message object to log - - - This method first checks if this logger is WARN - enabled by comparing the level of this logger with the - WARN level. If this logger is - WARN enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the WARN level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the WARN level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the ERROR level. - - The message object to log. - - - This method first checks if this logger is ERROR - enabled by comparing the level of this logger with the - ERROR level. If this logger is - ERROR enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the ERROR level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the ERROR level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the FATAL level. - - The message object to log. - - - This method first checks if this logger is FATAL - enabled by comparing the level of this logger with the - FATAL level. If this logger is - FATAL enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the FATAL level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the FATAL level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Event handler for the event - - the repository - Empty - - - - The fully qualified name of this declaring type not the type of any subclass. - - - - - Checks if this logger is enabled for the DEBUG - level. - - - true if this logger is enabled for DEBUG events, - false otherwise. - - - - This function is intended to lessen the computational cost of - disabled log debug statements. - - - For some log Logger object, when you write: - - - log.Debug("This is entry number: " + i ); - - - You incur the cost constructing the message, concatenation in - this case, regardless of whether the message is logged or not. - - - If you are worried about speed, then you should write: - - - if (log.IsDebugEnabled()) - { - log.Debug("This is entry number: " + i ); - } - - - This way you will not incur the cost of parameter - construction if debugging is disabled for log. On - the other hand, if the log is debug enabled, you - will incur the cost of evaluating whether the logger is debug - enabled twice. Once in IsDebugEnabled and once in - the Debug. This is an insignificant overhead - since evaluating a logger takes about 1% of the time it - takes to actually log. - - - - - - Checks if this logger is enabled for the INFO level. - - - true if this logger is enabled for INFO events, - false otherwise. - - - - See for more information and examples - of using this method. - - - - - - - Checks if this logger is enabled for the WARN level. - - - true if this logger is enabled for WARN events, - false otherwise. - - - - See for more information and examples - of using this method. - - - - - - - Checks if this logger is enabled for the ERROR level. - - - true if this logger is enabled for ERROR events, - false otherwise. - - - - See for more information and examples of using this method. - - - - - - - Checks if this logger is enabled for the FATAL level. - - - true if this logger is enabled for FATAL events, - false otherwise. - - - - See for more information and examples of using this method. - - - - - - - A SecurityContext used by log4net when interacting with protected resources - - - - A SecurityContext used by log4net when interacting with protected resources - for example with operating system services. This can be used to impersonate - a principal that has been granted privileges on the system resources. - - - Nicko Cadell - - - - Impersonate this SecurityContext - - State supplied by the caller - An instance that will - revoke the impersonation of this SecurityContext, or null - - - Impersonate this security context. Further calls on the current - thread should now be made in the security context provided - by this object. When the result - method is called the security - context of the thread should be reverted to the state it was in - before was called. - - - - - - The providers default instances. - - - - A configured component that interacts with potentially protected system - resources uses a to provide the elevated - privileges required. If the object has - been not been explicitly provided to the component then the component - will request one from this . - - - By default the is - an instance of which returns only - objects. This is a reasonable default - where the privileges required are not know by the system. - - - This default behavior can be overridden by subclassing the - and overriding the method to return - the desired objects. The default provider - can be replaced by programmatically setting the value of the - property. - - - An alternative is to use the log4net.Config.SecurityContextProviderAttribute - This attribute can be applied to an assembly in the same way as the - log4net.Config.XmlConfiguratorAttribute". The attribute takes - the type to use as the as an argument. - - - Nicko Cadell - - - - The default provider - - - - - Protected default constructor to allow subclassing - - - - Protected default constructor to allow subclassing - - - - - - Create a SecurityContext for a consumer - - The consumer requesting the SecurityContext - An impersonation context - - - The default implementation is to return a . - - - Subclasses should override this method to provide their own - behavior. - - - - - - Gets or sets the default SecurityContextProvider - - - The default SecurityContextProvider - - - - The default provider is used by configured components that - require a and have not had one - given to them. - - - By default this is an instance of - that returns objects. - - - The default provider can be set programmatically by setting - the value of this property to a sub class of - that has the desired behavior. - - - - - - An evaluator that triggers after specified number of seconds. - - - - This evaluator will trigger if the specified time period - has passed since last check. - - - Robert Sevcik - - - - The default time threshold for triggering in seconds. Zero means it won't trigger at all. - - - - - The time threshold for triggering in seconds. Zero means it won't trigger at all. - - - - - The time of last check. This gets updated when the object is created and when the evaluator triggers. - - - - - Create a new evaluator using the time threshold in seconds. - - - - Create a new evaluator using the time threshold in seconds. - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Create a new evaluator using the specified time threshold in seconds. - - - The time threshold in seconds to trigger after. - Zero means it won't trigger at all. - - - - Create a new evaluator using the specified time threshold in seconds. - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Is this the triggering event? - - The event to check - This method returns true, if the specified time period - has passed since last check.. - Otherwise it returns false - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - The time threshold in seconds to trigger after - - - The time threshold in seconds to trigger after. - Zero means it won't trigger at all. - - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Delegate used to handle creation of new wrappers. - - The logger to wrap in a wrapper. - - - Delegate used to handle creation of new wrappers. This delegate - is called from the - method to construct the wrapper for the specified logger. - - - The delegate to use is supplied to the - constructor. - - - - - - Maps between logger objects and wrapper objects. - - - - This class maintains a mapping between objects and - objects. Use the method to - lookup the for the specified . - - - New wrapper instances are created by the - method. The default behavior is for this method to delegate construction - of the wrapper to the delegate supplied - to the constructor. This allows specialization of the behavior without - requiring subclassing of this type. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the - - The handler to use to create the wrapper objects. - - - Initializes a new instance of the class with - the specified handler to create the wrapper objects. - - - - - - Gets the wrapper object for the specified logger. - - The wrapper object for the specified logger - - - If the logger is null then the corresponding wrapper is null. - - - Looks up the wrapper it it has previously been requested and - returns it. If the wrapper has never been requested before then - the virtual method is - called. - - - - - - Creates the wrapper object for the specified logger. - - The logger to wrap in a wrapper. - The wrapper object for the logger. - - - This implementation uses the - passed to the constructor to create the wrapper. This method - can be overridden in a subclass. - - - - - - Called when a monitored repository shutdown event is received. - - The that is shutting down - - - This method is called when a that this - is holding loggers for has signaled its shutdown - event . The default - behavior of this method is to release the references to the loggers - and their wrappers generated for this repository. - - - - - - Event handler for repository shutdown event. - - The sender of the event. - The event args. - - - - Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings - - - - - The handler to use to create the extension wrapper objects. - - - - - Internal reference to the delegate used to register for repository shutdown events. - - - - - Gets the map of logger repositories. - - - Map of logger repositories. - - - - Gets the hashtable that is keyed on . The - values are hashtables keyed on with the - value being the corresponding . - - - - - - Formats a as "HH:mm:ss,fff". - - - - Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". - - - Nicko Cadell - Gert Driesen - - - - Render a as a string. - - - - Interface to abstract the rendering of a - instance into a string. - - - The method is used to render the - date to a text writer. - - - Nicko Cadell - Gert Driesen - - - - Formats the specified date as a string. - - The date to format. - The writer to write to. - - - Format the as a string and write it - to the provided. - - - - - - String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. - - - - - String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. - - - - - String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. - - - - - Renders the date into a string. Format is "HH:mm:ss". - - The date to render into a string. - The string builder to write to. - - - Subclasses should override this method to render the date - into a string using a precision up to the second. This method - will be called at most once per second and the result will be - reused if it is needed again during the same second. - - - - - - Renders the date into a string. Format is "HH:mm:ss,fff". - - The date to render into a string. - The writer to write to. - - - Uses the method to generate the - time string up to the seconds and then appends the current - milliseconds. The results from are - cached and is called at most once - per second. - - - Sub classes should override - rather than . - - - - - - Last stored time with precision up to the second. - - - - - Last stored time with precision up to the second, formatted - as a string. - - - - - Last stored time with precision up to the second, formatted - as a string. - - - - - Formats a as "dd MMM yyyy HH:mm:ss,fff" - - - - Formats a in the format - "dd MMM yyyy HH:mm:ss,fff" for example, - "06 Nov 1994 15:49:37,459". - - - Nicko Cadell - Gert Driesen - Angelika Schnagl - - - - Default constructor. - - - - Initializes a new instance of the class. - - - - - - Formats the date without the milliseconds part - - The date to format. - The string builder to write to. - - - Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" - for example, "06 Nov 1994 15:49:37". - - - The base class will append the ",fff" milliseconds section. - This method will only be called at most once per second. - - - - - - The format info for the invariant culture. - - - - - Formats the as "yyyy-MM-dd HH:mm:ss,fff". - - - - Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Formats the date without the milliseconds part - - The date to format. - The string builder to write to. - - - Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". - - - The base class will append the ",fff" milliseconds section. - This method will only be called at most once per second. - - - - - - Formats the using the method. - - - - Formats the using the method. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The format string. - - - Initializes a new instance of the class - with the specified format string. - - - The format string must be compatible with the options - that can be supplied to . - - - - - - Formats the date using . - - The date to convert to a string. - The writer to write to. - - - Uses the date format string supplied to the constructor to call - the method to format the date. - - - - - - The format string used to format the . - - - - The format string must be compatible with the options - that can be supplied to . - - - - - - This filter drops all . - - - - You can add this filter to the end of a filter chain to - switch from the default "accept all unless instructed otherwise" - filtering behavior to a "deny all unless instructed otherwise" - behavior. - - - Nicko Cadell - Gert Driesen - - - - Subclass this type to implement customized logging event filtering - - - - Users should extend this class to implement customized logging - event filtering. Note that and - , the parent class of all standard - appenders, have built-in filtering rules. It is suggested that you - first use and understand the built-in rules before rushing to write - your own custom filters. - - - This abstract class assumes and also imposes that filters be - organized in a linear chain. The - method of each filter is called sequentially, in the order of their - addition to the chain. - - - The method must return one - of the integer constants , - or . - - - If the value is returned, then the log event is dropped - immediately without consulting with the remaining filters. - - - If the value is returned, then the next filter - in the chain is consulted. If there are no more filters in the - chain, then the log event is logged. Thus, in the presence of no - filters, the default behavior is to log all logging events. - - - If the value is returned, then the log - event is logged without consulting the remaining filters. - - - The philosophy of log4net filters is largely inspired from the - Linux ipchains. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface to provide customized logging event filtering - - - - Users should implement this interface to implement customized logging - event filtering. Note that and - , the parent class of all standard - appenders, have built-in filtering rules. It is suggested that you - first use and understand the built-in rules before rushing to write - your own custom filters. - - - This abstract class assumes and also imposes that filters be - organized in a linear chain. The - method of each filter is called sequentially, in the order of their - addition to the chain. - - - The method must return one - of the integer constants , - or . - - - If the value is returned, then the log event is dropped - immediately without consulting with the remaining filters. - - - If the value is returned, then the next filter - in the chain is consulted. If there are no more filters in the - chain, then the log event is logged. Thus, in the presence of no - filters, the default behavior is to log all logging events. - - - If the value is returned, then the log - event is logged without consulting the remaining filters. - - - The philosophy of log4net filters is largely inspired from the - Linux ipchains. - - - Nicko Cadell - Gert Driesen - - - - Decide if the logging event should be logged through an appender. - - The LoggingEvent to decide upon - The decision of the filter - - - If the decision is , then the event will be - dropped. If the decision is , then the next - filter, if any, will be invoked. If the decision is then - the event will be logged without consulting with other filters in - the chain. - - - - - - Property to get and set the next filter - - - The next filter in the chain - - - - Filters are typically composed into chains. This property allows the next filter in - the chain to be accessed. - - - - - - Points to the next filter in the filter chain. - - - - See for more information. - - - - - - Initialize the filter with the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Typically filter's options become active immediately on set, - however this method must still be called. - - - - - - Decide if the should be logged through an appender. - - The to decide upon - The decision of the filter - - - If the decision is , then the event will be - dropped. If the decision is , then the next - filter, if any, will be invoked. If the decision is then - the event will be logged without consulting with other filters in - the chain. - - - This method is marked abstract and must be implemented - in a subclass. - - - - - - Property to get and set the next filter - - - The next filter in the chain - - - - Filters are typically composed into chains. This property allows the next filter in - the chain to be accessed. - - - - - - Default constructor - - - - - Always returns the integer constant - - the LoggingEvent to filter - Always returns - - - Ignores the event being logged and just returns - . This can be used to change the default filter - chain behavior from to . This filter - should only be used as the last filter in the chain - as any further filters will be ignored! - - - - - - The return result from - - - - The return result from - - - - - - The log event must be dropped immediately without - consulting with the remaining filters, if any, in the chain. - - - - - This filter is neutral with respect to the log event. - The remaining filters, if any, should be consulted for a final decision. - - - - - The log event must be logged immediately without - consulting with the remaining filters, if any, in the chain. - - - - - This is a very simple filter based on matching. - - - - The filter admits two options and - . If there is an exact match between the value - of the option and the of the - , then the method returns in - case the option value is set - to true, if it is false then - is returned. If the does not match then - the result will be . - - - Nicko Cadell - Gert Driesen - - - - flag to indicate if the filter should on a match - - - - - the to match against - - - - - Default constructor - - - - - Tests if the of the logging event matches that of the filter - - the event to filter - see remarks - - - If the of the event matches the level of the - filter then the result of the function depends on the - value of . If it is true then - the function will return , it it is false then it - will return . If the does not match then - the result will be . - - - - - - when matching - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - The that the filter will match - - - - The level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - This is a simple filter based on matching. - - - - The filter admits three options and - that determine the range of priorities that are matched, and - . If there is a match between the range - of priorities and the of the , then the - method returns in case the - option value is set to true, if it is false - then is returned. If there is no match, is returned. - - - Nicko Cadell - Gert Driesen - - - - Flag to indicate the behavior when matching a - - - - - the minimum value to match - - - - - the maximum value to match - - - - - Default constructor - - - - - Check if the event should be logged. - - the logging event to check - see remarks - - - If the of the logging event is outside the range - matched by this filter then - is returned. If the is matched then the value of - is checked. If it is true then - is returned, otherwise - is returned. - - - - - - when matching and - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - Set the minimum matched - - - - The minimum level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - Sets the maximum matched - - - - The maximum level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - Simple filter to match a string in the event's logger name. - - - - The works very similar to the . It admits two - options and . If the - of the starts - with the value of the option, then the - method returns in - case the option value is set to true, - if it is false then is returned. - - - Daniel Cazzulino - - - - Flag to indicate the behavior when we have a match - - - - - The logger name string to substring match against the event - - - - - Default constructor - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The rendered message is matched against the . - If the equals the beginning of - the incoming () - then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - when matching - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - The that the filter will match - - - - This filter will attempt to match this value against logger name in - the following way. The match will be done against the beginning of the - logger name (using ). The match is - case sensitive. If a match is found then - the result depends on the value of . - - - - - - Simple filter to match a keyed string in the - - - - Simple filter to match a keyed string in the - - - As the MDC has been replaced with layered properties the - should be used instead. - - - Nicko Cadell - Gert Driesen - - - - Simple filter to match a string an event property - - - - Simple filter to match a string in the value for a - specific event property - - - Nicko Cadell - - - - Simple filter to match a string in the rendered message - - - - Simple filter to match a string in the rendered message - - - Nicko Cadell - Gert Driesen - - - - Flag to indicate the behavior when we have a match - - - - - The string to substring match against the message - - - - - A string regex to match - - - - - A regex object to match (generated from m_stringRegexToMatch) - - - - - Default constructor - - - - - Initialize and precompile the Regex if required - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The rendered message is matched against the . - If the occurs as a substring within - the message then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - when matching or - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - Sets the static string to match - - - - The string that will be substring matched against - the rendered message. If the message contains this - string then the filter will match. If a match is found then - the result depends on the value of . - - - One of or - must be specified. - - - - - - Sets the regular expression to match - - - - The regular expression pattern that will be matched against - the rendered message. If the message matches this - pattern then the filter will match. If a match is found then - the result depends on the value of . - - - One of or - must be specified. - - - - - - The key to use to lookup the string from the event properties - - - - - Default constructor - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The event property for the is matched against - the . - If the occurs as a substring within - the property value then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - The key to lookup in the event properties and then match against. - - - - The key name to use to lookup in the properties map of the - . The match will be performed against - the value of this property if it exists. - - - - - - Simple filter to match a string in the - - - - Simple filter to match a string in the - - - As the MDC has been replaced with named stacks stored in the - properties collections the should - be used instead. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Sets the to "NDC". - - - - - - Write the event appdomain name to the output - - - - Writes the to the output writer. - - - Daniel Cazzulino - Nicko Cadell - - - - Abstract class that provides the formatting functionality that - derived classes need. - - - Conversion specifiers in a conversion patterns are parsed to - individual PatternConverters. Each of which is responsible for - converting a logging event in a converter specific manner. - - Nicko Cadell - - - - Abstract class that provides the formatting functionality that - derived classes need. - - - - Conversion specifiers in a conversion patterns are parsed to - individual PatternConverters. Each of which is responsible for - converting a logging event in a converter specific manner. - - - Nicko Cadell - Gert Driesen - - - - Initial buffer size - - - - - Maximum buffer size before it is recycled - - - - - Protected constructor - - - - Initializes a new instance of the class. - - - - - - Evaluate this pattern converter and write the output to a writer. - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the appropriate way. - - - - - - Set the next pattern converter in the chains - - the pattern converter that should follow this converter in the chain - the next converter - - - The PatternConverter can merge with its neighbor during this method (or a sub class). - Therefore the return value may or may not be the value of the argument passed in. - - - - - - Write the pattern converter to the writer with appropriate formatting - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - This method calls to allow the subclass to perform - appropriate conversion of the pattern converter. If formatting options have - been specified via the then this method will - apply those formattings before writing the output. - - - - - - Fast space padding method. - - to which the spaces will be appended. - The number of spaces to be padded. - - - Fast space padding method. - - - - - - The option string to the converter - - - - - Write an dictionary to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the to a writer in the form: - - - {key1=value1, key2=value2, key3=value3} - - - If the specified - is not null then it is used to render the key and value to text, otherwise - the object's ToString method is called. - - - - - - Write an dictionary to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the to a writer in the form: - - - {key1=value1, key2=value2, key3=value3} - - - If the specified - is not null then it is used to render the key and value to text, otherwise - the object's ToString method is called. - - - - - - Write an object to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the Object to a writer. If the specified - is not null then it is used to render the object to text, otherwise - the object's ToString method is called. - - - - - - Get the next pattern converter in the chain - - - the next pattern converter in the chain - - - - Get the next pattern converter in the chain - - - - - - Gets or sets the formatting info for this converter - - - The formatting info for this converter - - - - Gets or sets the formatting info for this converter - - - - - - Gets or sets the option value for this converter - - - The option for this converter - - - - Gets or sets the option value for this converter - - - - - - - - - - - Initializes a new instance of the class. - - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The on which the pattern converter should be executed. - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - - Flag indicating if this converter handles exceptions - - - false if this converter handles exceptions - - - - - Flag indicating if this converter handles the logging event exception - - false if this converter handles the logging event exception - - - If this converter handles the exception object contained within - , then this property should be set to - false. Otherwise, if the layout ignores the exception - object, then the property should be set to true. - - - Set this value to override a this default setting. The default - value is true, this converter does not handle the exception. - - - - - - Write the event appdomain name to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output . - - - - - - Converter for items in the ASP.Net Cache. - - - - Outputs an item from the . - - - Ron Grabowski - - - - Abstract class that provides access to the current HttpContext () that - derived classes need. - - - This class handles the case when HttpContext.Current is null by writing - to the writer. - - Ron Grabowski - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - - Write the ASP.Net Cache item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. If no property has been set, all key value pairs from the Cache will - be written to the output. - - - - - - Converter for items in the . - - - - Outputs an item from the . - - - Ron Grabowski - - - - Write the ASP.Net HttpContext item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. - - - - - - Converter for items in the ASP.Net Cache. - - - - Outputs an item from the . - - - Ron Grabowski - - - - Write the ASP.Net Cache item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. - - - - - - Converter for items in the ASP.Net Cache. - - - - Outputs an item from the . - - - Ron Grabowski - - - - Write the ASP.Net Cache item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. If no property has been set, all key value pairs from the Session will - be written to the output. - - - - - - Date pattern converter, uses a to format - the date of a . - - - - Render the to the writer as a string. - - - The value of the determines - the formatting of the date. The following values are allowed: - - - Option value - Output - - - ISO8601 - - Uses the formatter. - Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. - - - - DATE - - Uses the formatter. - Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". - - - - ABSOLUTE - - Uses the formatter. - Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". - - - - other - - Any other pattern string uses the formatter. - This formatter passes the pattern string to the - method. - For details on valid patterns see - DateTimeFormatInfo Class. - - - - - - The is in the local time zone and is rendered in that zone. - To output the time in Universal time see . - - - Nicko Cadell - - - - The used to render the date to a string - - - - The used to render the date to a string - - - - - - Initialize the converter pattern based on the property. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Convert the pattern into the rendered message - - that will receive the formatted result. - the event being logged - - - Pass the to the - for it to render it to the writer. - - - The passed is in the local time zone. - - - - - - The fully qualified type of the DatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the exception text to the output - - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - - - If there is no exception then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - Nicko Cadell - - - - Default constructor - - - - - Write the exception text to the output - - that will receive the formatted result. - the event being logged - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - - - If there is no exception or the exception property specified - by the Option value does not exist then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - Recognized values for the Option parameter are: - - - - Message - - - Source - - - StackTrace - - - TargetSite - - - HelpLink - - - - - - - Writes the caller location file name to the output - - - - Writes the value of the for - the event to the output writer. - - - Nicko Cadell - - - - Write the caller location file name to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the for - the to the output . - - - - - - Write the caller location info to the output - - - - Writes the to the output writer. - - - Nicko Cadell - - - - Write the caller location info to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output writer. - - - - - - Writes the event identity to the output - - - - Writes the value of the to - the output writer. - - - Daniel Cazzulino - Nicko Cadell - - - - Writes the event identity to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the - to - the output . - - - - - - Write the event level to the output - - - - Writes the display name of the event - to the writer. - - - Nicko Cadell - - - - Write the event level to the output - - that will receive the formatted result. - the event being logged - - - Writes the of the - to the . - - - - - - Write the caller location line number to the output - - - - Writes the value of the for - the event to the output writer. - - - Nicko Cadell - - - - Write the caller location line number to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the for - the to the output . - - - - - - Converter for logger name - - - - Outputs the of the event. - - - Nicko Cadell - - - - Converter to output and truncate '.' separated strings - - - - This abstract class supports truncating a '.' separated string - to show a specified number of elements from the right hand side. - This is used to truncate class names that are fully qualified. - - - Subclasses should override the method to - return the fully qualified string. - - - Nicko Cadell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Get the fully qualified string data - - the event being logged - the fully qualified name - - - Overridden by subclasses to get the fully qualified name before the - precision is applied to it. - - - Return the fully qualified '.' (dot/period) separated string. - - - - - - Convert the pattern to the rendered message - - that will receive the formatted result. - the event being logged - - Render the to the precision - specified by the property. - - - - - The fully qualified type of the NamedPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the fully qualified name of the logger - - the event being logged - The fully qualified logger name - - - Returns the of the . - - - - - - Writes the event message to the output - - - - Uses the method - to write out the event message. - - - Nicko Cadell - - - - Writes the event message to the output - - that will receive the formatted result. - the event being logged - - - Uses the method - to write out the event message. - - - - - - Write the method name to the output - - - - Writes the caller location to - the output. - - - Nicko Cadell - - - - Write the method name to the output - - that will receive the formatted result. - the event being logged - - - Writes the caller location to - the output. - - - - - - Converter to include event NDC - - - - Outputs the value of the event property named NDC. - - - The should be used instead. - - - Nicko Cadell - - - - Write the event NDC to the output - - that will receive the formatted result. - the event being logged - - - As the thread context stacks are now stored in named event properties - this converter simply looks up the value of the NDC property. - - - The should be used instead. - - - - - - Property pattern converter - - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - Nicko Cadell - - - - Write the property value to the output - - that will receive the formatted result. - the event being logged - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - - - - Converter to output the relative time of the event - - - - Converter to output the time of the event relative to the start of the program. - - - Nicko Cadell - - - - Write the relative time to the output - - that will receive the formatted result. - the event being logged - - - Writes out the relative time of the event in milliseconds. - That is the number of milliseconds between the event - and the . - - - - - - Helper method to get the time difference between two DateTime objects - - start time (in the current local time zone) - end time (in the current local time zone) - the time difference in milliseconds - - - - Write the caller stack frames to the output - - - - Writes the to the output writer, using format: - type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) - - - Adam Davies - - - - Write the caller stack frames to the output - - - - Writes the to the output writer, using format: - type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 - - - Michael Cromwell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the strack frames to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output writer. - - - - - - Returns the Name of the method - - - This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter - string - - - - The fully qualified type of the StackTracePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - The fully qualified type of the StackTraceDetailPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Converter to include event thread name - - - - Writes the to the output. - - - Nicko Cadell - - - - Write the ThreadName to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the . - - - - - - Pattern converter for the class name - - - - Outputs the of the event. - - - Nicko Cadell - - - - Gets the fully qualified name of the class - - the event being logged - The fully qualified type name for the caller location - - - Returns the of the . - - - - - - Converter to include event user name - - Douglas de la Torre - Nicko Cadell - - - - Convert the pattern to the rendered message - - that will receive the formatted result. - the event being logged - - - - Write the TimeStamp to the output - - - - Date pattern converter, uses a to format - the date of a . - - - Uses a to format the - in Universal time. - - - See the for details on the date pattern syntax. - - - - Nicko Cadell - - - - Write the TimeStamp to the output - - that will receive the formatted result. - the event being logged - - - Pass the to the - for it to render it to the writer. - - - The passed is in the local time zone, this is converted - to Universal time before it is rendered. - - - - - - - The fully qualified type of the UtcDatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - A Layout that renders only the Exception text from the logging event - - - - A Layout that renders only the Exception text from the logging event. - - - This Layout should only be used with appenders that utilize multiple - layouts (e.g. ). - - - Nicko Cadell - Gert Driesen - - - - Extend this abstract class to create your own log layout format. - - - - This is the base implementation of the - interface. Most layout objects should extend this class. - - - - - - Subclasses must implement the - method. - - - Subclasses should set the in their default - constructor. - - - - Nicko Cadell - Gert Driesen - - - - Interface implemented by layout objects - - - - An object is used to format a - as text. The method is called by an - appender to transform the into a string. - - - The layout can also supply and - text that is appender before any events and after all the events respectively. - - - Nicko Cadell - Gert Driesen - - - - Implement this method to create your own layout format. - - The TextWriter to write the formatted event to - The event to format - - - This method is called by an appender to format - the as text and output to a writer. - - - If the caller does not have a and prefers the - event to be formatted as a then the following - code can be used to format the event into a . - - - StringWriter writer = new StringWriter(); - Layout.Format(writer, loggingEvent); - string formattedEvent = writer.ToString(); - - - - - - The content type output by this layout. - - The content type - - - The content type output by this layout. - - - This is a MIME type e.g. "text/plain". - - - - - - The header for the layout format. - - the layout header - - - The Header text will be appended before any logging events - are formatted and appended. - - - - - - The footer for the layout format. - - the layout footer - - - The Footer text will be appended after all the logging events - have been formatted and appended. - - - - - - Flag indicating if this layout handle exceptions - - false if this layout handles exceptions - - - If this layout handles the exception object contained within - , then the layout should return - false. Otherwise, if the layout ignores the exception - object, then the layout should return true. - - - - - - The header text - - - - See for more information. - - - - - - The footer text - - - - See for more information. - - - - - - Flag indicating if this layout handles exceptions - - - - false if this layout handles exceptions - - - - - - Empty default constructor - - - - Empty default constructor - - - - - - Activate component options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - This method must be implemented by the subclass. - - - - - - Implement this method to create your own layout format. - - The TextWriter to write the formatted event to - The event to format - - - This method is called by an appender to format - the as text. - - - - - - Convenience method for easily formatting the logging event into a string variable. - - - - Creates a new StringWriter instance to store the formatted logging event. - - - - - The content type output by this layout. - - The content type is "text/plain" - - - The content type output by this layout. - - - This base class uses the value "text/plain". - To change this value a subclass must override this - property. - - - - - - The header for the layout format. - - the layout header - - - The Header text will be appended before any logging events - are formatted and appended. - - - - - - The footer for the layout format. - - the layout footer - - - The Footer text will be appended after all the logging events - have been formatted and appended. - - - - - - Flag indicating if this layout handles exceptions - - false if this layout handles exceptions - - - If this layout handles the exception object contained within - , then the layout should return - false. Otherwise, if the layout ignores the exception - object, then the layout should return true. - - - Set this value to override a this default setting. The default - value is true, this layout does not handle the exception. - - - - - - Default constructor - - - - Constructs a ExceptionLayout - - - - - - Activate component options - - - - Part of the component activation - framework. - - - This method does nothing as options become effective immediately. - - - - - - Gets the exception text from the logging event - - The TextWriter to write the formatted event to - the event being logged - - - Write the exception string to the . - The exception string is retrieved from . - - - - - - Interface for raw layout objects - - - - Interface used to format a - to an object. - - - This interface should not be confused with the - interface. This interface is used in - only certain specialized situations where a raw object is - required rather than a formatted string. The - is not generally useful than this interface. - - - Nicko Cadell - Gert Driesen - - - - Implement this method to create your own layout format. - - The event to format - returns the formatted event - - - Implement this method to create your own layout format. - - - - - - Adapts any to a - - - - Where an is required this adapter - allows a to be specified. - - - Nicko Cadell - Gert Driesen - - - - The layout to adapt - - - - - Construct a new adapter - - the layout to adapt - - - Create the adapter for the specified . - - - - - - Format the logging event as an object. - - The event to format - returns the formatted event - - - Format the logging event as an object. - - - Uses the object supplied to - the constructor to perform the formatting. - - - - - - A flexible layout configurable with pattern string. - - - - The goal of this class is to a - as a string. The results - depend on the conversion pattern. - - - The conversion pattern is closely related to the conversion - pattern of the printf function in C. A conversion pattern is - composed of literal text and format control expressions called - conversion specifiers. - - - You are free to insert any literal text within the conversion - pattern. - - - Each conversion specifier starts with a percent sign (%) and is - followed by optional format modifiers and a conversion - pattern name. The conversion pattern name specifies the type of - data, e.g. logger, level, date, thread name. The format - modifiers control such things as field width, padding, left and - right justification. The following is a simple example. - - - Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume - that the log4net environment was set to use a PatternLayout. Then the - statements - - - ILog log = LogManager.GetLogger(typeof(TestApp)); - log.Debug("Message 1"); - log.Warn("Message 2"); - - would yield the output - - DEBUG [main]: Message 1 - WARN [main]: Message 2 - - - Note that there is no explicit separator between text and - conversion specifiers. The pattern parser knows when it has reached - the end of a conversion specifier when it reads a conversion - character. In the example above the conversion specifier - %-5level means the level of the logging event should be left - justified to a width of five characters. - - - The recognized conversion pattern names are: - - - - Conversion Pattern Name - Effect - - - a - Equivalent to appdomain - - - appdomain - - Used to output the friendly name of the AppDomain where the - logging event was generated. - - - - aspnet-cache - - - Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-context - - - Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-request - - - Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-session - - - Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - c - Equivalent to logger - - - C - Equivalent to type - - - class - Equivalent to type - - - d - Equivalent to date - - - date - - - Used to output the date of the logging event in the local time zone. - To output the date in universal time use the %utcdate pattern. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %date{HH:mm:ss,fff} or - %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %date{ISO8601} or %date{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - exception - - - Used to output the exception passed in with the log message. - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - If there is no exception then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - - - F - Equivalent to file - - - file - - - Used to output the file name where the logging request was - issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - identity - - - Used to output the user name for the currently active user - (Principal.Identity.Name). - - - WARNING Generating caller information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - - - l - Equivalent to location - - - L - Equivalent to line - - - location - - - Used to output location information of the caller which generated - the logging event. - - - The location information depends on the CLI implementation but - usually consists of the fully qualified name of the calling - method followed by the callers source the file name and line - number between parentheses. - - - The location information can be very useful. However, its - generation is extremely slow. Its use should be avoided - unless execution speed is not an issue. - - - See the note below on the availability of caller location information. - - - - - level - - - Used to output the level of the logging event. - - - - - line - - - Used to output the line number from where the logging request - was issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - logger - - - Used to output the logger of the logging event. The - logger conversion specifier can be optionally followed by - precision specifier, that is a decimal constant in - brackets. - - - If a precision specifier is given, then only the corresponding - number of right most components of the logger name will be - printed. By default the logger name is printed in full. - - - For example, for the logger name "a.b.c" the pattern - %logger{2} will output "b.c". - - - - - m - Equivalent to message - - - M - Equivalent to method - - - message - - - Used to output the application supplied message associated with - the logging event. - - - - - mdc - - - The MDC (old name for the ThreadContext.Properties) is now part of the - combined event properties. This pattern is supported for compatibility - but is equivalent to property. - - - - - method - - - Used to output the method name where the logging request was - issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - n - Equivalent to newline - - - newline - - - Outputs the platform dependent line separator character or - characters. - - - This conversion pattern offers the same performance as using - non-portable line separator strings such as "\n", or "\r\n". - Thus, it is the preferred way of specifying a line separator. - - - - - ndc - - - Used to output the NDC (nested diagnostic context) associated - with the thread that generated the logging event. - - - - - p - Equivalent to level - - - P - Equivalent to property - - - properties - Equivalent to property - - - property - - - Used to output the an event specific property. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %property{user} would include the value - from the property that is keyed by the string 'user'. Each property value - that is to be included in the log must be specified separately. - Properties are added to events by loggers or appenders. By default - the log4net:HostName property is set to the name of machine on - which the event was originally logged. - - - If no key is specified, e.g. %property then all the keys and their - values are printed in a comma separated list. - - - The properties of an event are combined from a number of different - contexts. These are listed below in the order in which they are searched. - - - - the event properties - - The event has that can be set. These - properties are specific to this event only. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - - r - Equivalent to timestamp - - - stacktrace - - - Used to output the stack trace of the logging event - The stack trace level specifier may be enclosed - between braces. For example, %stacktrace{level}. - If no stack trace level specifier is given then 1 is assumed - - - Output uses the format: - type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 - - - This pattern is not available for Compact Framework assemblies. - - - - - stacktracedetail - - - Used to output the stack trace of the logging event - The stack trace level specifier may be enclosed - between braces. For example, %stacktracedetail{level}. - If no stack trace level specifier is given then 1 is assumed - - - Output uses the format: - type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) - - - This pattern is not available for Compact Framework assemblies. - - - - - t - Equivalent to thread - - - timestamp - - - Used to output the number of milliseconds elapsed since the start - of the application until the creation of the logging event. - - - - - thread - - - Used to output the name of the thread that generated the - logging event. Uses the thread number if no name is available. - - - - - type - - - Used to output the fully qualified type name of the caller - issuing the logging request. This conversion specifier - can be optionally followed by precision specifier, that - is a decimal constant in brackets. - - - If a precision specifier is given, then only the corresponding - number of right most components of the class name will be - printed. By default the class name is output in fully qualified form. - - - For example, for the class name "log4net.Layout.PatternLayout", the - pattern %type{1} will output "PatternLayout". - - - WARNING Generating the caller class information is - slow. Thus, its use should be avoided unless execution speed is - not an issue. - - - See the note below on the availability of caller location information. - - - - - u - Equivalent to identity - - - username - - - Used to output the WindowsIdentity for the currently - active user. - - - WARNING Generating caller WindowsIdentity information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - - - utcdate - - - Used to output the date of the logging event in universal time. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %utcdate{HH:mm:ss,fff} or - %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %utcdate{ISO8601} or %utcdate{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - w - Equivalent to username - - - x - Equivalent to ndc - - - X - Equivalent to mdc - - - % - - - The sequence %% outputs a single percent sign. - - - - - - The single letter patterns are deprecated in favor of the - longer more descriptive pattern names. - - - By default the relevant information is output as is. However, - with the aid of format modifiers it is possible to change the - minimum field width, the maximum field width and justification. - - - The optional format modifier is placed between the percent sign - and the conversion pattern name. - - - The first optional format modifier is the left justification - flag which is just the minus (-) character. Then comes the - optional minimum field width modifier. This is a decimal - constant that represents the minimum number of characters to - output. If the data item requires fewer characters, it is padded on - either the left or the right until the minimum width is - reached. The default is to pad on the left (right justify) but you - can specify right padding with the left justification flag. The - padding character is space. If the data item is larger than the - minimum field width, the field is expanded to accommodate the - data. The value is never truncated. - - - This behavior can be changed using the maximum field - width modifier which is designated by a period followed by a - decimal constant. If the data item is longer than the maximum - field, then the extra characters are removed from the - beginning of the data item and not from the end. For - example, it the maximum field width is eight and the data item is - ten characters long, then the first two characters of the data item - are dropped. This behavior deviates from the printf function in C - where truncation is done from the end. - - - Below are various format modifier examples for the logger - conversion specifier. - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Format modifierleft justifyminimum widthmaximum widthcomment
    %20loggerfalse20none - - Left pad with spaces if the logger name is less than 20 - characters long. - -
    %-20loggertrue20none - - Right pad with spaces if the logger - name is less than 20 characters long. - -
    %.30loggerNAnone30 - - Truncate from the beginning if the logger - name is longer than 30 characters. - -
    %20.30loggerfalse2030 - - Left pad with spaces if the logger name is shorter than 20 - characters. However, if logger name is longer than 30 characters, - then truncate from the beginning. - -
    %-20.30loggertrue2030 - - Right pad with spaces if the logger name is shorter than 20 - characters. However, if logger name is longer than 30 characters, - then truncate from the beginning. - -
    -
    - - Note about caller location information.
    - The following patterns %type %file %line %method %location %class %C %F %L %l %M - all generate caller location information. - Location information uses the System.Diagnostics.StackTrace class to generate - a call stack. The caller's information is then extracted from this stack. -
    - - - The System.Diagnostics.StackTrace class is not supported on the - .NET Compact Framework 1.0 therefore caller location information is not - available on that framework. - - - - - The System.Diagnostics.StackTrace class has this to say about Release builds: - - - "StackTrace information will be most informative with Debug build configurations. - By default, Debug builds include debug symbols, while Release builds do not. The - debug symbols contain most of the file, method name, line number, and column - information used in constructing StackFrame and StackTrace objects. StackTrace - might not report as many method calls as expected, due to code transformations - that occur during optimization." - - - This means that in a Release build the caller information may be incomplete or may - not exist at all! Therefore caller location information cannot be relied upon in a Release build. - - - - Additional pattern converters may be registered with a specific - instance using the method. - -
    - - This is a more detailed pattern. - %timestamp [%thread] %level %logger %ndc - %message%newline - - - A similar pattern except that the relative time is - right padded if less than 6 digits, thread name is right padded if - less than 15 characters and truncated if longer and the logger - name is left padded if shorter than 30 characters and truncated if - longer. - %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline - - Nicko Cadell - Gert Driesen - Douglas de la Torre - Daniel Cazzulino -
    - - - Default pattern string for log output. - - - - Default pattern string for log output. - Currently set to the string "%message%newline" - which just prints the application supplied message. - - - - - - A detailed conversion pattern - - - - A conversion pattern which includes Time, Thread, Logger, and Nested Context. - Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. - - - - - - Internal map of converter identifiers to converter types. - - - - This static map is overridden by the m_converterRegistry instance map - - - - - - the pattern - - - - - the head of the pattern converter chain - - - - - patterns defined on this PatternLayout only - - - - - Initialize the global registry - - - - Defines the builtin global rules. - - - - - - Constructs a PatternLayout using the DefaultConversionPattern - - - - The default pattern just produces the application supplied message. - - - Note to Inheritors: This constructor calls the virtual method - . If you override this method be - aware that it will be called before your is called constructor. - - - As per the contract the - method must be called after the properties on this object have been - configured. - - - - - - Constructs a PatternLayout using the supplied conversion pattern - - the pattern to use - - - Note to Inheritors: This constructor calls the virtual method - . If you override this method be - aware that it will be called before your is called constructor. - - - When using this constructor the method - need not be called. This may not be the case when using a subclass. - - - - - - Create the pattern parser instance - - the pattern to parse - The that will format the event - - - Creates the used to parse the conversion string. Sets the - global and instance rules on the . - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a formatted string as specified by the conversion pattern. - - the event being logged - The TextWriter to write the formatted event to - - - Parse the using the patter format - specified in the property. - - - - - - Add a converter to this PatternLayout - - the converter info - - - This version of the method is used by the configurator. - Programmatic users should use the alternative method. - - - - - - Add a converter to this PatternLayout - - the name of the conversion pattern for this converter - the type of the converter - - - Add a named pattern converter to this instance. This - converter will be used in the formatting of the event. - This method must be called before . - - - The specified must extend the - type. - - - - - - The pattern formatting string - - - - The ConversionPattern option. This is the string which - controls formatting and consists of a mix of literal content and - conversion specifiers. - - - - - - Type converter for the interface - - - - Used to convert objects to the interface. - Supports converting from the interface to - the interface using the . - - - Nicko Cadell - Gert Driesen - - - - Interface supported by type converters - - - - This interface supports conversion from arbitrary types - to a single target type. See . - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Test if the can be converted to the - type supported by this converter. - - - - - - Convert the source object to the type supported by this object - - the object to convert - the converted object - - - Converts the to the type supported - by this converter. - - - - - - Can the sourceType be converted to an - - the source to be to be converted - true if the source type can be converted to - - - Test if the can be converted to a - . Only is supported - as the . - - - - - - Convert the value to a object - - the value to convert - the object - - - Convert the object to a - object. If the object - is a then the - is used to adapt between the two interfaces, otherwise an - exception is thrown. - - - - - - Extract the value of a property from the - - - - Extract the value of a property from the - - - Nicko Cadell - - - - Constructs a RawPropertyLayout - - - - - Lookup the property for - - The event to format - returns property value - - - Looks up and returns the object value of the property - named . If there is no property defined - with than name then null will be returned. - - - - - - The name of the value to lookup in the LoggingEvent Properties collection. - - - Value to lookup in the LoggingEvent Properties collection - - - - String name of the property to lookup in the . - - - - - - Extract the date from the - - - - Extract the date from the - - - Nicko Cadell - Gert Driesen - - - - Constructs a RawTimeStampLayout - - - - - Gets the as a . - - The event to format - returns the time stamp - - - Gets the as a . - - - The time stamp is in local time. To format the time stamp - in universal time use . - - - - - - Extract the date from the - - - - Extract the date from the - - - Nicko Cadell - Gert Driesen - - - - Constructs a RawUtcTimeStampLayout - - - - - Gets the as a . - - The event to format - returns the time stamp - - - Gets the as a . - - - The time stamp is in universal time. To format the time stamp - in local time use . - - - - - - A very simple layout - - - - SimpleLayout consists of the level of the log statement, - followed by " - " and then the log message itself. For example, - - DEBUG - Hello world - - - - Nicko Cadell - Gert Driesen - - - - Constructs a SimpleLayout - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a simple formatted output. - - the event being logged - The TextWriter to write the formatted event to - - - Formats the event as the level of the even, - followed by " - " and then the log message itself. The - output is terminated by a newline. - - - - - - Layout that formats the log events as XML elements. - - - - The output of the consists of a series of - log4net:event elements. It does not output a complete well-formed XML - file. The output is designed to be included as an external entity - in a separate file to form a correct XML file. - - - For example, if abc is the name of the file where - the output goes, then a well-formed XML file would - be: - - - <?xml version="1.0" ?> - - <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> - <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> - &data; - </log4net:events> - - - This approach enforces the independence of the - and the appender where it is embedded. - - - The version attribute helps components to correctly - interpret output generated by . The value of - this attribute should be "1.2" for release 1.2 and later. - - - Alternatively the Header and Footer properties can be - configured to output the correct XML header, open tag and close tag. - When setting the Header and Footer properties it is essential - that the underlying data store not be appendable otherwise the data - will become invalid XML. - - - Nicko Cadell - Gert Driesen - - - - Layout that formats the log events as XML elements. - - - - This is an abstract class that must be subclassed by an implementation - to conform to a specific schema. - - - Deriving classes must implement the method. - - - Nicko Cadell - Gert Driesen - - - - Protected constructor to support subclasses - - - - Initializes a new instance of the class - with no location info. - - - - - - Protected constructor to support subclasses - - - - The parameter determines whether - location information will be output by the layout. If - is set to true, then the - file name and line number of the statement at the origin of the log - statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a formatted string. - - The event being logged. - The TextWriter to write the formatted event to - - - Format the and write it to the . - - - This method creates an that writes to the - . The is passed - to the method. Subclasses should override the - method rather than this method. - - - - - - Does the actual writing of the XML. - - The writer to use to output the event to. - The event to write. - - - Subclasses should override this method to format - the as XML. - - - - - - Flag to indicate if location information should be included in - the XML events. - - - - - The string to replace invalid chars with - - - - - Gets a value indicating whether to include location information in - the XML events. - - - true if location information should be included in the XML - events; otherwise, false. - - - - If is set to true, then the file - name and line number of the statement at the origin of the log - statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - The string to replace characters that can not be expressed in XML with. - - - Not all characters may be expressed in XML. This property contains the - string to replace those that can not with. This defaults to a ?. Set it - to the empty string to simply remove offending characters. For more - details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets - Character replacement will occur in the log message, the property names - and the property values. - - - - - - - Gets the content type output by this layout. - - - As this is the XML layout, the value is always "text/xml". - - - - As this is the XML layout, the value is always "text/xml". - - - - - - Constructs an XmlLayout - - - - - Constructs an XmlLayout. - - - - The LocationInfo option takes a boolean value. By - default, it is set to false which means there will be no location - information output by this layout. If the the option is set to - true, then the file name and line number of the statement - at the origin of the log statement will be output. - - - If you are embedding this layout within an SmtpAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Builds a cache of the element names - - - - - - Does the actual writing of the XML. - - The writer to use to output the event to. - The event to write. - - - Override the base class method - to write the to the . - - - - - - The prefix to use for all generated element names - - - - - The prefix to use for all element names - - - - The default prefix is log4net. Set this property - to change the prefix. If the prefix is set to an empty string - then no prefix will be written. - - - - - - Set whether or not to base64 encode the message. - - - - By default the log message will be written as text to the xml - output. This can cause problems when the message contains binary - data. By setting this to true the contents of the message will be - base64 encoded. If this is set then invalid character replacement - (see ) will not be performed - on the log message. - - - - - - Set whether or not to base64 encode the property values. - - - - By default the properties will be written as text to the xml - output. This can cause problems when one or more properties contain - binary data. By setting this to true the values of the properties - will be base64 encoded. If this is set then invalid character replacement - (see ) will not be performed - on the property values. - - - - - - Layout that formats the log events as XML elements compatible with the log4j schema - - - - Formats the log events according to the http://logging.apache.org/log4j schema. - - - Nicko Cadell - - - - The 1st of January 1970 in UTC - - - - - Constructs an XMLLayoutSchemaLog4j - - - - - Constructs an XMLLayoutSchemaLog4j. - - - - The LocationInfo option takes a boolean value. By - default, it is set to false which means there will be no location - information output by this layout. If the the option is set to - true, then the file name and line number of the statement - at the origin of the log statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Actually do the writing of the xml - - the writer to use - the event to write - - - Generate XML that is compatible with the log4j schema. - - - - - - The version of the log4j schema to use. - - - - Only version 1.2 of the log4j schema is supported. - - - - - - The default object Renderer. - - - - The default renderer supports rendering objects and collections to strings. - - - See the method for details of the output. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface in order to render objects as strings - - - - Certain types require special case conversion to - string form. This conversion is done by an object renderer. - Object renderers implement the - interface. - - - Nicko Cadell - Gert Driesen - - - - Render the object to a string - - The map used to lookup renderers - The object to render - The writer to render to - - - Render the object to a - string. - - - The parameter is - provided to lookup and render other objects. This is - very useful where contains - nested objects of unknown type. The - method can be used to render these objects. - - - - - - Default constructor - - - - Default constructor - - - - - - Render the object to a string - - The map used to lookup renderers - The object to render - The writer to render to - - - Render the object to a string. - - - The parameter is - provided to lookup and render other objects. This is - very useful where contains - nested objects of unknown type. The - method can be used to render these objects. - - - The default renderer supports rendering objects to strings as follows: - - - - Value - Rendered String - - - null - - "(null)" - - - - - - - For a one dimensional array this is the - array type name, an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. - - - For example: int[] {1, 2, 3}. - - - If the array is not one dimensional the - Array.ToString() is returned. - - - - - , & - - - Rendered as an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. - - - For example: {a, b, c}. - - - All collection classes that implement its subclasses, - or generic equivalents all implement the interface. - - - - - - - - Rendered as the key, an equals sign ('='), and the value (using the appropriate - renderer). - - - For example: key=value. - - - - - other - - Object.ToString() - - - - - - - - Render the array argument into a string - - The map used to lookup renderers - the array to render - The writer to render to - - - For a one dimensional array this is the - array type name, an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. For example: - int[] {1, 2, 3}. - - - If the array is not one dimensional the - Array.ToString() is returned. - - - - - - Render the enumerator argument into a string - - The map used to lookup renderers - the enumerator to render - The writer to render to - - - Rendered as an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. For example: - {a, b, c}. - - - - - - Render the DictionaryEntry argument into a string - - The map used to lookup renderers - the DictionaryEntry to render - The writer to render to - - - Render the key, an equals sign ('='), and the value (using the appropriate - renderer). For example: key=value. - - - - - - Map class objects to an . - - - - Maintains a mapping between types that require special - rendering and the that - is used to render them. - - - The method is used to render an - object using the appropriate renderers defined in this map. - - - Nicko Cadell - Gert Driesen - - - - Default Constructor - - - - Default constructor. - - - - - - Render using the appropriate renderer. - - the object to render to a string - the object rendered as a string - - - This is a convenience method used to render an object to a string. - The alternative method - should be used when streaming output to a . - - - - - - Render using the appropriate renderer. - - the object to render to a string - The writer to render to - - - Find the appropriate renderer for the type of the - parameter. This is accomplished by calling the - method. Once a renderer is found, it is - applied on the object and the result is returned - as a . - - - - - - Gets the renderer for the specified object type - - the object to lookup the renderer for - the renderer for - - - Gets the renderer for the specified object type. - - - Syntactic sugar method that calls - with the type of the object parameter. - - - - - - Gets the renderer for the specified type - - the type to lookup the renderer for - the renderer for the specified type - - - Returns the renderer for the specified type. - If no specific renderer has been defined the - will be returned. - - - - - - Internal function to recursively search interfaces - - the type to lookup the renderer for - the renderer for the specified type - - - - Clear the map of renderers - - - - Clear the custom renderers defined by using - . The - cannot be removed. - - - - - - Register an for . - - the type that will be rendered by - the renderer for - - - Register an object renderer for a specific source type. - This renderer will be returned from a call to - specifying the same as an argument. - - - - - - Get the default renderer instance - - the default renderer - - - Get the default renderer - - - - - - Interface implemented by logger repository plugins. - - - - Plugins define additional behavior that can be associated - with a . - The held by the - property is used to store the plugins for a repository. - - - The log4net.Config.PluginAttribute can be used to - attach plugins to repositories created using configuration - attributes. - - - Nicko Cadell - Gert Driesen - - - - Attaches the plugin to the specified . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - This method is called to notify the plugin that - it should stop operating and should detach from - the repository. - - - - - - Gets the name of the plugin. - - - The name of the plugin. - - - - Plugins are stored in the - keyed by name. Each plugin instance attached to a - repository must be a unique name. - - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a PluginCollection instance. - - list to create a readonly wrapper arround - - A PluginCollection wrapper that is read-only. - - - - - Initializes a new instance of the PluginCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the PluginCollection class - that has the specified initial capacity. - - - The number of elements that the new PluginCollection is initially capable of storing. - - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified PluginCollection. - - The PluginCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - - Copies the entire PluginCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire PluginCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the PluginCollection. - - The to be added to the end of the PluginCollection. - The index at which the value has been added. - - - - Removes all elements from the PluginCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the PluginCollection. - - The to check for. - true if is found in the PluginCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the PluginCollection. - - The to locate in the PluginCollection. - - The zero-based index of the first occurrence of - in the entire PluginCollection, if found; otherwise, -1. - - - - - Inserts an element into the PluginCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the PluginCollection. - - The to remove from the PluginCollection. - - The specified was not found in the PluginCollection. - - - - - Removes the element at the specified index of the PluginCollection. - - The zero-based index of the element to remove. - - is less than zero. - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the PluginCollection. - - An for the entire PluginCollection. - - - - Adds the elements of another PluginCollection to the current PluginCollection. - - The PluginCollection whose elements should be added to the end of the current PluginCollection. - The new of the PluginCollection. - - - - Adds the elements of a array to the current PluginCollection. - - The array whose elements should be added to the end of the PluginCollection. - The new of the PluginCollection. - - - - Adds the elements of a collection to the current PluginCollection. - - The collection whose elements should be added to the end of the PluginCollection. - The new of the PluginCollection. - - - - Sets the capacity to the actual number of elements. - - - - - is less than zero. - -or- - is equal to or greater than . - - - - - is less than zero. - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the PluginCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - An object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - - The at the specified index. - - The zero-based index of the element to get or set. - - is less than zero. - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false. - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false. - - - - Gets or sets the number of elements the PluginCollection can contain. - - - The number of elements the PluginCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - - A value - - - - - Supports simple iteration over a . - - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - The current element in the collection. - - - - - - - - Map of repository plugins. - - - - This class is a name keyed map of the plugins that are - attached to a repository. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The repository that the plugins should be attached to. - - - Initialize a new instance of the class with a - repository that the plugins should be attached to. - - - - - - Adds a to the map. - - The to add to the map. - - - The will be attached to the repository when added. - - - If there already exists a plugin with the same name - attached to the repository then the old plugin will - be and replaced with - the new plugin. - - - - - - Removes a from the map. - - The to remove from the map. - - - Remove a specific plugin from this map. - - - - - - Gets a by name. - - The name of the to lookup. - - The from the map with the name specified, or - null if no plugin is found. - - - - Lookup a plugin by name. If the plugin is not found null - will be returned. - - - - - - Gets all possible plugins as a list of objects. - - All possible plugins as a list of objects. - - - Get a collection of all the plugins defined in this map. - - - - - - Base implementation of - - - - Default abstract implementation of the - interface. This base class can be used by implementors - of the interface. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - the name of the plugin - - Initializes a new Plugin with the specified name. - - - - - Attaches this plugin to a . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - This method is called to notify the plugin that - it should stop operating and should detach from - the repository. - - - - - - The name of this plugin. - - - - - The repository this plugin is attached to. - - - - - Gets or sets the name of the plugin. - - - The name of the plugin. - - - - Plugins are stored in the - keyed by name. Each plugin instance attached to a - repository must be a unique name. - - - The name of the plugin must not change one the - plugin has been attached to a repository. - - - - - - The repository for this plugin - - - The that this plugin is attached to. - - - - Gets or sets the that this plugin is - attached to. - - - - - - Plugin that listens for events from the - - - - This plugin publishes an instance of - on a specified . This listens for logging events delivered from - a remote . - - - When an event is received it is relogged within the attached repository - as if it had been raised locally. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Initializes a new instance of the class. - - - The property must be set. - - - - - - Construct with sink Uri. - - The name to publish the sink under in the remoting infrastructure. - See for more details. - - - Initializes a new instance of the class - with specified name. - - - - - - Attaches this plugin to a . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - When the plugin is shutdown the remote logging - sink is disconnected. - - - - - - The fully qualified type of the RemoteLoggingServerPlugin class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the URI of this sink. - - - The URI of this sink. - - - - This is the name under which the object is marshaled. - - - - - - - Delivers objects to a remote sink. - - - - Internal class used to listen for logging events - and deliver them to the local repository. - - - - - - Constructor - - The repository to log to. - - - Initializes a new instance of the for the - specified . - - - - - - Logs the events to the repository. - - The events to log. - - - The events passed are logged to the - - - - - - Obtains a lifetime service object to control the lifetime - policy for this instance. - - null to indicate that this instance should live forever. - - - Obtains a lifetime service object to control the lifetime - policy for this instance. This object should live forever - therefore this implementation returns null. - - - - - - The underlying that events should - be logged to. - - - - - Default implementation of - - - - This default implementation of the - interface is used to create the default subclass - of the object. - - - Nicko Cadell - Gert Driesen - - - - Interface abstracts creation of instances - - - - This interface is used by the to - create new objects. - - - The method is called - to create a named . - - - Implement this interface to create new subclasses of . - - - Nicko Cadell - Gert Driesen - - - - Create a new instance - - The that will own the . - The name of the . - The instance for the specified name. - - - Create a new instance with the - specified name. - - - Called by the to create - new named instances. - - - If the is null then the root logger - must be returned. - - - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Create a new instance - - The that will own the . - The name of the . - The instance for the specified name. - - - Create a new instance with the - specified name. - - - Called by the to create - new named instances. - - - If the is null then the root logger - must be returned. - - - - - - Default internal subclass of - - - - This subclass has no additional behavior over the - class but does allow instances - to be created. - - - - - - Implementation of used by - - - - Internal class used to provide implementation of - interface. Applications should use to get - logger instances. - - - This is one of the central classes in the log4net implementation. One of the - distinctive features of log4net are hierarchical loggers and their - evaluation. The organizes the - instances into a rooted tree hierarchy. - - - The class is abstract. Only concrete subclasses of - can be created. The - is used to create instances of this type for the . - - - Nicko Cadell - Gert Driesen - Aspi Havewala - Douglas de la Torre - - - - This constructor created a new instance and - sets its name. - - The name of the . - - - This constructor is protected and designed to be used by - a subclass that is not abstract. - - - Loggers are constructed by - objects. See for the default - logger creator. - - - - - - Add to the list of appenders of this - Logger instance. - - An appender to add to this logger - - - Add to the list of appenders of this - Logger instance. - - - If is already in the list of - appenders, then it won't be added again. - - - - - - Look for the appender named as name - - The name of the appender to lookup - The appender with the name specified, or null. - - - Returns the named appender, or null if the appender is not found. - - - - - - Remove all previously added appenders from this Logger instance. - - - - Remove all previously added appenders from this Logger instance. - - - This is useful when re-reading configuration information. - - - - - - Remove the appender passed as parameter form the list of appenders. - - The appender to remove - The appender removed from the list - - - Remove the appender passed as parameter form the list of appenders. - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Remove the appender passed as parameter form the list of appenders. - - The name of the appender to remove - The appender removed from the list - - - Remove the named appender passed as parameter form the list of appenders. - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - This generic form is intended to be used by wrappers. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generate a logging event for the specified using - the and . - - - This method must not throw any exception to the caller. - - - - - - This is the most generic printing method that is intended to be used - by wrappers. - - The event being logged. - - - Logs the specified logging event through this logger. - - - This method must not throw any exception to the caller. - - - - - - Checks if this logger is enabled for a given passed as parameter. - - The level to check. - - true if this logger is enabled for level, otherwise false. - - - - Test if this logger is going to log events of the specified . - - - This method must not throw any exception to the caller. - - - - - - Deliver the to the attached appenders. - - The event to log. - - - Call the appenders in the hierarchy starting at - this. If no appenders could be found, emit a - warning. - - - This method calls all the appenders inherited from the - hierarchy circumventing any evaluation of whether to log or not - to log the particular log request. - - - - - - Closes all attached appenders implementing the interface. - - - - Used to ensure that the appenders are correctly shutdown. - - - - - - This is the most generic printing method. This generic form is intended to be used by wrappers - - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generate a logging event for the specified using - the . - - - - - - Creates a new logging event and logs the event without further checks. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generates a logging event and delivers it to the attached - appenders. - - - - - - Creates a new logging event and logs the event without further checks. - - The event being logged. - - - Delivers the logging event to the attached appenders. - - - - - - The fully qualified type of the Logger class. - - - - - The name of this logger. - - - - - The assigned level of this logger. - - - - The level variable need not be - assigned a value in which case it is inherited - form the hierarchy. - - - - - - The parent of this logger. - - - - The parent of this logger. - All loggers have at least one ancestor which is the root logger. - - - - - - Loggers need to know what Hierarchy they are in. - - - - Loggers need to know what Hierarchy they are in. - The hierarchy that this logger is a member of is stored - here. - - - - - - Helper implementation of the interface - - - - - Flag indicating if child loggers inherit their parents appenders - - - - Additivity is set to true by default, that is children inherit - the appenders of their ancestors by default. If this variable is - set to false then the appenders found in the - ancestors of this logger are not used. However, the children - of this logger will inherit its appenders, unless the children - have their additivity flag set to false too. See - the user manual for more details. - - - - - - Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl - - - - - Gets or sets the parent logger in the hierarchy. - - - The parent logger in the hierarchy. - - - - Part of the Composite pattern that makes the hierarchy. - The hierarchy is parent linked rather than child linked. - - - - - - Gets or sets a value indicating if child loggers inherit their parent's appenders. - - - true if child loggers inherit their parent's appenders. - - - - Additivity is set to true by default, that is children inherit - the appenders of their ancestors by default. If this variable is - set to false then the appenders found in the - ancestors of this logger are not used. However, the children - of this logger will inherit its appenders, unless the children - have their additivity flag set to false too. See - the user manual for more details. - - - - - - Gets the effective level for this logger. - - The nearest level in the logger hierarchy. - - - Starting from this logger, searches the logger hierarchy for a - non-null level and returns it. Otherwise, returns the level of the - root logger. - - The Logger class is designed so that this method executes as - quickly as possible. - - - - - Gets or sets the where this - Logger instance is attached to. - - The hierarchy that this logger belongs to. - - - This logger must be attached to a single . - - - - - - Gets or sets the assigned , if any, for this Logger. - - - The of this logger. - - - - The assigned can be null. - - - - - - Get the appenders contained in this logger as an - . - - A collection of the appenders in this logger - - - Get the appenders contained in this logger as an - . If no appenders - can be found, then a is returned. - - - - - - Gets the logger name. - - - The name of the logger. - - - - The name of this logger - - - - - - Gets the where this - Logger instance is attached to. - - - The that this logger belongs to. - - - - Gets the where this - Logger instance is attached to. - - - - - - Construct a new Logger - - the name of the logger - - - Initializes a new instance of the class - with the specified name. - - - - - - Delegate used to handle logger creation event notifications. - - The in which the has been created. - The event args that hold the instance that has been created. - - - Delegate used to handle logger creation event notifications. - - - - - - Provides data for the event. - - - - A event is raised every time a - is created. - - - - - - The created - - - - - Constructor - - The that has been created. - - - Initializes a new instance of the event argument - class,with the specified . - - - - - - Gets the that has been created. - - - The that has been created. - - - - The that has been created. - - - - - - Hierarchical organization of loggers - - - - The casual user should not have to deal with this class - directly. - - - This class is specialized in retrieving loggers by name and - also maintaining the logger hierarchy. Implements the - interface. - - - The structure of the logger hierarchy is maintained by the - method. The hierarchy is such that children - link to their parent but parents do not have any references to their - children. Moreover, loggers can be instantiated in any order, in - particular descendant before ancestor. - - - In case a descendant is created before a particular ancestor, - then it creates a provision node for the ancestor and adds itself - to the provision node. Other descendants of the same ancestor add - themselves to the previously created provision node. - - - Nicko Cadell - Gert Driesen - - - - Base implementation of - - - - Default abstract implementation of the interface. - - - Skeleton implementation of the interface. - All types can extend this type. - - - Nicko Cadell - Gert Driesen - - - - Interface implemented by logger repositories. - - - - This interface is implemented by logger repositories. e.g. - . - - - This interface is used by the - to obtain interfaces. - - - Nicko Cadell - Gert Driesen - - - - Check if the named logger exists in the repository. If so return - its reference, otherwise returns null. - - The name of the logger to lookup - The Logger object with the name specified - - - If the names logger exists it is returned, otherwise - null is returned. - - - - - - Returns all the currently defined loggers as an Array. - - All the defined loggers - - - Returns all the currently defined loggers as an Array. - - - - - - Returns a named logger instance - - The name of the logger to retrieve - The logger object with the name specified - - - Returns a named logger instance. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - - - Shutdown the repository - - - Shutting down a repository will safely close and remove - all appenders in all loggers including the root logger. - - - Some appenders need to be closed before the - application exists. Otherwise, pending logging events might be - lost. - - - The method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Reset the repositories configuration to a default state - - - - Reset all values contained in this instance to their - default state. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the through this repository. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are configured as an Array. - - All the Appenders - - - Returns all the Appenders that are configured as an Array. - - - - - - The name of the repository - - - The name of the repository - - - - The name of the repository. - - - - - - RendererMap accesses the object renderer map for this repository. - - - RendererMap accesses the object renderer map for this repository. - - - - RendererMap accesses the object renderer map for this repository. - - - The RendererMap holds a mapping between types and - objects. - - - - - - The plugin map for this repository. - - - The plugin map for this repository. - - - - The plugin map holds the instances - that have been attached to this repository. - - - - - - Get the level map for the Repository. - - - - Get the level map for the Repository. - - - The level map defines the mappings between - level names and objects in - this repository. - - - - - - The threshold for all events in this repository - - - The threshold for all events in this repository - - - - The threshold for all events in this repository. - - - - - - Flag indicates if this repository has been configured. - - - Flag indicates if this repository has been configured. - - - - Flag indicates if this repository has been configured. - - - - - - Collection of internal messages captured during the most - recent configuration process. - - - - - Event to notify that the repository has been shutdown. - - - Event to notify that the repository has been shutdown. - - - - Event raised when the repository has been shutdown. - - - - - - Event to notify that the repository has had its configuration reset. - - - Event to notify that the repository has had its configuration reset. - - - - Event raised when the repository's configuration has been - reset to default. - - - - - - Event to notify that the repository has had its configuration changed. - - - Event to notify that the repository has had its configuration changed. - - - - Event raised when the repository's configuration has been changed. - - - - - - Repository specific properties - - - Repository specific properties - - - - These properties can be specified on a repository specific basis. - - - - - - Default Constructor - - - - Initializes the repository with default (empty) properties. - - - - - - Construct the repository using specific properties - - the properties to set for this repository - - - Initializes the repository with specified properties. - - - - - - Test if logger exists - - The name of the logger to lookup - The Logger object with the name specified - - - Check if the named logger exists in the repository. If so return - its reference, otherwise returns null. - - - - - - Returns all the currently defined loggers in the repository - - All the defined loggers - - - Returns all the currently defined loggers in the repository as an Array. - - - - - - Return a new logger instance - - The name of the logger to retrieve - The logger object with the name specified - - - Return a new logger instance. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - - - - Shutdown the repository - - - - Shutdown the repository. Can be overridden in a subclass. - This base class implementation notifies the - listeners and all attached plugins of the shutdown event. - - - - - - Reset the repositories configuration to a default state - - - - Reset all values contained in this instance to their - default state. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the logEvent through this repository. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are configured as an Array. - - All the Appenders - - - Returns all the Appenders that are configured as an Array. - - - - - - The fully qualified type of the LoggerRepositorySkeleton class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Adds an object renderer for a specific class. - - The type that will be rendered by the renderer supplied. - The object renderer used to render the object. - - - Adds an object renderer for a specific class. - - - - - - Notify the registered listeners that the repository is shutting down - - Empty EventArgs - - - Notify any listeners that this repository is shutting down. - - - - - - Notify the registered listeners that the repository has had its configuration reset - - Empty EventArgs - - - Notify any listeners that this repository's configuration has been reset. - - - - - - Notify the registered listeners that the repository has had its configuration changed - - Empty EventArgs - - - Notify any listeners that this repository's configuration has changed. - - - - - - Raise a configuration changed event on this repository - - EventArgs.Empty - - - Applications that programmatically change the configuration of the repository should - raise this event notification to notify listeners. - - - - - - The name of the repository - - - The string name of the repository - - - - The name of this repository. The name is - used to store and lookup the repositories - stored by the . - - - - - - The threshold for all events in this repository - - - The threshold for all events in this repository - - - - The threshold for all events in this repository - - - - - - RendererMap accesses the object renderer map for this repository. - - - RendererMap accesses the object renderer map for this repository. - - - - RendererMap accesses the object renderer map for this repository. - - - The RendererMap holds a mapping between types and - objects. - - - - - - The plugin map for this repository. - - - The plugin map for this repository. - - - - The plugin map holds the instances - that have been attached to this repository. - - - - - - Get the level map for the Repository. - - - - Get the level map for the Repository. - - - The level map defines the mappings between - level names and objects in - this repository. - - - - - - Flag indicates if this repository has been configured. - - - Flag indicates if this repository has been configured. - - - - Flag indicates if this repository has been configured. - - - - - - Contains a list of internal messages captures during the - last configuration. - - - - - Event to notify that the repository has been shutdown. - - - Event to notify that the repository has been shutdown. - - - - Event raised when the repository has been shutdown. - - - - - - Event to notify that the repository has had its configuration reset. - - - Event to notify that the repository has had its configuration reset. - - - - Event raised when the repository's configuration has been - reset to default. - - - - - - Event to notify that the repository has had its configuration changed. - - - Event to notify that the repository has had its configuration changed. - - - - Event raised when the repository's configuration has been changed. - - - - - - Repository specific properties - - - Repository specific properties - - - These properties can be specified on a repository specific basis - - - - - Basic Configurator interface for repositories - - - - Interface used by basic configurator to configure a - with a default . - - - A should implement this interface to support - configuration by the . - - - Nicko Cadell - Gert Driesen - - - - Initialize the repository using the specified appender - - the appender to use to log all logging events - - - Configure the repository to route all logging events to the - specified appender. - - - - - - Initialize the repository using the specified appenders - - the appenders to use to log all logging events - - - Configure the repository to route all logging events to the - specified appenders. - - - - - - Configure repository using XML - - - - Interface used by Xml configurator to configure a . - - - A should implement this interface to support - configuration by the . - - - Nicko Cadell - Gert Driesen - - - - Initialize the repository using the specified config - - the element containing the root of the config - - - The schema for the XML configuration data is defined by - the implementation. - - - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Construct with properties - - The properties to pass to this repository. - - - Initializes a new instance of the class. - - - - - - Construct with a logger factory - - The factory to use to create new logger instances. - - - Initializes a new instance of the class with - the specified . - - - - - - Construct with properties and a logger factory - - The properties to pass to this repository. - The factory to use to create new logger instances. - - - Initializes a new instance of the class with - the specified . - - - - - - Test if a logger exists - - The name of the logger to lookup - The Logger object with the name specified - - - Check if the named logger exists in the hierarchy. If so return - its reference, otherwise returns null. - - - - - - Returns all the currently defined loggers in the hierarchy as an Array - - All the defined loggers - - - Returns all the currently defined loggers in the hierarchy as an Array. - The root logger is not included in the returned - enumeration. - - - - - - Return a new logger instance named as the first parameter using - the default factory. - - - - Return a new logger instance named as the first parameter using - the default factory. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - The name of the logger to retrieve - The logger object with the name specified - - - - Shutting down a hierarchy will safely close and remove - all appenders in all loggers including the root logger. - - - - Shutting down a hierarchy will safely close and remove - all appenders in all loggers including the root logger. - - - Some appenders need to be closed before the - application exists. Otherwise, pending logging events might be - lost. - - - The Shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Reset all values contained in this hierarchy instance to their default. - - - - Reset all values contained in this hierarchy instance to their - default. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the logEvent through this hierarchy. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are currently configured - - An array containing all the currently configured appenders - - - Returns all the instances that are currently configured. - All the loggers are searched for appenders. The appenders may also be containers - for appenders and these are also searched for additional loggers. - - - The list returned is unordered but does not contain duplicates. - - - - - - Collect the appenders from an . - The appender may also be a container. - - - - - - - Collect the appenders from an container - - - - - - - Initialize the log4net system using the specified appender - - the appender to use to log all logging events - - - - Initialize the log4net system using the specified appenders - - the appenders to use to log all logging events - - - - Initialize the log4net system using the specified appenders - - the appenders to use to log all logging events - - - This method provides the same functionality as the - method implemented - on this object, but it is protected and therefore can be called by subclasses. - - - - - - Initialize the log4net system using the specified config - - the element containing the root of the config - - - - Initialize the log4net system using the specified config - - the element containing the root of the config - - - This method provides the same functionality as the - method implemented - on this object, but it is protected and therefore can be called by subclasses. - - - - - - Test if this hierarchy is disabled for the specified . - - The level to check against. - - true if the repository is disabled for the level argument, false otherwise. - - - - If this hierarchy has not been configured then this method will - always return true. - - - This method will return true if this repository is - disabled for level object passed as parameter and - false otherwise. - - - See also the property. - - - - - - Clear all logger definitions from the internal hashtable - - - - This call will clear all logger definitions from the internal - hashtable. Invoking this method will irrevocably mess up the - logger hierarchy. - - - You should really know what you are doing before - invoking this method. - - - - - - Return a new logger instance named as the first parameter using - . - - The name of the logger to retrieve - The factory that will make the new logger instance - The logger object with the name specified - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated by the - parameter and linked with its existing - ancestors as well as children. - - - - - - Sends a logger creation event to all registered listeners - - The newly created logger - - Raises the logger creation event. - - - - - Updates all the parents of the specified logger - - The logger to update the parents for - - - This method loops through all the potential parents of - . There 3 possible cases: - - - - No entry for the potential parent of exists - - We create a ProvisionNode for this potential - parent and insert in that provision node. - - - - The entry is of type Logger for the potential parent. - - The entry is 's nearest existing parent. We - update 's parent field with this entry. We also break from - he loop because updating our parent's parent is our parent's - responsibility. - - - - The entry is of type ProvisionNode for this potential parent. - - We add to the list of children for this - potential parent. - - - - - - - - Replace a with a in the hierarchy. - - - - - - We update the links for all the children that placed themselves - in the provision node 'pn'. The second argument 'log' is a - reference for the newly created Logger, parent of all the - children in 'pn'. - - - We loop on all the children 'c' in 'pn'. - - - If the child 'c' has been already linked to a child of - 'log' then there is no need to update 'c'. - - - Otherwise, we set log's parent field to c's parent and set - c's parent field to log. - - - - - - Define or redefine a Level using the values in the argument - - the level values - - - Define or redefine a Level using the values in the argument - - - Supports setting levels via the configuration file. - - - - - - Set a Property using the values in the argument - - the property value - - - Set a Property using the values in the argument. - - - Supports setting property values via the configuration file. - - - - - - The fully qualified type of the Hierarchy class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Event used to notify that a logger has been created. - - - - Event raised when a logger is created. - - - - - - Has no appender warning been emitted - - - - Flag to indicate if we have already issued a warning - about not having an appender warning. - - - - - - Get the root of this hierarchy - - - - Get the root of this hierarchy. - - - - - - Gets or sets the default instance. - - The default - - - The logger factory is used to create logger instances. - - - - - - A class to hold the value, name and display name for a level - - - - A class to hold the value, name and display name for a level - - - - - - Override Object.ToString to return sensible debug info - - string info about this object - - - - Value of the level - - - - If the value is not set (defaults to -1) the value will be looked - up for the current level with the same name. - - - - - - Name of the level - - - The name of the level - - - - The name of the level. - - - - - - Display name for the level - - - The display name of the level - - - - The display name of the level. - - - - - - Used internally to accelerate hash table searches. - - - - Internal class used to improve performance of - string keyed hashtables. - - - The hashcode of the string is cached for reuse. - The string is stored as an interned value. - When comparing two objects for equality - the reference equality of the interned strings is compared. - - - Nicko Cadell - Gert Driesen - - - - Construct key with string name - - - - Initializes a new instance of the class - with the specified name. - - - Stores the hashcode of the string and interns - the string key to optimize comparisons. - - - The Compact Framework 1.0 the - method does not work. On the Compact Framework - the string keys are not interned nor are they - compared by reference. - - - The name of the logger. - - - - Returns a hash code for the current instance. - - A hash code for the current instance. - - - Returns the cached hashcode. - - - - - - Determines whether two instances - are equal. - - The to compare with the current . - - true if the specified is equal to the current ; otherwise, false. - - - - Compares the references of the interned strings. - - - - - - Provision nodes are used where no logger instance has been specified - - - - instances are used in the - when there is no specified - for that node. - - - A provision node holds a list of child loggers on behalf of - a logger that does not exist. - - - Nicko Cadell - Gert Driesen - - - - Create a new provision node with child node - - A child logger to add to this node. - - - Initializes a new instance of the class - with the specified child logger. - - - - - - The sits at the root of the logger hierarchy tree. - - - - The is a regular except - that it provides several guarantees. - - - First, it cannot be assigned a null - level. Second, since the root logger cannot have a parent, the - property always returns the value of the - level field without walking the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Construct a - - The level to assign to the root logger. - - - Initializes a new instance of the class with - the specified logging level. - - - The root logger names itself as "root". However, the root - logger cannot be retrieved by name. - - - - - - The fully qualified type of the RootLogger class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the assigned level value without walking the logger hierarchy. - - The assigned level value without walking the logger hierarchy. - - - Because the root logger cannot have a parent and its level - must not be null this property just returns the - value of . - - - - - - Gets or sets the assigned for the root logger. - - - The of the root logger. - - - - Setting the level of the root logger to a null reference - may have catastrophic results. We prevent this here. - - - - - - Initializes the log4net environment using an XML DOM. - - - - Configures a using an XML DOM. - - - Nicko Cadell - Gert Driesen - - - - Construct the configurator for a hierarchy - - The hierarchy to build. - - - Initializes a new instance of the class - with the specified . - - - - - - Configure the hierarchy by parsing a DOM tree of XML elements. - - The root element to parse. - - - Configure the hierarchy by parsing a DOM tree of XML elements. - - - - - - Parse appenders by IDREF. - - The appender ref element. - The instance of the appender that the ref refers to. - - - Parse an XML element that represents an appender and return - the appender. - - - - - - Parses an appender element. - - The appender element. - The appender instance or null when parsing failed. - - - Parse an XML element that represents an appender and return - the appender instance. - - - - - - Parses a logger element. - - The logger element. - - - Parse an XML element that represents a logger. - - - - - - Parses the root logger element. - - The root element. - - - Parse an XML element that represents the root logger. - - - - - - Parses the children of a logger element. - - The category element. - The logger instance. - Flag to indicate if the logger is the root logger. - - - Parse the child elements of a <logger> element. - - - - - - Parses an object renderer. - - The renderer element. - - - Parse an XML element that represents a renderer. - - - - - - Parses a level element. - - The level element. - The logger object to set the level on. - Flag to indicate if the logger is the root logger. - - - Parse an XML element that represents a level. - - - - - - Sets a parameter on an object. - - The parameter element. - The object to set the parameter on. - - The parameter name must correspond to a writable property - on the object. The value of the parameter is a string, - therefore this function will attempt to set a string - property first. If unable to set a string property it - will inspect the property and its argument type. It will - attempt to call a static method called Parse on the - type of the property. This method will take a single - string argument and return a value that can be used to - set the property. - - - - - Test if an element has no attributes or child elements - - the element to inspect - true if the element has any attributes or child elements, false otherwise - - - - Test if a is constructible with Activator.CreateInstance. - - the type to inspect - true if the type is creatable using a default constructor, false otherwise - - - - Look for a method on the that matches the supplied - - the type that has the method - the name of the method - the method info found - - - The method must be a public instance method on the . - The method must be named or "Add" followed by . - The method must take a single parameter. - - - - - - Converts a string value to a target type. - - The type of object to convert the string to. - The string value to use as the value of the object. - - - An object of type with value or - null when the conversion could not be performed. - - - - - - Creates an object as specified in XML. - - The XML element that contains the definition of the object. - The object type to use if not explicitly specified. - The type that the returned object must be or must inherit from. - The object or null - - - Parse an XML element and create an object instance based on the configuration - data. - - - The type of the instance may be specified in the XML. If not - specified then the is used - as the type. However the type is specified it must support the - type. - - - - - - key: appenderName, value: appender. - - - - - The Hierarchy being configured. - - - - - The fully qualified type of the XmlHierarchyConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - - - - - - - - - - - - - - - - - Delegate used to handle logger repository shutdown event notifications - - The that is shutting down. - Empty event args - - - Delegate used to handle logger repository shutdown event notifications. - - - - - - Delegate used to handle logger repository configuration reset event notifications - - The that has had its configuration reset. - Empty event args - - - Delegate used to handle logger repository configuration reset event notifications. - - - - - - Delegate used to handle event notifications for logger repository configuration changes. - - The that has had its configuration changed. - Empty event arguments. - - - Delegate used to handle event notifications for logger repository configuration changes. - - - - - - Write the name of the current AppDomain to the output - - - - Write the name of the current AppDomain to the output writer - - - Nicko Cadell - - - - Write the name of the current AppDomain to the output - - the writer to write to - null, state is not set - - - Writes name of the current AppDomain to the output . - - - - - - Write the current date to the output - - - - Date pattern converter, uses a to format - the current date and time to the writer as a string. - - - The value of the determines - the formatting of the date. The following values are allowed: - - - Option value - Output - - - ISO8601 - - Uses the formatter. - Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. - - - - DATE - - Uses the formatter. - Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". - - - - ABSOLUTE - - Uses the formatter. - Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". - - - - other - - Any other pattern string uses the formatter. - This formatter passes the pattern string to the - method. - For details on valid patterns see - DateTimeFormatInfo Class. - - - - - - The date and time is in the local time zone and is rendered in that zone. - To output the time in Universal time see . - - - Nicko Cadell - - - - The used to render the date to a string - - - - The used to render the date to a string - - - - - - Initialize the converter options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the current date to the output - - that will receive the formatted result. - null, state is not set - - - Pass the current date and time to the - for it to render it to the writer. - - - The date and time passed is in the local time zone. - - - - - - The fully qualified type of the DatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write an folder path to the output - - - - Write an special path environment folder path to the output writer. - The value of the determines - the name of the variable to output. - should be a value in the enumeration. - - - Ron Grabowski - - - - Write an special path environment folder path to the output - - the writer to write to - null, state is not set - - - Writes the special path environment folder path to the output . - The name of the special path environment folder path to output must be set - using the - property. - - - - - - The fully qualified type of the EnvironmentFolderPathPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write an environment variable to the output - - - - Write an environment variable to the output writer. - The value of the determines - the name of the variable to output. - - - Nicko Cadell - - - - Write an environment variable to the output - - the writer to write to - null, state is not set - - - Writes the environment variable to the output . - The name of the environment variable to output must be set - using the - property. - - - - - - The fully qualified type of the EnvironmentPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the current thread identity to the output - - - - Write the current thread identity to the output writer - - - Nicko Cadell - - - - Write the current thread identity to the output - - the writer to write to - null, state is not set - - - Writes the current thread identity to the output . - - - - - - The fully qualified type of the IdentityPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Pattern converter for literal string instances in the pattern - - - - Writes the literal string value specified in the - property to - the output. - - - Nicko Cadell - - - - Set the next converter in the chain - - The next pattern converter in the chain - The next pattern converter - - - Special case the building of the pattern converter chain - for instances. Two adjacent - literals in the pattern can be represented by a single combined - pattern converter. This implementation detects when a - is added to the chain - after this converter and combines its value with this converter's - literal value. - - - - - - Write the literal to the output - - the writer to write to - null, not set - - - Override the formatting behavior to ignore the FormattingInfo - because we have a literal instead. - - - Writes the value of - to the output . - - - - - - Convert this pattern into the rendered message - - that will receive the formatted result. - null, not set - - - This method is not used. - - - - - - Writes a newline to the output - - - - Writes the system dependent line terminator to the output. - This behavior can be overridden by setting the : - - - - Option Value - Output - - - DOS - DOS or Windows line terminator "\r\n" - - - UNIX - UNIX line terminator "\n" - - - - Nicko Cadell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the current process ID to the output - - - - Write the current process ID to the output writer - - - Nicko Cadell - - - - Write the current process ID to the output - - the writer to write to - null, state is not set - - - Write the current process ID to the output . - - - - - - The fully qualified type of the ProcessIdPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Property pattern converter - - - - This pattern converter reads the thread and global properties. - The thread properties take priority over global properties. - See for details of the - thread properties. See for - details of the global properties. - - - If the is specified then that will be used to - lookup a single property. If no is specified - then all properties will be dumped as a list of key value pairs. - - - Nicko Cadell - - - - Write the property value to the output - - that will receive the formatted result. - null, state is not set - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - - - - A Pattern converter that generates a string of random characters - - - - The converter generates a string of random characters. By default - the string is length 4. This can be changed by setting the - to the string value of the length required. - - - The random characters in the string are limited to uppercase letters - and numbers only. - - - The random number generator used by this class is not cryptographically secure. - - - Nicko Cadell - - - - Shared random number generator - - - - - Length of random string to generate. Default length 4. - - - - - Initialize the converter options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write a randoim string to the output - - the writer to write to - null, state is not set - - - Write a randoim string to the output . - - - - - - The fully qualified type of the RandomStringPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the current threads username to the output - - - - Write the current threads username to the output writer - - - Nicko Cadell - - - - Write the current threads username to the output - - the writer to write to - null, state is not set - - - Write the current threads username to the output . - - - - - - The fully qualified type of the UserNamePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the UTC date time to the output - - - - Date pattern converter, uses a to format - the current date and time in Universal time. - - - See the for details on the date pattern syntax. - - - - Nicko Cadell - - - - Write the current date and time to the output - - that will receive the formatted result. - null, state is not set - - - Pass the current date and time to the - for it to render it to the writer. - - - The date is in Universal time when it is rendered. - - - - - - - The fully qualified type of the UtcDatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Type converter for Boolean. - - - - Supports conversion from string to bool type. - - - - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Convert the source object to the type supported by this object - - the object to convert - the converted object - - - Uses the method to convert the - argument to a . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Exception base type for conversion errors. - - - - This type extends . It - does not add any new functionality but does differentiate the - type of exception being thrown. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - A message to include with the exception. - - - Initializes a new instance of the class - with the specified message. - - - - - - Constructor - - A message to include with the exception. - A nested exception to include. - - - Initializes a new instance of the class - with the specified message and inner exception. - - - - - - Serialization constructor - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Creates a new instance of the class. - - The conversion destination type. - The value to convert. - An instance of the . - - - Creates a new instance of the class. - - - - - - Creates a new instance of the class. - - The conversion destination type. - The value to convert. - A nested exception to include. - An instance of the . - - - Creates a new instance of the class. - - - - - - Register of type converters for specific types. - - - - Maintains a registry of type converters used to convert between - types. - - - Use the and - methods to register new converters. - The and methods - lookup appropriate converters to use. - - - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - Initializes a new instance of the class. - - - - - Static constructor. - - - - This constructor defines the intrinsic type converters. - - - - - - Adds a converter for a specific type. - - The type being converted to. - The type converter to use to convert to the destination type. - - - Adds a converter instance for a specific type. - - - - - - Adds a converter for a specific type. - - The type being converted to. - The type of the type converter to use to convert to the destination type. - - - Adds a converter for a specific type. - - - - - - Gets the type converter to use to convert values to the destination type. - - The type being converted from. - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - Gets the type converter to use to convert values to the destination type. - - - - - - Gets the type converter to use to convert values to the destination type. - - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - Gets the type converter to use to convert values to the destination type. - - - - - - Lookups the type converter to use as specified by the attributes on the - destination type. - - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - - Creates the instance of the type converter. - - The type of the type converter. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - The type specified for the type converter must implement - the or interfaces - and must have a public default (no argument) constructor. - - - - - - The fully qualified type of the ConverterRegistry class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Mapping from to type converter. - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to an encoding - the encoding - - - Uses the method to - convert the argument to an . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Interface supported by type converters - - - - This interface supports conversion from a single type to arbitrary types. - See . - - - Nicko Cadell - - - - Returns whether this converter can convert the object to the specified type - - A Type that represents the type you want to convert to - true if the conversion is possible - - - Test if the type supported by this converter can be converted to the - . - - - - - - Converts the given value object to the specified type, using the arguments - - the object to convert - The Type to convert the value parameter to - the converted object - - - Converts the (which must be of the type supported - by this converter) to the specified.. - - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to an IPAddress - the IPAddress - - - Uses the method to convert the - argument to an . - If that fails then the string is resolved as a DNS hostname. - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - The string is used as the - of the . - - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a PatternLayout - the PatternLayout - - - Creates and returns a new using - the as the - . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Convert between string and - - - - Supports conversion from string to type, - and from a type to a string. - - - The string is used as the - of the . - - - - - - Nicko Cadell - - - - Can the target type be converted to the type supported by this object - - A that represents the type you want to convert to - true if the conversion is possible - - - Returns true if the is - assignable from a type. - - - - - - Converts the given value object to the specified type, using the arguments - - the object to convert - The Type to convert the value parameter to - the converted object - - - Uses the method to convert the - argument to a . - - - - The object cannot be converted to the - . To check for this condition use the - method. - - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a PatternString - the PatternString - - - Creates and returns a new using - the as the - . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a Type - the Type - - - Uses the method to convert the - argument to a . - Additional effort is made to locate partially specified types - by searching the loaded assemblies. - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Attribute used to associate a type converter - - - - Class and Interface level attribute that specifies a type converter - to use with the associated type. - - - To associate a type converter with a target type apply a - TypeConverterAttribute to the target type. Specify the - type of the type converter on the attribute. - - - Nicko Cadell - Gert Driesen - - - - The string type name of the type converter - - - - - Default constructor - - - - Default constructor - - - - - - Create a new type converter attribute for the specified type name - - The string type name of the type converter - - - The type specified must implement the - or the interfaces. - - - - - - Create a new type converter attribute for the specified type - - The type of the type converter - - - The type specified must implement the - or the interfaces. - - - - - - The string type name of the type converter - - - The string type name of the type converter - - - - The type specified must implement the - or the interfaces. - - - - - - A straightforward implementation of the interface. - - - - This is the default implementation of the - interface. Implementors of the interface - should aggregate an instance of this type. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Append on on all attached appenders. - - The event being logged. - The number of appenders called. - - - Calls the method on all - attached appenders. - - - - - - Append on on all attached appenders. - - The array of events being logged. - The number of appenders called. - - - Calls the method on all - attached appenders. - - - - - - Calls the DoAppende method on the with - the objects supplied. - - The appender - The events - - - If the supports the - interface then the will be passed - through using that interface. Otherwise the - objects in the array will be passed one at a time. - - - - - - Attaches an appender. - - The appender to add. - - - If the appender is already in the list it won't be added again. - - - - - - Gets an attached appender with the specified name. - - The name of the appender to get. - - The appender with the name specified, or null if no appender with the - specified name is found. - - - - Lookup an attached appender by name. - - - - - - Removes all attached appenders. - - - - Removes and closes all attached appenders - - - - - - Removes the specified appender from the list of attached appenders. - - The appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - List of appenders - - - - - Array of appenders, used to cache the m_appenderList - - - - - The fully qualified type of the AppenderAttachedImpl class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets all attached appenders. - - - A collection of attached appenders, or null if there - are no attached appenders. - - - - The read only collection of all currently attached appenders. - - - - - - This class aggregates several PropertiesDictionary collections together. - - - - Provides a dictionary style lookup over an ordered list of - collections. - - - Nicko Cadell - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Add a Properties Dictionary to this composite collection - - the properties to add - - - Properties dictionaries added first take precedence over dictionaries added - later. - - - - - - Flatten this composite collection into a single properties dictionary - - the flattened dictionary - - - Reduces the collection of ordered dictionaries to a single dictionary - containing the resultant values for the keys. - - - - - - Gets the value of a property - - - The value for the property with the specified key - - - - Looks up the value for the specified. - The collections are searched - in the order in which they were added to this collection. The value - returned is the value held by the first collection that contains - the specified key. - - - If none of the collections contain the specified key then - null is returned. - - - - - - Base class for Context Properties implementations - - - - This class defines a basic property get set accessor - - - Nicko Cadell - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Gets or sets the value of a property - - - - - - Wrapper class used to map converter names to converter types - - - - Pattern converter info class used during configuration by custom - PatternString and PatternLayer converters. - - - - - - default constructor - - - - - - - - - - - Gets or sets the name of the conversion pattern - - - - The name of the pattern in the format string - - - - - - Gets or sets the type of the converter - - - - The value specified must extend the - type. - - - - - - - - - - - Subclass of that maintains a count of - the number of bytes written. - - - - This writer counts the number of bytes written. - - - Nicko Cadell - Gert Driesen - - - - that does not leak exceptions - - - - does not throw exceptions when things go wrong. - Instead, it delegates error handling to its . - - - Nicko Cadell - Gert Driesen - - - - Adapter that extends and forwards all - messages to an instance of . - - - - Adapter that extends and forwards all - messages to an instance of . - - - Nicko Cadell - - - - The writer to forward messages to - - - - - Create an instance of that forwards all - messages to a . - - The to forward to - - - Create an instance of that forwards all - messages to a . - - - - - - Closes the writer and releases any system resources associated with the writer - - - - - - - - - Dispose this writer - - flag indicating if we are being disposed - - - Dispose this writer - - - - - - Flushes any buffered output - - - - Clears all buffers for the writer and causes any buffered data to be written - to the underlying device - - - - - - Writes a character to the wrapped TextWriter - - the value to write to the TextWriter - - - Writes a character to the wrapped TextWriter - - - - - - Writes a character buffer to the wrapped TextWriter - - the data buffer - the start index - the number of characters to write - - - Writes a character buffer to the wrapped TextWriter - - - - - - Writes a string to the wrapped TextWriter - - the value to write to the TextWriter - - - Writes a string to the wrapped TextWriter - - - - - - Gets or sets the underlying . - - - The underlying . - - - - Gets or sets the underlying . - - - - - - The Encoding in which the output is written - - - The - - - - The Encoding in which the output is written - - - - - - Gets an object that controls formatting - - - The format provider - - - - Gets an object that controls formatting - - - - - - Gets or sets the line terminator string used by the TextWriter - - - The line terminator to use - - - - Gets or sets the line terminator string used by the TextWriter - - - - - - Constructor - - the writer to actually write to - the error handler to report error to - - - Create a new QuietTextWriter using a writer and error handler - - - - - - Writes a character to the underlying writer - - the char to write - - - Writes a character to the underlying writer - - - - - - Writes a buffer to the underlying writer - - the buffer to write - the start index to write from - the number of characters to write - - - Writes a buffer to the underlying writer - - - - - - Writes a string to the output. - - The string data to write to the output. - - - Writes a string to the output. - - - - - - Closes the underlying output writer. - - - - Closes the underlying output writer. - - - - - - The error handler instance to pass all errors to - - - - - Flag to indicate if this writer is closed - - - - - Gets or sets the error handler that all errors are passed to. - - - The error handler that all errors are passed to. - - - - Gets or sets the error handler that all errors are passed to. - - - - - - Gets a value indicating whether this writer is closed. - - - true if this writer is closed, otherwise false. - - - - Gets a value indicating whether this writer is closed. - - - - - - Constructor - - The to actually write to. - The to report errors to. - - - Creates a new instance of the class - with the specified and . - - - - - - Writes a character to the underlying writer and counts the number of bytes written. - - the char to write - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Writes a buffer to the underlying writer and counts the number of bytes written. - - the buffer to write - the start index to write from - the number of characters to write - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Writes a string to the output and counts the number of bytes written. - - The string data to write to the output. - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Total number of bytes written. - - - - - Gets or sets the total number of bytes written. - - - The total number of bytes written. - - - - Gets or sets the total number of bytes written. - - - - - - A fixed size rolling buffer of logging events. - - - - An array backed fixed size leaky bucket. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The maximum number of logging events in the buffer. - - - Initializes a new instance of the class with - the specified maximum number of buffered logging events. - - - The argument is not a positive integer. - - - - Appends a to the buffer. - - The event to append to the buffer. - The event discarded from the buffer, if the buffer is full, otherwise null. - - - Append an event to the buffer. If the buffer still contains free space then - null is returned. If the buffer is full then an event will be dropped - to make space for the new event, the event dropped is returned. - - - - - - Get and remove the oldest event in the buffer. - - The oldest logging event in the buffer - - - Gets the oldest (first) logging event in the buffer and removes it - from the buffer. - - - - - - Pops all the logging events from the buffer into an array. - - An array of all the logging events in the buffer. - - - Get all the events in the buffer and clear the buffer. - - - - - - Clear the buffer - - - - Clear the buffer of all events. The events in the buffer are lost. - - - - - - Gets the th oldest event currently in the buffer. - - The th oldest event currently in the buffer. - - - If is outside the range 0 to the number of events - currently in the buffer, then null is returned. - - - - - - Gets the maximum size of the buffer. - - The maximum size of the buffer. - - - Gets the maximum size of the buffer - - - - - - Gets the number of logging events in the buffer. - - The number of logging events in the buffer. - - - This number is guaranteed to be in the range 0 to - (inclusive). - - - - - - An always empty . - - - - A singleton implementation of the - interface that always represents an empty collection. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Copies the elements of the to an - , starting at a particular Array index. - - The one-dimensional - that is the destination of the elements copied from - . The Array must have zero-based - indexing. - The zero-based index in array at which - copying begins. - - - As the collection is empty no values are copied into the array. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - The singleton instance of the empty collection. - - - - - Gets the singleton instance of the empty collection. - - The singleton instance of the empty collection. - - - Gets the singleton instance of the empty collection. - - - - - - Gets a value indicating if access to the is synchronized (thread-safe). - - - true if access to the is synchronized (thread-safe); otherwise, false. - - - - For the this property is always true. - - - - - - Gets the number of elements contained in the . - - - The number of elements contained in the . - - - - As the collection is empty the is always 0. - - - - - - Gets an object that can be used to synchronize access to the . - - - An object that can be used to synchronize access to the . - - - - As the collection is empty and thread safe and synchronized this instance is also - the object. - - - - - - An always empty . - - - - A singleton implementation of the - interface that always represents an empty collection. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Copies the elements of the to an - , starting at a particular Array index. - - The one-dimensional - that is the destination of the elements copied from - . The Array must have zero-based - indexing. - The zero-based index in array at which - copying begins. - - - As the collection is empty no values are copied into the array. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - Adds an element with the provided key and value to the - . - - The to use as the key of the element to add. - The to use as the value of the element to add. - - - As the collection is empty no new values can be added. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - Removes all elements from the . - - - - As the collection is empty no values can be removed. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - Determines whether the contains an element - with the specified key. - - The key to locate in the . - false - - - As the collection is empty the method always returns false. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - Removes the element with the specified key from the . - - The key of the element to remove. - - - As the collection is empty no values can be removed. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - The singleton instance of the empty dictionary. - - - - - Gets the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets a value indicating if access to the is synchronized (thread-safe). - - - true if access to the is synchronized (thread-safe); otherwise, false. - - - - For the this property is always true. - - - - - - Gets the number of elements contained in the - - - The number of elements contained in the . - - - - As the collection is empty the is always 0. - - - - - - Gets an object that can be used to synchronize access to the . - - - An object that can be used to synchronize access to the . - - - - As the collection is empty and thread safe and synchronized this instance is also - the object. - - - - - - Gets a value indicating whether the has a fixed size. - - true - - - As the collection is empty always returns true. - - - - - - Gets a value indicating whether the is read-only. - - true - - - As the collection is empty always returns true. - - - - - - Gets an containing the keys of the . - - An containing the keys of the . - - - As the collection is empty a is returned. - - - - - - Gets an containing the values of the . - - An containing the values of the . - - - As the collection is empty a is returned. - - - - - - Gets or sets the element with the specified key. - - The key of the element to get or set. - null - - - As the collection is empty no values can be looked up or stored. - If the index getter is called then null is returned. - A is thrown if the setter is called. - - - This dictionary is always empty and cannot be modified. - - - - Contain the information obtained when parsing formatting modifiers - in conversion modifiers. - - - - Holds the formatting information extracted from the format string by - the . This is used by the - objects when rendering the output. - - - Nicko Cadell - Gert Driesen - - - - Defaut Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - - - Initializes a new instance of the class - with the specified parameters. - - - - - - Gets or sets the minimum value. - - - The minimum value. - - - - Gets or sets the minimum value. - - - - - - Gets or sets the maximum value. - - - The maximum value. - - - - Gets or sets the maximum value. - - - - - - Gets or sets a flag indicating whether left align is enabled - or not. - - - A flag indicating whether left align is enabled or not. - - - - Gets or sets a flag indicating whether left align is enabled or not. - - - - - - Implementation of Properties collection for the - - - - This class implements a properties collection that is thread safe and supports both - storing properties and capturing a read only copy of the current propertied. - - - This class is optimized to the scenario where the properties are read frequently - and are modified infrequently. - - - Nicko Cadell - - - - The read only copy of the properties. - - - - This variable is declared volatile to prevent the compiler and JIT from - reordering reads and writes of this thread performed on different threads. - - - - - - Lock object used to synchronize updates within this instance - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property from the global context - - the key for the entry to remove - - - Removing an entry from the global context properties is relatively expensive compared - with reading a value. - - - - - - Clear the global context properties - - - - - Get a readonly immutable copy of the properties - - the current global context properties - - - This implementation is fast because the GlobalContextProperties class - stores a readonly copy of the properties. - - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Reading the value for a key is faster than setting the value. - When the value is written a new read only copy of - the properties is created. - - - - - - Manages a mapping from levels to - - - - Manages an ordered mapping from instances - to subclasses. - - - Nicko Cadell - - - - Default constructor - - - - Initialise a new instance of . - - - - - - Add a to this mapping - - the entry to add - - - If a has previously been added - for the same then that entry will be - overwritten. - - - - - - Lookup the mapping for the specified level - - the level to lookup - the for the level or null if no mapping found - - - Lookup the value for the specified level. Finds the nearest - mapping value for the level that is equal to or less than the - specified. - - - If no mapping could be found then null is returned. - - - - - - Initialize options - - - - Caches the sorted list of in an array - - - - - - Implementation of Properties collection for the - - - - Class implements a collection of properties that is specific to each thread. - The class is not synchronized as each thread has its own . - - - This class stores its properties in a slot on the named - log4net.Util.LogicalThreadContextProperties. - - - The requires a link time - for the - . - If the calling code does not have this permission then this context will be disabled. - It will not store any property values set on it. - - - Nicko Cadell - - - - Flag used to disable this context if we don't have permission to access the CallContext. - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property - - the key for the entry to remove - - - Remove the value for the specified from the context. - - - - - - Clear all the context properties - - - - Clear all the context properties - - - - - - Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. - - create the dictionary if it does not exist, otherwise return null if is does not exist - the properties for this thread - - - The collection returned is only to be used on the calling thread. If the - caller needs to share the collection between different threads then the - caller must clone the collection before doings so. - - - - - - Gets the call context get data. - - The peroperties dictionary stored in the call context - - The method has a - security link demand, therfore we must put the method call in a seperate method - that we can wrap in an exception handler. - - - - - Sets the call context data. - - The properties. - - The method has a - security link demand, therfore we must put the method call in a seperate method - that we can wrap in an exception handler. - - - - - The fully qualified type of the LogicalThreadContextProperties class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Get or set the property value for the specified. - - - - - - - - - - - - - Outputs log statements from within the log4net assembly. - - - - Log4net components cannot make log4net logging calls. However, it is - sometimes useful for the user to learn about what log4net is - doing. - - - All log4net internal debug calls go to the standard output stream - whereas internal error messages are sent to the standard error output - stream. - - - Nicko Cadell - Gert Driesen - - - - Formats Prefix, Source, and Message in the same format as the value - sent to Console.Out and Trace.Write. - - - - - - Initializes a new instance of the class. - - - - - - - - - Static constructor that initializes logging by reading - settings from the application configuration file. - - - - The log4net.Internal.Debug application setting - controls internal debugging. This setting should be set - to true to enable debugging. - - - The log4net.Internal.Quiet application setting - suppresses all internal logging including error messages. - This setting should be set to true to enable message - suppression. - - - - - - Raises the LogReceived event when an internal messages is received. - - - - - - - - - Writes log4net internal debug messages to the - standard output stream. - - - The message to log. - - - All internal debug messages are prepended with - the string "log4net: ". - - - - - - Writes log4net internal debug messages to the - standard output stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal debug messages are prepended with - the string "log4net: ". - - - - - - Writes log4net internal warning messages to the - standard error stream. - - The Type that generated this message. - The message to log. - - - All internal warning messages are prepended with - the string "log4net:WARN ". - - - - - - Writes log4net internal warning messages to the - standard error stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal warning messages are prepended with - the string "log4net:WARN ". - - - - - - Writes log4net internal error messages to the - standard error stream. - - The Type that generated this message. - The message to log. - - - All internal error messages are prepended with - the string "log4net:ERROR ". - - - - - - Writes log4net internal error messages to the - standard error stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal debug messages are prepended with - the string "log4net:ERROR ". - - - - - - Writes output to the standard output stream. - - The message to log. - - - Writes to both Console.Out and System.Diagnostics.Trace. - Note that the System.Diagnostics.Trace is not supported - on the Compact Framework. - - - If the AppDomain is not configured with a config file then - the call to System.Diagnostics.Trace may fail. This is only - an issue if you are programmatically creating your own AppDomains. - - - - - - Writes output to the standard error stream. - - The message to log. - - - Writes to both Console.Error and System.Diagnostics.Trace. - Note that the System.Diagnostics.Trace is not supported - on the Compact Framework. - - - If the AppDomain is not configured with a config file then - the call to System.Diagnostics.Trace may fail. This is only - an issue if you are programmatically creating your own AppDomains. - - - - - - Default debug level - - - - - In quietMode not even errors generate any output. - - - - - The event raised when an internal message has been received. - - - - - The Type that generated the internal message. - - - - - The DateTime stamp of when the internal message was received. - - - - - A string indicating the severity of the internal message. - - - "log4net: ", - "log4net:ERROR ", - "log4net:WARN " - - - - - The internal log message. - - - - - The Exception related to the message. - - - Optional. Will be null if no Exception was passed. - - - - - Gets or sets a value indicating whether log4net internal logging - is enabled or disabled. - - - true if log4net internal logging is enabled, otherwise - false. - - - - When set to true, internal debug level logging will be - displayed. - - - This value can be set by setting the application setting - log4net.Internal.Debug in the application configuration - file. - - - The default value is false, i.e. debugging is - disabled. - - - - - The following example enables internal debugging using the - application configuration file : - - - - - - - - - - - - - Gets or sets a value indicating whether log4net should generate no output - from internal logging, not even for errors. - - - true if log4net should generate no output at all from internal - logging, otherwise false. - - - - When set to true will cause internal logging at all levels to be - suppressed. This means that no warning or error reports will be logged. - This option overrides the setting and - disables all debug also. - - This value can be set by setting the application setting - log4net.Internal.Quiet in the application configuration file. - - - The default value is false, i.e. internal logging is not - disabled. - - - - The following example disables internal logging using the - application configuration file : - - - - - - - - - - - - - - - - - Test if LogLog.Debug is enabled for output. - - - true if Debug is enabled - - - - Test if LogLog.Debug is enabled for output. - - - - - - Test if LogLog.Warn is enabled for output. - - - true if Warn is enabled - - - - Test if LogLog.Warn is enabled for output. - - - - - - Test if LogLog.Error is enabled for output. - - - true if Error is enabled - - - - Test if LogLog.Error is enabled for output. - - - - - - Subscribes to the LogLog.LogReceived event and stores messages - to the supplied IList instance. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Represents a native error code and message. - - - - Represents a Win32 platform native error. - - - Nicko Cadell - Gert Driesen - - - - Create an instance of the class with the specified - error number and message. - - The number of the native error. - The message of the native error. - - - Create an instance of the class with the specified - error number and message. - - - - - - Create a new instance of the class for the last Windows error. - - - An instance of the class for the last windows error. - - - - The message for the error number is lookup up using the - native Win32 FormatMessage function. - - - - - - Create a new instance of the class. - - the error number for the native error - - An instance of the class for the specified - error number. - - - - The message for the specified error number is lookup up using the - native Win32 FormatMessage function. - - - - - - Retrieves the message corresponding with a Win32 message identifier. - - Message identifier for the requested message. - - The message corresponding with the specified message identifier. - - - - The message will be searched for in system message-table resource(s) - using the native FormatMessage function. - - - - - - Return error information string - - error information string - - - Return error information string - - - - - - Formats a message string. - - Formatting options, and how to interpret the parameter. - Location of the message definition. - Message identifier for the requested message. - Language identifier for the requested message. - If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . - If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. - Pointer to an array of values that are used as insert values in the formatted message. - - - The function requires a message definition as input. The message definition can come from a - buffer passed into the function. It can come from a message table resource in an - already-loaded module. Or the caller can ask the function to search the system's message - table resource(s) for the message definition. The function finds the message definition - in a message table resource based on a message identifier and a language identifier. - The function copies the formatted message text to an output buffer, processing any embedded - insert sequences if requested. - - - To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. - - - - - If the function succeeds, the return value is the number of TCHARs stored in the output - buffer, excluding the terminating null character. - - - If the function fails, the return value is zero. To get extended error information, - call . - - - - - - Gets the number of the native error. - - - The number of the native error. - - - - Gets the number of the native error. - - - - - - Gets the message of the native error. - - - The message of the native error. - - - - - Gets the message of the native error. - - - - - An always empty . - - - - A singleton implementation of the over a collection - that is empty and not modifiable. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Test if the enumerator can advance, if so advance. - - false as the cannot advance. - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will always return false. - - - - - - Resets the enumerator back to the start. - - - - As the enumerator is over an empty collection does nothing. - - - - - - The singleton instance of the . - - - - - Gets the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets the current object from the enumerator. - - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current key from the enumerator. - - - Throws an exception because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current value from the enumerator. - - The current value from the enumerator. - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current entry from the enumerator. - - - Throws an because the - never has a current entry. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - An always empty . - - - - A singleton implementation of the over a collection - that is empty and not modifiable. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Test if the enumerator can advance, if so advance - - false as the cannot advance. - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will always return false. - - - - - - Resets the enumerator back to the start. - - - - As the enumerator is over an empty collection does nothing. - - - - - - The singleton instance of the . - - - - - Get the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets the current object from the enumerator. - - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - A SecurityContext used when a SecurityContext is not required - - - - The is a no-op implementation of the - base class. It is used where a - is required but one has not been provided. - - - Nicko Cadell - - - - Singleton instance of - - - - Singleton instance of - - - - - - Private constructor - - - - Private constructor for singleton pattern. - - - - - - Impersonate this SecurityContext - - State supplied by the caller - null - - - No impersonation is done and null is always returned. - - - - - - Implements log4net's default error handling policy which consists - of emitting a message for the first error in an appender and - ignoring all subsequent errors. - - - - The error message is processed using the LogLog sub-system. - - - This policy aims at protecting an otherwise working application - from being flooded with error messages when logging fails. - - - Nicko Cadell - Gert Driesen - Ron Grabowski - - - - Default Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - The prefix to use for each message. - - - Initializes a new instance of the class - with the specified prefix. - - - - - - Reset the error handler back to its initial disabled state. - - - - - Log an Error - - The error message. - The exception. - The internal error code. - - - Sends the error information to 's Error method. - - - - - - Log an Error - - The error message. - The exception. - - - Prints the message and the stack trace of the exception on the standard - error output stream. - - - - - - Log an error - - The error message. - - - Print a the error message passed as parameter on the standard - error output stream. - - - - - - The date the error was recorded. - - - - - Flag to indicate if it is the first error - - - - - The message recorded during the first error. - - - - - The exception recorded during the first error. - - - - - The error code recorded during the first error. - - - - - String to prefix each message with - - - - - The fully qualified type of the OnlyOnceErrorHandler class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Is error logging enabled - - - - Is error logging enabled. Logging is only enabled for the - first error delivered to the . - - - - - - The date the first error that trigged this error handler occured. - - - - - The message from the first error that trigged this error handler. - - - - - The exception from the first error that trigged this error handler. - - - May be . - - - - - The error code from the first error that trigged this error handler. - - - Defaults to - - - - - A convenience class to convert property values to specific types. - - - - Utility functions for converting types and parsing values. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Converts a string to a value. - - String to convert. - The default value. - The value of . - - - If is "true", then true is returned. - If is "false", then false is returned. - Otherwise, is returned. - - - - - - Parses a file size into a number. - - String to parse. - The default value. - The value of . - - - Parses a file size of the form: number[KB|MB|GB] into a - long value. It is scaled with the appropriate multiplier. - - - is returned when - cannot be converted to a value. - - - - - - Converts a string to an object. - - The target type to convert to. - The string to convert to an object. - - The object converted from a string or null when the - conversion failed. - - - - Converts a string to an object. Uses the converter registry to try - to convert the string value into the specified target type. - - - - - - Checks if there is an appropriate type conversion from the source type to the target type. - - The type to convert from. - The type to convert to. - true if there is a conversion from the source type to the target type. - - Checks if there is an appropriate type conversion from the source type to the target type. - - - - - - - Converts an object to the target type. - - The object to convert to the target type. - The type to convert to. - The converted object. - - - Converts an object to the target type. - - - - - - Instantiates an object given a class name. - - The fully qualified class name of the object to instantiate. - The class to which the new object should belong. - The object to return in case of non-fulfillment. - - An instance of the or - if the object could not be instantiated. - - - - Checks that the is a subclass of - . If that test fails or the object could - not be instantiated, then is returned. - - - - - - Performs variable substitution in string from the - values of keys found in . - - The string on which variable substitution is performed. - The dictionary to use to lookup variables. - The result of the substitutions. - - - The variable substitution delimiters are ${ and }. - - - For example, if props contains key=value, then the call - - - - string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); - - - - will set the variable s to "Value of key is value.". - - - If no value could be found for the specified key, then substitution - defaults to an empty string. - - - For example, if system properties contains no value for the key - "nonExistentKey", then the call - - - - string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); - - - - will set s to "Value of nonExistentKey is []". - - - An Exception is thrown if contains a start - delimiter "${" which is not balanced by a stop delimiter "}". - - - - - - Converts the string representation of the name or numeric value of one or - more enumerated constants to an equivalent enumerated object. - - The type to convert to. - The enum string value. - If true, ignore case; otherwise, regard case. - An object of type whose value is represented by . - - - - The fully qualified type of the OptionConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Most of the work of the class - is delegated to the PatternParser class. - - - - The PatternParser processes a pattern string and - returns a chain of objects. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The pattern to parse. - - - Initializes a new instance of the class - with the specified pattern string. - - - - - - Parses the pattern into a chain of pattern converters. - - The head of a chain of pattern converters. - - - Parses the pattern into a chain of pattern converters. - - - - - - Build the unified cache of converters from the static and instance maps - - the list of all the converter names - - - Build the unified cache of converters from the static and instance maps - - - - - - Internal method to parse the specified pattern to find specified matches - - the pattern to parse - the converter names to match in the pattern - - - The matches param must be sorted such that longer strings come before shorter ones. - - - - - - Process a parsed literal - - the literal text - - - - Process a parsed converter pattern - - the name of the converter - the optional option for the converter - the formatting info for the converter - - - - Resets the internal state of the parser and adds the specified pattern converter - to the chain. - - The pattern converter to add. - - - - The first pattern converter in the chain - - - - - the last pattern converter in the chain - - - - - The pattern - - - - - Internal map of converter identifiers to converter types - - - - This map overrides the static s_globalRulesRegistry map. - - - - - - The fully qualified type of the PatternParser class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Get the converter registry used by this parser - - - The converter registry used by this parser - - - - Get the converter registry used by this parser - - - - - - Sort strings by length - - - - that orders strings by string length. - The longest strings are placed first - - - - - - This class implements a patterned string. - - - - This string has embedded patterns that are resolved and expanded - when the string is formatted. - - - This class functions similarly to the - in that it accepts a pattern and renders it to a string. Unlike the - however the PatternString - does not render the properties of a specific but - of the process in general. - - - The recognized conversion pattern names are: - - - - Conversion Pattern Name - Effect - - - appdomain - - - Used to output the friendly name of the current AppDomain. - - - - - date - - - Used to output the current date and time in the local time zone. - To output the date in universal time use the %utcdate pattern. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %date{HH:mm:ss,fff} or - %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %date{ISO8601} or %date{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - env - - - Used to output the a specific environment variable. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %env{COMPUTERNAME} would include the value - of the COMPUTERNAME environment variable. - - - The env pattern is not supported on the .NET Compact Framework. - - - - - identity - - - Used to output the user name for the currently active user - (Principal.Identity.Name). - - - - - newline - - - Outputs the platform dependent line separator character or - characters. - - - This conversion pattern name offers the same performance as using - non-portable line separator strings such as "\n", or "\r\n". - Thus, it is the preferred way of specifying a line separator. - - - - - processid - - - Used to output the system process ID for the current process. - - - - - property - - - Used to output a specific context property. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %property{user} would include the value - from the property that is keyed by the string 'user'. Each property value - that is to be included in the log must be specified separately. - Properties are stored in logging contexts. By default - the log4net:HostName property is set to the name of machine on - which the event was originally logged. - - - If no key is specified, e.g. %property then all the keys and their - values are printed in a comma separated list. - - - The properties of an event are combined from a number of different - contexts. These are listed below in the order in which they are searched. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - random - - - Used to output a random string of characters. The string is made up of - uppercase letters and numbers. By default the string is 4 characters long. - The length of the string can be specified within braces directly following the - pattern specifier, e.g. %random{8} would output an 8 character string. - - - - - username - - - Used to output the WindowsIdentity for the currently - active user. - - - - - utcdate - - - Used to output the date of the logging event in universal time. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %utcdate{HH:mm:ss,fff} or - %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %utcdate{ISO8601} or %utcdate{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - % - - - The sequence %% outputs a single percent sign. - - - - - - Additional pattern converters may be registered with a specific - instance using or - . - - - See the for details on the - format modifiers supported by the patterns. - - - Nicko Cadell - - - - Internal map of converter identifiers to converter types. - - - - - the pattern - - - - - the head of the pattern converter chain - - - - - patterns defined on this PatternString only - - - - - Initialize the global registry - - - - - Default constructor - - - - Initialize a new instance of - - - - - - Constructs a PatternString - - The pattern to use with this PatternString - - - Initialize a new instance of with the pattern specified. - - - - - - Initialize object options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Create the used to parse the pattern - - the pattern to parse - The - - - Returns PatternParser used to parse the conversion string. Subclasses - may override this to return a subclass of PatternParser which recognize - custom conversion pattern name. - - - - - - Produces a formatted string as specified by the conversion pattern. - - The TextWriter to write the formatted event to - - - Format the pattern to the . - - - - - - Format the pattern as a string - - the pattern formatted as a string - - - Format the pattern to a string. - - - - - - Add a converter to this PatternString - - the converter info - - - This version of the method is used by the configurator. - Programmatic users should use the alternative method. - - - - - - Add a converter to this PatternString - - the name of the conversion pattern for this converter - the type of the converter - - - Add a converter to this PatternString - - - - - - Gets or sets the pattern formatting string - - - The pattern formatting string - - - - The ConversionPattern option. This is the string which - controls formatting and consists of a mix of literal content and - conversion specifiers. - - - - - - String keyed object map. - - - - While this collection is serializable only member - objects that are serializable will - be serialized along with this collection. - - - Nicko Cadell - Gert Driesen - - - - String keyed object map that is read only. - - - - This collection is readonly and cannot be modified. - - - While this collection is serializable only member - objects that are serializable will - be serialized along with this collection. - - - Nicko Cadell - Gert Driesen - - - - The Hashtable used to store the properties data - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Copy Constructor - - properties to copy - - - Initializes a new instance of the class. - - - - - - Deserialization constructor - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Gets the key names. - - An array of all the keys. - - - Gets the key names. - - - - - - Test if the dictionary contains a specified key - - the key to look for - true if the dictionary contains the specified key - - - Test if the dictionary contains a specified key - - - - - - Serializes this object into the provided. - - The to populate with data. - The destination for this serialization. - - - Serializes this object into the provided. - - - - - - See - - - - - See - - - - - - See - - - - - - - Remove all properties from the properties collection - - - - - See - - - - - - - See - - - - - - - See - - - - - Gets or sets the value of the property with the specified key. - - - The value of the property with the specified key. - - The key of the property to get or set. - - - The property value will only be serialized if it is serializable. - If it cannot be serialized it will be silently ignored if - a serialization operation is performed. - - - - - - The hashtable used to store the properties - - - The internal collection used to store the properties - - - - The hashtable used to store the properties - - - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - The number of properties in this collection - - - - - See - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - properties to copy - - - Initializes a new instance of the class. - - - - - - Initializes a new instance of the class - with serialized data. - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Because this class is sealed the serialization constructor is private. - - - - - - Remove the entry with the specified key from this dictionary - - the key for the entry to remove - - - Remove the entry with the specified key from this dictionary - - - - - - See - - an enumerator - - - Returns a over the contest of this collection. - - - - - - See - - the key to remove - - - Remove the entry with the specified key from this dictionary - - - - - - See - - the key to lookup in the collection - true if the collection contains the specified key - - - Test if this collection contains a specified key. - - - - - - Remove all properties from the properties collection - - - - Remove all properties from the properties collection - - - - - - See - - the key - the value to store for the key - - - Store a value for the specified . - - - Thrown if the is not a string - - - - See - - - - - - - See - - - - - Gets or sets the value of the property with the specified key. - - - The value of the property with the specified key. - - The key of the property to get or set. - - - The property value will only be serialized if it is serializable. - If it cannot be serialized it will be silently ignored if - a serialization operation is performed. - - - - - - See - - - false - - - - This collection is modifiable. This property always - returns false. - - - - - - See - - - The value for the key specified. - - - - Get or set a value for the specified . - - - Thrown if the is not a string - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - A class to hold the key and data for a property set in the config file - - - - A class to hold the key and data for a property set in the config file - - - - - - Override Object.ToString to return sensible debug info - - string info about this object - - - - Property Key - - - Property Key - - - - Property Key. - - - - - - Property Value - - - Property Value - - - - Property Value. - - - - - - A that ignores the message - - - - This writer is used in special cases where it is necessary - to protect a writer from being closed by a client. - - - Nicko Cadell - - - - Constructor - - the writer to actually write to - - - Create a new ProtectCloseTextWriter using a writer - - - - - - Attach this instance to a different underlying - - the writer to attach to - - - Attach this instance to a different underlying - - - - - - Does not close the underlying output writer. - - - - Does not close the underlying output writer. - This method does nothing. - - - - - - Defines a lock that supports single writers and multiple readers - - - - ReaderWriterLock is used to synchronize access to a resource. - At any given time, it allows either concurrent read access for - multiple threads, or write access for a single thread. In a - situation where a resource is changed infrequently, a - ReaderWriterLock provides better throughput than a simple - one-at-a-time lock, such as . - - - If a platform does not support a System.Threading.ReaderWriterLock - implementation then all readers and writers are serialized. Therefore - the caller must not rely on multiple simultaneous readers. - - - Nicko Cadell - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Acquires a reader lock - - - - blocks if a different thread has the writer - lock, or if at least one thread is waiting for the writer lock. - - - - - - Decrements the lock count - - - - decrements the lock count. When the count - reaches zero, the lock is released. - - - - - - Acquires the writer lock - - - - This method blocks if another thread has a reader lock or writer lock. - - - - - - Decrements the lock count on the writer lock - - - - ReleaseWriterLock decrements the writer lock count. - When the count reaches zero, the writer lock is released. - - - - - - A that can be and reused - - - - A that can be and reused. - This uses a single buffer for string operations. - - - Nicko Cadell - - - - Create an instance of - - the format provider to use - - - Create an instance of - - - - - - Override Dispose to prevent closing of writer - - flag - - - Override Dispose to prevent closing of writer - - - - - - Reset this string writer so that it can be reused. - - the maximum buffer capacity before it is trimmed - the default size to make the buffer - - - Reset this string writer so that it can be reused. - The internal buffers are cleared and reset. - - - - - - Utility class for system specific information. - - - - Utility class of static methods for system specific information. - - - Nicko Cadell - Gert Driesen - Alexey Solofnenko - - - - Private constructor to prevent instances. - - - - Only static methods are exposed from this type. - - - - - - Initialize default values for private static fields. - - - - Only static methods are exposed from this type. - - - - - - Gets the assembly location path for the specified assembly. - - The assembly to get the location for. - The location of the assembly. - - - This method does not guarantee to return the correct path - to the assembly. If only tries to give an indication as to - where the assembly was loaded from. - - - - - - Gets the fully qualified name of the , including - the name of the assembly from which the was - loaded. - - The to get the fully qualified name for. - The fully qualified name for the . - - - This is equivalent to the Type.AssemblyQualifiedName property, - but this method works on the .NET Compact Framework 1.0 as well as - the full .NET runtime. - - - - - - Gets the short name of the . - - The to get the name for. - The short name of the . - - - The short name of the assembly is the - without the version, culture, or public key. i.e. it is just the - assembly's file name without the extension. - - - Use this rather than Assembly.GetName().Name because that - is not available on the Compact Framework. - - - Because of a FileIOPermission security demand we cannot do - the obvious Assembly.GetName().Name. We are allowed to get - the of the assembly so we - start from there and strip out just the assembly name. - - - - - - Gets the file name portion of the , including the extension. - - The to get the file name for. - The file name of the assembly. - - - Gets the file name portion of the , including the extension. - - - - - - Loads the type specified in the type string. - - A sibling type to use to load the type. - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified, it will be loaded from the assembly - containing the specified relative type. If the type is not found in the assembly - then all the loaded assemblies will be searched for the type. - - - - - - Loads the type specified in the type string. - - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified it will be loaded from the - assembly that is directly calling this method. If the type is not found - in the assembly then all the loaded assemblies will be searched for the type. - - - - - - Loads the type specified in the type string. - - An assembly to load the type from. - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified it will be loaded from the specified - assembly. If the type is not found in the assembly then all the loaded assemblies - will be searched for the type. - - - - - - Generate a new guid - - A new Guid - - - Generate a new guid - - - - - - Create an - - The name of the parameter that caused the exception - The value of the argument that causes this exception - The message that describes the error - the ArgumentOutOfRangeException object - - - Create a new instance of the class - with a specified error message, the parameter name, and the value - of the argument. - - - The Compact Framework does not support the 3 parameter constructor for the - type. This method provides an - implementation that works for all platforms. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Lookup an application setting - - the application settings key to lookup - the value for the key, or null - - - Configuration APIs are not supported under the Compact Framework - - - - - - Convert a path into a fully qualified local file path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - The path specified must be a local file path, a URI is not supported. - - - - - - Creates a new case-insensitive instance of the class with the default initial capacity. - - A new case-insensitive instance of the class with the default initial capacity - - - The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. - - - - - - Gets an empty array of types. - - - - The Type.EmptyTypes field is not available on - the .NET Compact Framework 1.0. - - - - - - The fully qualified type of the SystemInfo class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Cache the host name for the current machine - - - - - Cache the application friendly name - - - - - Text to output when a null is encountered. - - - - - Text to output when an unsupported feature is requested. - - - - - Start time for the current process. - - - - - Gets the system dependent line terminator. - - - The system dependent line terminator. - - - - Gets the system dependent line terminator. - - - - - - Gets the base directory for this . - - The base directory path for the current . - - - Gets the base directory for this . - - - The value returned may be either a local file path or a URI. - - - - - - Gets the path to the configuration file for the current . - - The path to the configuration file for the current . - - - The .NET Compact Framework 1.0 does not have a concept of a configuration - file. For this runtime, we use the entry assembly location as the root for - the configuration file name. - - - The value returned may be either a local file path or a URI. - - - - - - Gets the path to the file that first executed in the current . - - The path to the entry assembly. - - - Gets the path to the file that first executed in the current . - - - - - - Gets the ID of the current thread. - - The ID of the current thread. - - - On the .NET framework, the AppDomain.GetCurrentThreadId method - is used to obtain the thread ID for the current thread. This is the - operating system ID for the thread. - - - On the .NET Compact Framework 1.0 it is not possible to get the - operating system thread ID for the current thread. The native method - GetCurrentThreadId is implemented inline in a header file - and cannot be called. - - - On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this - gives a stable id unrelated to the operating system thread ID which may - change if the runtime is using fibers. - - - - - - Get the host name or machine name for the current machine - - - The hostname or machine name - - - - Get the host name or machine name for the current machine - - - The host name () or - the machine name (Environment.MachineName) for - the current machine, or if neither of these are available - then NOT AVAILABLE is returned. - - - - - - Get this application's friendly name - - - The friendly name of this application as a string - - - - If available the name of the application is retrieved from - the AppDomain using AppDomain.CurrentDomain.FriendlyName. - - - Otherwise the file name of the entry assembly is used. - - - - - - Get the start time for the current process. - - - - This is the time at which the log4net library was loaded into the - AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime - this is not the start time for the current process. - - - The log4net library should be loaded by an application early during its - startup, therefore this start time should be a good approximation for - the actual start time. - - - Note that AppDomains may be loaded and unloaded within the - same process without the process terminating, however this start time - will be set per AppDomain. - - - - - - Text to output when a null is encountered. - - - - Use this value to indicate a null has been encountered while - outputting a string representation of an item. - - - The default value is (null). This value can be overridden by specifying - a value for the log4net.NullText appSetting in the application's - .config file. - - - - - - Text to output when an unsupported feature is requested. - - - - Use this value when an unsupported feature is requested. - - - The default value is NOT AVAILABLE. This value can be overridden by specifying - a value for the log4net.NotAvailableText appSetting in the application's - .config file. - - - - - - Utility class that represents a format string. - - - - Utility class that represents a format string. - - - Nicko Cadell - - - - Initialise the - - An that supplies culture-specific formatting information. - A containing zero or more format items. - An array containing zero or more objects to format. - - - - Format the string and arguments - - the formatted string - - - - Replaces the format item in a specified with the text equivalent - of the value of a corresponding instance in a specified array. - A specified parameter supplies culture-specific formatting information. - - An that supplies culture-specific formatting information. - A containing zero or more format items. - An array containing zero or more objects to format. - - A copy of format in which the format items have been replaced by the - equivalent of the corresponding instances of in args. - - - - This method does not throw exceptions. If an exception thrown while formatting the result the - exception and arguments are returned in the result string. - - - - - - Process an error during StringFormat - - - - - Dump the contents of an array into a string builder - - - - - Dump an object to a string - - - - - The fully qualified type of the SystemStringFormat class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Implementation of Properties collection for the - - - - Class implements a collection of properties that is specific to each thread. - The class is not synchronized as each thread has its own . - - - Nicko Cadell - - - - The thread local data slot to use to store a PropertiesDictionary. - - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property - - the key for the entry to remove - - - Remove a property - - - - - - Clear all properties - - - - Clear all properties - - - - - - Get the PropertiesDictionary for this thread. - - create the dictionary if it does not exist, otherwise return null if is does not exist - the properties for this thread - - - The collection returned is only to be used on the calling thread. If the - caller needs to share the collection between different threads then the - caller must clone the collection before doing so. - - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Gets or sets the value of a property - - - - - - Implementation of Stack for the - - - - Implementation of Stack for the - - - Nicko Cadell - - - - The stack store. - - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - Clears all the contextual information held in this stack. - - - - Clears all the contextual information held in this stack. - Only call this if you think that this tread is being reused after - a previous call execution which may not have completed correctly. - You do not need to use this method if you always guarantee to call - the method of the - returned from even in exceptional circumstances, - for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) - syntax. - - - - - - Removes the top context from this stack. - - The message in the context that was removed from the top of this stack. - - - Remove the top context from this stack, and return - it to the caller. If this stack is empty then an - empty string (not ) is returned. - - - - - - Pushes a new context message into this stack. - - The new context message. - - An that can be used to clean up the context stack. - - - - Pushes a new context onto this stack. An - is returned that can be used to clean up this stack. This - can be easily combined with the using keyword to scope the - context. - - - Simple example of using the Push method with the using keyword. - - using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) - { - log.Warn("This should have an ThreadContext Stack message"); - } - - - - - - Gets the current context information for this stack. - - The current context information. - - - - Gets the current context information for this stack. - - Gets the current context information - - - Gets the current context information for this stack. - - - - - - Get a portable version of this object - - the portable instance of this object - - - Get a cross thread portable version of this object - - - - - - The number of messages in the stack - - - The current number of messages in the stack - - - - The current number of messages in the stack. That is - the number of times has been called - minus the number of times has been called. - - - - - - Gets and sets the internal stack used by this - - The internal storage stack - - - This property is provided only to support backward compatability - of the . Tytpically the internal stack should not - be modified. - - - - - - Inner class used to represent a single context frame in the stack. - - - - Inner class used to represent a single context frame in the stack. - - - - - - Constructor - - The message for this context. - The parent context in the chain. - - - Initializes a new instance of the class - with the specified message and parent context. - - - - - - Get the message. - - The message. - - - Get the message. - - - - - - Gets the full text of the context down to the root level. - - - The full text of the context down to the root level. - - - - Gets the full text of the context down to the root level. - - - - - - Struct returned from the method. - - - - This struct implements the and is designed to be used - with the pattern to remove the stack frame at the end of the scope. - - - - - - The ThreadContextStack internal stack - - - - - The depth to trim the stack to when this instance is disposed - - - - - Constructor - - The internal stack used by the ThreadContextStack. - The depth to return the stack to when this object is disposed. - - - Initializes a new instance of the class with - the specified stack and return depth. - - - - - - Returns the stack to the correct depth. - - - - Returns the stack to the correct depth. - - - - - - Implementation of Stacks collection for the - - - - Implementation of Stacks collection for the - - - Nicko Cadell - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - The fully qualified type of the ThreadContextStacks class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the named thread context stack - - - The named stack - - - - Gets the named thread context stack - - - - - - Utility class for transforming strings. - - - - Utility class for transforming strings. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Write a string to an - - the writer to write to - the string to write - The string to replace non XML compliant chars with - - - The test is escaped either using XML escape entities - or using CDATA sections. - - - - - - Replace invalid XML characters in text string - - the XML text input string - the string to use in place of invalid characters - A string that does not contain invalid XML characters. - - - Certain Unicode code points are not allowed in the XML InfoSet, for - details see: http://www.w3.org/TR/REC-xml/#charsets. - - - This method replaces any illegal characters in the input string - with the mask string specified. - - - - - - Count the number of times that the substring occurs in the text - - the text to search - the substring to find - the number of times the substring occurs in the text - - - The substring is assumed to be non repeating within itself. - - - - - - Characters illegal in XML 1.0 - - - - - Impersonate a Windows Account - - - - This impersonates a Windows account. - - - How the impersonation is done depends on the value of . - This allows the context to either impersonate a set of user credentials specified - using username, domain name and password or to revert to the process credentials. - - - - - - Default constructor - - - - Default constructor - - - - - - Initialize the SecurityContext based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The security context will try to Logon the specified user account and - capture a primary token for impersonation. - - - The required , - or properties were not specified. - - - - Impersonate the Windows account specified by the and properties. - - caller provided state - - An instance that will revoke the impersonation of this SecurityContext - - - - Depending on the property either - impersonate a user using credentials supplied or revert - to the process credentials. - - - - - - Create a given the userName, domainName and password. - - the user name - the domain name - the password - the for the account specified - - - Uses the Windows API call LogonUser to get a principal token for the account. This - token is used to initialize the WindowsIdentity. - - - - - - Gets or sets the impersonation mode for this security context - - - The impersonation mode for this security context - - - - Impersonate either a user with user credentials or - revert this thread to the credentials of the process. - The value is one of the - enum. - - - The default value is - - - When the mode is set to - the user's credentials are established using the - , and - values. - - - When the mode is set to - no other properties need to be set. If the calling thread is - impersonating then it will be reverted back to the process credentials. - - - - - - Gets or sets the Windows username for this security context - - - The Windows username for this security context - - - - This property must be set if - is set to (the default setting). - - - - - - Gets or sets the Windows domain name for this security context - - - The Windows domain name for this security context - - - - The default value for is the local machine name - taken from the property. - - - This property must be set if - is set to (the default setting). - - - - - - Sets the password for the Windows account specified by the and properties. - - - The password for the Windows account specified by the and properties. - - - - This property must be set if - is set to (the default setting). - - - - - - The impersonation modes for the - - - - See the property for - details. - - - - - - Impersonate a user using the credentials supplied - - - - - Revert this the thread to the credentials of the process - - - - - Adds to - - - - Helper class to expose the - through the interface. - - - - - - Constructor - - the impersonation context being wrapped - - - Constructor - - - - - - Revert the impersonation - - - - Revert the impersonation - - - - - - The log4net Global Context. - - - - The GlobalContext provides a location for global debugging - information to be stored. - - - The global context has a properties map and these properties can - be included in the output of log messages. The - supports selecting and outputing these properties. - - - By default the log4net:HostName property is set to the name of - the current machine. - - - - - GlobalContext.Properties["hostname"] = Environment.MachineName; - - - - Nicko Cadell - - - - Private Constructor. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - The global context properties instance - - - - - The global properties map. - - - The global properties map. - - - - The global properties map. - - - - - - Provides information about the environment the assembly has - been built for. - - - - Version of the assembly - - - Version of the framework targeted - - - Type of framework targeted - - - Does it target a client profile? - - - - Identifies the version and target for this assembly. - - - - - The log4net Logical Thread Context. - - - - The LogicalThreadContext provides a location for specific debugging - information to be stored. - The LogicalThreadContext properties override any or - properties with the same name. - - - The Logical Thread Context has a properties map and a stack. - The properties and stack can - be included in the output of log messages. The - supports selecting and outputting these properties. - - - The Logical Thread Context provides a diagnostic context for the current call context. - This is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The Logical Thread Context is managed on a per basis. - - - The requires a link time - for the - . - If the calling code does not have this permission then this context will be disabled. - It will not store any property values set on it. - - - Example of using the thread context properties to store a username. - - LogicalThreadContext.Properties["user"] = userName; - log.Info("This log message has a LogicalThreadContext Property called 'user'"); - - - Example of how to push a message into the context stack - - using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) - { - log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); - - } // at the end of the using block the message is automatically popped - - - - Nicko Cadell - - - - Private Constructor. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - The thread context properties instance - - - - - The thread context stacks instance - - - - - The thread properties map - - - The thread properties map - - - - The LogicalThreadContext properties override any - or properties with the same name. - - - - - - The thread stacks - - - stack map - - - - The logical thread stacks. - - - - - - This class is used by client applications to request logger instances. - - - - This class has static methods that are used by a client to request - a logger instance. The method is - used to retrieve a logger. - - - See the interface for more details. - - - Simple example of logging messages - - ILog log = LogManager.GetLogger("application-log"); - - log.Info("Application Start"); - log.Debug("This is a debug message"); - - if (log.IsDebugEnabled) - { - log.Debug("This is another debug message"); - } - - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - Returns the named logger if it exists. - - Returns the named logger if it exists. - - - - If the named logger exists (in the default repository) then it - returns a reference to the logger, otherwise it returns null. - - - The fully qualified logger name to look for. - The logger found, or null if no logger could be found. - - - - Returns the named logger if it exists. - - - - If the named logger exists (in the specified repository) then it - returns a reference to the logger, otherwise it returns - null. - - - The repository to lookup in. - The fully qualified logger name to look for. - - The logger found, or null if the logger doesn't exist in the specified - repository. - - - - - Returns the named logger if it exists. - - - - If the named logger exists (in the repository for the specified assembly) then it - returns a reference to the logger, otherwise it returns - null. - - - The assembly to use to lookup the repository. - The fully qualified logger name to look for. - - The logger, or null if the logger doesn't exist in the specified - assembly's repository. - - - - Get the currently defined loggers. - - Returns all the currently defined loggers in the default repository. - - - The root logger is not included in the returned array. - - All the defined loggers. - - - - Returns all the currently defined loggers in the specified repository. - - The repository to lookup in. - - The root logger is not included in the returned array. - - All the defined loggers. - - - - Returns all the currently defined loggers in the specified assembly's repository. - - The assembly to use to lookup the repository. - - The root logger is not included in the returned array. - - All the defined loggers. - - - Get or create a logger. - - Retrieves or creates a named logger. - - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The name of the logger to retrieve. - The logger with the name specified. - - - - Retrieves or creates a named logger. - - - - Retrieve a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The repository to lookup in. - The name of the logger to retrieve. - The logger with the name specified. - - - - Retrieves or creates a named logger. - - - - Retrieve a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The assembly to use to lookup the repository. - The name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Get the logger for the fully qualified name of the type specified. - - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Gets the logger for the fully qualified name of the type specified. - - The repository to lookup in. - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Gets the logger for the fully qualified name of the type specified. - - The assembly to use to lookup the repository. - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shuts down the log4net system. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in all the - default repositories. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - Shutdown a logger repository. - - Shuts down the default repository. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - default repository. - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - The repository to shutdown. - - - - Shuts down the repository specified. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository. The repository is looked up using - the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - The assembly to use to lookup the repository. - - - Reset the configuration of a repository - - Resets all values contained in this repository instance to their defaults. - - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - - - - Resets all values contained in this repository instance to their defaults. - - - - Reset all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - The repository to reset. - - - - Resets all values contained in this repository instance to their defaults. - - - - Reset all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - The assembly to use to lookup the repository to reset. - - - Get the logger repository. - - Returns the default instance. - - - - Gets the for the repository specified - by the callers assembly (). - - - The instance for the default repository. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The repository to lookup in. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The assembly to use to lookup the repository. - - - Get a logger repository. - - Returns the default instance. - - - - Gets the for the repository specified - by the callers assembly (). - - - The instance for the default repository. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The repository to lookup in. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The assembly to use to lookup the repository. - - - Create a domain - - Creates a repository with the specified repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to will return - the same repository instance. - - - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - Create a logger repository. - - Creates a repository with the specified repository type. - - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The created will be associated with the repository - specified such that a call to will return - the same repository instance. - - - - - - Creates a repository with the specified name. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name. - - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - The specified repository already exists. - - - - Creates a repository for the specified assembly and repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - - Creates a repository for the specified assembly and repository type. - - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - - Gets the list of currently defined repositories. - - - - Get an array of all the objects that have been created. - - - An array of all the known objects. - - - - Looks up the wrapper object for the logger specified. - - The logger to get the wrapper for. - The wrapper for the logger specified. - - - - Looks up the wrapper objects for the loggers specified. - - The loggers to get the wrappers for. - The wrapper objects for the loggers specified. - - - - Create the objects used by - this manager. - - The logger to wrap. - The wrapper for the logger specified. - - - - The wrapper map to use to hold the objects. - - - - - Implementation of Mapped Diagnostic Contexts. - - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - The MDC class is similar to the class except that it is - based on a map instead of a stack. It provides mapped - diagnostic contexts. A Mapped Diagnostic Context, or - MDC in short, is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The MDC is managed on a per thread basis. - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - Gets the context value identified by the parameter. - - The key to lookup in the MDC. - The string value held for the key, or a null reference if no corresponding value is found. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - If the parameter does not look up to a - previously defined context then null will be returned. - - - - - - Add an entry to the MDC - - The key to store the value under. - The value to store. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Puts a context value (the parameter) as identified - with the parameter into the current thread's - context map. - - - If a value is already defined for the - specified then the value will be replaced. If the - is specified as null then the key value mapping will be removed. - - - - - - Removes the key value mapping for the key specified. - - The key to remove. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Remove the specified entry from this thread's MDC - - - - - - Clear all entries in the MDC - - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Remove all the entries from this thread's MDC - - - - - - Implementation of Nested Diagnostic Contexts. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - A Nested Diagnostic Context, or NDC in short, is an instrument - to distinguish interleaved log output from different sources. Log - output is typically interleaved when a server handles multiple - clients near-simultaneously. - - - Interleaved log output can still be meaningful if each log entry - from different contexts had a distinctive stamp. This is where NDCs - come into play. - - - Note that NDCs are managed on a per thread basis. The NDC class - is made up of static methods that operate on the context of the - calling thread. - - - How to push a message into the context - - using(NDC.Push("my context message")) - { - ... all log calls will have 'my context message' included ... - - } // at the end of the using block the message is automatically removed - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - Clears all the contextual information held on the current thread. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Clears the stack of NDC data held on the current thread. - - - - - - Creates a clone of the stack of context information. - - A clone of the context info for this thread. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - The results of this method can be passed to the - method to allow child threads to inherit the context of their - parent thread. - - - - - - Inherits the contextual information from another thread. - - The context stack to inherit. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - This thread will use the context information from the stack - supplied. This can be used to initialize child threads with - the same contextual information as their parent threads. These - contexts will NOT be shared. Any further contexts that - are pushed onto the stack will not be visible to the other. - Call to obtain a stack to pass to - this method. - - - - - - Removes the top context from the stack. - - - The message in the context that was removed from the top - of the stack. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Remove the top context from the stack, and return - it to the caller. If the stack is empty then an - empty string (not null) is returned. - - - - - - Pushes a new context message. - - The new context message. - - An that can be used to clean up - the context stack. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Pushes a new context onto the context stack. An - is returned that can be used to clean up the context stack. This - can be easily combined with the using keyword to scope the - context. - - - Simple example of using the Push method with the using keyword. - - using(log4net.NDC.Push("NDC_Message")) - { - log.Warn("This should have an NDC message"); - } - - - - - - Removes the context information for this thread. It is - not required to call this method. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - This method is not implemented. - - - - - - Forces the stack depth to be at most . - - The maximum depth of the stack - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Forces the stack depth to be at most . - This may truncate the head of the stack. This only affects the - stack in the current thread. Also it does not prevent it from - growing, it only sets the maximum depth at the time of the - call. This can be used to return to a known context depth. - - - - - - Gets the current context depth. - - The current context depth. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - The number of context values pushed onto the context stack. - - - Used to record the current depth of the context. This can then - be restored using the method. - - - - - - - The log4net Thread Context. - - - - The ThreadContext provides a location for thread specific debugging - information to be stored. - The ThreadContext properties override any - properties with the same name. - - - The thread context has a properties map and a stack. - The properties and stack can - be included in the output of log messages. The - supports selecting and outputting these properties. - - - The Thread Context provides a diagnostic context for the current thread. - This is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The Thread Context is managed on a per thread basis. - - - Example of using the thread context properties to store a username. - - ThreadContext.Properties["user"] = userName; - log.Info("This log message has a ThreadContext Property called 'user'"); - - - Example of how to push a message into the context stack - - using(ThreadContext.Stacks["NDC"].Push("my context message")) - { - log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); - - } // at the end of the using block the message is automatically popped - - - - Nicko Cadell - - - - Private Constructor. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - The thread context properties instance - - - - - The thread context stacks instance - - - - - The thread properties map - - - The thread properties map - - - - The ThreadContext properties override any - properties with the same name. - - - - - - The thread stacks - - - stack map - - - - The thread local stacks. - - - - - diff --git a/source/packages/log4net.2.0.0/lib/net20-cf/log4net.dll b/source/packages/log4net.2.0.0/lib/net20-cf/log4net.dll deleted file mode 100644 index def929b32f398a3cba3486aecd7609eb10c7ff02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 245760 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
    R^(m9}+Cs*si_Q3%a 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%0DIZ}sDU9mV^Aw5*{ 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 YF#<6HF#<6HF#<6HF#<6HPYMG62BU@gOaK4? diff --git a/source/packages/log4net.2.0.0/lib/net20-cf/log4net.xml b/source/packages/log4net.2.0.0/lib/net20-cf/log4net.xml deleted file mode 100644 index 59b4936..0000000 --- a/source/packages/log4net.2.0.0/lib/net20-cf/log4net.xml +++ /dev/null @@ -1,26056 +0,0 @@ - - - - log4net - - - - - Appender that logs to a database. - - - - appends logging events to a table within a - database. The appender can be configured to specify the connection - string by setting the property. - The connection type (provider) can be specified by setting the - property. For more information on database connection strings for - your specific database see http://www.connectionstrings.com/. - - - Records are written into the database either using a prepared - statement or a stored procedure. The property - is set to (System.Data.CommandType.Text) to specify a prepared statement - or to (System.Data.CommandType.StoredProcedure) to specify a stored - procedure. - - - The prepared statement text or the name of the stored procedure - must be set in the property. - - - The prepared statement or stored procedure can take a number - of parameters. Parameters are added using the - method. This adds a single to the - ordered list of parameters. The - type may be subclassed if required to provide database specific - functionality. The specifies - the parameter name, database type, size, and how the value should - be generated using a . - - - - An example of a SQL Server table that could be logged to: - - CREATE TABLE [dbo].[Log] ( - [ID] [int] IDENTITY (1, 1) NOT NULL , - [Date] [datetime] NOT NULL , - [Thread] [varchar] (255) NOT NULL , - [Level] [varchar] (20) NOT NULL , - [Logger] [varchar] (255) NOT NULL , - [Message] [varchar] (4000) NOT NULL - ) ON [PRIMARY] - - - - An example configuration to log to the above table: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Julian Biddle - Nicko Cadell - Gert Driesen - Lance Nehring - - - - Abstract base class implementation of that - buffers events in a fixed size buffer. - - - - This base class should be used by appenders that need to buffer a - number of events before logging them. For example the - buffers events and then submits the entire contents of the buffer to - the underlying database in one go. - - - Subclasses should override the - method to deliver the buffered events. - - The BufferingAppenderSkeleton maintains a fixed size cyclic - buffer of events. The size of the buffer is set using - the property. - - A is used to inspect - each event as it arrives in the appender. If the - triggers, then the current buffer is sent immediately - (see ). Otherwise the event - is stored in the buffer. For example, an evaluator can be used to - deliver the events immediately when an ERROR event arrives. - - - The buffering appender can be configured in a mode. - By default the appender is NOT lossy. When the buffer is full all - the buffered events are sent with . - If the property is set to true then the - buffer will not be sent when it is full, and new events arriving - in the appender will overwrite the oldest event in the buffer. - In lossy mode the buffer will only be sent when the - triggers. This can be useful behavior when you need to know about - ERROR events but not about events with a lower level, configure an - evaluator that will trigger when an ERROR event arrives, the whole - buffer will be sent which gives a history of events leading up to - the ERROR event. - - - Nicko Cadell - Gert Driesen - - - - Abstract base class implementation of . - - - - This class provides the code for common functionality, such - as support for threshold filtering and support for general filters. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface for your own strategies for printing log statements. - - - - Implementors should consider extending the - class which provides a default implementation of this interface. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Log the logging event in Appender specific way. - - The event to log - - - This method is called to log a message into this appender. - - - - - - Gets or sets the name of this appender. - - The name of the appender. - - The name uniquely identifies the appender. - - - - - Interface for appenders that support bulk logging. - - - - This interface extends the interface to - support bulk logging of objects. Appenders - should only implement this interface if they can bulk log efficiently. - - - Nicko Cadell - - - - Log the array of logging events in Appender specific way. - - The events to log - - - This method is called to log an array of events into this appender. - - - - - - Interface used to delay activate a configured object. - - - - This allows an object to defer activation of its options until all - options have been set. This is required for components which have - related options that remain ambiguous until all are set. - - - If a component implements this interface then the method - must be called by the container after its all the configured properties have been set - and before the component can be used. - - - Nicko Cadell - - - - Activate the options that were previously set with calls to properties. - - - - This allows an object to defer activation of its options until all - options have been set. This is required for components which have - related options that remain ambiguous until all are set. - - - If a component implements this interface then this method must be called - after its properties have been set before the component can be used. - - - - - - Initial buffer size - - - - - Maximum buffer size before it is recycled - - - - - Default constructor - - - Empty default constructor - - - - - Finalizes this appender by calling the implementation's - method. - - - - If this appender has not been closed then the Finalize method - will call . - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Closes the appender and release resources. - - - - Release any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - This method cannot be overridden by subclasses. This method - delegates the closing of the appender to the - method which must be overridden in the subclass. - - - - - - Performs threshold checks and invokes filters before - delegating actual logging to the subclasses specific - method. - - The event to log. - - - This method cannot be overridden by derived classes. A - derived class should override the method - which is called by this method. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - Calls and checks that - it returns true. - - - - - If all of the above steps succeed then the - will be passed to the abstract method. - - - - - - Performs threshold checks and invokes filters before - delegating actual logging to the subclasses specific - method. - - The array of events to log. - - - This method cannot be overridden by derived classes. A - derived class should override the method - which is called by this method. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - Calls and checks that - it returns true. - - - - - If all of the above steps succeed then the - will be passed to the method. - - - - - - Test if the logging event should we output by this appender - - the event to test - true if the event should be output, false if the event should be ignored - - - This method checks the logging event against the threshold level set - on this appender and also against the filters specified on this - appender. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - - - - - Adds a filter to the end of the filter chain. - - the filter to add to this appender - - - The Filters are organized in a linked list. - - - Setting this property causes the new filter to be pushed onto the - back of the filter chain. - - - - - - Clears the filter list for this appender. - - - - Clears the filter list for this appender. - - - - - - Checks if the message level is below this appender's threshold. - - to test against. - - - If there is no threshold set, then the return value is always true. - - - - true if the meets the - requirements of this appender. - - - - - Is called when the appender is closed. Derived classes should override - this method if resources need to be released. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Subclasses of should implement this method - to perform actual logging. - - The event to append. - - - A subclass must implement this method to perform - logging of the . - - This method will be called by - if all the conditions listed for that method are met. - - - To restrict the logging of events in the appender - override the method. - - - - - - Append a bulk array of logging events. - - the array of logging events - - - This base class implementation calls the - method for each element in the bulk array. - - - A sub class that can better process a bulk array of events should - override this method in addition to . - - - - - - Called before as a precondition. - - - - This method is called by - before the call to the abstract method. - - - This method can be overridden in a subclass to extend the checks - made before the event is passed to the method. - - - A subclass should ensure that they delegate this call to - this base class if it is overridden. - - - true if the call to should proceed. - - - - Renders the to a string. - - The event to render. - The event rendered as a string. - - - Helper method to render a to - a string. This appender must have a - set to render the to - a string. - - If there is exception data in the logging event and - the layout does not process the exception, this method - will append the exception text to the rendered string. - - - Where possible use the alternative version of this method - . - That method streams the rendering onto an existing Writer - which can give better performance if the caller already has - a open and ready for writing. - - - - - - Renders the to a string. - - The event to render. - The TextWriter to write the formatted event to - - - Helper method to render a to - a string. This appender must have a - set to render the to - a string. - - If there is exception data in the logging event and - the layout does not process the exception, this method - will append the exception text to the rendered string. - - - Use this method in preference to - where possible. If, however, the caller needs to render the event - to a string then does - provide an efficient mechanism for doing so. - - - - - - The layout of this appender. - - - See for more information. - - - - - The name of this appender. - - - See for more information. - - - - - The level threshold of this appender. - - - - There is no level threshold filtering by default. - - - See for more information. - - - - - - It is assumed and enforced that errorHandler is never null. - - - - It is assumed and enforced that errorHandler is never null. - - - See for more information. - - - - - - The first filter in the filter chain. - - - - Set to null initially. - - - See for more information. - - - - - - The last filter in the filter chain. - - - See for more information. - - - - - Flag indicating if this appender is closed. - - - See for more information. - - - - - The guard prevents an appender from repeatedly calling its own DoAppend method - - - - - StringWriter used to render events - - - - - The fully qualified type of the AppenderSkeleton class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the threshold of this appender. - - - The threshold of the appender. - - - - All log events with lower level than the threshold level are ignored - by the appender. - - - In configuration files this option is specified by setting the - value of the option to a level - string, such as "DEBUG", "INFO" and so on. - - - - - - Gets or sets the for this appender. - - The of the appender - - - The provides a default - implementation for the property. - - - - - - The filter chain. - - The head of the filter chain filter chain. - - - Returns the head Filter. The Filters are organized in a linked list - and so all Filters on this Appender are available through the result. - - - - - - Gets or sets the for this appender. - - The layout of the appender. - - - See for more information. - - - - - - - Gets or sets the name of this appender. - - The name of the appender. - - - The name uniquely identifies the appender. - - - - - - Tests if this appender requires a to be set. - - - - In the rather exceptional case, where the appender - implementation admits a layout but can also work without it, - then the appender should return true. - - - This default implementation always returns false. - - - - true if the appender requires a layout object, otherwise false. - - - - - The default buffer size. - - - The default size of the cyclic buffer used to store events. - This is set to 512 by default. - - - - - Initializes a new instance of the class. - - - - Protected default constructor to allow subclassing. - - - - - - Initializes a new instance of the class. - - the events passed through this appender must be - fixed by the time that they arrive in the derived class' SendBuffer method. - - - Protected constructor to allow subclassing. - - - The should be set if the subclass - expects the events delivered to be fixed even if the - is set to zero, i.e. when no buffering occurs. - - - - - - Flush the currently buffered events - - - - Flushes any events that have been buffered. - - - If the appender is buffering in mode then the contents - of the buffer will NOT be flushed to the appender. - - - - - - Flush the currently buffered events - - set to true to flush the buffer of lossy events - - - Flushes events that have been buffered. If is - false then events will only be flushed if this buffer is non-lossy mode. - - - If the appender is buffering in mode then the contents - of the buffer will only be flushed if is true. - In this case the contents of the buffer will be tested against the - and if triggering will be output. All other buffered - events will be discarded. - - - If is true then the buffer will always - be emptied by calling this method. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Close this appender instance. - - - - Close this appender instance. If this appender is marked - as not then the remaining events in - the buffer must be sent when the appender is closed. - - - - - - This method is called by the method. - - the event to log - - - Stores the in the cyclic buffer. - - - The buffer will be sent (i.e. passed to the - method) if one of the following conditions is met: - - - - The cyclic buffer is full and this appender is - marked as not lossy (see ) - - - An is set and - it is triggered for the - specified. - - - - Before the event is stored in the buffer it is fixed - (see ) to ensure that - any data referenced by the event will be valid when the buffer - is processed. - - - - - - Sends the contents of the buffer. - - The first logging event. - The buffer containing the events that need to be send. - - - The subclass must override . - - - - - - Sends the events. - - The events that need to be send. - - - The subclass must override this method to process the buffered events. - - - - - - The size of the cyclic buffer used to hold the logging events. - - - Set to by default. - - - - - The cyclic buffer used to store the logging events. - - - - - The triggering event evaluator that causes the buffer to be sent immediately. - - - The object that is used to determine if an event causes the entire - buffer to be sent immediately. This field can be null, which - indicates that event triggering is not to be done. The evaluator - can be set using the property. If this appender - has the ( property) set to - true then an must be set. - - - - - Indicates if the appender should overwrite events in the cyclic buffer - when it becomes full, or if the buffer should be flushed when the - buffer is full. - - - If this field is set to true then an must - be set. - - - - - The triggering event evaluator filters discarded events. - - - The object that is used to determine if an event that is discarded should - really be discarded or if it should be sent to the appenders. - This field can be null, which indicates that all discarded events will - be discarded. - - - - - Value indicating which fields in the event should be fixed - - - By default all fields are fixed - - - - - The events delivered to the subclass must be fixed. - - - - - Gets or sets a value that indicates whether the appender is lossy. - - - true if the appender is lossy, otherwise false. The default is false. - - - - This appender uses a buffer to store logging events before - delivering them. A triggering event causes the whole buffer - to be send to the remote sink. If the buffer overruns before - a triggering event then logging events could be lost. Set - to false to prevent logging events - from being lost. - - If is set to true then an - must be specified. - - - - - Gets or sets the size of the cyclic buffer used to hold the - logging events. - - - The size of the cyclic buffer used to hold the logging events. - - - - The option takes a positive integer - representing the maximum number of logging events to collect in - a cyclic buffer. When the is reached, - oldest events are deleted as new events are added to the - buffer. By default the size of the cyclic buffer is 512 events. - - - If the is set to a value less than - or equal to 1 then no buffering will occur. The logging event - will be delivered synchronously (depending on the - and properties). Otherwise the event will - be buffered. - - - - - - Gets or sets the that causes the - buffer to be sent immediately. - - - The that causes the buffer to be - sent immediately. - - - - The evaluator will be called for each event that is appended to this - appender. If the evaluator triggers then the current buffer will - immediately be sent (see ). - - If is set to true then an - must be specified. - - - - - Gets or sets the value of the to use. - - - The value of the to use. - - - - The evaluator will be called for each event that is discarded from this - appender. If the evaluator triggers then the current buffer will immediately - be sent (see ). - - - - - - Gets or sets a value indicating if only part of the logging event data - should be fixed. - - - true if the appender should only fix part of the logging event - data, otherwise false. The default is false. - - - - Setting this property to true will cause only part of the - event data to be fixed and serialized. This will improve performance. - - - See for more information. - - - - - - Gets or sets a the fields that will be fixed in the event - - - The event fields that will be fixed before the event is buffered - - - - The logging event needs to have certain thread specific values - captured before it can be buffered. See - for details. - - - - - - - Initializes a new instance of the class. - - - Public default constructor to initialize a new instance of this class. - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Override the parent method to close the database - - - - Closes the database command and database connection. - - - - - - Inserts the events into the database. - - The events to insert into the database. - - - Insert all the events specified in the - array into the database. - - - - - - Adds a parameter to the command. - - The parameter to add to the command. - - - Adds a parameter to the ordered list of command parameters. - - - - - - Writes the events to the database using the transaction specified. - - The transaction that the events will be executed under. - The array of events to insert into the database. - - - The transaction argument can be null if the appender has been - configured not to use transactions. See - property for more information. - - - - - - Formats the log message into database statement text. - - The event being logged. - - This method can be overridden by subclasses to provide - more control over the format of the database statement. - - - Text that can be passed to a . - - - - - Creates an instance used to connect to the database. - - - This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). - - The of the object. - The connectionString output from the ResolveConnectionString method. - An instance with a valid connection string. - - - - Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey - property. - - - ConnectiongStringName is only supported on .NET 2.0 and higher. - - Additional information describing the connection string. - A connection string used to connect to the database. - - - - Retrieves the class type of the ADO.NET provider. - - - - Gets the Type of the ADO.NET provider to use to connect to the - database. This method resolves the type specified in the - property. - - - Subclasses can override this method to return a different type - if necessary. - - - The of the ADO.NET provider - - - - Prepares the database command and initialize the parameters. - - - - - Connects to the database. - - - - - Cleanup the existing command. - - - If true, a message will be written using LogLog.Warn if an exception is encountered when calling Dispose. - - - - - Cleanup the existing connection. - - - Calls the IDbConnection's method. - - - - - Flag to indicate if we are using a command object - - - - Set to true when the appender is to use a prepared - statement or stored procedure to insert into the database. - - - - - - The list of objects. - - - - The list of objects. - - - - - - The security context to use for privileged calls - - - - - The that will be used - to insert logging events into a database. - - - - - The database command. - - - - - Database connection string. - - - - - The appSettings key from App.Config that contains the connection string. - - - - - String type name of the type name. - - - - - The text of the command. - - - - - The command type. - - - - - Indicates whether to use transactions when writing to the database. - - - - - Indicates whether to use transactions when writing to the database. - - - - - The fully qualified type of the AdoNetAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the database connection string that is used to connect to - the database. - - - The database connection string used to connect to the database. - - - - The connections string is specific to the connection type. - See for more information. - - - Connection string for MS Access via ODBC: - "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" - - Another connection string for MS Access via ODBC: - "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" - - Connection string for MS Access via OLE DB: - "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" - - - - - The appSettings key from App.Config that contains the connection string. - - - - - Gets or sets the type name of the connection - that should be created. - - - The type name of the connection. - - - - The type name of the ADO.NET provider to use. - - - The default is to use the OLE DB provider. - - - Use the OLE DB Provider. This is the default value. - System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Use the MS SQL Server Provider. - System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Use the ODBC Provider. - Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral - This is an optional package that you can download from - http://msdn.microsoft.com/downloads - search for ODBC .NET Data Provider. - - Use the Oracle Provider. - System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - This is an optional package that you can download from - http://msdn.microsoft.com/downloads - search for .NET Managed Provider for Oracle. - - - - - Gets or sets the command text that is used to insert logging events - into the database. - - - The command text used to insert logging events into the database. - - - - Either the text of the prepared statement or the - name of the stored procedure to execute to write into - the database. - - - The property determines if - this text is a prepared statement or a stored procedure. - - - - - - Gets or sets the command type to execute. - - - The command type to execute. - - - - This value may be either (System.Data.CommandType.Text) to specify - that the is a prepared statement to execute, - or (System.Data.CommandType.StoredProcedure) to specify that the - property is the name of a stored procedure - to execute. - - - The default value is (System.Data.CommandType.Text). - - - - - - Should transactions be used to insert logging events in the database. - - - true if transactions should be used to insert logging events in - the database, otherwise false. The default value is true. - - - - Gets or sets a value that indicates whether transactions should be used - to insert logging events in the database. - - - When set a single transaction will be used to insert the buffered events - into the database. Otherwise each event will be inserted without using - an explicit transaction. - - - - - - Gets or sets the used to call the NetSend method. - - - The used to call the NetSend method. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Should this appender try to reconnect to the database on error. - - - true if the appender should try to reconnect to the database after an - error has occurred, otherwise false. The default value is false, - i.e. not to try to reconnect. - - - - The default behaviour is for the appender not to try to reconnect to the - database if an error occurs. Subsequent logging events are discarded. - - - To force the appender to attempt to reconnect to the database set this - property to true. - - - When the appender attempts to connect to the database there may be a - delay of up to the connection timeout specified in the connection string. - This delay will block the calling application's thread. - Until the connection can be reestablished this potential delay may occur multiple times. - - - - - - Gets or sets the underlying . - - - The underlying . - - - creates a to insert - logging events into a database. Classes deriving from - can use this property to get or set this . Use the - underlying returned from if - you require access beyond that which provides. - - - - - Parameter type used by the . - - - - This class provides the basic database parameter properties - as defined by the interface. - - This type can be subclassed to provide database specific - functionality. The two methods that are called externally are - and . - - - - - - Initializes a new instance of the class. - - - Default constructor for the AdoNetAppenderParameter class. - - - - - Prepare the specified database command object. - - The command to prepare. - - - Prepares the database command object by adding - this parameter to its collection of parameters. - - - - - - Renders the logging event and set the parameter value in the command. - - The command containing the parameter. - The event to be rendered. - - - Renders the logging event using this parameters layout - object. Sets the value of the parameter on the command object. - - - - - - The name of this parameter. - - - - - The database type for this parameter. - - - - - Flag to infer type rather than use the DbType - - - - - The precision for this parameter. - - - - - The scale for this parameter. - - - - - The size for this parameter. - - - - - The to use to render the - logging event into an object for this parameter. - - - - - Gets or sets the name of this parameter. - - - The name of this parameter. - - - - The name of this parameter. The parameter name - must match up to a named parameter to the SQL stored procedure - or prepared statement. - - - - - - Gets or sets the database type for this parameter. - - - The database type for this parameter. - - - - The database type for this parameter. This property should - be set to the database type from the - enumeration. See . - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the type from the value. - - - - - - - Gets or sets the precision for this parameter. - - - The precision for this parameter. - - - - The maximum number of digits used to represent the Value. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the precision from the value. - - - - - - - Gets or sets the scale for this parameter. - - - The scale for this parameter. - - - - The number of decimal places to which Value is resolved. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the scale from the value. - - - - - - - Gets or sets the size for this parameter. - - - The size for this parameter. - - - - The maximum size, in bytes, of the data within the column. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the size from the value. - - - - - - - Gets or sets the to use to - render the logging event into an object for this - parameter. - - - The used to render the - logging event into an object for this parameter. - - - - The that renders the value for this - parameter. - - - The can be used to adapt - any into a - for use in the property. - - - - - - Appends logging events to the terminal using ANSI color escape sequences. - - - - AnsiColorTerminalAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. It also allows the color of a specific level of message to be set. - - - This appender expects the terminal to understand the VT100 control set - in order to interpret the color codes. If the terminal or console does not - understand the control codes the behavior is not defined. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes each message to the System.Console.Out or - System.Console.Error that is set at the time the event is appended. - Therefore it is possible to programmatically redirect the output of this appender - (for example NUnit does this to capture program output). While this is the desired - behavior of this appender it may have security implications in your application. - - - When configuring the ANSI colored terminal appender, a mapping should be - specified to map a logging level to a color. For example: - - - - - - - - - - - - - - - The Level is the standard log4net logging level and ForeColor and BackColor can be any - of the following values: - - Blue - Green - Red - White - Yellow - Purple - Cyan - - These color values cannot be combined together to make new colors. - - - The attributes can be any combination of the following: - - Brightforeground is brighter - Dimforeground is dimmer - Underscoremessage is underlined - Blinkforeground is blinking (does not work on all terminals) - Reverseforeground and background are reversed - Hiddenoutput is hidden - Strikethroughmessage has a line through it - - While any of these attributes may be combined together not all combinations - work well together, for example setting both Bright and Dim attributes makes - no sense. - - - Patrick Wagstrom - Nicko Cadell - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Ansi code to reset terminal - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Add a mapping of level to color - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the foreground and background colours - for a level. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to color mappings set on this appender. - - - - - - Flag to write output to the error stream rather than the standard output stream - - - - - Mapping from level object to color value - - - - - Target is the value of the console output stream. - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The enum of possible display attributes - - - - The following flags can be combined together to - form the ANSI color attributes. - - - - - - - text is bright - - - - - text is dim - - - - - text is underlined - - - - - text is blinking - - - Not all terminals support this attribute - - - - - text and background colors are reversed - - - - - text is hidden - - - - - text is displayed with a strikethrough - - - - - The enum of possible foreground or background color values for - use with the color mapping method - - - - The output can be in one for the following ANSI colors. - - - - - - - color is black - - - - - color is red - - - - - color is green - - - - - color is yellow - - - - - color is blue - - - - - color is magenta - - - - - color is cyan - - - - - color is white - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and the color it should be displayed in. - - - - - - An entry in the - - - - This is an abstract base class for types that are stored in the - object. - - - Nicko Cadell - - - - Default protected constructor - - - - Default protected constructor - - - - - - Initialize any options defined on this entry - - - - Should be overridden by any classes that need to initialise based on their options - - - - - - The level that is the key for this mapping - - - The that is the key for this mapping - - - - Get or set the that is the key for this - mapping subclass. - - - - - - Initialize the options for the object - - - - Combine the and together - and append the attributes. - - - - - - The mapped foreground color for the specified level - - - - Required property. - The mapped foreground color for the specified level - - - - - - The mapped background color for the specified level - - - - Required property. - The mapped background color for the specified level - - - - - - The color attributes for the specified level - - - - Required property. - The color attributes for the specified level - - - - - - The combined , and - suitable for setting the ansi terminal color. - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a AppenderCollection instance. - - list to create a readonly wrapper arround - - An AppenderCollection wrapper that is read-only. - - - - - An empty readonly static AppenderCollection - - - - - Initializes a new instance of the AppenderCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the AppenderCollection class - that has the specified initial capacity. - - - The number of elements that the new AppenderCollection is initially capable of storing. - - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified AppenderCollection. - - The AppenderCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - - Copies the entire AppenderCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire AppenderCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the AppenderCollection. - - The to be added to the end of the AppenderCollection. - The index at which the value has been added. - - - - Removes all elements from the AppenderCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the AppenderCollection. - - The to check for. - true if is found in the AppenderCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the AppenderCollection. - - The to locate in the AppenderCollection. - - The zero-based index of the first occurrence of - in the entire AppenderCollection, if found; otherwise, -1. - - - - - Inserts an element into the AppenderCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the AppenderCollection. - - The to remove from the AppenderCollection. - - The specified was not found in the AppenderCollection. - - - - - Removes the element at the specified index of the AppenderCollection. - - The zero-based index of the element to remove. - - is less than zero - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the AppenderCollection. - - An for the entire AppenderCollection. - - - - Adds the elements of another AppenderCollection to the current AppenderCollection. - - The AppenderCollection whose elements should be added to the end of the current AppenderCollection. - The new of the AppenderCollection. - - - - Adds the elements of a array to the current AppenderCollection. - - The array whose elements should be added to the end of the AppenderCollection. - The new of the AppenderCollection. - - - - Adds the elements of a collection to the current AppenderCollection. - - The collection whose elements should be added to the end of the AppenderCollection. - The new of the AppenderCollection. - - - - Sets the capacity to the actual number of elements. - - - - - Return the collection elements as an array - - the array - - - - is less than zero - -or- - is equal to or greater than . - - - - - is less than zero - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the AppenderCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - The zero-based index of the element to get or set. - - is less than zero - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false - - - - Gets or sets the number of elements the AppenderCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - - A value - - - - - Supports simple iteration over a . - - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - - - - Buffers events and then forwards them to attached appenders. - - - - The events are buffered in this appender until conditions are - met to allow the appender to deliver the events to the attached - appenders. See for the - conditions that cause the buffer to be sent. - - The forwarding appender can be used to specify different - thresholds and filters for the same appender at different locations - within the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Interface for attaching appenders to objects. - - - - Interface for attaching, removing and retrieving appenders. - - - Nicko Cadell - Gert Driesen - - - - Attaches an appender. - - The appender to add. - - - Add the specified appender. The implementation may - choose to allow or deny duplicate appenders. - - - - - - Gets an attached appender with the specified name. - - The name of the appender to get. - - The appender with the name specified, or null if no appender with the - specified name is found. - - - - Returns an attached appender with the specified. - If no appender with the specified name is found null will be - returned. - - - - - - Removes all attached appenders. - - - - Removes and closes all attached appenders - - - - - - Removes the specified appender from the list of attached appenders. - - The appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Gets all attached appenders. - - - A collection of attached appenders. - - - - Gets a collection of attached appenders. - If there are no attached appenders the - implementation should return an empty - collection rather than null. - - - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Send the events. - - The events that need to be send. - - - Forwards the events to the attached appenders. - - - - - - Adds an to the list of appenders of this - instance. - - The to add to this appender. - - - If the specified is already in the list of - appenders, then it won't be added again. - - - - - - Looks for the appender with the specified name. - - The name of the appender to lookup. - - The appender with the specified name, or null. - - - - Get the named appender attached to this buffering appender. - - - - - - Removes all previously added appenders from this appender. - - - - This is useful when re-reading configuration information. - - - - - - Removes the specified appender from the list of appenders. - - The appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Implementation of the interface - - - - - Gets the appenders contained in this appender as an - . - - - If no appenders can be found, then an - is returned. - - - A collection of the appenders in this appender. - - - - - Appends logging events to the console. - - - - ConsoleAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes each message to the System.Console.Out or - System.Console.Error that is set at the time the event is appended. - Therefore it is possible to programmatically redirect the output of this appender - (for example NUnit does this to capture program output). While this is the desired - behavior of this appender it may have security implications in your application. - - - Nicko Cadell - Gert Driesen - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - flag set to true to write to the console error stream - - When is set to true, output is written to - the standard error output stream. Otherwise, output is written to the standard - output stream. - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appends log events to the system. - - - - The application configuration file can be used to control what listeners - are actually used. See the MSDN documentation for the - class for details on configuring the - debug system. - - - Events are written using the - method. The event's logger name is passed as the value for the category name to the Write method. - - - Nicko Cadell - - - - Initializes a new instance of the . - - - - Default constructor. - - - - - - Initializes a new instance of the - with a specified layout. - - The layout to use with this appender. - - - Obsolete constructor. - - - - - - Writes the logging event to the system. - - The event to log. - - - Writes the logging event to the system. - If is true then the - is called. - - - - - - Immediate flush means that the underlying writer or output stream - will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logs events are not actually written to persistent media if and - when the application crashes. - - - The default value is true. - - - - - Gets or sets a value that indicates whether the appender will - flush at the end of each write. - - - The default behavior is to flush at the end of each - write. If the option is set tofalse, then the underlying - stream can defer writing to physical medium to a later time. - - - Avoiding the flush operation at the end of each append results - in a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appends logging events to a file. - - - - Logging events are sent to the file specified by - the property. - - - The file can be opened in either append or overwrite mode - by specifying the property. - If the file path is relative it is taken as relative from - the application base directory. The file encoding can be - specified by setting the property. - - - The layout's and - values will be written each time the file is opened and closed - respectively. If the property is - then the file may contain multiple copies of the header and footer. - - - This appender will first try to open the file for writing when - is called. This will typically be during configuration. - If the file cannot be opened for writing the appender will attempt - to open the file again each time a message is logged to the appender. - If the file cannot be opened for writing when a message is logged then - the message will be discarded by this appender. - - - The supports pluggable file locking models via - the property. - The default behavior, implemented by - is to obtain an exclusive write lock on the file until this appender is closed. - The alternative model only holds a - write lock while the appender is writing a logging event (). - - - All locking strategies have issues and you should seriously consider using a different strategy that - avoids having multiple processes logging to the same file. - - - Nicko Cadell - Gert Driesen - Rodrigo B. de Oliveira - Douglas de la Torre - Niall Daley - - - - Sends logging events to a . - - - - An Appender that writes to a . - - - This appender may be used stand alone if initialized with an appropriate - writer, however it is typically used as a base class for an appender that - can open a to write to. - - - Nicko Cadell - Gert Driesen - Douglas de la Torre - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initializes a new instance of the class and - sets the output destination to a new initialized - with the specified . - - The layout to use with this appender. - The to output to. - - - Obsolete constructor. - - - - - - Initializes a new instance of the class and sets - the output destination to the specified . - - The layout to use with this appender - The to output to - - The must have been previously opened. - - - - Obsolete constructor. - - - - - - This method determines if there is a sense in attempting to append. - - - - This method checks if an output target has been set and if a - layout has been set. - - - false if any of the preconditions fail. - - - - This method is called by the - method. - - The event to log. - - - Writes a log statement to the output stream if the output stream exists - and is writable. - - - The format of the output will depend on the appender's layout. - - - - - - This method is called by the - method. - - The array of events to log. - - - This method writes all the bulk logged events to the output writer - before flushing the stream. - - - - - - Close this appender instance. The underlying stream or writer is also closed. - - - Closed appenders cannot be reused. - - - - - Writes the footer and closes the underlying . - - - - Writes the footer and closes the underlying . - - - - - - Closes the underlying . - - - - Closes the underlying . - - - - - - Clears internal references to the underlying - and other variables. - - - - Subclasses can override this method for an alternate closing behavior. - - - - - - Writes a footer as produced by the embedded layout's property. - - - - Writes a footer as produced by the embedded layout's property. - - - - - - Writes a header produced by the embedded layout's property. - - - - Writes a header produced by the embedded layout's property. - - - - - - Called to allow a subclass to lazily initialize the writer - - - - This method is called when an event is logged and the or - have not been set. This allows a subclass to - attempt to initialize the writer multiple times. - - - - - - This is the where logging events - will be written to. - - - - - Immediate flush means that the underlying - or output stream will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logging events are not actually persisted if and when the application - crashes. - - - The default value is true. - - - - - - The fully qualified type of the TextWriterAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or set whether the appender will flush at the end - of each append operation. - - - - The default behavior is to flush at the end of each - append operation. - - - If this option is set to false, then the underlying - stream can defer persisting the logging event to a later - time. - - - - Avoiding the flush operation at the end of each append results in - a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - Sets the where the log output will go. - - - - The specified must be open and writable. - - - The will be closed when the appender - instance is closed. - - - Note: Logging to an unopened will fail. - - - - - - Gets or set the and the underlying - , if any, for this appender. - - - The for this appender. - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Gets or sets the where logging events - will be written to. - - - The where logging events are written. - - - - This is the where logging events - will be written to. - - - - - - Default constructor - - - - Default constructor - - - - - - Construct a new appender using the layout, file and append mode. - - the layout to use with this appender - the full path to the file to write to - flag to indicate if the file should be appended to - - - Obsolete constructor. - - - - - - Construct a new appender using the layout and file specified. - The file will be appended to. - - the layout to use with this appender - the full path to the file to write to - - - Obsolete constructor. - - - - - - Activate the options on the file appender. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - This will cause the file to be opened. - - - - - - Closes any previously opened file and calls the parent's . - - - - Resets the filename and the file stream. - - - - - - Called to initialize the file writer - - - - Will be called for each logged message until the file is - successfully opened. - - - - - - This method is called by the - method. - - The event to log. - - - Writes a log statement to the output stream if the output stream exists - and is writable. - - - The format of the output will depend on the appender's layout. - - - - - - This method is called by the - method. - - The array of events to log. - - - Acquires the output file locks once before writing all the events to - the stream. - - - - - - Writes a footer as produced by the embedded layout's property. - - - - Writes a footer as produced by the embedded layout's property. - - - - - - Writes a header produced by the embedded layout's property. - - - - Writes a header produced by the embedded layout's property. - - - - - - Closes the underlying . - - - - Closes the underlying . - - - - - - Closes the previously opened file. - - - - Writes the to the file and then - closes the file. - - - - - - Sets and opens the file where the log output will go. The specified file must be writable. - - The path to the log file. Must be a fully qualified path. - If true will append to fileName. Otherwise will truncate fileName - - - Calls but guarantees not to throw an exception. - Errors are passed to the . - - - - - - Sets and opens the file where the log output will go. The specified file must be writable. - - The path to the log file. Must be a fully qualified path. - If true will append to fileName. Otherwise will truncate fileName - - - If there was already an opened file, then the previous file - is closed first. - - - This method will ensure that the directory structure - for the specified exists. - - - - - - Sets the quiet writer used for file output - - the file stream that has been opened for writing - - - This implementation of creates a - over the and passes it to the - method. - - - This method can be overridden by sub classes that want to wrap the - in some way, for example to encrypt the output - data using a System.Security.Cryptography.CryptoStream. - - - - - - Sets the quiet writer being used. - - the writer over the file stream that has been opened for writing - - - This method can be overridden by sub classes that want to - wrap the in some way. - - - - - - Convert a path into a fully qualified path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - - - - Flag to indicate if we should append to the file - or overwrite the file. The default is to append. - - - - - The name of the log file. - - - - - The encoding to use for the file stream. - - - - - The security context to use for privileged calls - - - - - The stream to log to. Has added locking semantics - - - - - The locking model to use - - - - - The fully qualified type of the FileAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the path to the file that logging will be written to. - - - The path to the file that logging will be written to. - - - - If the path is relative it is taken as relative from - the application base directory. - - - - - - Gets or sets a flag that indicates whether the file should be - appended to or overwritten. - - - Indicates whether the file should be appended to or overwritten. - - - - If the value is set to false then the file will be overwritten, if - it is set to true then the file will be appended to. - - The default value is true. - - - - - Gets or sets used to write to the file. - - - The used to write to the file. - - - - The default encoding set is - which is the encoding for the system's current ANSI code page. - - - - - - Gets or sets the used to write to the file. - - - The used to write to the file. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Gets or sets the used to handle locking of the file. - - - The used to lock the file. - - - - Gets or sets the used to handle locking of the file. - - - There are two built in locking models, and . - The first locks the file from the start of logging to the end, the - second locks only for the minimal amount of time when logging each message - and the last synchronizes processes using a named system wide Mutex. - - - The default locking model is the . - - - - - - Write only that uses the - to manage access to an underlying resource. - - - - - True asynchronous writes are not supported, the implementation forces a synchronous write. - - - - - Exception base type for log4net. - - - - This type extends . It - does not add any new functionality but does differentiate the - type of exception being thrown. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - A message to include with the exception. - - - Initializes a new instance of the class with - the specified message. - - - - - - Constructor - - A message to include with the exception. - A nested exception to include. - - - Initializes a new instance of the class - with the specified message and inner exception. - - - - - - Locking model base class - - - - Base class for the locking models available to the derived loggers. - - - - - - Open the output file - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Acquire the lock on the file in preparation for writing to it. - Return a stream pointing to the file. - must be called to release the lock on the output file. - - - - - - Release the lock on the file - - - - Release the lock on the file. No further writes will be made to the - stream until is called again. - - - - - - Helper method that creates a FileStream under CurrentAppender's SecurityContext. - - - - Typically called during OpenFile or AcquireLock. - - - If the directory portion of the does not exist, it is created - via Directory.CreateDirecctory. - - - - - - - - - - Helper method to close under CurrentAppender's SecurityContext. - - - Does not set to null. - - - - - - Gets or sets the for this LockingModel - - - The for this LockingModel - - - - The file appender this locking model is attached to and working on - behalf of. - - - The file appender is used to locate the security context and the error handler to use. - - - The value of this property will be set before is - called. - - - - - - Hold an exclusive lock on the output file - - - - Open the file once for writing and hold it open until is called. - Maintains an exclusive lock on the file during this time. - - - - - - Open the file specified and prepare for logging. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Does nothing. The lock is already taken - - - - - - Release the lock on the file - - - - Does nothing. The lock will be released when the file is closed. - - - - - - Acquires the file lock for each write - - - - Opens the file once for each / cycle, - thus holding the lock for the minimal amount of time. This method of locking - is considerably slower than but allows - other processes to move/delete the log file whilst logging continues. - - - - - - Prepares to open the file when the first message is logged. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Acquire the lock on the file in preparation for writing to it. - Return a stream pointing to the file. - must be called to release the lock on the output file. - - - - - - Release the lock on the file - - - - Release the lock on the file. No further writes will be made to the - stream until is called again. - - - - - - This appender forwards logging events to attached appenders. - - - - The forwarding appender can be used to specify different thresholds - and filters for the same appender at different locations within the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Forward the logging event to the attached appenders - - The event to log. - - - Delivers the logging event to all the attached appenders. - - - - - - Forward the logging events to the attached appenders - - The array of events to log. - - - Delivers the logging events to all the attached appenders. - - - - - - Adds an to the list of appenders of this - instance. - - The to add to this appender. - - - If the specified is already in the list of - appenders, then it won't be added again. - - - - - - Looks for the appender with the specified name. - - The name of the appender to lookup. - - The appender with the specified name, or null. - - - - Get the named appender attached to this appender. - - - - - - Removes all previously added appenders from this appender. - - - - This is useful when re-reading configuration information. - - - - - - Removes the specified appender from the list of appenders. - - The appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Implementation of the interface - - - - - Gets the appenders contained in this appender as an - . - - - If no appenders can be found, then an - is returned. - - - A collection of the appenders in this appender. - - - - - Stores logging events in an array. - - - - The memory appender stores all the logging events - that are appended in an in-memory array. - - - Use the method to get - the current list of events that have been appended. - - - Use the method to clear the - current list of events. - - - Julian Biddle - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Gets the events that have been logged. - - The events that have been logged - - - Gets the events that have been logged. - - - - - - This method is called by the method. - - the event to log - - Stores the in the events list. - - - - - Clear the list of events - - - Clear the list of events - - - - - The list of events that have been appended. - - - - - Value indicating which fields in the event should be fixed - - - By default all fields are fixed - - - - - Gets or sets a value indicating whether only part of the logging event - data should be fixed. - - - true if the appender should only fix part of the logging event - data, otherwise false. The default is false. - - - - Setting this property to true will cause only part of the event - data to be fixed and stored in the appender, hereby improving performance. - - - See for more information. - - - - - - Gets or sets the fields that will be fixed in the event - - - - The logging event needs to have certain thread specific values - captured before it can be buffered. See - for details. - - - - - - Appends log events to the OutputDebugString system. - - - - OutputDebugStringAppender appends log events to the - OutputDebugString system. - - - The string is passed to the native OutputDebugString - function. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Write the logging event to the output debug string API - - the event to log - - - Write the logging event to the output debug string API - - - - - - Stub for OutputDebugString native method - - the string to output - - - Stub for OutputDebugString native method - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Logs events to a remote syslog daemon. - - - - The BSD syslog protocol is used to remotely log to - a syslog daemon. The syslogd listens for for messages - on UDP port 514. - - - The syslog UDP protocol is not authenticated. Most syslog daemons - do not accept remote log messages because of the security implications. - You may be able to use the LocalSyslogAppender to talk to a local - syslog service. - - - There is an RFC 3164 that claims to document the BSD Syslog Protocol. - This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. - This appender generates what the RFC calls an "Original Device Message", - i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation - this format of message will be accepted by all current syslog daemon - implementations. The daemon will attach the current time and the source - hostname or IP address to any messages received. - - - Syslog messages must have a facility and and a severity. The severity - is derived from the Level of the logging event. - The facility must be chosen from the set of defined syslog - values. The facilities list is predefined - and cannot be extended. - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - Rob Lyon - Nicko Cadell - - - - Sends logging events as connectionless UDP datagrams to a remote host or a - multicast group using an . - - - - UDP guarantees neither that messages arrive, nor that they arrive in the correct order. - - - To view the logging results, a custom application can be developed that listens for logging - events. - - - When decoding events send via this appender remember to use the same encoding - to decode the events as was used to send the events. See the - property to specify the encoding to use. - - - - This example shows how to log receive logging events that are sent - on IP address 244.0.0.1 and port 8080 to the console. The event is - encoded in the packet as a unicode string and it is decoded as such. - - IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); - UdpClient udpClient; - byte[] buffer; - string loggingEvent; - - try - { - udpClient = new UdpClient(8080); - - while(true) - { - buffer = udpClient.Receive(ref remoteEndPoint); - loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); - Console.WriteLine(loggingEvent); - } - } - catch(Exception e) - { - Console.WriteLine(e.ToString()); - } - - - Dim remoteEndPoint as IPEndPoint - Dim udpClient as UdpClient - Dim buffer as Byte() - Dim loggingEvent as String - - Try - remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) - udpClient = new UdpClient(8080) - - While True - buffer = udpClient.Receive(ByRef remoteEndPoint) - loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) - Console.WriteLine(loggingEvent) - Wend - Catch e As Exception - Console.WriteLine(e.ToString()) - End Try - - - An example configuration section to log information using this appender to the - IP 224.0.0.1 on port 8080: - - - - - - - - - - Gert Driesen - Nicko Cadell - - - - Initializes a new instance of the class. - - - The default constructor initializes all fields to their default values. - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The appender will be ignored if no was specified or - an invalid remote or local TCP port number was specified. - - - The required property was not specified. - The TCP port number assigned to or is less than or greater than . - - - - This method is called by the method. - - The event to log. - - - Sends the event using an UDP datagram. - - - Exceptions are passed to the . - - - - - - Closes the UDP connection and releases all resources associated with - this instance. - - - - Disables the underlying and releases all managed - and unmanaged resources associated with the . - - - - - - Initializes the underlying connection. - - - - The underlying is initialized and binds to the - port number from which you intend to communicate. - - - Exceptions are passed to the . - - - - - - The IP address of the remote host or multicast group to which - the logging event will be sent. - - - - - The TCP port number of the remote host or multicast group to - which the logging event will be sent. - - - - - The cached remote endpoint to which the logging events will be sent. - - - - - The TCP port number from which the will communicate. - - - - - The instance that will be used for sending the - logging events. - - - - - The encoding to use for the packet. - - - - - Gets or sets the IP address of the remote host or multicast group to which - the underlying should sent the logging event. - - - The IP address of the remote host or multicast group to which the logging event - will be sent. - - - - Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to - 239.255.255.255). Multicast packets can pass across different networks through routers, so - it is possible to use multicasts in an Internet scenario as long as your network provider - supports multicasting. - - - Hosts that want to receive particular multicast messages must register their interest by joining - the multicast group. Multicast messages are not sent to networks where no host has joined - the multicast group. Class D IP addresses are used for multicast groups, to differentiate - them from normal host addresses, allowing nodes to easily detect if a message is of interest. - - - Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: - - - - - IP Address - Description - - - 224.0.0.1 - - - Sends a message to all system on the subnet. - - - - - 224.0.0.2 - - - Sends a message to all routers on the subnet. - - - - - 224.0.0.12 - - - The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. - - - - - - - A complete list of actually reserved multicast addresses and their owners in the ranges - defined by RFC 3171 can be found at the IANA web site. - - - The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative - addresses. These addresses can be reused with other local groups. Routers are typically - configured with filters to prevent multicast traffic in this range from flowing outside - of the local network. - - - - - - Gets or sets the TCP port number of the remote host or multicast group to which - the underlying should sent the logging event. - - - An integer value in the range to - indicating the TCP port number of the remote host or multicast group to which the logging event - will be sent. - - - The underlying will send messages to this TCP port number - on the remote host or multicast group. - - The value specified is less than or greater than . - - - - Gets or sets the TCP port number from which the underlying will communicate. - - - An integer value in the range to - indicating the TCP port number from which the underlying will communicate. - - - - The underlying will bind to this port for sending messages. - - - Setting the value to 0 (the default) will cause the udp client not to bind to - a local port. - - - The value specified is less than or greater than . - - - - Gets or sets used to write the packets. - - - The used to write the packets. - - - - The used to write the packets. - - - - - - Gets or sets the underlying . - - - The underlying . - - - creates a to send logging events - over a network. Classes deriving from can use this - property to get or set this . Use the underlying - returned from if you require access beyond that which - provides. - - - - - Gets or sets the cached remote endpoint to which the logging events should be sent. - - - The cached remote endpoint to which the logging events will be sent. - - - The method will initialize the remote endpoint - with the values of the and - properties. - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Syslog port 514 - - - - - Initializes a new instance of the class. - - - This instance of the class is set up to write - to a remote syslog daemon. - - - - - Add a mapping of level to severity - - The mapping to add - - - Add a mapping to this appender. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to a remote syslog daemon. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to syslog severity mappings set on this appender. - - - - - - Translates a log4net level to a syslog severity. - - A log4net level. - A syslog severity. - - - Translates a log4net level to a syslog severity. - - - - - - Generate a syslog priority. - - The syslog facility. - The syslog severity. - A syslog priority. - - - Generate a syslog priority. - - - - - - The facility. The default facility is . - - - - - The message identity - - - - - Mapping from level object to syslog severity - - - - - Message identity - - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - - - - Syslog facility - - - Set to one of the values. The list of - facilities is predefined and cannot be extended. The default value - is . - - - - - syslog severities - - - - The syslog severities. - - - - - - system is unusable - - - - - action must be taken immediately - - - - - critical conditions - - - - - error conditions - - - - - warning conditions - - - - - normal but significant condition - - - - - informational - - - - - debug-level messages - - - - - syslog facilities - - - - The syslog facilities - - - - - - kernel messages - - - - - random user-level messages - - - - - mail system - - - - - system daemons - - - - - security/authorization messages - - - - - messages generated internally by syslogd - - - - - line printer subsystem - - - - - network news subsystem - - - - - UUCP subsystem - - - - - clock (cron/at) daemon - - - - - security/authorization messages (private) - - - - - ftp daemon - - - - - NTP subsystem - - - - - log audit - - - - - log alert - - - - - clock daemon - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - - - The mapped syslog severity for the specified level - - - - Required property. - The mapped syslog severity for the specified level - - - - - - Appender that rolls log files based on size or date or both. - - - - RollingFileAppender can roll log files based on size or date or both - depending on the setting of the property. - When set to the log file will be rolled - once its size exceeds the . - When set to the log file will be rolled - once the date boundary specified in the property - is crossed. - When set to the log file will be - rolled once the date boundary specified in the property - is crossed, but within a date boundary the file will also be rolled - once its size exceeds the . - When set to the log file will be rolled when - the appender is configured. This effectively means that the log file can be - rolled once per program execution. - - - A of few additional optional features have been added: - - Attach date pattern for current log file - Backup number increments for newer files - Infinite number of backups by file size - - - - - - For large or infinite numbers of backup files a - greater than zero is highly recommended, otherwise all the backup files need - to be renamed each time a new backup is created. - - - When Date/Time based rolling is used setting - to will reduce the number of file renamings to few or none. - - - - - - Changing or without clearing - the log file directory of backup files will cause unexpected and unwanted side effects. - - - - - If Date/Time based rolling is enabled this appender will attempt to roll existing files - in the directory without a Date/Time tag based on the last write date of the base log file. - The appender only rolls the log file when a message is logged. If Date/Time based rolling - is enabled then the appender will not roll the log file at the Date/Time boundary but - at the point when the next message is logged after the boundary has been crossed. - - - - The extends the and - has the same behavior when opening the log file. - The appender will first try to open the file for writing when - is called. This will typically be during configuration. - If the file cannot be opened for writing the appender will attempt - to open the file again each time a message is logged to the appender. - If the file cannot be opened for writing when a message is logged then - the message will be discarded by this appender. - - - When rolling a backup file necessitates deleting an older backup file the - file to be deleted is moved to a temporary name before being deleted. - - - - - A maximum number of backup files when rolling on date/time boundaries is not supported. - - - - Nicko Cadell - Gert Driesen - Aspi Havewala - Douglas de la Torre - Edward Smit - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - The fully qualified type of the RollingFileAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Sets the quiet writer being used. - - - This method can be overridden by sub classes. - - the writer to set - - - - Write out a logging event. - - the event to write to file. - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Write out an array of logging events. - - the events to write to file. - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Performs any required rolling before outputting the next event - - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Creates and opens the file for logging. If - is false then the fully qualified name is determined and used. - - the name of the file to open - true to append to existing file - - This method will ensure that the directory structure - for the specified exists. - - - - - Get the current output file name - - the base file name - the output file name - - The output file name is based on the base fileName specified. - If is set then the output - file name is the same as the base file passed in. Otherwise - the output file depends on the date pattern, on the count - direction or both. - - - - - Determines curSizeRollBackups (only within the current roll point) - - - - - Generates a wildcard pattern that can be used to find all files - that are similar to the base file name. - - - - - - - Builds a list of filenames for all files matching the base filename plus a file - pattern. - - - - - - - Initiates a roll over if needed for crossing a date boundary since the last run. - - - - - Initializes based on existing conditions at time of . - - - - Initializes based on existing conditions at time of . - The following is done - - determine curSizeRollBackups (only within the current roll point) - initiates a roll over if needed for crossing a date boundary since the last run. - - - - - - - Does the work of bumping the 'current' file counter higher - to the highest count when an incremental file name is seen. - The highest count is either the first file (when count direction - is greater than 0) or the last file (when count direction less than 0). - In either case, we want to know the highest count that is present. - - - - - - - Attempts to extract a number from the end of the file name that indicates - the number of the times the file has been rolled over. - - - Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. - - - - - - - Takes a list of files and a base file name, and looks for - 'incremented' versions of the base file. Bumps the max - count up to the highest count seen. - - - - - - - Calculates the RollPoint for the datePattern supplied. - - the date pattern to calculate the check period for - The RollPoint that is most accurate for the date pattern supplied - - Essentially the date pattern is examined to determine what the - most suitable roll point is. The roll point chosen is the roll point - with the smallest period that can be detected using the date pattern - supplied. i.e. if the date pattern only outputs the year, month, day - and hour then the smallest roll point that can be detected would be - and hourly roll point as minutes could not be detected. - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Sets initial conditions including date/time roll over information, first check, - scheduledFilename, and calls to initialize - the current number of backups. - - - - - - - - - .1, .2, .3, etc. - - - - - Rollover the file(s) to date/time tagged file(s). - - set to true if the file to be rolled is currently open - - - Rollover the file(s) to date/time tagged file(s). - Resets curSizeRollBackups. - If fileIsOpen is set then the new file is opened (through SafeOpenFile). - - - - - - Renames file to file . - - Name of existing file to roll. - New name for file. - - - Renames file to file . It - also checks for existence of target file and deletes if it does. - - - - - - Test if a file exists at a specified path - - the path to the file - true if the file exists - - - Test if a file exists at a specified path - - - - - - Deletes the specified file if it exists. - - The file to delete. - - - Delete a file if is exists. - The file is first moved to a new filename then deleted. - This allows the file to be removed even when it cannot - be deleted, but it still can be moved. - - - - - - Implements file roll base on file size. - - - - If the maximum number of size based backups is reached - (curSizeRollBackups == maxSizeRollBackups) then the oldest - file is deleted -- its index determined by the sign of countDirection. - If countDirection < 0, then files - {File.1, ..., File.curSizeRollBackups -1} - are renamed to {File.2, ..., - File.curSizeRollBackups}. Moreover, File is - renamed File.1 and closed. - - - A new file is created to receive further log output. - - - If maxSizeRollBackups is equal to zero, then the - File is truncated with no backup files created. - - - If maxSizeRollBackups < 0, then File is - renamed if needed and no files are deleted. - - - - - - Implements file roll. - - the base name to rename - - - If the maximum number of size based backups is reached - (curSizeRollBackups == maxSizeRollBackups) then the oldest - file is deleted -- its index determined by the sign of countDirection. - If countDirection < 0, then files - {File.1, ..., File.curSizeRollBackups -1} - are renamed to {File.2, ..., - File.curSizeRollBackups}. - - - If maxSizeRollBackups is equal to zero, then the - File is truncated with no backup files created. - - - If maxSizeRollBackups < 0, then File is - renamed if needed and no files are deleted. - - - This is called by to rename the files. - - - - - - Get the start time of the next window for the current rollpoint - - the current date - the type of roll point we are working with - the start time for the next roll point an interval after the currentDateTime date - - - Returns the date of the next roll point after the currentDateTime date passed to the method. - - - The basic strategy is to subtract the time parts that are less significant - than the rollpoint from the current time. This should roll the time back to - the start of the time window for the current rollpoint. Then we add 1 window - worth of time and get the start time of the next window for the rollpoint. - - - - - - This object supplies the current date/time. Allows test code to plug in - a method to control this class when testing date/time based rolling. The default - implementation uses the underlying value of DateTime.Now. - - - - - The date pattern. By default, the pattern is set to ".yyyy-MM-dd" - meaning daily rollover. - - - - - The actual formatted filename that is currently being written to - or will be the file transferred to on roll over - (based on staticLogFileName). - - - - - The timestamp when we shall next recompute the filename. - - - - - Holds date of last roll over - - - - - The type of rolling done - - - - - The default maximum file size is 10MB - - - - - There is zero backup files by default - - - - - How many sized based backups have been made so far - - - - - The rolling file count direction. - - - - - The rolling mode used in this appender. - - - - - Cache flag set if we are rolling by date. - - - - - Cache flag set if we are rolling by size. - - - - - Value indicating whether to always log to the same file. - - - - - Value indicating whether to preserve the file name extension when rolling. - - - - - FileName provided in configuration. Used for rolling properly - - - - - The 1st of January 1970 in UTC - - - - - Gets or sets the strategy for determining the current date and time. The default - implementation is to use LocalDateTime which internally calls through to DateTime.Now. - - - An implementation of the interface which returns the current date and time. - - - - Gets or sets the used to return the current date and time. - - - The default strategy is . - - - - - - Gets or sets the date pattern to be used for generating file names - when rolling over on date. - - - The date pattern to be used for generating file names when rolling - over on date. - - - - Takes a string in the same format as expected by - . - - - This property determines the rollover schedule when rolling over - on date. - - - - - - Gets or sets the maximum number of backup files that are kept before - the oldest is erased. - - - The maximum number of backup files that are kept before the oldest is - erased. - - - - If set to zero, then there will be no backup files and the log file - will be truncated when it reaches . - - - If a negative number is supplied then no deletions will be made. Note - that this could result in very slow performance as a large number of - files are rolled over unless is used. - - - The maximum applies to each time based group of files and - not the total. - - - - - - Gets or sets the maximum size that the output file is allowed to reach - before being rolled over to backup files. - - - The maximum size in bytes that the output file is allowed to reach before being - rolled over to backup files. - - - - This property is equivalent to except - that it is required for differentiating the setter taking a - argument from the setter taking a - argument. - - - The default maximum file size is 10MB (10*1024*1024). - - - - - - Gets or sets the maximum size that the output file is allowed to reach - before being rolled over to backup files. - - - The maximum size that the output file is allowed to reach before being - rolled over to backup files. - - - - This property allows you to specify the maximum size with the - suffixes "KB", "MB" or "GB" so that the size is interpreted being - expressed respectively in kilobytes, megabytes or gigabytes. - - - For example, the value "10KB" will be interpreted as 10240 bytes. - - - The default maximum file size is 10MB. - - - If you have the option to set the maximum file size programmatically - consider using the property instead as this - allows you to set the size in bytes as a . - - - - - - Gets or sets the rolling file count direction. - - - The rolling file count direction. - - - - Indicates if the current file is the lowest numbered file or the - highest numbered file. - - - By default newer files have lower numbers ( < 0), - i.e. log.1 is most recent, log.5 is the 5th backup, etc... - - - >= 0 does the opposite i.e. - log.1 is the first backup made, log.5 is the 5th backup made, etc. - For infinite backups use >= 0 to reduce - rollover costs. - - The default file count direction is -1. - - - - - Gets or sets the rolling style. - - The rolling style. - - - The default rolling style is . - - - When set to this appender's - property is set to false, otherwise - the appender would append to a single file rather than rolling - the file each time it is opened. - - - - - - Gets or sets a value indicating whether to preserve the file name extension when rolling. - - - true if the file name extension should be preserved. - - - - By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. - However, under Windows the new file name will loose any program associations as the - extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or - file.curSizeRollBackup.log to maintain any program associations. - - - - - - Gets or sets a value indicating whether to always log to - the same file. - - - true if always should be logged to the same file, otherwise false. - - - - By default file.log is always the current file. Optionally - file.log.yyyy-mm-dd for current formatted datePattern can by the currently - logging file (or file.log.curSizeRollBackup or even - file.log.yyyy-mm-dd.curSizeRollBackup). - - - This will make time based rollovers with a large number of backups - much faster as the appender it won't have to rename all the backups! - - - - - - Style of rolling to use - - - - Style of rolling to use - - - - - - Roll files once per program execution - - - - Roll files once per program execution. - Well really once each time this appender is - configured. - - - Setting this option also sets AppendToFile to - false on the RollingFileAppender, otherwise - this appender would just be a normal file appender. - - - - - - Roll files based only on the size of the file - - - - - Roll files based only on the date - - - - - Roll files based on both the size and date of the file - - - - - The code assumes that the following 'time' constants are in a increasing sequence. - - - - The code assumes that the following 'time' constants are in a increasing sequence. - - - - - - Roll the log not based on the date - - - - - Roll the log for each minute - - - - - Roll the log for each hour - - - - - Roll the log twice a day (midday and midnight) - - - - - Roll the log each day (midnight) - - - - - Roll the log each week - - - - - Roll the log each month - - - - - This interface is used to supply Date/Time information to the . - - - This interface is used to supply Date/Time information to the . - Used primarily to allow test classes to plug themselves in so they can - supply test date/times. - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Default implementation of that returns the current time. - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Send an email when a specific logging event occurs, typically on errors - or fatal errors. Rather than sending via smtp it writes a file into the - directory specified by . This allows services such - as the IIS SMTP agent to manage sending the messages. - - - - The configuration for this appender is identical to that of the SMTPAppender, - except that instead of specifying the SMTPAppender.SMTPHost you specify - . - - - The number of logging events delivered in this e-mail depend on - the value of option. The - keeps only the last - logging events in its - cyclic buffer. This keeps memory requirements at a reasonable level while - still delivering useful application context. - - - Niall Daley - Nicko Cadell - - - - Default constructor - - - - Default constructor - - - - - - Sends the contents of the cyclic buffer as an e-mail message. - - The logging events to send. - - - Sends the contents of the cyclic buffer as an e-mail message. - - - - - - Activate the options on this appender. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Convert a path into a fully qualified path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - - - - The security context to use for privileged calls - - - - - Gets or sets a semicolon-delimited list of recipient e-mail addresses. - - - A semicolon-delimited list of e-mail addresses. - - - - A semicolon-delimited list of e-mail addresses. - - - - - - Gets or sets the e-mail address of the sender. - - - The e-mail address of the sender. - - - - The e-mail address of the sender. - - - - - - Gets or sets the subject line of the e-mail message. - - - The subject line of the e-mail message. - - - - The subject line of the e-mail message. - - - - - - Gets or sets the path to write the messages to. - - - - Gets or sets the path to write the messages to. This should be the same - as that used by the agent sending the messages. - - - - - - Gets or sets the used to write to the pickup directory. - - - The used to write to the pickup directory. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appender that allows clients to connect via Telnet to receive log messages - - - - The TelnetAppender accepts socket connections and streams logging messages - back to the client. - The output is provided in a telnet-friendly way so that a log can be monitored - over a TCP/IP socket. - This allows simple remote monitoring of application logging. - - - The default is 23 (the telnet port). - - - Keith Long - Nicko Cadell - - - - Default constructor - - - - Default constructor - - - - - - The fully qualified type of the TelnetAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Overrides the parent method to close the socket handler - - - - Closes all the outstanding connections. - - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Create the socket handler and wait for connections - - - - - - Writes the logging event to each connected client. - - The event to log. - - - Writes the logging event to each connected client. - - - - - - Gets or sets the TCP port number on which this will listen for connections. - - - An integer value in the range to - indicating the TCP port number on which this will listen for connections. - - - - The default value is 23 (the telnet port). - - - The value specified is less than - or greater than . - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Helper class to manage connected clients - - - - The SocketHandler class is used to accept connections from - clients. It is threaded so that clients can connect/disconnect - asynchronously. - - - - - - Opens a new server port on - - the local port to listen on for connections - - - Creates a socket handler on the specified local server port. - - - - - - Sends a string message to each of the connected clients - - the text to send - - - Sends a string message to each of the connected clients - - - - - - Add a client to the internal clients list - - client to add - - - - Remove a client from the internal clients list - - client to remove - - - - Callback used to accept a connection on the server socket - - The result of the asynchronous operation - - - On connection adds to the list of connections - if there are two many open connections you will be disconnected - - - - - - Close all network connections - - - - Make sure we close all network connections - - - - - - Test if this handler has active connections - - - true if this handler has active connections - - - - This property will be true while this handler has - active connections, that is at least one connection that - the handler will attempt to send a message to. - - - - - - Class that represents a client connected to this handler - - - - Class that represents a client connected to this handler - - - - - - Create this for the specified - - the client's socket - - - Opens a stream writer on the socket. - - - - - - Write a string to the client - - string to send - - - Write a string to the client - - - - - - Cleanup the clients connection - - - - Close the socket connection. - - - - - - Appends log events to the system. - - - - The application configuration file can be used to control what listeners - are actually used. See the MSDN documentation for the - class for details on configuring the - trace system. - - - Events are written using the System.Diagnostics.Trace.Write(string,string) - method. The event's logger name is the default value for the category parameter - of the Write method. - - - Compact Framework
    - The Compact Framework does not support the - class for any operation except Assert. When using the Compact Framework this - appender will write to the system rather than - the Trace system. This appender will therefore behave like the . -
    -
    - Douglas de la Torre - Nicko Cadell - Gert Driesen - Ron Grabowski -
    - - - Initializes a new instance of the . - - - - Default constructor. - - - - - - Initializes a new instance of the - with a specified layout. - - The layout to use with this appender. - - - Obsolete constructor. - - - - - - Writes the logging event to the system. - - The event to log. - - - Writes the logging event to the system. - - - - - - Immediate flush means that the underlying writer or output stream - will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logs events are not actually written to persistent media if and - when the application crashes. - - - The default value is true. - - - - - Defaults to %logger - - - - - Gets or sets a value that indicates whether the appender will - flush at the end of each write. - - - The default behavior is to flush at the end of each - write. If the option is set tofalse, then the underlying - stream can defer writing to physical medium to a later time. - - - Avoiding the flush operation at the end of each append results - in a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - - The category parameter sent to the Trace method. - - - - Defaults to %logger which will use the logger name of the current - as the category parameter. - - - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Use this class to quickly configure a . - - - - Allows very simple programmatic configuration of log4net. - - - Only one appender can be configured using this configurator. - The appender is set at the root of the hierarchy and all logging - events will be delivered to that appender. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - The fully qualified type of the BasicConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Initializes the log4net system with a default configuration. - - - - Initializes the log4net logging system using a - that will write to Console.Out. The log messages are - formatted using the layout object - with the - layout style. - - - - - - Initializes the log4net system using the specified appender. - - The appender to use to log all logging events. - - - Initializes the log4net system using the specified appender. - - - - - - Initializes the log4net system using the specified appenders. - - The appenders to use to log all logging events. - - - Initializes the log4net system using the specified appenders. - - - - - - Initializes the with a default configuration. - - The repository to configure. - - - Initializes the specified repository using a - that will write to Console.Out. The log messages are - formatted using the layout object - with the - layout style. - - - - - - Initializes the using the specified appender. - - The repository to configure. - The appender to use to log all logging events. - - - Initializes the using the specified appender. - - - - - - Initializes the using the specified appenders. - - The repository to configure. - The appenders to use to log all logging events. - - - Initializes the using the specified appender. - - - - - - Use this class to initialize the log4net environment using an Xml tree. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - Configures a using an Xml tree. - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - - - Automatically configures the log4net system based on the - application's configuration settings. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - 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 - log4net that contains the configuration data. - - - - - Automatically configures the using settings - stored in the application's configuration file. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - 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 - log4net that contains the configuration data. - - The repository to configure. - - - - Configures log4net using a log4net element - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - Loads the log4net configuration from the XML element - supplied as . - - The element to parse. - - - - Configures the using the specified XML - element. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - Loads the log4net configuration from the XML element - supplied as . - - The repository to configure. - The element to parse. - - - - Configures log4net using the specified configuration file. - - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures log4net using the specified configuration file. - - A stream to load the XML configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The stream to load the XML configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Use this class to initialize the log4net environment using an Xml tree. - - - - Configures a using an Xml tree. - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - - - Automatically configures the log4net system based on the - application's configuration settings. - - - - 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 - log4net that contains the configuration data. - - - - - - Automatically configures the using settings - stored in the application's configuration file. - - - - 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 - log4net that contains the configuration data. - - - The repository to configure. - - - - Configures log4net using a log4net element - - - - Loads the log4net configuration from the XML element - supplied as . - - - The element to parse. - - - - Configures the using the specified XML - element. - - - Loads the log4net configuration from the XML element - supplied as . - - The repository to configure. - The element to parse. - - - - Configures log4net using the specified configuration file. - - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures log4net using the specified configuration URI. - - A URI to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The must support the URI scheme specified. - - - - - - Configures log4net using the specified configuration data stream. - - A stream to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures the using the specified configuration - URI. - - The repository to configure. - A URI to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The must support the URI scheme specified. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The stream to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures the specified repository using a log4net element. - - The hierarchy to configure. - The element to parse. - - - Loads the log4net configuration from the XML element - supplied as . - - - This method is ultimately called by one of the Configure methods - to load the configuration from an . - - - - - - Maps repository names to ConfigAndWatchHandler instances to allow a particular - ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is - reconfigured. - - - - - The fully qualified type of the XmlConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - The implementation of the interface suitable - for use with the compact framework - - - - This implementation is a simple - mapping between repository name and - object. - - - The .NET Compact Framework 1.0 does not support retrieving assembly - level attributes therefore unlike the DefaultRepositorySelector - this selector does not examine the calling assembly for attributes. - - - Nicko Cadell - - - - Interface used by the to select the . - - - - The uses a - to specify the policy for selecting the correct - to return to the caller. - - - Nicko Cadell - Gert Driesen - - - - Gets the for the specified assembly. - - The assembly to use to lookup to the - The for the assembly. - - - Gets the for the specified assembly. - - - How the association between and - is made is not defined. The implementation may choose any method for - this association. The results of this method must be repeatable, i.e. - when called again with the same arguments the result must be the - save value. - - - - - - Gets the named . - - The name to use to lookup to the . - The named - - Lookup a named . This is the repository created by - calling . - - - - - Creates a new repository for the assembly specified. - - The assembly to use to create the domain to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the domain - specified such that a call to with the - same assembly specified will return the same repository instance. - - - How the association between and - is made is not defined. The implementation may choose any method for - this association. - - - - - - Creates a new repository with the name specified. - - The name to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the name - specified such that a call to with the - same name will return the same repository instance. - - - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets an array of all currently defined repositories. - - - An array of the instances created by - this . - - - Gets an array of all of the repositories created by this selector. - - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - Create a new repository selector - - the type of the repositories to create, must implement - - - Create an new compact repository selector. - The default type for repositories must be specified, - an appropriate value would be . - - - throw if is null - throw if does not implement - - - - Get the for the specified assembly - - not used - The default - - - The argument is not used. This selector does not create a - separate repository for each assembly. - - - As a named repository is not specified the default repository is - returned. The default repository is named log4net-default-repository. - - - - - - Get the named - - the name of the repository to lookup - The named - - - Get the named . The default - repository is log4net-default-repository. Other repositories - must be created using the . - If the named repository does not exist an exception is thrown. - - - throw if is null - throw if the does not exist - - - - Create a new repository for the assembly specified - - not used - the type of repository to create, must implement - the repository created - - - The argument is not used. This selector does not create a - separate repository for each assembly. - - - If the is null then the - default repository type specified to the constructor is used. - - - As a named repository is not specified the default repository is - returned. The default repository is named log4net-default-repository. - - - - - - Create a new repository for the repository specified - - the repository to associate with the - the type of repository to create, must implement . - If this param is null then the default repository type is used. - the repository created - - - The created will be associated with the repository - specified such that a call to with the - same repository specified will return the same repository instance. - - - If the named repository already exists an exception will be thrown. - - - If is null then the default - repository type specified to the constructor is used. - - - throw if is null - throw if the already exists - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets a list of objects - - an array of all known objects - - - Gets an array of all of the repositories created by this selector. - - - - - - The fully qualified type of the CompactRepositorySelector class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Notify the registered listeners that the repository has been created - - The repository that has been created - - - Raises the LoggerRepositoryCreatedEvent - event. - - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - Defined error codes that can be passed to the method. - - - - Values passed to the method. - - - Nicko Cadell - - - - A general error - - - - - Error while writing output - - - - - Failed to flush file - - - - - Failed to close file - - - - - Unable to open output file - - - - - No layout specified - - - - - Failed to parse address - - - - - An evaluator that triggers on an Exception type - - - - This evaluator will trigger if the type of the Exception - passed to - is equal to a Type in . /// - - - Drew Schaeffer - - - - Test if an triggers an action - - - - Implementations of this interface allow certain appenders to decide - when to perform an appender specific action. - - - The action or behavior triggered is defined by the implementation. - - - Nicko Cadell - - - - Test if this event triggers the action - - The event to check - true if this event triggers the action, otherwise false - - - Return true if this event triggers the action - - - - - - The type that causes the trigger to fire. - - - - - Causes subclasses of to cause the trigger to fire. - - - - - Default ctor to allow dynamic creation through a configurator. - - - - - Constructs an evaluator and initializes to trigger on - - the type that triggers this evaluator. - If true, this evaluator will trigger on subclasses of . - - - - Is this the triggering event? - - The event to check - This method returns true, if the logging event Exception - Type is . - Otherwise it returns false - - - This evaluator will trigger if the Exception Type of the event - passed to - is . - - - - - - The type that triggers this evaluator. - - - - - If true, this evaluator will trigger on subclasses of . - - - - - Appenders may delegate their error handling to an . - - - - Error handling is a particularly tedious to get right because by - definition errors are hard to predict and to reproduce. - - - Nicko Cadell - Gert Driesen - - - - Handles the error and information about the error condition is passed as - a parameter. - - The message associated with the error. - The that was thrown when the error occurred. - The error code associated with the error. - - - Handles the error and information about the error condition is passed as - a parameter. - - - - - - Prints the error message passed as a parameter. - - The message associated with the error. - The that was thrown when the error occurred. - - - See . - - - - - - Prints the error message passed as a parameter. - - The message associated with the error. - - - See . - - - - - - Interface for objects that require fixing. - - - - Interface that indicates that the object requires fixing before it - can be taken outside the context of the appender's - method. - - - When objects that implement this interface are stored - in the context properties maps - and - are fixed - (see ) the - method will be called. - - - Nicko Cadell - - - - Get a portable version of this object - - the portable instance of this object - - - Get a portable instance object that represents the current - state of this object. The portable object can be stored - and logged from any thread with identical results. - - - - - - Interface that all loggers implement - - - - This interface supports logging events and testing if a level - is enabled for logging. - - - These methods will not throw exceptions. Note to implementor, ensure - that the implementation of these methods cannot allow an exception - to be thrown to the caller. - - - Nicko Cadell - Gert Driesen - - - - This generic form is intended to be used by wrappers. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - the exception to log, including its stack trace. Pass null to not log an exception. - - - Generates a logging event for the specified using - the and . - - - - - - This is the most generic printing method that is intended to be used - by wrappers. - - The event being logged. - - - Logs the specified logging event through this logger. - - - - - - Checks if this logger is enabled for a given passed as parameter. - - The level to check. - - true if this logger is enabled for level, otherwise false. - - - - Test if this logger is going to log events of the specified . - - - - - - Gets the name of the logger. - - - The name of the logger. - - - - The name of this logger - - - - - - Gets the where this - Logger instance is attached to. - - - The that this logger belongs to. - - - - Gets the where this - Logger instance is attached to. - - - - - - Base interface for all wrappers - - - - Base interface for all wrappers. - - - All wrappers must implement this interface. - - - Nicko Cadell - - - - Get the implementation behind this wrapper object. - - - The object that in implementing this object. - - - - The object that in implementing this - object. The Logger object may not - be the same object as this object because of logger decorators. - This gets the actual underlying objects that is used to process - the log events. - - - - - - Delegate used to handle logger repository creation event notifications - - The which created the repository. - The event args - that holds the instance that has been created. - - - Delegate used to handle logger repository creation event notifications. - - - - - - Provides data for the event. - - - - A - event is raised every time a is created. - - - - - - The created - - - - - Construct instance using specified - - the that has been created - - - Construct instance using specified - - - - - - The that has been created - - - The that has been created - - - - The that has been created - - - - - - Defines the default set of levels recognized by the system. - - - - Each has an associated . - - - Levels have a numeric that defines the relative - ordering between levels. Two Levels with the same - are deemed to be equivalent. - - - The levels that are recognized by log4net are set for each - and each repository can have different levels defined. The levels are stored - in the on the repository. Levels are - looked up by name from the . - - - When logging at level INFO the actual level used is not but - the value of LoggerRepository.LevelMap["INFO"]. The default value for this is - , but this can be changed by reconfiguring the level map. - - - Each level has a in addition to its . The - is the string that is written into the output log. By default - the display name is the same as the level name, but this can be used to alias levels - or to localize the log output. - - - Some of the predefined levels recognized by the system are: - - - - . - - - . - - - . - - - . - - - . - - - . - - - . - - - - Nicko Cadell - Gert Driesen - - - - Constructor - - Integer value for this level, higher values represent more severe levels. - The string name of this level. - The display name for this level. This may be localized or otherwise different from the name - - - Initializes a new instance of the class with - the specified level name and value. - - - - - - Constructor - - Integer value for this level, higher values represent more severe levels. - The string name of this level. - - - Initializes a new instance of the class with - the specified level name and value. - - - - - - Returns the representation of the current - . - - - A representation of the current . - - - - Returns the level . - - - - - - Compares levels. - - The object to compare against. - true if the objects are equal. - - - Compares the levels of instances, and - defers to base class if the target object is not a - instance. - - - - - - Returns a hash code - - A hash code for the current . - - - Returns a hash code suitable for use in hashing algorithms and data - structures like a hash table. - - - Returns the hash code of the level . - - - - - - Compares this instance to a specified object and returns an - indication of their relative values. - - A instance or to compare with this instance. - - A 32-bit signed integer that indicates the relative order of the - values compared. The return value has these meanings: - - - Value - Meaning - - - Less than zero - This instance is less than . - - - Zero - This instance is equal to . - - - Greater than zero - - This instance is greater than . - -or- - is . - - - - - - - must be an instance of - or ; otherwise, an exception is thrown. - - - is not a . - - - - Returns a value indicating whether a specified - is greater than another specified . - - A - A - - true if is greater than - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is less than another specified . - - A - A - - true if is less than - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is greater than or equal to another specified . - - A - A - - true if is greater than or equal to - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is less than or equal to another specified . - - A - A - - true if is less than or equal to - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether two specified - objects have the same value. - - A or . - A or . - - true if the value of is the same as the - value of ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether two specified - objects have different values. - - A or . - A or . - - true if the value of is different from - the value of ; otherwise, false. - - - - Compares two levels. - - - - - - Compares two specified instances. - - The first to compare. - The second to compare. - - A 32-bit signed integer that indicates the relative order of the - two values compared. The return value has these meanings: - - - Value - Meaning - - - Less than zero - is less than . - - - Zero - is equal to . - - - Greater than zero - is greater than . - - - - - - Compares two levels. - - - - - - The level designates a higher level than all the rest. - - - - - The level designates very severe error events. - System unusable, emergencies. - - - - - The level designates very severe error events. - System unusable, emergencies. - - - - - The level designates very severe error events - that will presumably lead the application to abort. - - - - - The level designates very severe error events. - Take immediate action, alerts. - - - - - The level designates very severe error events. - Critical condition, critical. - - - - - The level designates very severe error events. - - - - - The level designates error events that might - still allow the application to continue running. - - - - - The level designates potentially harmful - situations. - - - - - The level designates informational messages - that highlight the progress of the application at the highest level. - - - - - The level designates informational messages that - highlight the progress of the application at coarse-grained level. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates the lowest level possible. - - - - - Gets the name of this level. - - - The name of this level. - - - - Gets the name of this level. - - - - - - Gets the value of this level. - - - The value of this level. - - - - Gets the value of this level. - - - - - - Gets the display name of this level. - - - The display name of this level. - - - - Gets the display name of this level. - - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a LevelCollection instance. - - list to create a readonly wrapper arround - - A LevelCollection wrapper that is read-only. - - - - - Initializes a new instance of the LevelCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the LevelCollection class - that has the specified initial capacity. - - - The number of elements that the new LevelCollection is initially capable of storing. - - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified LevelCollection. - - The LevelCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - Copies the entire LevelCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire LevelCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the LevelCollection. - - The to be added to the end of the LevelCollection. - The index at which the value has been added. - - - - Removes all elements from the LevelCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the LevelCollection. - - The to check for. - true if is found in the LevelCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the LevelCollection. - - The to locate in the LevelCollection. - - The zero-based index of the first occurrence of - in the entire LevelCollection, if found; otherwise, -1. - - - - - Inserts an element into the LevelCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the LevelCollection. - - The to remove from the LevelCollection. - - The specified was not found in the LevelCollection. - - - - - Removes the element at the specified index of the LevelCollection. - - The zero-based index of the element to remove. - - is less than zero - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the LevelCollection. - - An for the entire LevelCollection. - - - - Adds the elements of another LevelCollection to the current LevelCollection. - - The LevelCollection whose elements should be added to the end of the current LevelCollection. - The new of the LevelCollection. - - - - Adds the elements of a array to the current LevelCollection. - - The array whose elements should be added to the end of the LevelCollection. - The new of the LevelCollection. - - - - Adds the elements of a collection to the current LevelCollection. - - The collection whose elements should be added to the end of the LevelCollection. - The new of the LevelCollection. - - - - Sets the capacity to the actual number of elements. - - - - - is less than zero - -or- - is equal to or greater than . - - - - - is less than zero - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the LevelCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - The zero-based index of the element to get or set. - - is less than zero - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false - - - - Gets or sets the number of elements the LevelCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - A value - - - - - Supports simple iteration over a . - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - An evaluator that triggers at a threshold level - - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - Nicko Cadell - - - - The threshold for triggering - - - - - Create a new evaluator using the threshold. - - - - Create a new evaluator using the threshold. - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Create a new evaluator using the specified threshold. - - the threshold to trigger at - - - Create a new evaluator using the specified threshold. - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Is this the triggering event? - - The event to check - This method returns true, if the event level - is equal or higher than the . - Otherwise it returns false - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - the threshold to trigger at - - - The that will cause this evaluator to trigger - - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Mapping between string name and Level object - - - - Mapping between string name and object. - This mapping is held separately for each . - The level name is case insensitive. - - - Nicko Cadell - - - - Mapping from level name to Level object. The - level name is case insensitive - - - - - Construct the level map - - - - Construct the level map. - - - - - - Clear the internal maps of all levels - - - - Clear the internal maps of all levels - - - - - - Create a new Level and add it to the map - - the string to display for the Level - the level value to give to the Level - - - Create a new Level and add it to the map - - - - - - - Create a new Level and add it to the map - - the string to display for the Level - the level value to give to the Level - the display name to give to the Level - - - Create a new Level and add it to the map - - - - - - Add a Level to the map - - the Level to add - - - Add a Level to the map - - - - - - Lookup a named level from the map - - the name of the level to lookup is taken from this level. - If the level is not set on the map then this level is added - the level in the map with the name specified - - - Lookup a named level from the map. The name of the level to lookup is taken - from the property of the - argument. - - - If no level with the specified name is found then the - argument is added to the level map - and returned. - - - - - - Lookup a by name - - The name of the Level to lookup - a Level from the map with the name specified - - - Returns the from the - map with the name specified. If the no level is - found then null is returned. - - - - - - Return all possible levels as a list of Level objects. - - all possible levels as a list of Level objects - - - Return all possible levels as a list of Level objects. - - - - - - The internal representation of caller location information. - - - - This class uses the System.Diagnostics.StackTrace class to generate - a call stack. The caller's information is then extracted from this stack. - - - The System.Diagnostics.StackTrace class is not supported on the - .NET Compact Framework 1.0 therefore caller location information is not - available on that framework. - - - The System.Diagnostics.StackTrace class has this to say about Release builds: - - - "StackTrace information will be most informative with Debug build configurations. - By default, Debug builds include debug symbols, while Release builds do not. The - debug symbols contain most of the file, method name, line number, and column - information used in constructing StackFrame and StackTrace objects. StackTrace - might not report as many method calls as expected, due to code transformations - that occur during optimization." - - - This means that in a Release build the caller information may be incomplete or may - not exist at all! Therefore caller location information cannot be relied upon in a Release build. - - - Nicko Cadell - Gert Driesen - - - - When location information is not available the constant - NA is returned. Current value of this string - constant is ?. - - - - - Constructor - - The declaring type of the method that is - the stack boundary into the logging system for this call. - - - Initializes a new instance of the - class based on the current thread. - - - - - - Constructor - - The fully qualified class name. - The method name. - The file name. - The line number of the method within the file. - - - Initializes a new instance of the - class with the specified data. - - - - - - The fully qualified type of the LocationInfo class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the fully qualified class name of the caller making the logging - request. - - - The fully qualified class name of the caller making the logging - request. - - - - Gets the fully qualified class name of the caller making the logging - request. - - - - - - Gets the file name of the caller. - - - The file name of the caller. - - - - Gets the file name of the caller. - - - - - - Gets the line number of the caller. - - - The line number of the caller. - - - - Gets the line number of the caller. - - - - - - Gets the method name of the caller. - - - The method name of the caller. - - - - Gets the method name of the caller. - - - - - - Gets all available caller information - - - All available caller information, in the format - fully.qualified.classname.of.caller.methodName(Filename:line) - - - - Gets all available caller information, in the format - fully.qualified.classname.of.caller.methodName(Filename:line) - - - - - - Static manager that controls the creation of repositories - - - - Static manager that controls the creation of repositories - - - This class is used by the wrapper managers (e.g. ) - to provide access to the objects. - - - This manager also holds the that is used to - lookup and create repositories. The selector can be set either programmatically using - the property, or by setting the log4net.RepositorySelector - AppSetting in the applications config file to the fully qualified type name of the - selector to use. - - - Nicko Cadell - Gert Driesen - - - - Private constructor to prevent instances. Only static methods should be used. - - - - Private constructor to prevent instances. Only static methods should be used. - - - - - - Hook the shutdown event - - - - On the full .NET runtime, the static constructor hooks up the - AppDomain.ProcessExit and AppDomain.DomainUnload> events. - These are used to shutdown the log4net system as the application exits. - - - - - - Register for ProcessExit and DomainUnload events on the AppDomain - - - - This needs to be in a separate method because the events make - a LinkDemand for the ControlAppDomain SecurityPermission. Because - this is a LinkDemand it is demanded at JIT time. Therefore we cannot - catch the exception in the method itself, we have to catch it in the - caller. - - - - - - Return the default instance. - - the repository to lookup in - Return the default instance - - - Gets the for the repository specified - by the argument. - - - - - - Returns the default instance. - - The assembly to use to lookup the repository. - The default instance. - - - - Return the default instance. - - the repository to lookup in - Return the default instance - - - Gets the for the repository specified - by the argument. - - - - - - Returns the default instance. - - The assembly to use to lookup the repository. - The default instance. - - - Returns the default instance. - - - - - - Returns the named logger if it exists. - - The repository to lookup in. - The fully qualified logger name to look for. - - The logger found, or null if the named logger does not exist in the - specified repository. - - - - If the named logger exists (in the specified repository) then it - returns a reference to the logger, otherwise it returns - null. - - - - - - Returns the named logger if it exists. - - The assembly to use to lookup the repository. - The fully qualified logger name to look for. - - The logger found, or null if the named logger does not exist in the - specified assembly's repository. - - - - If the named logger exists (in the specified assembly's repository) then it - returns a reference to the logger, otherwise it returns - null. - - - - - - Returns all the currently defined loggers in the specified repository. - - The repository to lookup in. - All the defined loggers. - - - The root logger is not included in the returned array. - - - - - - Returns all the currently defined loggers in the specified assembly's repository. - - The assembly to use to lookup the repository. - All the defined loggers. - - - The root logger is not included in the returned array. - - - - - - Retrieves or creates a named logger. - - The repository to lookup in. - The name of the logger to retrieve. - The logger with the name specified. - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - - - - Retrieves or creates a named logger. - - The assembly to use to lookup the repository. - The name of the logger to retrieve. - The logger with the name specified. - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - - - - Shorthand for . - - The repository to lookup in. - The of which the fullname will be used as the name of the logger to retrieve. - The logger with the name specified. - - - Gets the logger for the fully qualified name of the type specified. - - - - - - Shorthand for . - - the assembly to use to lookup the repository - The of which the fullname will be used as the name of the logger to retrieve. - The logger with the name specified. - - - Gets the logger for the fully qualified name of the type specified. - - - - - - Shuts down the log4net system. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in all the - default repositories. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - The repository to shutdown. - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository for the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - The assembly to use to lookup the repository. - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository for the repository. The repository is looked up using - the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Resets all values contained in this repository instance to their defaults. - - The repository to reset. - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - - - - Resets all values contained in this repository instance to their defaults. - - The assembly to use to lookup the repository to reset. - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - - - - Creates a repository with the specified name. - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name. - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The name must be unique. Repositories cannot be redefined. - An Exception will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The name must be unique. Repositories cannot be redefined. - An Exception will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository for the specified assembly and repository type. - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - - - - Creates a repository for the specified assembly and repository type. - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - - - - Gets an array of all currently defined repositories. - - An array of all the known objects. - - - Gets an array of all currently defined repositories. - - - - - - Internal method to get pertinent version info. - - A string of version info. - - - - The fully qualified type of the LoggerManager class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Initialize the default repository selector - - - - - Gets or sets the repository selector used by the . - - - The repository selector used by the . - - - - The repository selector () is used by - the to create and select repositories - (). - - - The caller to supplies either a string name - or an assembly (if not supplied the assembly is inferred using - ). - - - This context is used by the selector to lookup a specific repository. - - - For the full .NET Framework, the default repository is DefaultRepositorySelector; - for the .NET Compact Framework CompactRepositorySelector is the default - repository. - - - - - - Implementation of the interface. - - - - This class should be used as the base for all wrapper implementations. - - - Nicko Cadell - Gert Driesen - - - - Constructs a new wrapper for the specified logger. - - The logger to wrap. - - - Constructs a new wrapper for the specified logger. - - - - - - The logger that this object is wrapping - - - - - Gets the implementation behind this wrapper object. - - - The object that this object is implementing. - - - - The Logger object may not be the same object as this object - because of logger decorators. - - - This gets the actual underlying objects that is used to process - the log events. - - - - - - Portable data structure used by - - - - Portable data structure used by - - - Nicko Cadell - - - - The logger name. - - - - The logger name. - - - - - - Level of logging event. - - - - Level of logging event. Level cannot be Serializable - because it is a flyweight. Due to its special serialization it - cannot be declared final either. - - - - - - The application supplied message. - - - - The application supplied message of logging event. - - - - - - The name of thread - - - - The name of thread in which this logging event was generated - - - - - - The time the event was logged - - - - The TimeStamp is stored in the local time zone for this computer. - - - - - - Location information for the caller. - - - - Location information for the caller. - - - - - - String representation of the user - - - - String representation of the user's windows name, - like DOMAIN\username - - - - - - String representation of the identity. - - - - String representation of the current thread's principal identity. - - - - - - The string representation of the exception - - - - The string representation of the exception - - - - - - String representation of the AppDomain. - - - - String representation of the AppDomain. - - - - - - Additional event specific properties - - - - A logger or an appender may attach additional - properties to specific events. These properties - have a string key and an object value. - - - - - - Flags passed to the property - - - - Flags passed to the property - - - Nicko Cadell - - - - Fix the MDC - - - - - Fix the NDC - - - - - Fix the rendered message - - - - - Fix the thread name - - - - - Fix the callers location information - - - CAUTION: Very slow to generate - - - - - Fix the callers windows user name - - - CAUTION: Slow to generate - - - - - Fix the domain friendly name - - - - - Fix the callers principal name - - - CAUTION: May be slow to generate - - - - - Fix the exception text - - - - - Fix the event properties. Active properties must implement in order to be eligible for fixing. - - - - - No fields fixed - - - - - All fields fixed - - - - - Partial fields fixed - - - - This set of partial fields gives good performance. The following fields are fixed: - - - - - - - - - - - - - The internal representation of logging events. - - - - When an affirmative decision is made to log then a - instance is created. This instance - is passed around to the different log4net components. - - - This class is of concern to those wishing to extend log4net. - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - for incurred by calling but it - is essential to maintaining data consistency. - - - Nicko Cadell - Gert Driesen - Douglas de la Torre - Daniel Cazzulino - - - - The key into the Properties map for the host name value. - - - - - The key into the Properties map for the thread identity value. - - - - - The key into the Properties map for the user name value. - - - - - Initializes a new instance of the class - from the supplied parameters. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - The name of the logger of this event. - The level of this event. - The message of this event. - The exception for this event. - - - Except , and , - all fields of LoggingEvent are filled when actually needed. Call - to cache all data locally - to prevent inconsistencies. - - This method is called by the log4net framework - to create a logging event. - - - - - - Initializes a new instance of the class - using specific data. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - Data used to initialize the logging event. - The fields in the struct that have already been fixed. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - The parameter should be used to specify which fields in the - struct have been preset. Fields not specified in the - will be captured from the environment if requested or fixed. - - - - - - Initializes a new instance of the class - using specific data. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - Data used to initialize the logging event. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - This constructor sets this objects flags to , - this assumes that all the data relating to this event is passed in via the - parameter and no other data should be captured from the environment. - - - - - - Initializes a new instance of the class - using specific data. - - Data used to initialize the logging event. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - This constructor sets this objects flags to , - this assumes that all the data relating to this event is passed in via the - parameter and no other data should be captured from the environment. - - - - - - Ensure that the repository is set. - - the value for the repository - - - - Write the rendered message to a TextWriter - - the writer to write the message to - - - Unlike the property this method - does store the message data in the internal cache. Therefore - if called only once this method should be faster than the - property, however if the message is - to be accessed multiple times then the property will be more efficient. - - - - - - Gets the portable data for this . - - The for this event. - - - A new can be constructed using a - instance. - - - Does a fix of the data - in the logging event before returning the event data. - - - - - - Gets the portable data for this . - - The set of data to ensure is fixed in the LoggingEventData - The for this event. - - - A new can be constructed using a - instance. - - - - - - Returns this event's exception's rendered using the - . - - - This event's exception's rendered using the . - - - - Obsolete. Use instead. - - - - - - Returns this event's exception's rendered using the - . - - - This event's exception's rendered using the . - - - - Returns this event's exception's rendered using the - . - - - - - - Fix instance fields that hold volatile data. - - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - incurred by calling but it - is essential to maintaining data consistency. - - - Calling is equivalent to - calling passing the parameter - false. - - - See for more - information. - - - - - - Fixes instance fields that hold volatile data. - - Set to true to not fix data that takes a long time to fix. - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - for incurred by calling but it - is essential to maintaining data consistency. - - - The param controls the data that - is fixed. Some of the data that can be fixed takes a long time to - generate, therefore if you do not require those settings to be fixed - they can be ignored by setting the param - to true. This setting will ignore the - and settings. - - - Set to false to ensure that all - settings are fixed. - - - - - - Fix the fields specified by the parameter - - the fields to fix - - - Only fields specified in the will be fixed. - Fields will not be fixed if they have previously been fixed. - It is not possible to 'unfix' a field. - - - - - - Lookup a composite property in this event - - the key for the property to lookup - the value for the property - - - This event has composite properties that combine together properties from - several different contexts in the following order: - - - this events properties - - This event has that can be set. These - properties are specific to this event only. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - - - Get all the composite properties in this event - - the containing all the properties - - - See for details of the composite properties - stored by the event. - - - This method returns a single containing all the - properties defined for this event. - - - - - - The internal logging event data. - - - - - The internal logging event data. - - - - - The internal logging event data. - - - - - The fully qualified Type of the calling - logger class in the stack frame (i.e. the declaring type of the method). - - - - - The application supplied message of logging event. - - - - - The exception that was thrown. - - - This is not serialized. The string representation - is serialized instead. - - - - - The repository that generated the logging event - - - This is not serialized. - - - - - The fix state for this event - - - These flags indicate which fields have been fixed. - Not serialized. - - - - - Indicated that the internal cache is updateable (ie not fixed) - - - This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler - changes in the caching strategy. - - - - - Gets the time when the current process started. - - - This is the time when this process started. - - - - The TimeStamp is stored in the local time zone for this computer. - - - Tries to get the start time for the current process. - Failing that it returns the time of the first call to - this property. - - - Note that AppDomains may be loaded and unloaded within the - same process without the process terminating and therefore - without the process start time being reset. - - - - - - Gets the of the logging event. - - - The of the logging event. - - - - Gets the of the logging event. - - - - - - Gets the time of the logging event. - - - The time of the logging event. - - - - The TimeStamp is stored in the local time zone for this computer. - - - - - - Gets the name of the logger that logged the event. - - - The name of the logger that logged the event. - - - - Gets the name of the logger that logged the event. - - - - - - Gets the location information for this logging event. - - - The location information for this logging event. - - - - The collected information is cached for future use. - - - See the class for more information on - supported frameworks and the different behavior in Debug and - Release builds. - - - - - - Gets the message object used to initialize this event. - - - The message object used to initialize this event. - - - - Gets the message object used to initialize this event. - Note that this event may not have a valid message object. - If the event is serialized the message object will not - be transferred. To get the text of the message the - property must be used - not this property. - - - If there is no defined message object for this event then - null will be returned. - - - - - - Gets the exception object used to initialize this event. - - - The exception object used to initialize this event. - - - - Gets the exception object used to initialize this event. - Note that this event may not have a valid exception object. - If the event is serialized the exception object will not - be transferred. To get the text of the exception the - method must be used - not this property. - - - If there is no defined exception object for this event then - null will be returned. - - - - - - The that this event was created in. - - - - The that this event was created in. - - - - - - Gets the message, rendered through the . - - - The message rendered through the . - - - - The collected information is cached for future use. - - - - - - Gets the name of the current thread. - - - The name of the current thread, or the thread ID when - the name is not available. - - - - The collected information is cached for future use. - - - - - - Gets the name of the current user. - - - The name of the current user, or NOT AVAILABLE when the - underlying runtime has no support for retrieving the name of the - current user. - - - - Calls WindowsIdentity.GetCurrent().Name to get the name of - the current windows user. - - - To improve performance, we could cache the string representation of - the name, and reuse that as long as the identity stayed constant. - Once the identity changed, we would need to re-assign and re-render - the string. - - - However, the WindowsIdentity.GetCurrent() call seems to - return different objects every time, so the current implementation - doesn't do this type of caching. - - - Timing for these operations: - - - - Method - Results - - - WindowsIdentity.GetCurrent() - 10000 loops, 00:00:00.2031250 seconds - - - WindowsIdentity.GetCurrent().Name - 10000 loops, 00:00:08.0468750 seconds - - - - This means we could speed things up almost 40 times by caching the - value of the WindowsIdentity.GetCurrent().Name property, since - this takes (8.04-0.20) = 7.84375 seconds. - - - - - - Gets the identity of the current thread principal. - - - The string name of the identity of the current thread principal. - - - - Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get - the name of the current thread principal. - - - - - - Gets the AppDomain friendly name. - - - The AppDomain friendly name. - - - - Gets the AppDomain friendly name. - - - - - - Additional event specific properties. - - - Additional event specific properties. - - - - A logger or an appender may attach additional - properties to specific events. These properties - have a string key and an object value. - - - This property is for events that have been added directly to - this event. The aggregate properties (which include these - event properties) can be retrieved using - and . - - - Once the properties have been fixed this property - returns the combined cached properties. This ensures that updates to - this property are always reflected in the underlying storage. When - returning the combined properties there may be more keys in the - Dictionary than expected. - - - - - - The fixed fields in this event - - - The set of fields that are fixed in this event - - - - Fields will not be fixed if they have previously been fixed. - It is not possible to 'unfix' a field. - - - - - - Implementation of wrapper interface. - - - - This implementation of the interface - forwards to the held by the base class. - - - This logger has methods to allow the caller to log at the following - levels: - - - - DEBUG - - The and methods log messages - at the DEBUG level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - INFO - - The and methods log messages - at the INFO level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - WARN - - The and methods log messages - at the WARN level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - ERROR - - The and methods log messages - at the ERROR level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - FATAL - - The and methods log messages - at the FATAL level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - - The values for these levels and their semantic meanings can be changed by - configuring the for the repository. - - - Nicko Cadell - Gert Driesen - - - - The ILog interface is use by application to log messages into - the log4net framework. - - - - Use the to obtain logger instances - that implement this interface. The - static method is used to get logger instances. - - - This class contains methods for logging at different levels and also - has properties for determining if those logging levels are - enabled in the current configuration. - - - This interface can be implemented in different ways. This documentation - specifies reasonable behavior that a caller can expect from the actual - implementation, however different implementations reserve the right to - do things differently. - - - Simple example of logging messages - - ILog log = LogManager.GetLogger("application-log"); - - log.Info("Application Start"); - log.Debug("This is a debug message"); - - if (log.IsDebugEnabled) - { - log.Debug("This is another debug message"); - } - - - - - Nicko Cadell - Gert Driesen - - - Log a message object with the level. - - Log a message object with the level. - - The message object to log. - - - This method first checks if this logger is DEBUG - enabled by comparing the level of this logger with the - level. If this logger is - DEBUG enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of - the additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Logs a message object with the level. - - - - This method first checks if this logger is INFO - enabled by comparing the level of this logger with the - level. If this logger is - INFO enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Logs a message object with the INFO level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Log a message object with the level. - - - - This method first checks if this logger is WARN - enabled by comparing the level of this logger with the - level. If this logger is - WARN enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Logs a message object with the level. - - The message object to log. - - - This method first checks if this logger is ERROR - enabled by comparing the level of this logger with the - level. If this logger is - ERROR enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Log a message object with the level. - - - - This method first checks if this logger is FATAL - enabled by comparing the level of this logger with the - level. If this logger is - FATAL enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - - This function is intended to lessen the computational cost of - disabled log debug statements. - - For some ILog interface log, when you write: - - log.Debug("This is entry number: " + i ); - - - You incur the cost constructing the message, string construction and concatenation in - this case, regardless of whether the message is logged or not. - - - If you are worried about speed (who isn't), then you should write: - - - if (log.IsDebugEnabled) - { - log.Debug("This is entry number: " + i ); - } - - - This way you will not incur the cost of parameter - construction if debugging is disabled for log. On - the other hand, if the log is debug enabled, you - will incur the cost of evaluating whether the logger is debug - enabled twice. Once in and once in - the . This is an insignificant overhead - since evaluating a logger takes about 1% of the time it - takes to actually log. This is the preferred style of logging. - - Alternatively if your logger is available statically then the is debug - enabled state can be stored in a static variable like this: - - - private static readonly bool isDebugEnabled = log.IsDebugEnabled; - - - Then when you come to log you can write: - - - if (isDebugEnabled) - { - log.Debug("This is entry number: " + i ); - } - - - This way the debug enabled state is only queried once - when the class is loaded. Using a private static readonly - variable is the most efficient because it is a run time constant - and can be heavily optimized by the JIT compiler. - - - Of course if you use a static readonly variable to - hold the enabled state of the logger then you cannot - change the enabled state at runtime to vary the logging - that is produced. You have to decide if you need absolute - speed or runtime flexibility. - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Construct a new wrapper for the specified logger. - - The logger to wrap. - - - Construct a new wrapper for the specified logger. - - - - - - Virtual method called when the configuration of the repository changes - - the repository holding the levels - - - Virtual method called when the configuration of the repository changes - - - - - - Logs a message object with the DEBUG level. - - The message object to log. - - - This method first checks if this logger is DEBUG - enabled by comparing the level of this logger with the - DEBUG level. If this logger is - DEBUG enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the DEBUG level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the DEBUG level including - the stack trace of the passed - as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the INFO level. - - The message object to log. - - - This method first checks if this logger is INFO - enabled by comparing the level of this logger with the - INFO level. If this logger is - INFO enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of - the additivity flag. - - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the INFO level. - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the INFO level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the WARN level. - - the message object to log - - - This method first checks if this logger is WARN - enabled by comparing the level of this logger with the - WARN level. If this logger is - WARN enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the WARN level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the WARN level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the ERROR level. - - The message object to log. - - - This method first checks if this logger is ERROR - enabled by comparing the level of this logger with the - ERROR level. If this logger is - ERROR enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the ERROR level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the ERROR level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the FATAL level. - - The message object to log. - - - This method first checks if this logger is FATAL - enabled by comparing the level of this logger with the - FATAL level. If this logger is - FATAL enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the FATAL level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the FATAL level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Event handler for the event - - the repository - Empty - - - - The fully qualified name of this declaring type not the type of any subclass. - - - - - Checks if this logger is enabled for the DEBUG - level. - - - true if this logger is enabled for DEBUG events, - false otherwise. - - - - This function is intended to lessen the computational cost of - disabled log debug statements. - - - For some log Logger object, when you write: - - - log.Debug("This is entry number: " + i ); - - - You incur the cost constructing the message, concatenation in - this case, regardless of whether the message is logged or not. - - - If you are worried about speed, then you should write: - - - if (log.IsDebugEnabled()) - { - log.Debug("This is entry number: " + i ); - } - - - This way you will not incur the cost of parameter - construction if debugging is disabled for log. On - the other hand, if the log is debug enabled, you - will incur the cost of evaluating whether the logger is debug - enabled twice. Once in IsDebugEnabled and once in - the Debug. This is an insignificant overhead - since evaluating a logger takes about 1% of the time it - takes to actually log. - - - - - - Checks if this logger is enabled for the INFO level. - - - true if this logger is enabled for INFO events, - false otherwise. - - - - See for more information and examples - of using this method. - - - - - - - Checks if this logger is enabled for the WARN level. - - - true if this logger is enabled for WARN events, - false otherwise. - - - - See for more information and examples - of using this method. - - - - - - - Checks if this logger is enabled for the ERROR level. - - - true if this logger is enabled for ERROR events, - false otherwise. - - - - See for more information and examples of using this method. - - - - - - - Checks if this logger is enabled for the FATAL level. - - - true if this logger is enabled for FATAL events, - false otherwise. - - - - See for more information and examples of using this method. - - - - - - - A SecurityContext used by log4net when interacting with protected resources - - - - A SecurityContext used by log4net when interacting with protected resources - for example with operating system services. This can be used to impersonate - a principal that has been granted privileges on the system resources. - - - Nicko Cadell - - - - Impersonate this SecurityContext - - State supplied by the caller - An instance that will - revoke the impersonation of this SecurityContext, or null - - - Impersonate this security context. Further calls on the current - thread should now be made in the security context provided - by this object. When the result - method is called the security - context of the thread should be reverted to the state it was in - before was called. - - - - - - The providers default instances. - - - - A configured component that interacts with potentially protected system - resources uses a to provide the elevated - privileges required. If the object has - been not been explicitly provided to the component then the component - will request one from this . - - - By default the is - an instance of which returns only - objects. This is a reasonable default - where the privileges required are not know by the system. - - - This default behavior can be overridden by subclassing the - and overriding the method to return - the desired objects. The default provider - can be replaced by programmatically setting the value of the - property. - - - An alternative is to use the log4net.Config.SecurityContextProviderAttribute - This attribute can be applied to an assembly in the same way as the - log4net.Config.XmlConfiguratorAttribute". The attribute takes - the type to use as the as an argument. - - - Nicko Cadell - - - - The default provider - - - - - Protected default constructor to allow subclassing - - - - Protected default constructor to allow subclassing - - - - - - Create a SecurityContext for a consumer - - The consumer requesting the SecurityContext - An impersonation context - - - The default implementation is to return a . - - - Subclasses should override this method to provide their own - behavior. - - - - - - Gets or sets the default SecurityContextProvider - - - The default SecurityContextProvider - - - - The default provider is used by configured components that - require a and have not had one - given to them. - - - By default this is an instance of - that returns objects. - - - The default provider can be set programmatically by setting - the value of this property to a sub class of - that has the desired behavior. - - - - - - An evaluator that triggers after specified number of seconds. - - - - This evaluator will trigger if the specified time period - has passed since last check. - - - Robert Sevcik - - - - The default time threshold for triggering in seconds. Zero means it won't trigger at all. - - - - - The time threshold for triggering in seconds. Zero means it won't trigger at all. - - - - - The time of last check. This gets updated when the object is created and when the evaluator triggers. - - - - - Create a new evaluator using the time threshold in seconds. - - - - Create a new evaluator using the time threshold in seconds. - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Create a new evaluator using the specified time threshold in seconds. - - - The time threshold in seconds to trigger after. - Zero means it won't trigger at all. - - - - Create a new evaluator using the specified time threshold in seconds. - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Is this the triggering event? - - The event to check - This method returns true, if the specified time period - has passed since last check.. - Otherwise it returns false - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - The time threshold in seconds to trigger after - - - The time threshold in seconds to trigger after. - Zero means it won't trigger at all. - - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Delegate used to handle creation of new wrappers. - - The logger to wrap in a wrapper. - - - Delegate used to handle creation of new wrappers. This delegate - is called from the - method to construct the wrapper for the specified logger. - - - The delegate to use is supplied to the - constructor. - - - - - - Maps between logger objects and wrapper objects. - - - - This class maintains a mapping between objects and - objects. Use the method to - lookup the for the specified . - - - New wrapper instances are created by the - method. The default behavior is for this method to delegate construction - of the wrapper to the delegate supplied - to the constructor. This allows specialization of the behavior without - requiring subclassing of this type. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the - - The handler to use to create the wrapper objects. - - - Initializes a new instance of the class with - the specified handler to create the wrapper objects. - - - - - - Gets the wrapper object for the specified logger. - - The wrapper object for the specified logger - - - If the logger is null then the corresponding wrapper is null. - - - Looks up the wrapper it it has previously been requested and - returns it. If the wrapper has never been requested before then - the virtual method is - called. - - - - - - Creates the wrapper object for the specified logger. - - The logger to wrap in a wrapper. - The wrapper object for the logger. - - - This implementation uses the - passed to the constructor to create the wrapper. This method - can be overridden in a subclass. - - - - - - Called when a monitored repository shutdown event is received. - - The that is shutting down - - - This method is called when a that this - is holding loggers for has signaled its shutdown - event . The default - behavior of this method is to release the references to the loggers - and their wrappers generated for this repository. - - - - - - Event handler for repository shutdown event. - - The sender of the event. - The event args. - - - - Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings - - - - - The handler to use to create the extension wrapper objects. - - - - - Internal reference to the delegate used to register for repository shutdown events. - - - - - Gets the map of logger repositories. - - - Map of logger repositories. - - - - Gets the hashtable that is keyed on . The - values are hashtables keyed on with the - value being the corresponding . - - - - - - Formats a as "HH:mm:ss,fff". - - - - Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". - - - Nicko Cadell - Gert Driesen - - - - Render a as a string. - - - - Interface to abstract the rendering of a - instance into a string. - - - The method is used to render the - date to a text writer. - - - Nicko Cadell - Gert Driesen - - - - Formats the specified date as a string. - - The date to format. - The writer to write to. - - - Format the as a string and write it - to the provided. - - - - - - String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. - - - - - String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. - - - - - String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. - - - - - Renders the date into a string. Format is "HH:mm:ss". - - The date to render into a string. - The string builder to write to. - - - Subclasses should override this method to render the date - into a string using a precision up to the second. This method - will be called at most once per second and the result will be - reused if it is needed again during the same second. - - - - - - Renders the date into a string. Format is "HH:mm:ss,fff". - - The date to render into a string. - The writer to write to. - - - Uses the method to generate the - time string up to the seconds and then appends the current - milliseconds. The results from are - cached and is called at most once - per second. - - - Sub classes should override - rather than . - - - - - - Last stored time with precision up to the second. - - - - - Last stored time with precision up to the second, formatted - as a string. - - - - - Last stored time with precision up to the second, formatted - as a string. - - - - - Formats a as "dd MMM yyyy HH:mm:ss,fff" - - - - Formats a in the format - "dd MMM yyyy HH:mm:ss,fff" for example, - "06 Nov 1994 15:49:37,459". - - - Nicko Cadell - Gert Driesen - Angelika Schnagl - - - - Default constructor. - - - - Initializes a new instance of the class. - - - - - - Formats the date without the milliseconds part - - The date to format. - The string builder to write to. - - - Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" - for example, "06 Nov 1994 15:49:37". - - - The base class will append the ",fff" milliseconds section. - This method will only be called at most once per second. - - - - - - The format info for the invariant culture. - - - - - Formats the as "yyyy-MM-dd HH:mm:ss,fff". - - - - Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Formats the date without the milliseconds part - - The date to format. - The string builder to write to. - - - Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". - - - The base class will append the ",fff" milliseconds section. - This method will only be called at most once per second. - - - - - - Formats the using the method. - - - - Formats the using the method. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The format string. - - - Initializes a new instance of the class - with the specified format string. - - - The format string must be compatible with the options - that can be supplied to . - - - - - - Formats the date using . - - The date to convert to a string. - The writer to write to. - - - Uses the date format string supplied to the constructor to call - the method to format the date. - - - - - - The format string used to format the . - - - - The format string must be compatible with the options - that can be supplied to . - - - - - - This filter drops all . - - - - You can add this filter to the end of a filter chain to - switch from the default "accept all unless instructed otherwise" - filtering behavior to a "deny all unless instructed otherwise" - behavior. - - - Nicko Cadell - Gert Driesen - - - - Subclass this type to implement customized logging event filtering - - - - Users should extend this class to implement customized logging - event filtering. Note that and - , the parent class of all standard - appenders, have built-in filtering rules. It is suggested that you - first use and understand the built-in rules before rushing to write - your own custom filters. - - - This abstract class assumes and also imposes that filters be - organized in a linear chain. The - method of each filter is called sequentially, in the order of their - addition to the chain. - - - The method must return one - of the integer constants , - or . - - - If the value is returned, then the log event is dropped - immediately without consulting with the remaining filters. - - - If the value is returned, then the next filter - in the chain is consulted. If there are no more filters in the - chain, then the log event is logged. Thus, in the presence of no - filters, the default behavior is to log all logging events. - - - If the value is returned, then the log - event is logged without consulting the remaining filters. - - - The philosophy of log4net filters is largely inspired from the - Linux ipchains. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface to provide customized logging event filtering - - - - Users should implement this interface to implement customized logging - event filtering. Note that and - , the parent class of all standard - appenders, have built-in filtering rules. It is suggested that you - first use and understand the built-in rules before rushing to write - your own custom filters. - - - This abstract class assumes and also imposes that filters be - organized in a linear chain. The - method of each filter is called sequentially, in the order of their - addition to the chain. - - - The method must return one - of the integer constants , - or . - - - If the value is returned, then the log event is dropped - immediately without consulting with the remaining filters. - - - If the value is returned, then the next filter - in the chain is consulted. If there are no more filters in the - chain, then the log event is logged. Thus, in the presence of no - filters, the default behavior is to log all logging events. - - - If the value is returned, then the log - event is logged without consulting the remaining filters. - - - The philosophy of log4net filters is largely inspired from the - Linux ipchains. - - - Nicko Cadell - Gert Driesen - - - - Decide if the logging event should be logged through an appender. - - The LoggingEvent to decide upon - The decision of the filter - - - If the decision is , then the event will be - dropped. If the decision is , then the next - filter, if any, will be invoked. If the decision is then - the event will be logged without consulting with other filters in - the chain. - - - - - - Property to get and set the next filter - - - The next filter in the chain - - - - Filters are typically composed into chains. This property allows the next filter in - the chain to be accessed. - - - - - - Points to the next filter in the filter chain. - - - - See for more information. - - - - - - Initialize the filter with the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Typically filter's options become active immediately on set, - however this method must still be called. - - - - - - Decide if the should be logged through an appender. - - The to decide upon - The decision of the filter - - - If the decision is , then the event will be - dropped. If the decision is , then the next - filter, if any, will be invoked. If the decision is then - the event will be logged without consulting with other filters in - the chain. - - - This method is marked abstract and must be implemented - in a subclass. - - - - - - Property to get and set the next filter - - - The next filter in the chain - - - - Filters are typically composed into chains. This property allows the next filter in - the chain to be accessed. - - - - - - Default constructor - - - - - Always returns the integer constant - - the LoggingEvent to filter - Always returns - - - Ignores the event being logged and just returns - . This can be used to change the default filter - chain behavior from to . This filter - should only be used as the last filter in the chain - as any further filters will be ignored! - - - - - - The return result from - - - - The return result from - - - - - - The log event must be dropped immediately without - consulting with the remaining filters, if any, in the chain. - - - - - This filter is neutral with respect to the log event. - The remaining filters, if any, should be consulted for a final decision. - - - - - The log event must be logged immediately without - consulting with the remaining filters, if any, in the chain. - - - - - This is a very simple filter based on matching. - - - - The filter admits two options and - . If there is an exact match between the value - of the option and the of the - , then the method returns in - case the option value is set - to true, if it is false then - is returned. If the does not match then - the result will be . - - - Nicko Cadell - Gert Driesen - - - - flag to indicate if the filter should on a match - - - - - the to match against - - - - - Default constructor - - - - - Tests if the of the logging event matches that of the filter - - the event to filter - see remarks - - - If the of the event matches the level of the - filter then the result of the function depends on the - value of . If it is true then - the function will return , it it is false then it - will return . If the does not match then - the result will be . - - - - - - when matching - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - The that the filter will match - - - - The level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - This is a simple filter based on matching. - - - - The filter admits three options and - that determine the range of priorities that are matched, and - . If there is a match between the range - of priorities and the of the , then the - method returns in case the - option value is set to true, if it is false - then is returned. If there is no match, is returned. - - - Nicko Cadell - Gert Driesen - - - - Flag to indicate the behavior when matching a - - - - - the minimum value to match - - - - - the maximum value to match - - - - - Default constructor - - - - - Check if the event should be logged. - - the logging event to check - see remarks - - - If the of the logging event is outside the range - matched by this filter then - is returned. If the is matched then the value of - is checked. If it is true then - is returned, otherwise - is returned. - - - - - - when matching and - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - Set the minimum matched - - - - The minimum level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - Sets the maximum matched - - - - The maximum level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - Simple filter to match a string in the event's logger name. - - - - The works very similar to the . It admits two - options and . If the - of the starts - with the value of the option, then the - method returns in - case the option value is set to true, - if it is false then is returned. - - - Daniel Cazzulino - - - - Flag to indicate the behavior when we have a match - - - - - The logger name string to substring match against the event - - - - - Default constructor - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The rendered message is matched against the . - If the equals the beginning of - the incoming () - then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - when matching - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - The that the filter will match - - - - This filter will attempt to match this value against logger name in - the following way. The match will be done against the beginning of the - logger name (using ). The match is - case sensitive. If a match is found then - the result depends on the value of . - - - - - - Simple filter to match a keyed string in the - - - - Simple filter to match a keyed string in the - - - As the MDC has been replaced with layered properties the - should be used instead. - - - Nicko Cadell - Gert Driesen - - - - Simple filter to match a string an event property - - - - Simple filter to match a string in the value for a - specific event property - - - Nicko Cadell - - - - Simple filter to match a string in the rendered message - - - - Simple filter to match a string in the rendered message - - - Nicko Cadell - Gert Driesen - - - - Flag to indicate the behavior when we have a match - - - - - The string to substring match against the message - - - - - A string regex to match - - - - - A regex object to match (generated from m_stringRegexToMatch) - - - - - Default constructor - - - - - Initialize and precompile the Regex if required - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The rendered message is matched against the . - If the occurs as a substring within - the message then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - when matching or - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - Sets the static string to match - - - - The string that will be substring matched against - the rendered message. If the message contains this - string then the filter will match. If a match is found then - the result depends on the value of . - - - One of or - must be specified. - - - - - - Sets the regular expression to match - - - - The regular expression pattern that will be matched against - the rendered message. If the message matches this - pattern then the filter will match. If a match is found then - the result depends on the value of . - - - One of or - must be specified. - - - - - - The key to use to lookup the string from the event properties - - - - - Default constructor - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The event property for the is matched against - the . - If the occurs as a substring within - the property value then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - The key to lookup in the event properties and then match against. - - - - The key name to use to lookup in the properties map of the - . The match will be performed against - the value of this property if it exists. - - - - - - Simple filter to match a string in the - - - - Simple filter to match a string in the - - - As the MDC has been replaced with named stacks stored in the - properties collections the should - be used instead. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Sets the to "NDC". - - - - - - Write the event appdomain name to the output - - - - Writes the to the output writer. - - - Daniel Cazzulino - Nicko Cadell - - - - Abstract class that provides the formatting functionality that - derived classes need. - - - Conversion specifiers in a conversion patterns are parsed to - individual PatternConverters. Each of which is responsible for - converting a logging event in a converter specific manner. - - Nicko Cadell - - - - Abstract class that provides the formatting functionality that - derived classes need. - - - - Conversion specifiers in a conversion patterns are parsed to - individual PatternConverters. Each of which is responsible for - converting a logging event in a converter specific manner. - - - Nicko Cadell - Gert Driesen - - - - Initial buffer size - - - - - Maximum buffer size before it is recycled - - - - - Protected constructor - - - - Initializes a new instance of the class. - - - - - - Evaluate this pattern converter and write the output to a writer. - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the appropriate way. - - - - - - Set the next pattern converter in the chains - - the pattern converter that should follow this converter in the chain - the next converter - - - The PatternConverter can merge with its neighbor during this method (or a sub class). - Therefore the return value may or may not be the value of the argument passed in. - - - - - - Write the pattern converter to the writer with appropriate formatting - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - This method calls to allow the subclass to perform - appropriate conversion of the pattern converter. If formatting options have - been specified via the then this method will - apply those formattings before writing the output. - - - - - - Fast space padding method. - - to which the spaces will be appended. - The number of spaces to be padded. - - - Fast space padding method. - - - - - - The option string to the converter - - - - - Write an dictionary to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the to a writer in the form: - - - {key1=value1, key2=value2, key3=value3} - - - If the specified - is not null then it is used to render the key and value to text, otherwise - the object's ToString method is called. - - - - - - Write an dictionary to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the to a writer in the form: - - - {key1=value1, key2=value2, key3=value3} - - - If the specified - is not null then it is used to render the key and value to text, otherwise - the object's ToString method is called. - - - - - - Write an object to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the Object to a writer. If the specified - is not null then it is used to render the object to text, otherwise - the object's ToString method is called. - - - - - - Get the next pattern converter in the chain - - - the next pattern converter in the chain - - - - Get the next pattern converter in the chain - - - - - - Gets or sets the formatting info for this converter - - - The formatting info for this converter - - - - Gets or sets the formatting info for this converter - - - - - - Gets or sets the option value for this converter - - - The option for this converter - - - - Gets or sets the option value for this converter - - - - - - - - - - - Initializes a new instance of the class. - - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The on which the pattern converter should be executed. - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - - Flag indicating if this converter handles exceptions - - - false if this converter handles exceptions - - - - - Flag indicating if this converter handles the logging event exception - - false if this converter handles the logging event exception - - - If this converter handles the exception object contained within - , then this property should be set to - false. Otherwise, if the layout ignores the exception - object, then the property should be set to true. - - - Set this value to override a this default setting. The default - value is true, this converter does not handle the exception. - - - - - - Write the event appdomain name to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output . - - - - - - Date pattern converter, uses a to format - the date of a . - - - - Render the to the writer as a string. - - - The value of the determines - the formatting of the date. The following values are allowed: - - - Option value - Output - - - ISO8601 - - Uses the formatter. - Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. - - - - DATE - - Uses the formatter. - Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". - - - - ABSOLUTE - - Uses the formatter. - Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". - - - - other - - Any other pattern string uses the formatter. - This formatter passes the pattern string to the - method. - For details on valid patterns see - DateTimeFormatInfo Class. - - - - - - The is in the local time zone and is rendered in that zone. - To output the time in Universal time see . - - - Nicko Cadell - - - - The used to render the date to a string - - - - The used to render the date to a string - - - - - - Initialize the converter pattern based on the property. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Convert the pattern into the rendered message - - that will receive the formatted result. - the event being logged - - - Pass the to the - for it to render it to the writer. - - - The passed is in the local time zone. - - - - - - The fully qualified type of the DatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the exception text to the output - - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - - - If there is no exception then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - Nicko Cadell - - - - Default constructor - - - - - Write the exception text to the output - - that will receive the formatted result. - the event being logged - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - - - If there is no exception or the exception property specified - by the Option value does not exist then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - Recognized values for the Option parameter are: - - - - Message - - - Source - - - StackTrace - - - TargetSite - - - HelpLink - - - - - - - Writes the caller location file name to the output - - - - Writes the value of the for - the event to the output writer. - - - Nicko Cadell - - - - Write the caller location file name to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the for - the to the output . - - - - - - Write the caller location info to the output - - - - Writes the to the output writer. - - - Nicko Cadell - - - - Write the caller location info to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output writer. - - - - - - Writes the event identity to the output - - - - Writes the value of the to - the output writer. - - - Daniel Cazzulino - Nicko Cadell - - - - Writes the event identity to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the - to - the output . - - - - - - Write the event level to the output - - - - Writes the display name of the event - to the writer. - - - Nicko Cadell - - - - Write the event level to the output - - that will receive the formatted result. - the event being logged - - - Writes the of the - to the . - - - - - - Write the caller location line number to the output - - - - Writes the value of the for - the event to the output writer. - - - Nicko Cadell - - - - Write the caller location line number to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the for - the to the output . - - - - - - Converter for logger name - - - - Outputs the of the event. - - - Nicko Cadell - - - - Converter to output and truncate '.' separated strings - - - - This abstract class supports truncating a '.' separated string - to show a specified number of elements from the right hand side. - This is used to truncate class names that are fully qualified. - - - Subclasses should override the method to - return the fully qualified string. - - - Nicko Cadell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Get the fully qualified string data - - the event being logged - the fully qualified name - - - Overridden by subclasses to get the fully qualified name before the - precision is applied to it. - - - Return the fully qualified '.' (dot/period) separated string. - - - - - - Convert the pattern to the rendered message - - that will receive the formatted result. - the event being logged - - Render the to the precision - specified by the property. - - - - - The fully qualified type of the NamedPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the fully qualified name of the logger - - the event being logged - The fully qualified logger name - - - Returns the of the . - - - - - - Writes the event message to the output - - - - Uses the method - to write out the event message. - - - Nicko Cadell - - - - Writes the event message to the output - - that will receive the formatted result. - the event being logged - - - Uses the method - to write out the event message. - - - - - - Write the method name to the output - - - - Writes the caller location to - the output. - - - Nicko Cadell - - - - Write the method name to the output - - that will receive the formatted result. - the event being logged - - - Writes the caller location to - the output. - - - - - - Converter to include event NDC - - - - Outputs the value of the event property named NDC. - - - The should be used instead. - - - Nicko Cadell - - - - Write the event NDC to the output - - that will receive the formatted result. - the event being logged - - - As the thread context stacks are now stored in named event properties - this converter simply looks up the value of the NDC property. - - - The should be used instead. - - - - - - Property pattern converter - - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - Nicko Cadell - - - - Write the property value to the output - - that will receive the formatted result. - the event being logged - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - - - - Converter to output the relative time of the event - - - - Converter to output the time of the event relative to the start of the program. - - - Nicko Cadell - - - - Write the relative time to the output - - that will receive the formatted result. - the event being logged - - - Writes out the relative time of the event in milliseconds. - That is the number of milliseconds between the event - and the . - - - - - - Helper method to get the time difference between two DateTime objects - - start time (in the current local time zone) - end time (in the current local time zone) - the time difference in milliseconds - - - - Converter to include event thread name - - - - Writes the to the output. - - - Nicko Cadell - - - - Write the ThreadName to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the . - - - - - - Pattern converter for the class name - - - - Outputs the of the event. - - - Nicko Cadell - - - - Gets the fully qualified name of the class - - the event being logged - The fully qualified type name for the caller location - - - Returns the of the . - - - - - - Converter to include event user name - - Douglas de la Torre - Nicko Cadell - - - - Convert the pattern to the rendered message - - that will receive the formatted result. - the event being logged - - - - Write the TimeStamp to the output - - - - Date pattern converter, uses a to format - the date of a . - - - Uses a to format the - in Universal time. - - - See the for details on the date pattern syntax. - - - - Nicko Cadell - - - - Write the TimeStamp to the output - - that will receive the formatted result. - the event being logged - - - Pass the to the - for it to render it to the writer. - - - The passed is in the local time zone, this is converted - to Universal time before it is rendered. - - - - - - - The fully qualified type of the UtcDatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - A Layout that renders only the Exception text from the logging event - - - - A Layout that renders only the Exception text from the logging event. - - - This Layout should only be used with appenders that utilize multiple - layouts (e.g. ). - - - Nicko Cadell - Gert Driesen - - - - Extend this abstract class to create your own log layout format. - - - - This is the base implementation of the - interface. Most layout objects should extend this class. - - - - - - Subclasses must implement the - method. - - - Subclasses should set the in their default - constructor. - - - - Nicko Cadell - Gert Driesen - - - - Interface implemented by layout objects - - - - An object is used to format a - as text. The method is called by an - appender to transform the into a string. - - - The layout can also supply and - text that is appender before any events and after all the events respectively. - - - Nicko Cadell - Gert Driesen - - - - Implement this method to create your own layout format. - - The TextWriter to write the formatted event to - The event to format - - - This method is called by an appender to format - the as text and output to a writer. - - - If the caller does not have a and prefers the - event to be formatted as a then the following - code can be used to format the event into a . - - - StringWriter writer = new StringWriter(); - Layout.Format(writer, loggingEvent); - string formattedEvent = writer.ToString(); - - - - - - The content type output by this layout. - - The content type - - - The content type output by this layout. - - - This is a MIME type e.g. "text/plain". - - - - - - The header for the layout format. - - the layout header - - - The Header text will be appended before any logging events - are formatted and appended. - - - - - - The footer for the layout format. - - the layout footer - - - The Footer text will be appended after all the logging events - have been formatted and appended. - - - - - - Flag indicating if this layout handle exceptions - - false if this layout handles exceptions - - - If this layout handles the exception object contained within - , then the layout should return - false. Otherwise, if the layout ignores the exception - object, then the layout should return true. - - - - - - The header text - - - - See for more information. - - - - - - The footer text - - - - See for more information. - - - - - - Flag indicating if this layout handles exceptions - - - - false if this layout handles exceptions - - - - - - Empty default constructor - - - - Empty default constructor - - - - - - Activate component options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - This method must be implemented by the subclass. - - - - - - Implement this method to create your own layout format. - - The TextWriter to write the formatted event to - The event to format - - - This method is called by an appender to format - the as text. - - - - - - Convenience method for easily formatting the logging event into a string variable. - - - - Creates a new StringWriter instance to store the formatted logging event. - - - - - The content type output by this layout. - - The content type is "text/plain" - - - The content type output by this layout. - - - This base class uses the value "text/plain". - To change this value a subclass must override this - property. - - - - - - The header for the layout format. - - the layout header - - - The Header text will be appended before any logging events - are formatted and appended. - - - - - - The footer for the layout format. - - the layout footer - - - The Footer text will be appended after all the logging events - have been formatted and appended. - - - - - - Flag indicating if this layout handles exceptions - - false if this layout handles exceptions - - - If this layout handles the exception object contained within - , then the layout should return - false. Otherwise, if the layout ignores the exception - object, then the layout should return true. - - - Set this value to override a this default setting. The default - value is true, this layout does not handle the exception. - - - - - - Default constructor - - - - Constructs a ExceptionLayout - - - - - - Activate component options - - - - Part of the component activation - framework. - - - This method does nothing as options become effective immediately. - - - - - - Gets the exception text from the logging event - - The TextWriter to write the formatted event to - the event being logged - - - Write the exception string to the . - The exception string is retrieved from . - - - - - - Interface for raw layout objects - - - - Interface used to format a - to an object. - - - This interface should not be confused with the - interface. This interface is used in - only certain specialized situations where a raw object is - required rather than a formatted string. The - is not generally useful than this interface. - - - Nicko Cadell - Gert Driesen - - - - Implement this method to create your own layout format. - - The event to format - returns the formatted event - - - Implement this method to create your own layout format. - - - - - - Adapts any to a - - - - Where an is required this adapter - allows a to be specified. - - - Nicko Cadell - Gert Driesen - - - - The layout to adapt - - - - - Construct a new adapter - - the layout to adapt - - - Create the adapter for the specified . - - - - - - Format the logging event as an object. - - The event to format - returns the formatted event - - - Format the logging event as an object. - - - Uses the object supplied to - the constructor to perform the formatting. - - - - - - A flexible layout configurable with pattern string. - - - - The goal of this class is to a - as a string. The results - depend on the conversion pattern. - - - The conversion pattern is closely related to the conversion - pattern of the printf function in C. A conversion pattern is - composed of literal text and format control expressions called - conversion specifiers. - - - You are free to insert any literal text within the conversion - pattern. - - - Each conversion specifier starts with a percent sign (%) and is - followed by optional format modifiers and a conversion - pattern name. The conversion pattern name specifies the type of - data, e.g. logger, level, date, thread name. The format - modifiers control such things as field width, padding, left and - right justification. The following is a simple example. - - - Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume - that the log4net environment was set to use a PatternLayout. Then the - statements - - - ILog log = LogManager.GetLogger(typeof(TestApp)); - log.Debug("Message 1"); - log.Warn("Message 2"); - - would yield the output - - DEBUG [main]: Message 1 - WARN [main]: Message 2 - - - Note that there is no explicit separator between text and - conversion specifiers. The pattern parser knows when it has reached - the end of a conversion specifier when it reads a conversion - character. In the example above the conversion specifier - %-5level means the level of the logging event should be left - justified to a width of five characters. - - - The recognized conversion pattern names are: - - - - Conversion Pattern Name - Effect - - - a - Equivalent to appdomain - - - appdomain - - Used to output the friendly name of the AppDomain where the - logging event was generated. - - - - aspnet-cache - - - Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-context - - - Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-request - - - Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-session - - - Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - c - Equivalent to logger - - - C - Equivalent to type - - - class - Equivalent to type - - - d - Equivalent to date - - - date - - - Used to output the date of the logging event in the local time zone. - To output the date in universal time use the %utcdate pattern. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %date{HH:mm:ss,fff} or - %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %date{ISO8601} or %date{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - exception - - - Used to output the exception passed in with the log message. - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - If there is no exception then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - - - F - Equivalent to file - - - file - - - Used to output the file name where the logging request was - issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - identity - - - Used to output the user name for the currently active user - (Principal.Identity.Name). - - - WARNING Generating caller information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - - - l - Equivalent to location - - - L - Equivalent to line - - - location - - - Used to output location information of the caller which generated - the logging event. - - - The location information depends on the CLI implementation but - usually consists of the fully qualified name of the calling - method followed by the callers source the file name and line - number between parentheses. - - - The location information can be very useful. However, its - generation is extremely slow. Its use should be avoided - unless execution speed is not an issue. - - - See the note below on the availability of caller location information. - - - - - level - - - Used to output the level of the logging event. - - - - - line - - - Used to output the line number from where the logging request - was issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - logger - - - Used to output the logger of the logging event. The - logger conversion specifier can be optionally followed by - precision specifier, that is a decimal constant in - brackets. - - - If a precision specifier is given, then only the corresponding - number of right most components of the logger name will be - printed. By default the logger name is printed in full. - - - For example, for the logger name "a.b.c" the pattern - %logger{2} will output "b.c". - - - - - m - Equivalent to message - - - M - Equivalent to method - - - message - - - Used to output the application supplied message associated with - the logging event. - - - - - mdc - - - The MDC (old name for the ThreadContext.Properties) is now part of the - combined event properties. This pattern is supported for compatibility - but is equivalent to property. - - - - - method - - - Used to output the method name where the logging request was - issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - n - Equivalent to newline - - - newline - - - Outputs the platform dependent line separator character or - characters. - - - This conversion pattern offers the same performance as using - non-portable line separator strings such as "\n", or "\r\n". - Thus, it is the preferred way of specifying a line separator. - - - - - ndc - - - Used to output the NDC (nested diagnostic context) associated - with the thread that generated the logging event. - - - - - p - Equivalent to level - - - P - Equivalent to property - - - properties - Equivalent to property - - - property - - - Used to output the an event specific property. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %property{user} would include the value - from the property that is keyed by the string 'user'. Each property value - that is to be included in the log must be specified separately. - Properties are added to events by loggers or appenders. By default - the log4net:HostName property is set to the name of machine on - which the event was originally logged. - - - If no key is specified, e.g. %property then all the keys and their - values are printed in a comma separated list. - - - The properties of an event are combined from a number of different - contexts. These are listed below in the order in which they are searched. - - - - the event properties - - The event has that can be set. These - properties are specific to this event only. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - - r - Equivalent to timestamp - - - stacktrace - - - Used to output the stack trace of the logging event - The stack trace level specifier may be enclosed - between braces. For example, %stacktrace{level}. - If no stack trace level specifier is given then 1 is assumed - - - Output uses the format: - type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 - - - This pattern is not available for Compact Framework assemblies. - - - - - stacktracedetail - - - Used to output the stack trace of the logging event - The stack trace level specifier may be enclosed - between braces. For example, %stacktracedetail{level}. - If no stack trace level specifier is given then 1 is assumed - - - Output uses the format: - type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) - - - This pattern is not available for Compact Framework assemblies. - - - - - t - Equivalent to thread - - - timestamp - - - Used to output the number of milliseconds elapsed since the start - of the application until the creation of the logging event. - - - - - thread - - - Used to output the name of the thread that generated the - logging event. Uses the thread number if no name is available. - - - - - type - - - Used to output the fully qualified type name of the caller - issuing the logging request. This conversion specifier - can be optionally followed by precision specifier, that - is a decimal constant in brackets. - - - If a precision specifier is given, then only the corresponding - number of right most components of the class name will be - printed. By default the class name is output in fully qualified form. - - - For example, for the class name "log4net.Layout.PatternLayout", the - pattern %type{1} will output "PatternLayout". - - - WARNING Generating the caller class information is - slow. Thus, its use should be avoided unless execution speed is - not an issue. - - - See the note below on the availability of caller location information. - - - - - u - Equivalent to identity - - - username - - - Used to output the WindowsIdentity for the currently - active user. - - - WARNING Generating caller WindowsIdentity information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - - - utcdate - - - Used to output the date of the logging event in universal time. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %utcdate{HH:mm:ss,fff} or - %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %utcdate{ISO8601} or %utcdate{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - w - Equivalent to username - - - x - Equivalent to ndc - - - X - Equivalent to mdc - - - % - - - The sequence %% outputs a single percent sign. - - - - - - The single letter patterns are deprecated in favor of the - longer more descriptive pattern names. - - - By default the relevant information is output as is. However, - with the aid of format modifiers it is possible to change the - minimum field width, the maximum field width and justification. - - - The optional format modifier is placed between the percent sign - and the conversion pattern name. - - - The first optional format modifier is the left justification - flag which is just the minus (-) character. Then comes the - optional minimum field width modifier. This is a decimal - constant that represents the minimum number of characters to - output. If the data item requires fewer characters, it is padded on - either the left or the right until the minimum width is - reached. The default is to pad on the left (right justify) but you - can specify right padding with the left justification flag. The - padding character is space. If the data item is larger than the - minimum field width, the field is expanded to accommodate the - data. The value is never truncated. - - - This behavior can be changed using the maximum field - width modifier which is designated by a period followed by a - decimal constant. If the data item is longer than the maximum - field, then the extra characters are removed from the - beginning of the data item and not from the end. For - example, it the maximum field width is eight and the data item is - ten characters long, then the first two characters of the data item - are dropped. This behavior deviates from the printf function in C - where truncation is done from the end. - - - Below are various format modifier examples for the logger - conversion specifier. - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Format modifierleft justifyminimum widthmaximum widthcomment
    %20loggerfalse20none - - Left pad with spaces if the logger name is less than 20 - characters long. - -
    %-20loggertrue20none - - Right pad with spaces if the logger - name is less than 20 characters long. - -
    %.30loggerNAnone30 - - Truncate from the beginning if the logger - name is longer than 30 characters. - -
    %20.30loggerfalse2030 - - Left pad with spaces if the logger name is shorter than 20 - characters. However, if logger name is longer than 30 characters, - then truncate from the beginning. - -
    %-20.30loggertrue2030 - - Right pad with spaces if the logger name is shorter than 20 - characters. However, if logger name is longer than 30 characters, - then truncate from the beginning. - -
    -
    - - Note about caller location information.
    - The following patterns %type %file %line %method %location %class %C %F %L %l %M - all generate caller location information. - Location information uses the System.Diagnostics.StackTrace class to generate - a call stack. The caller's information is then extracted from this stack. -
    - - - The System.Diagnostics.StackTrace class is not supported on the - .NET Compact Framework 1.0 therefore caller location information is not - available on that framework. - - - - - The System.Diagnostics.StackTrace class has this to say about Release builds: - - - "StackTrace information will be most informative with Debug build configurations. - By default, Debug builds include debug symbols, while Release builds do not. The - debug symbols contain most of the file, method name, line number, and column - information used in constructing StackFrame and StackTrace objects. StackTrace - might not report as many method calls as expected, due to code transformations - that occur during optimization." - - - This means that in a Release build the caller information may be incomplete or may - not exist at all! Therefore caller location information cannot be relied upon in a Release build. - - - - Additional pattern converters may be registered with a specific - instance using the method. - -
    - - This is a more detailed pattern. - %timestamp [%thread] %level %logger %ndc - %message%newline - - - A similar pattern except that the relative time is - right padded if less than 6 digits, thread name is right padded if - less than 15 characters and truncated if longer and the logger - name is left padded if shorter than 30 characters and truncated if - longer. - %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline - - Nicko Cadell - Gert Driesen - Douglas de la Torre - Daniel Cazzulino -
    - - - Default pattern string for log output. - - - - Default pattern string for log output. - Currently set to the string "%message%newline" - which just prints the application supplied message. - - - - - - A detailed conversion pattern - - - - A conversion pattern which includes Time, Thread, Logger, and Nested Context. - Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. - - - - - - Internal map of converter identifiers to converter types. - - - - This static map is overridden by the m_converterRegistry instance map - - - - - - the pattern - - - - - the head of the pattern converter chain - - - - - patterns defined on this PatternLayout only - - - - - Initialize the global registry - - - - Defines the builtin global rules. - - - - - - Constructs a PatternLayout using the DefaultConversionPattern - - - - The default pattern just produces the application supplied message. - - - Note to Inheritors: This constructor calls the virtual method - . If you override this method be - aware that it will be called before your is called constructor. - - - As per the contract the - method must be called after the properties on this object have been - configured. - - - - - - Constructs a PatternLayout using the supplied conversion pattern - - the pattern to use - - - Note to Inheritors: This constructor calls the virtual method - . If you override this method be - aware that it will be called before your is called constructor. - - - When using this constructor the method - need not be called. This may not be the case when using a subclass. - - - - - - Create the pattern parser instance - - the pattern to parse - The that will format the event - - - Creates the used to parse the conversion string. Sets the - global and instance rules on the . - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a formatted string as specified by the conversion pattern. - - the event being logged - The TextWriter to write the formatted event to - - - Parse the using the patter format - specified in the property. - - - - - - Add a converter to this PatternLayout - - the converter info - - - This version of the method is used by the configurator. - Programmatic users should use the alternative method. - - - - - - Add a converter to this PatternLayout - - the name of the conversion pattern for this converter - the type of the converter - - - Add a named pattern converter to this instance. This - converter will be used in the formatting of the event. - This method must be called before . - - - The specified must extend the - type. - - - - - - The pattern formatting string - - - - The ConversionPattern option. This is the string which - controls formatting and consists of a mix of literal content and - conversion specifiers. - - - - - - Type converter for the interface - - - - Used to convert objects to the interface. - Supports converting from the interface to - the interface using the . - - - Nicko Cadell - Gert Driesen - - - - Interface supported by type converters - - - - This interface supports conversion from arbitrary types - to a single target type. See . - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Test if the can be converted to the - type supported by this converter. - - - - - - Convert the source object to the type supported by this object - - the object to convert - the converted object - - - Converts the to the type supported - by this converter. - - - - - - Can the sourceType be converted to an - - the source to be to be converted - true if the source type can be converted to - - - Test if the can be converted to a - . Only is supported - as the . - - - - - - Convert the value to a object - - the value to convert - the object - - - Convert the object to a - object. If the object - is a then the - is used to adapt between the two interfaces, otherwise an - exception is thrown. - - - - - - Extract the value of a property from the - - - - Extract the value of a property from the - - - Nicko Cadell - - - - Constructs a RawPropertyLayout - - - - - Lookup the property for - - The event to format - returns property value - - - Looks up and returns the object value of the property - named . If there is no property defined - with than name then null will be returned. - - - - - - The name of the value to lookup in the LoggingEvent Properties collection. - - - Value to lookup in the LoggingEvent Properties collection - - - - String name of the property to lookup in the . - - - - - - Extract the date from the - - - - Extract the date from the - - - Nicko Cadell - Gert Driesen - - - - Constructs a RawTimeStampLayout - - - - - Gets the as a . - - The event to format - returns the time stamp - - - Gets the as a . - - - The time stamp is in local time. To format the time stamp - in universal time use . - - - - - - Extract the date from the - - - - Extract the date from the - - - Nicko Cadell - Gert Driesen - - - - Constructs a RawUtcTimeStampLayout - - - - - Gets the as a . - - The event to format - returns the time stamp - - - Gets the as a . - - - The time stamp is in universal time. To format the time stamp - in local time use . - - - - - - A very simple layout - - - - SimpleLayout consists of the level of the log statement, - followed by " - " and then the log message itself. For example, - - DEBUG - Hello world - - - - Nicko Cadell - Gert Driesen - - - - Constructs a SimpleLayout - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a simple formatted output. - - the event being logged - The TextWriter to write the formatted event to - - - Formats the event as the level of the even, - followed by " - " and then the log message itself. The - output is terminated by a newline. - - - - - - Layout that formats the log events as XML elements. - - - - The output of the consists of a series of - log4net:event elements. It does not output a complete well-formed XML - file. The output is designed to be included as an external entity - in a separate file to form a correct XML file. - - - For example, if abc is the name of the file where - the output goes, then a well-formed XML file would - be: - - - <?xml version="1.0" ?> - - <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> - - <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> - &data; - </log4net:events> - - - This approach enforces the independence of the - and the appender where it is embedded. - - - The version attribute helps components to correctly - interpret output generated by . The value of - this attribute should be "1.2" for release 1.2 and later. - - - Alternatively the Header and Footer properties can be - configured to output the correct XML header, open tag and close tag. - When setting the Header and Footer properties it is essential - that the underlying data store not be appendable otherwise the data - will become invalid XML. - - - Nicko Cadell - Gert Driesen - - - - Layout that formats the log events as XML elements. - - - - This is an abstract class that must be subclassed by an implementation - to conform to a specific schema. - - - Deriving classes must implement the method. - - - Nicko Cadell - Gert Driesen - - - - Protected constructor to support subclasses - - - - Initializes a new instance of the class - with no location info. - - - - - - Protected constructor to support subclasses - - - - The parameter determines whether - location information will be output by the layout. If - is set to true, then the - file name and line number of the statement at the origin of the log - statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a formatted string. - - The event being logged. - The TextWriter to write the formatted event to - - - Format the and write it to the . - - - This method creates an that writes to the - . The is passed - to the method. Subclasses should override the - method rather than this method. - - - - - - Does the actual writing of the XML. - - The writer to use to output the event to. - The event to write. - - - Subclasses should override this method to format - the as XML. - - - - - - Flag to indicate if location information should be included in - the XML events. - - - - - The string to replace invalid chars with - - - - - Gets a value indicating whether to include location information in - the XML events. - - - true if location information should be included in the XML - events; otherwise, false. - - - - If is set to true, then the file - name and line number of the statement at the origin of the log - statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - The string to replace characters that can not be expressed in XML with. - - - Not all characters may be expressed in XML. This property contains the - string to replace those that can not with. This defaults to a ?. Set it - to the empty string to simply remove offending characters. For more - details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets - Character replacement will occur in the log message, the property names - and the property values. - - - - - - - Gets the content type output by this layout. - - - As this is the XML layout, the value is always "text/xml". - - - - As this is the XML layout, the value is always "text/xml". - - - - - - Constructs an XmlLayout - - - - - Constructs an XmlLayout. - - - - The LocationInfo option takes a boolean value. By - default, it is set to false which means there will be no location - information output by this layout. If the the option is set to - true, then the file name and line number of the statement - at the origin of the log statement will be output. - - - If you are embedding this layout within an SmtpAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Builds a cache of the element names - - - - - - Does the actual writing of the XML. - - The writer to use to output the event to. - The event to write. - - - Override the base class method - to write the to the . - - - - - - The prefix to use for all generated element names - - - - - The prefix to use for all element names - - - - The default prefix is log4net. Set this property - to change the prefix. If the prefix is set to an empty string - then no prefix will be written. - - - - - - Set whether or not to base64 encode the message. - - - - By default the log message will be written as text to the xml - output. This can cause problems when the message contains binary - data. By setting this to true the contents of the message will be - base64 encoded. If this is set then invalid character replacement - (see ) will not be performed - on the log message. - - - - - - Set whether or not to base64 encode the property values. - - - - By default the properties will be written as text to the xml - output. This can cause problems when one or more properties contain - binary data. By setting this to true the values of the properties - will be base64 encoded. If this is set then invalid character replacement - (see ) will not be performed - on the property values. - - - - - - Layout that formats the log events as XML elements compatible with the log4j schema - - - - Formats the log events according to the http://logging.apache.org/log4j schema. - - - Nicko Cadell - - - - The 1st of January 1970 in UTC - - - - - Constructs an XMLLayoutSchemaLog4j - - - - - Constructs an XMLLayoutSchemaLog4j. - - - - The LocationInfo option takes a boolean value. By - default, it is set to false which means there will be no location - information output by this layout. If the the option is set to - true, then the file name and line number of the statement - at the origin of the log statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Actually do the writing of the xml - - the writer to use - the event to write - - - Generate XML that is compatible with the log4j schema. - - - - - - The version of the log4j schema to use. - - - - Only version 1.2 of the log4j schema is supported. - - - - - - The default object Renderer. - - - - The default renderer supports rendering objects and collections to strings. - - - See the method for details of the output. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface in order to render objects as strings - - - - Certain types require special case conversion to - string form. This conversion is done by an object renderer. - Object renderers implement the - interface. - - - Nicko Cadell - Gert Driesen - - - - Render the object to a string - - The map used to lookup renderers - The object to render - The writer to render to - - - Render the object to a - string. - - - The parameter is - provided to lookup and render other objects. This is - very useful where contains - nested objects of unknown type. The - method can be used to render these objects. - - - - - - Default constructor - - - - Default constructor - - - - - - Render the object to a string - - The map used to lookup renderers - The object to render - The writer to render to - - - Render the object to a string. - - - The parameter is - provided to lookup and render other objects. This is - very useful where contains - nested objects of unknown type. The - method can be used to render these objects. - - - The default renderer supports rendering objects to strings as follows: - - - - Value - Rendered String - - - null - - "(null)" - - - - - - - For a one dimensional array this is the - array type name, an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. - - - For example: int[] {1, 2, 3}. - - - If the array is not one dimensional the - Array.ToString() is returned. - - - - - , & - - - Rendered as an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. - - - For example: {a, b, c}. - - - All collection classes that implement its subclasses, - or generic equivalents all implement the interface. - - - - - - - - Rendered as the key, an equals sign ('='), and the value (using the appropriate - renderer). - - - For example: key=value. - - - - - other - - Object.ToString() - - - - - - - - Render the array argument into a string - - The map used to lookup renderers - the array to render - The writer to render to - - - For a one dimensional array this is the - array type name, an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. For example: - int[] {1, 2, 3}. - - - If the array is not one dimensional the - Array.ToString() is returned. - - - - - - Render the enumerator argument into a string - - The map used to lookup renderers - the enumerator to render - The writer to render to - - - Rendered as an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. For example: - {a, b, c}. - - - - - - Render the DictionaryEntry argument into a string - - The map used to lookup renderers - the DictionaryEntry to render - The writer to render to - - - Render the key, an equals sign ('='), and the value (using the appropriate - renderer). For example: key=value. - - - - - - Map class objects to an . - - - - Maintains a mapping between types that require special - rendering and the that - is used to render them. - - - The method is used to render an - object using the appropriate renderers defined in this map. - - - Nicko Cadell - Gert Driesen - - - - Default Constructor - - - - Default constructor. - - - - - - Render using the appropriate renderer. - - the object to render to a string - the object rendered as a string - - - This is a convenience method used to render an object to a string. - The alternative method - should be used when streaming output to a . - - - - - - Render using the appropriate renderer. - - the object to render to a string - The writer to render to - - - Find the appropriate renderer for the type of the - parameter. This is accomplished by calling the - method. Once a renderer is found, it is - applied on the object and the result is returned - as a . - - - - - - Gets the renderer for the specified object type - - the object to lookup the renderer for - the renderer for - - - Gets the renderer for the specified object type. - - - Syntactic sugar method that calls - with the type of the object parameter. - - - - - - Gets the renderer for the specified type - - the type to lookup the renderer for - the renderer for the specified type - - - Returns the renderer for the specified type. - If no specific renderer has been defined the - will be returned. - - - - - - Internal function to recursively search interfaces - - the type to lookup the renderer for - the renderer for the specified type - - - - Clear the map of renderers - - - - Clear the custom renderers defined by using - . The - cannot be removed. - - - - - - Register an for . - - the type that will be rendered by - the renderer for - - - Register an object renderer for a specific source type. - This renderer will be returned from a call to - specifying the same as an argument. - - - - - - Get the default renderer instance - - the default renderer - - - Get the default renderer - - - - - - Interface implemented by logger repository plugins. - - - - Plugins define additional behavior that can be associated - with a . - The held by the - property is used to store the plugins for a repository. - - - The log4net.Config.PluginAttribute can be used to - attach plugins to repositories created using configuration - attributes. - - - Nicko Cadell - Gert Driesen - - - - Attaches the plugin to the specified . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - This method is called to notify the plugin that - it should stop operating and should detach from - the repository. - - - - - - Gets the name of the plugin. - - - The name of the plugin. - - - - Plugins are stored in the - keyed by name. Each plugin instance attached to a - repository must be a unique name. - - - - - - Interface used to create plugins. - - - - Interface used to create a plugin. - - - Nicko Cadell - Gert Driesen - - - - Creates the plugin object. - - the new plugin instance - - - Create and return a new plugin instance. - - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a PluginCollection instance. - - list to create a readonly wrapper arround - - A PluginCollection wrapper that is read-only. - - - - - Initializes a new instance of the PluginCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the PluginCollection class - that has the specified initial capacity. - - - The number of elements that the new PluginCollection is initially capable of storing. - - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified PluginCollection. - - The PluginCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - - Copies the entire PluginCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire PluginCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the PluginCollection. - - The to be added to the end of the PluginCollection. - The index at which the value has been added. - - - - Removes all elements from the PluginCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the PluginCollection. - - The to check for. - true if is found in the PluginCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the PluginCollection. - - The to locate in the PluginCollection. - - The zero-based index of the first occurrence of - in the entire PluginCollection, if found; otherwise, -1. - - - - - Inserts an element into the PluginCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the PluginCollection. - - The to remove from the PluginCollection. - - The specified was not found in the PluginCollection. - - - - - Removes the element at the specified index of the PluginCollection. - - The zero-based index of the element to remove. - - is less than zero. - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the PluginCollection. - - An for the entire PluginCollection. - - - - Adds the elements of another PluginCollection to the current PluginCollection. - - The PluginCollection whose elements should be added to the end of the current PluginCollection. - The new of the PluginCollection. - - - - Adds the elements of a array to the current PluginCollection. - - The array whose elements should be added to the end of the PluginCollection. - The new of the PluginCollection. - - - - Adds the elements of a collection to the current PluginCollection. - - The collection whose elements should be added to the end of the PluginCollection. - The new of the PluginCollection. - - - - Sets the capacity to the actual number of elements. - - - - - is less than zero. - -or- - is equal to or greater than . - - - - - is less than zero. - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the PluginCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - An object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - - The at the specified index. - - The zero-based index of the element to get or set. - - is less than zero. - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false. - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false. - - - - Gets or sets the number of elements the PluginCollection can contain. - - - The number of elements the PluginCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - - A value - - - - - Supports simple iteration over a . - - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - The current element in the collection. - - - - - - - - Map of repository plugins. - - - - This class is a name keyed map of the plugins that are - attached to a repository. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The repository that the plugins should be attached to. - - - Initialize a new instance of the class with a - repository that the plugins should be attached to. - - - - - - Adds a to the map. - - The to add to the map. - - - The will be attached to the repository when added. - - - If there already exists a plugin with the same name - attached to the repository then the old plugin will - be and replaced with - the new plugin. - - - - - - Removes a from the map. - - The to remove from the map. - - - Remove a specific plugin from this map. - - - - - - Gets a by name. - - The name of the to lookup. - - The from the map with the name specified, or - null if no plugin is found. - - - - Lookup a plugin by name. If the plugin is not found null - will be returned. - - - - - - Gets all possible plugins as a list of objects. - - All possible plugins as a list of objects. - - - Get a collection of all the plugins defined in this map. - - - - - - Base implementation of - - - - Default abstract implementation of the - interface. This base class can be used by implementors - of the interface. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - the name of the plugin - - Initializes a new Plugin with the specified name. - - - - - Attaches this plugin to a . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - This method is called to notify the plugin that - it should stop operating and should detach from - the repository. - - - - - - The name of this plugin. - - - - - The repository this plugin is attached to. - - - - - Gets or sets the name of the plugin. - - - The name of the plugin. - - - - Plugins are stored in the - keyed by name. Each plugin instance attached to a - repository must be a unique name. - - - The name of the plugin must not change one the - plugin has been attached to a repository. - - - - - - The repository for this plugin - - - The that this plugin is attached to. - - - - Gets or sets the that this plugin is - attached to. - - - - - - Default implementation of - - - - This default implementation of the - interface is used to create the default subclass - of the object. - - - Nicko Cadell - Gert Driesen - - - - Interface abstracts creation of instances - - - - This interface is used by the to - create new objects. - - - The method is called - to create a named . - - - Implement this interface to create new subclasses of . - - - Nicko Cadell - Gert Driesen - - - - Create a new instance - - The that will own the . - The name of the . - The instance for the specified name. - - - Create a new instance with the - specified name. - - - Called by the to create - new named instances. - - - If the is null then the root logger - must be returned. - - - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Create a new instance - - The that will own the . - The name of the . - The instance for the specified name. - - - Create a new instance with the - specified name. - - - Called by the to create - new named instances. - - - If the is null then the root logger - must be returned. - - - - - - Default internal subclass of - - - - This subclass has no additional behavior over the - class but does allow instances - to be created. - - - - - - Implementation of used by - - - - Internal class used to provide implementation of - interface. Applications should use to get - logger instances. - - - This is one of the central classes in the log4net implementation. One of the - distinctive features of log4net are hierarchical loggers and their - evaluation. The organizes the - instances into a rooted tree hierarchy. - - - The class is abstract. Only concrete subclasses of - can be created. The - is used to create instances of this type for the . - - - Nicko Cadell - Gert Driesen - Aspi Havewala - Douglas de la Torre - - - - This constructor created a new instance and - sets its name. - - The name of the . - - - This constructor is protected and designed to be used by - a subclass that is not abstract. - - - Loggers are constructed by - objects. See for the default - logger creator. - - - - - - Add to the list of appenders of this - Logger instance. - - An appender to add to this logger - - - Add to the list of appenders of this - Logger instance. - - - If is already in the list of - appenders, then it won't be added again. - - - - - - Look for the appender named as name - - The name of the appender to lookup - The appender with the name specified, or null. - - - Returns the named appender, or null if the appender is not found. - - - - - - Remove all previously added appenders from this Logger instance. - - - - Remove all previously added appenders from this Logger instance. - - - This is useful when re-reading configuration information. - - - - - - Remove the appender passed as parameter form the list of appenders. - - The appender to remove - The appender removed from the list - - - Remove the appender passed as parameter form the list of appenders. - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Remove the appender passed as parameter form the list of appenders. - - The name of the appender to remove - The appender removed from the list - - - Remove the named appender passed as parameter form the list of appenders. - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - This generic form is intended to be used by wrappers. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generate a logging event for the specified using - the and . - - - This method must not throw any exception to the caller. - - - - - - This is the most generic printing method that is intended to be used - by wrappers. - - The event being logged. - - - Logs the specified logging event through this logger. - - - This method must not throw any exception to the caller. - - - - - - Checks if this logger is enabled for a given passed as parameter. - - The level to check. - - true if this logger is enabled for level, otherwise false. - - - - Test if this logger is going to log events of the specified . - - - This method must not throw any exception to the caller. - - - - - - Deliver the to the attached appenders. - - The event to log. - - - Call the appenders in the hierarchy starting at - this. If no appenders could be found, emit a - warning. - - - This method calls all the appenders inherited from the - hierarchy circumventing any evaluation of whether to log or not - to log the particular log request. - - - - - - Closes all attached appenders implementing the interface. - - - - Used to ensure that the appenders are correctly shutdown. - - - - - - This is the most generic printing method. This generic form is intended to be used by wrappers - - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generate a logging event for the specified using - the . - - - - - - Creates a new logging event and logs the event without further checks. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generates a logging event and delivers it to the attached - appenders. - - - - - - Creates a new logging event and logs the event without further checks. - - The event being logged. - - - Delivers the logging event to the attached appenders. - - - - - - The fully qualified type of the Logger class. - - - - - The name of this logger. - - - - - The assigned level of this logger. - - - - The level variable need not be - assigned a value in which case it is inherited - form the hierarchy. - - - - - - The parent of this logger. - - - - The parent of this logger. - All loggers have at least one ancestor which is the root logger. - - - - - - Loggers need to know what Hierarchy they are in. - - - - Loggers need to know what Hierarchy they are in. - The hierarchy that this logger is a member of is stored - here. - - - - - - Helper implementation of the interface - - - - - Flag indicating if child loggers inherit their parents appenders - - - - Additivity is set to true by default, that is children inherit - the appenders of their ancestors by default. If this variable is - set to false then the appenders found in the - ancestors of this logger are not used. However, the children - of this logger will inherit its appenders, unless the children - have their additivity flag set to false too. See - the user manual for more details. - - - - - - Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl - - - - - Gets or sets the parent logger in the hierarchy. - - - The parent logger in the hierarchy. - - - - Part of the Composite pattern that makes the hierarchy. - The hierarchy is parent linked rather than child linked. - - - - - - Gets or sets a value indicating if child loggers inherit their parent's appenders. - - - true if child loggers inherit their parent's appenders. - - - - Additivity is set to true by default, that is children inherit - the appenders of their ancestors by default. If this variable is - set to false then the appenders found in the - ancestors of this logger are not used. However, the children - of this logger will inherit its appenders, unless the children - have their additivity flag set to false too. See - the user manual for more details. - - - - - - Gets the effective level for this logger. - - The nearest level in the logger hierarchy. - - - Starting from this logger, searches the logger hierarchy for a - non-null level and returns it. Otherwise, returns the level of the - root logger. - - The Logger class is designed so that this method executes as - quickly as possible. - - - - - Gets or sets the where this - Logger instance is attached to. - - The hierarchy that this logger belongs to. - - - This logger must be attached to a single . - - - - - - Gets or sets the assigned , if any, for this Logger. - - - The of this logger. - - - - The assigned can be null. - - - - - - Get the appenders contained in this logger as an - . - - A collection of the appenders in this logger - - - Get the appenders contained in this logger as an - . If no appenders - can be found, then a is returned. - - - - - - Gets the logger name. - - - The name of the logger. - - - - The name of this logger - - - - - - Gets the where this - Logger instance is attached to. - - - The that this logger belongs to. - - - - Gets the where this - Logger instance is attached to. - - - - - - Construct a new Logger - - the name of the logger - - - Initializes a new instance of the class - with the specified name. - - - - - - Delegate used to handle logger creation event notifications. - - The in which the has been created. - The event args that hold the instance that has been created. - - - Delegate used to handle logger creation event notifications. - - - - - - Provides data for the event. - - - - A event is raised every time a - is created. - - - - - - The created - - - - - Constructor - - The that has been created. - - - Initializes a new instance of the event argument - class,with the specified . - - - - - - Gets the that has been created. - - - The that has been created. - - - - The that has been created. - - - - - - Hierarchical organization of loggers - - - - The casual user should not have to deal with this class - directly. - - - This class is specialized in retrieving loggers by name and - also maintaining the logger hierarchy. Implements the - interface. - - - The structure of the logger hierarchy is maintained by the - method. The hierarchy is such that children - link to their parent but parents do not have any references to their - children. Moreover, loggers can be instantiated in any order, in - particular descendant before ancestor. - - - In case a descendant is created before a particular ancestor, - then it creates a provision node for the ancestor and adds itself - to the provision node. Other descendants of the same ancestor add - themselves to the previously created provision node. - - - Nicko Cadell - Gert Driesen - - - - Base implementation of - - - - Default abstract implementation of the interface. - - - Skeleton implementation of the interface. - All types can extend this type. - - - Nicko Cadell - Gert Driesen - - - - Interface implemented by logger repositories. - - - - This interface is implemented by logger repositories. e.g. - . - - - This interface is used by the - to obtain interfaces. - - - Nicko Cadell - Gert Driesen - - - - Check if the named logger exists in the repository. If so return - its reference, otherwise returns null. - - The name of the logger to lookup - The Logger object with the name specified - - - If the names logger exists it is returned, otherwise - null is returned. - - - - - - Returns all the currently defined loggers as an Array. - - All the defined loggers - - - Returns all the currently defined loggers as an Array. - - - - - - Returns a named logger instance - - The name of the logger to retrieve - The logger object with the name specified - - - Returns a named logger instance. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - - - Shutdown the repository - - - Shutting down a repository will safely close and remove - all appenders in all loggers including the root logger. - - - Some appenders need to be closed before the - application exists. Otherwise, pending logging events might be - lost. - - - The method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Reset the repositories configuration to a default state - - - - Reset all values contained in this instance to their - default state. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the through this repository. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are configured as an Array. - - All the Appenders - - - Returns all the Appenders that are configured as an Array. - - - - - - The name of the repository - - - The name of the repository - - - - The name of the repository. - - - - - - RendererMap accesses the object renderer map for this repository. - - - RendererMap accesses the object renderer map for this repository. - - - - RendererMap accesses the object renderer map for this repository. - - - The RendererMap holds a mapping between types and - objects. - - - - - - The plugin map for this repository. - - - The plugin map for this repository. - - - - The plugin map holds the instances - that have been attached to this repository. - - - - - - Get the level map for the Repository. - - - - Get the level map for the Repository. - - - The level map defines the mappings between - level names and objects in - this repository. - - - - - - The threshold for all events in this repository - - - The threshold for all events in this repository - - - - The threshold for all events in this repository. - - - - - - Flag indicates if this repository has been configured. - - - Flag indicates if this repository has been configured. - - - - Flag indicates if this repository has been configured. - - - - - - Collection of internal messages captured during the most - recent configuration process. - - - - - Event to notify that the repository has been shutdown. - - - Event to notify that the repository has been shutdown. - - - - Event raised when the repository has been shutdown. - - - - - - Event to notify that the repository has had its configuration reset. - - - Event to notify that the repository has had its configuration reset. - - - - Event raised when the repository's configuration has been - reset to default. - - - - - - Event to notify that the repository has had its configuration changed. - - - Event to notify that the repository has had its configuration changed. - - - - Event raised when the repository's configuration has been changed. - - - - - - Repository specific properties - - - Repository specific properties - - - - These properties can be specified on a repository specific basis. - - - - - - Default Constructor - - - - Initializes the repository with default (empty) properties. - - - - - - Construct the repository using specific properties - - the properties to set for this repository - - - Initializes the repository with specified properties. - - - - - - Test if logger exists - - The name of the logger to lookup - The Logger object with the name specified - - - Check if the named logger exists in the repository. If so return - its reference, otherwise returns null. - - - - - - Returns all the currently defined loggers in the repository - - All the defined loggers - - - Returns all the currently defined loggers in the repository as an Array. - - - - - - Return a new logger instance - - The name of the logger to retrieve - The logger object with the name specified - - - Return a new logger instance. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - - - - Shutdown the repository - - - - Shutdown the repository. Can be overridden in a subclass. - This base class implementation notifies the - listeners and all attached plugins of the shutdown event. - - - - - - Reset the repositories configuration to a default state - - - - Reset all values contained in this instance to their - default state. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the logEvent through this repository. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are configured as an Array. - - All the Appenders - - - Returns all the Appenders that are configured as an Array. - - - - - - The fully qualified type of the LoggerRepositorySkeleton class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Adds an object renderer for a specific class. - - The type that will be rendered by the renderer supplied. - The object renderer used to render the object. - - - Adds an object renderer for a specific class. - - - - - - Notify the registered listeners that the repository is shutting down - - Empty EventArgs - - - Notify any listeners that this repository is shutting down. - - - - - - Notify the registered listeners that the repository has had its configuration reset - - Empty EventArgs - - - Notify any listeners that this repository's configuration has been reset. - - - - - - Notify the registered listeners that the repository has had its configuration changed - - Empty EventArgs - - - Notify any listeners that this repository's configuration has changed. - - - - - - Raise a configuration changed event on this repository - - EventArgs.Empty - - - Applications that programmatically change the configuration of the repository should - raise this event notification to notify listeners. - - - - - - The name of the repository - - - The string name of the repository - - - - The name of this repository. The name is - used to store and lookup the repositories - stored by the . - - - - - - The threshold for all events in this repository - - - The threshold for all events in this repository - - - - The threshold for all events in this repository - - - - - - RendererMap accesses the object renderer map for this repository. - - - RendererMap accesses the object renderer map for this repository. - - - - RendererMap accesses the object renderer map for this repository. - - - The RendererMap holds a mapping between types and - objects. - - - - - - The plugin map for this repository. - - - The plugin map for this repository. - - - - The plugin map holds the instances - that have been attached to this repository. - - - - - - Get the level map for the Repository. - - - - Get the level map for the Repository. - - - The level map defines the mappings between - level names and objects in - this repository. - - - - - - Flag indicates if this repository has been configured. - - - Flag indicates if this repository has been configured. - - - - Flag indicates if this repository has been configured. - - - - - - Contains a list of internal messages captures during the - last configuration. - - - - - Event to notify that the repository has been shutdown. - - - Event to notify that the repository has been shutdown. - - - - Event raised when the repository has been shutdown. - - - - - - Event to notify that the repository has had its configuration reset. - - - Event to notify that the repository has had its configuration reset. - - - - Event raised when the repository's configuration has been - reset to default. - - - - - - Event to notify that the repository has had its configuration changed. - - - Event to notify that the repository has had its configuration changed. - - - - Event raised when the repository's configuration has been changed. - - - - - - Repository specific properties - - - Repository specific properties - - - These properties can be specified on a repository specific basis - - - - - Basic Configurator interface for repositories - - - - Interface used by basic configurator to configure a - with a default . - - - A should implement this interface to support - configuration by the . - - - Nicko Cadell - Gert Driesen - - - - Initialize the repository using the specified appender - - the appender to use to log all logging events - - - Configure the repository to route all logging events to the - specified appender. - - - - - - Initialize the repository using the specified appenders - - the appenders to use to log all logging events - - - Configure the repository to route all logging events to the - specified appenders. - - - - - - Configure repository using XML - - - - Interface used by Xml configurator to configure a . - - - A should implement this interface to support - configuration by the . - - - Nicko Cadell - Gert Driesen - - - - Initialize the repository using the specified config - - the element containing the root of the config - - - The schema for the XML configuration data is defined by - the implementation. - - - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Construct with properties - - The properties to pass to this repository. - - - Initializes a new instance of the class. - - - - - - Construct with a logger factory - - The factory to use to create new logger instances. - - - Initializes a new instance of the class with - the specified . - - - - - - Construct with properties and a logger factory - - The properties to pass to this repository. - The factory to use to create new logger instances. - - - Initializes a new instance of the class with - the specified . - - - - - - Test if a logger exists - - The name of the logger to lookup - The Logger object with the name specified - - - Check if the named logger exists in the hierarchy. If so return - its reference, otherwise returns null. - - - - - - Returns all the currently defined loggers in the hierarchy as an Array - - All the defined loggers - - - Returns all the currently defined loggers in the hierarchy as an Array. - The root logger is not included in the returned - enumeration. - - - - - - Return a new logger instance named as the first parameter using - the default factory. - - - - Return a new logger instance named as the first parameter using - the default factory. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - The name of the logger to retrieve - The logger object with the name specified - - - - Shutting down a hierarchy will safely close and remove - all appenders in all loggers including the root logger. - - - - Shutting down a hierarchy will safely close and remove - all appenders in all loggers including the root logger. - - - Some appenders need to be closed before the - application exists. Otherwise, pending logging events might be - lost. - - - The Shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Reset all values contained in this hierarchy instance to their default. - - - - Reset all values contained in this hierarchy instance to their - default. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the logEvent through this hierarchy. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are currently configured - - An array containing all the currently configured appenders - - - Returns all the instances that are currently configured. - All the loggers are searched for appenders. The appenders may also be containers - for appenders and these are also searched for additional loggers. - - - The list returned is unordered but does not contain duplicates. - - - - - - Collect the appenders from an . - The appender may also be a container. - - - - - - - Collect the appenders from an container - - - - - - - Initialize the log4net system using the specified appender - - the appender to use to log all logging events - - - - Initialize the log4net system using the specified appenders - - the appenders to use to log all logging events - - - - Initialize the log4net system using the specified appenders - - the appenders to use to log all logging events - - - This method provides the same functionality as the - method implemented - on this object, but it is protected and therefore can be called by subclasses. - - - - - - Initialize the log4net system using the specified config - - the element containing the root of the config - - - - Initialize the log4net system using the specified config - - the element containing the root of the config - - - This method provides the same functionality as the - method implemented - on this object, but it is protected and therefore can be called by subclasses. - - - - - - Test if this hierarchy is disabled for the specified . - - The level to check against. - - true if the repository is disabled for the level argument, false otherwise. - - - - If this hierarchy has not been configured then this method will - always return true. - - - This method will return true if this repository is - disabled for level object passed as parameter and - false otherwise. - - - See also the property. - - - - - - Clear all logger definitions from the internal hashtable - - - - This call will clear all logger definitions from the internal - hashtable. Invoking this method will irrevocably mess up the - logger hierarchy. - - - You should really know what you are doing before - invoking this method. - - - - - - Return a new logger instance named as the first parameter using - . - - The name of the logger to retrieve - The factory that will make the new logger instance - The logger object with the name specified - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated by the - parameter and linked with its existing - ancestors as well as children. - - - - - - Sends a logger creation event to all registered listeners - - The newly created logger - - Raises the logger creation event. - - - - - Updates all the parents of the specified logger - - The logger to update the parents for - - - This method loops through all the potential parents of - . There 3 possible cases: - - - - No entry for the potential parent of exists - - We create a ProvisionNode for this potential - parent and insert in that provision node. - - - - The entry is of type Logger for the potential parent. - - The entry is 's nearest existing parent. We - update 's parent field with this entry. We also break from - he loop because updating our parent's parent is our parent's - responsibility. - - - - The entry is of type ProvisionNode for this potential parent. - - We add to the list of children for this - potential parent. - - - - - - - - Replace a with a in the hierarchy. - - - - - - We update the links for all the children that placed themselves - in the provision node 'pn'. The second argument 'log' is a - reference for the newly created Logger, parent of all the - children in 'pn'. - - - We loop on all the children 'c' in 'pn'. - - - If the child 'c' has been already linked to a child of - 'log' then there is no need to update 'c'. - - - Otherwise, we set log's parent field to c's parent and set - c's parent field to log. - - - - - - Define or redefine a Level using the values in the argument - - the level values - - - Define or redefine a Level using the values in the argument - - - Supports setting levels via the configuration file. - - - - - - Set a Property using the values in the argument - - the property value - - - Set a Property using the values in the argument. - - - Supports setting property values via the configuration file. - - - - - - The fully qualified type of the Hierarchy class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Event used to notify that a logger has been created. - - - - Event raised when a logger is created. - - - - - - Has no appender warning been emitted - - - - Flag to indicate if we have already issued a warning - about not having an appender warning. - - - - - - Get the root of this hierarchy - - - - Get the root of this hierarchy. - - - - - - Gets or sets the default instance. - - The default - - - The logger factory is used to create logger instances. - - - - - - A class to hold the value, name and display name for a level - - - - A class to hold the value, name and display name for a level - - - - - - Override Object.ToString to return sensible debug info - - string info about this object - - - - Value of the level - - - - If the value is not set (defaults to -1) the value will be looked - up for the current level with the same name. - - - - - - Name of the level - - - The name of the level - - - - The name of the level. - - - - - - Display name for the level - - - The display name of the level - - - - The display name of the level. - - - - - - Used internally to accelerate hash table searches. - - - - Internal class used to improve performance of - string keyed hashtables. - - - The hashcode of the string is cached for reuse. - The string is stored as an interned value. - When comparing two objects for equality - the reference equality of the interned strings is compared. - - - Nicko Cadell - Gert Driesen - - - - Construct key with string name - - - - Initializes a new instance of the class - with the specified name. - - - Stores the hashcode of the string and interns - the string key to optimize comparisons. - - - The Compact Framework 1.0 the - method does not work. On the Compact Framework - the string keys are not interned nor are they - compared by reference. - - - The name of the logger. - - - - Returns a hash code for the current instance. - - A hash code for the current instance. - - - Returns the cached hashcode. - - - - - - Determines whether two instances - are equal. - - The to compare with the current . - - true if the specified is equal to the current ; otherwise, false. - - - - Compares the references of the interned strings. - - - - - - Provision nodes are used where no logger instance has been specified - - - - instances are used in the - when there is no specified - for that node. - - - A provision node holds a list of child loggers on behalf of - a logger that does not exist. - - - Nicko Cadell - Gert Driesen - - - - Create a new provision node with child node - - A child logger to add to this node. - - - Initializes a new instance of the class - with the specified child logger. - - - - - - The sits at the root of the logger hierarchy tree. - - - - The is a regular except - that it provides several guarantees. - - - First, it cannot be assigned a null - level. Second, since the root logger cannot have a parent, the - property always returns the value of the - level field without walking the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Construct a - - The level to assign to the root logger. - - - Initializes a new instance of the class with - the specified logging level. - - - The root logger names itself as "root". However, the root - logger cannot be retrieved by name. - - - - - - The fully qualified type of the RootLogger class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the assigned level value without walking the logger hierarchy. - - The assigned level value without walking the logger hierarchy. - - - Because the root logger cannot have a parent and its level - must not be null this property just returns the - value of . - - - - - - Gets or sets the assigned for the root logger. - - - The of the root logger. - - - - Setting the level of the root logger to a null reference - may have catastrophic results. We prevent this here. - - - - - - Initializes the log4net environment using an XML DOM. - - - - Configures a using an XML DOM. - - - Nicko Cadell - Gert Driesen - - - - Construct the configurator for a hierarchy - - The hierarchy to build. - - - Initializes a new instance of the class - with the specified . - - - - - - Configure the hierarchy by parsing a DOM tree of XML elements. - - The root element to parse. - - - Configure the hierarchy by parsing a DOM tree of XML elements. - - - - - - Parse appenders by IDREF. - - The appender ref element. - The instance of the appender that the ref refers to. - - - Parse an XML element that represents an appender and return - the appender. - - - - - - Parses an appender element. - - The appender element. - The appender instance or null when parsing failed. - - - Parse an XML element that represents an appender and return - the appender instance. - - - - - - Parses a logger element. - - The logger element. - - - Parse an XML element that represents a logger. - - - - - - Parses the root logger element. - - The root element. - - - Parse an XML element that represents the root logger. - - - - - - Parses the children of a logger element. - - The category element. - The logger instance. - Flag to indicate if the logger is the root logger. - - - Parse the child elements of a <logger> element. - - - - - - Parses an object renderer. - - The renderer element. - - - Parse an XML element that represents a renderer. - - - - - - Parses a level element. - - The level element. - The logger object to set the level on. - Flag to indicate if the logger is the root logger. - - - Parse an XML element that represents a level. - - - - - - Sets a parameter on an object. - - The parameter element. - The object to set the parameter on. - - The parameter name must correspond to a writable property - on the object. The value of the parameter is a string, - therefore this function will attempt to set a string - property first. If unable to set a string property it - will inspect the property and its argument type. It will - attempt to call a static method called Parse on the - type of the property. This method will take a single - string argument and return a value that can be used to - set the property. - - - - - Test if an element has no attributes or child elements - - the element to inspect - true if the element has any attributes or child elements, false otherwise - - - - Test if a is constructible with Activator.CreateInstance. - - the type to inspect - true if the type is creatable using a default constructor, false otherwise - - - - Look for a method on the that matches the supplied - - the type that has the method - the name of the method - the method info found - - - The method must be a public instance method on the . - The method must be named or "Add" followed by . - The method must take a single parameter. - - - - - - Converts a string value to a target type. - - The type of object to convert the string to. - The string value to use as the value of the object. - - - An object of type with value or - null when the conversion could not be performed. - - - - - - Creates an object as specified in XML. - - The XML element that contains the definition of the object. - The object type to use if not explicitly specified. - The type that the returned object must be or must inherit from. - The object or null - - - Parse an XML element and create an object instance based on the configuration - data. - - - The type of the instance may be specified in the XML. If not - specified then the is used - as the type. However the type is specified it must support the - type. - - - - - - key: appenderName, value: appender. - - - - - The Hierarchy being configured. - - - - - The fully qualified type of the XmlHierarchyConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - - - - - - - - - - - - - - - - - Delegate used to handle logger repository shutdown event notifications - - The that is shutting down. - Empty event args - - - Delegate used to handle logger repository shutdown event notifications. - - - - - - Delegate used to handle logger repository configuration reset event notifications - - The that has had its configuration reset. - Empty event args - - - Delegate used to handle logger repository configuration reset event notifications. - - - - - - Delegate used to handle event notifications for logger repository configuration changes. - - The that has had its configuration changed. - Empty event arguments. - - - Delegate used to handle event notifications for logger repository configuration changes. - - - - - - Write the name of the current AppDomain to the output - - - - Write the name of the current AppDomain to the output writer - - - Nicko Cadell - - - - Write the name of the current AppDomain to the output - - the writer to write to - null, state is not set - - - Writes name of the current AppDomain to the output . - - - - - - Write the current date to the output - - - - Date pattern converter, uses a to format - the current date and time to the writer as a string. - - - The value of the determines - the formatting of the date. The following values are allowed: - - - Option value - Output - - - ISO8601 - - Uses the formatter. - Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. - - - - DATE - - Uses the formatter. - Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". - - - - ABSOLUTE - - Uses the formatter. - Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". - - - - other - - Any other pattern string uses the formatter. - This formatter passes the pattern string to the - method. - For details on valid patterns see - DateTimeFormatInfo Class. - - - - - - The date and time is in the local time zone and is rendered in that zone. - To output the time in Universal time see . - - - Nicko Cadell - - - - The used to render the date to a string - - - - The used to render the date to a string - - - - - - Initialize the converter options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the current date to the output - - that will receive the formatted result. - null, state is not set - - - Pass the current date and time to the - for it to render it to the writer. - - - The date and time passed is in the local time zone. - - - - - - The fully qualified type of the DatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the current thread identity to the output - - - - Write the current thread identity to the output writer - - - Nicko Cadell - - - - Write the current thread identity to the output - - the writer to write to - null, state is not set - - - Writes the current thread identity to the output . - - - - - - The fully qualified type of the IdentityPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Pattern converter for literal string instances in the pattern - - - - Writes the literal string value specified in the - property to - the output. - - - Nicko Cadell - - - - Set the next converter in the chain - - The next pattern converter in the chain - The next pattern converter - - - Special case the building of the pattern converter chain - for instances. Two adjacent - literals in the pattern can be represented by a single combined - pattern converter. This implementation detects when a - is added to the chain - after this converter and combines its value with this converter's - literal value. - - - - - - Write the literal to the output - - the writer to write to - null, not set - - - Override the formatting behavior to ignore the FormattingInfo - because we have a literal instead. - - - Writes the value of - to the output . - - - - - - Convert this pattern into the rendered message - - that will receive the formatted result. - null, not set - - - This method is not used. - - - - - - Writes a newline to the output - - - - Writes the system dependent line terminator to the output. - This behavior can be overridden by setting the : - - - - Option Value - Output - - - DOS - DOS or Windows line terminator "\r\n" - - - UNIX - UNIX line terminator "\n" - - - - Nicko Cadell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the current process ID to the output - - - - Write the current process ID to the output writer - - - Nicko Cadell - - - - Write the current process ID to the output - - the writer to write to - null, state is not set - - - Write the current process ID to the output . - - - - - - The fully qualified type of the ProcessIdPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Property pattern converter - - - - This pattern converter reads the thread and global properties. - The thread properties take priority over global properties. - See for details of the - thread properties. See for - details of the global properties. - - - If the is specified then that will be used to - lookup a single property. If no is specified - then all properties will be dumped as a list of key value pairs. - - - Nicko Cadell - - - - Write the property value to the output - - that will receive the formatted result. - null, state is not set - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - - - - A Pattern converter that generates a string of random characters - - - - The converter generates a string of random characters. By default - the string is length 4. This can be changed by setting the - to the string value of the length required. - - - The random characters in the string are limited to uppercase letters - and numbers only. - - - The random number generator used by this class is not cryptographically secure. - - - Nicko Cadell - - - - Shared random number generator - - - - - Length of random string to generate. Default length 4. - - - - - Initialize the converter options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write a randoim string to the output - - the writer to write to - null, state is not set - - - Write a randoim string to the output . - - - - - - The fully qualified type of the RandomStringPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the current threads username to the output - - - - Write the current threads username to the output writer - - - Nicko Cadell - - - - Write the current threads username to the output - - the writer to write to - null, state is not set - - - Write the current threads username to the output . - - - - - - The fully qualified type of the UserNamePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the UTC date time to the output - - - - Date pattern converter, uses a to format - the current date and time in Universal time. - - - See the for details on the date pattern syntax. - - - - Nicko Cadell - - - - Write the current date and time to the output - - that will receive the formatted result. - null, state is not set - - - Pass the current date and time to the - for it to render it to the writer. - - - The date is in Universal time when it is rendered. - - - - - - - The fully qualified type of the UtcDatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Type converter for Boolean. - - - - Supports conversion from string to bool type. - - - - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Convert the source object to the type supported by this object - - the object to convert - the converted object - - - Uses the method to convert the - argument to a . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Exception base type for conversion errors. - - - - This type extends . It - does not add any new functionality but does differentiate the - type of exception being thrown. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - A message to include with the exception. - - - Initializes a new instance of the class - with the specified message. - - - - - - Constructor - - A message to include with the exception. - A nested exception to include. - - - Initializes a new instance of the class - with the specified message and inner exception. - - - - - - Creates a new instance of the class. - - The conversion destination type. - The value to convert. - An instance of the . - - - Creates a new instance of the class. - - - - - - Creates a new instance of the class. - - The conversion destination type. - The value to convert. - A nested exception to include. - An instance of the . - - - Creates a new instance of the class. - - - - - - Register of type converters for specific types. - - - - Maintains a registry of type converters used to convert between - types. - - - Use the and - methods to register new converters. - The and methods - lookup appropriate converters to use. - - - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - Initializes a new instance of the class. - - - - - Static constructor. - - - - This constructor defines the intrinsic type converters. - - - - - - Adds a converter for a specific type. - - The type being converted to. - The type converter to use to convert to the destination type. - - - Adds a converter instance for a specific type. - - - - - - Adds a converter for a specific type. - - The type being converted to. - The type of the type converter to use to convert to the destination type. - - - Adds a converter for a specific type. - - - - - - Gets the type converter to use to convert values to the destination type. - - The type being converted from. - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - Gets the type converter to use to convert values to the destination type. - - - - - - Gets the type converter to use to convert values to the destination type. - - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - Gets the type converter to use to convert values to the destination type. - - - - - - Lookups the type converter to use as specified by the attributes on the - destination type. - - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - - Creates the instance of the type converter. - - The type of the type converter. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - The type specified for the type converter must implement - the or interfaces - and must have a public default (no argument) constructor. - - - - - - The fully qualified type of the ConverterRegistry class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Mapping from to type converter. - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to an encoding - the encoding - - - Uses the method to - convert the argument to an . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Interface supported by type converters - - - - This interface supports conversion from a single type to arbitrary types. - See . - - - Nicko Cadell - - - - Returns whether this converter can convert the object to the specified type - - A Type that represents the type you want to convert to - true if the conversion is possible - - - Test if the type supported by this converter can be converted to the - . - - - - - - Converts the given value object to the specified type, using the arguments - - the object to convert - The Type to convert the value parameter to - the converted object - - - Converts the (which must be of the type supported - by this converter) to the specified.. - - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to an IPAddress - the IPAddress - - - Uses the method to convert the - argument to an . - If that fails then the string is resolved as a DNS hostname. - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - The string is used as the - of the . - - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a PatternLayout - the PatternLayout - - - Creates and returns a new using - the as the - . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Convert between string and - - - - Supports conversion from string to type, - and from a type to a string. - - - The string is used as the - of the . - - - - - - Nicko Cadell - - - - Can the target type be converted to the type supported by this object - - A that represents the type you want to convert to - true if the conversion is possible - - - Returns true if the is - assignable from a type. - - - - - - Converts the given value object to the specified type, using the arguments - - the object to convert - The Type to convert the value parameter to - the converted object - - - Uses the method to convert the - argument to a . - - - - The object cannot be converted to the - . To check for this condition use the - method. - - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a PatternString - the PatternString - - - Creates and returns a new using - the as the - . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a Type - the Type - - - Uses the method to convert the - argument to a . - Additional effort is made to locate partially specified types - by searching the loaded assemblies. - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Attribute used to associate a type converter - - - - Class and Interface level attribute that specifies a type converter - to use with the associated type. - - - To associate a type converter with a target type apply a - TypeConverterAttribute to the target type. Specify the - type of the type converter on the attribute. - - - Nicko Cadell - Gert Driesen - - - - The string type name of the type converter - - - - - Default constructor - - - - Default constructor - - - - - - Create a new type converter attribute for the specified type name - - The string type name of the type converter - - - The type specified must implement the - or the interfaces. - - - - - - Create a new type converter attribute for the specified type - - The type of the type converter - - - The type specified must implement the - or the interfaces. - - - - - - The string type name of the type converter - - - The string type name of the type converter - - - - The type specified must implement the - or the interfaces. - - - - - - A straightforward implementation of the interface. - - - - This is the default implementation of the - interface. Implementors of the interface - should aggregate an instance of this type. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Append on on all attached appenders. - - The event being logged. - The number of appenders called. - - - Calls the method on all - attached appenders. - - - - - - Append on on all attached appenders. - - The array of events being logged. - The number of appenders called. - - - Calls the method on all - attached appenders. - - - - - - Calls the DoAppende method on the with - the objects supplied. - - The appender - The events - - - If the supports the - interface then the will be passed - through using that interface. Otherwise the - objects in the array will be passed one at a time. - - - - - - Attaches an appender. - - The appender to add. - - - If the appender is already in the list it won't be added again. - - - - - - Gets an attached appender with the specified name. - - The name of the appender to get. - - The appender with the name specified, or null if no appender with the - specified name is found. - - - - Lookup an attached appender by name. - - - - - - Removes all attached appenders. - - - - Removes and closes all attached appenders - - - - - - Removes the specified appender from the list of attached appenders. - - The appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - List of appenders - - - - - Array of appenders, used to cache the m_appenderList - - - - - The fully qualified type of the AppenderAttachedImpl class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets all attached appenders. - - - A collection of attached appenders, or null if there - are no attached appenders. - - - - The read only collection of all currently attached appenders. - - - - - - This class aggregates several PropertiesDictionary collections together. - - - - Provides a dictionary style lookup over an ordered list of - collections. - - - Nicko Cadell - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Add a Properties Dictionary to this composite collection - - the properties to add - - - Properties dictionaries added first take precedence over dictionaries added - later. - - - - - - Flatten this composite collection into a single properties dictionary - - the flattened dictionary - - - Reduces the collection of ordered dictionaries to a single dictionary - containing the resultant values for the keys. - - - - - - Gets the value of a property - - - The value for the property with the specified key - - - - Looks up the value for the specified. - The collections are searched - in the order in which they were added to this collection. The value - returned is the value held by the first collection that contains - the specified key. - - - If none of the collections contain the specified key then - null is returned. - - - - - - Base class for Context Properties implementations - - - - This class defines a basic property get set accessor - - - Nicko Cadell - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Gets or sets the value of a property - - - - - - Wrapper class used to map converter names to converter types - - - - Pattern converter info class used during configuration by custom - PatternString and PatternLayer converters. - - - - - - default constructor - - - - - - - - - - - Gets or sets the name of the conversion pattern - - - - The name of the pattern in the format string - - - - - - Gets or sets the type of the converter - - - - The value specified must extend the - type. - - - - - - - - - - - Subclass of that maintains a count of - the number of bytes written. - - - - This writer counts the number of bytes written. - - - Nicko Cadell - Gert Driesen - - - - that does not leak exceptions - - - - does not throw exceptions when things go wrong. - Instead, it delegates error handling to its . - - - Nicko Cadell - Gert Driesen - - - - Adapter that extends and forwards all - messages to an instance of . - - - - Adapter that extends and forwards all - messages to an instance of . - - - Nicko Cadell - - - - The writer to forward messages to - - - - - Create an instance of that forwards all - messages to a . - - The to forward to - - - Create an instance of that forwards all - messages to a . - - - - - - Closes the writer and releases any system resources associated with the writer - - - - - - - - - Dispose this writer - - flag indicating if we are being disposed - - - Dispose this writer - - - - - - Flushes any buffered output - - - - Clears all buffers for the writer and causes any buffered data to be written - to the underlying device - - - - - - Writes a character to the wrapped TextWriter - - the value to write to the TextWriter - - - Writes a character to the wrapped TextWriter - - - - - - Writes a character buffer to the wrapped TextWriter - - the data buffer - the start index - the number of characters to write - - - Writes a character buffer to the wrapped TextWriter - - - - - - Writes a string to the wrapped TextWriter - - the value to write to the TextWriter - - - Writes a string to the wrapped TextWriter - - - - - - Gets or sets the underlying . - - - The underlying . - - - - Gets or sets the underlying . - - - - - - The Encoding in which the output is written - - - The - - - - The Encoding in which the output is written - - - - - - Gets an object that controls formatting - - - The format provider - - - - Gets an object that controls formatting - - - - - - Gets or sets the line terminator string used by the TextWriter - - - The line terminator to use - - - - Gets or sets the line terminator string used by the TextWriter - - - - - - Constructor - - the writer to actually write to - the error handler to report error to - - - Create a new QuietTextWriter using a writer and error handler - - - - - - Writes a character to the underlying writer - - the char to write - - - Writes a character to the underlying writer - - - - - - Writes a buffer to the underlying writer - - the buffer to write - the start index to write from - the number of characters to write - - - Writes a buffer to the underlying writer - - - - - - Writes a string to the output. - - The string data to write to the output. - - - Writes a string to the output. - - - - - - Closes the underlying output writer. - - - - Closes the underlying output writer. - - - - - - The error handler instance to pass all errors to - - - - - Flag to indicate if this writer is closed - - - - - Gets or sets the error handler that all errors are passed to. - - - The error handler that all errors are passed to. - - - - Gets or sets the error handler that all errors are passed to. - - - - - - Gets a value indicating whether this writer is closed. - - - true if this writer is closed, otherwise false. - - - - Gets a value indicating whether this writer is closed. - - - - - - Constructor - - The to actually write to. - The to report errors to. - - - Creates a new instance of the class - with the specified and . - - - - - - Writes a character to the underlying writer and counts the number of bytes written. - - the char to write - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Writes a buffer to the underlying writer and counts the number of bytes written. - - the buffer to write - the start index to write from - the number of characters to write - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Writes a string to the output and counts the number of bytes written. - - The string data to write to the output. - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Total number of bytes written. - - - - - Gets or sets the total number of bytes written. - - - The total number of bytes written. - - - - Gets or sets the total number of bytes written. - - - - - - A fixed size rolling buffer of logging events. - - - - An array backed fixed size leaky bucket. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The maximum number of logging events in the buffer. - - - Initializes a new instance of the class with - the specified maximum number of buffered logging events. - - - The argument is not a positive integer. - - - - Appends a to the buffer. - - The event to append to the buffer. - The event discarded from the buffer, if the buffer is full, otherwise null. - - - Append an event to the buffer. If the buffer still contains free space then - null is returned. If the buffer is full then an event will be dropped - to make space for the new event, the event dropped is returned. - - - - - - Get and remove the oldest event in the buffer. - - The oldest logging event in the buffer - - - Gets the oldest (first) logging event in the buffer and removes it - from the buffer. - - - - - - Pops all the logging events from the buffer into an array. - - An array of all the logging events in the buffer. - - - Get all the events in the buffer and clear the buffer. - - - - - - Clear the buffer - - - - Clear the buffer of all events. The events in the buffer are lost. - - - - - - Gets the th oldest event currently in the buffer. - - The th oldest event currently in the buffer. - - - If is outside the range 0 to the number of events - currently in the buffer, then null is returned. - - - - - - Gets the maximum size of the buffer. - - The maximum size of the buffer. - - - Gets the maximum size of the buffer - - - - - - Gets the number of logging events in the buffer. - - The number of logging events in the buffer. - - - This number is guaranteed to be in the range 0 to - (inclusive). - - - - - - An always empty . - - - - A singleton implementation of the - interface that always represents an empty collection. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Copies the elements of the to an - , starting at a particular Array index. - - The one-dimensional - that is the destination of the elements copied from - . The Array must have zero-based - indexing. - The zero-based index in array at which - copying begins. - - - As the collection is empty no values are copied into the array. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - The singleton instance of the empty collection. - - - - - Gets the singleton instance of the empty collection. - - The singleton instance of the empty collection. - - - Gets the singleton instance of the empty collection. - - - - - - Gets a value indicating if access to the is synchronized (thread-safe). - - - true if access to the is synchronized (thread-safe); otherwise, false. - - - - For the this property is always true. - - - - - - Gets the number of elements contained in the . - - - The number of elements contained in the . - - - - As the collection is empty the is always 0. - - - - - - Gets an object that can be used to synchronize access to the . - - - An object that can be used to synchronize access to the . - - - - As the collection is empty and thread safe and synchronized this instance is also - the object. - - - - - - An always empty . - - - - A singleton implementation of the - interface that always represents an empty collection. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Copies the elements of the to an - , starting at a particular Array index. - - The one-dimensional - that is the destination of the elements copied from - . The Array must have zero-based - indexing. - The zero-based index in array at which - copying begins. - - - As the collection is empty no values are copied into the array. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - Adds an element with the provided key and value to the - . - - The to use as the key of the element to add. - The to use as the value of the element to add. - - - As the collection is empty no new values can be added. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - Removes all elements from the . - - - - As the collection is empty no values can be removed. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - Determines whether the contains an element - with the specified key. - - The key to locate in the . - false - - - As the collection is empty the method always returns false. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - Removes the element with the specified key from the . - - The key of the element to remove. - - - As the collection is empty no values can be removed. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - The singleton instance of the empty dictionary. - - - - - Gets the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets a value indicating if access to the is synchronized (thread-safe). - - - true if access to the is synchronized (thread-safe); otherwise, false. - - - - For the this property is always true. - - - - - - Gets the number of elements contained in the - - - The number of elements contained in the . - - - - As the collection is empty the is always 0. - - - - - - Gets an object that can be used to synchronize access to the . - - - An object that can be used to synchronize access to the . - - - - As the collection is empty and thread safe and synchronized this instance is also - the object. - - - - - - Gets a value indicating whether the has a fixed size. - - true - - - As the collection is empty always returns true. - - - - - - Gets a value indicating whether the is read-only. - - true - - - As the collection is empty always returns true. - - - - - - Gets an containing the keys of the . - - An containing the keys of the . - - - As the collection is empty a is returned. - - - - - - Gets an containing the values of the . - - An containing the values of the . - - - As the collection is empty a is returned. - - - - - - Gets or sets the element with the specified key. - - The key of the element to get or set. - null - - - As the collection is empty no values can be looked up or stored. - If the index getter is called then null is returned. - A is thrown if the setter is called. - - - This dictionary is always empty and cannot be modified. - - - - Contain the information obtained when parsing formatting modifiers - in conversion modifiers. - - - - Holds the formatting information extracted from the format string by - the . This is used by the - objects when rendering the output. - - - Nicko Cadell - Gert Driesen - - - - Defaut Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - - - Initializes a new instance of the class - with the specified parameters. - - - - - - Gets or sets the minimum value. - - - The minimum value. - - - - Gets or sets the minimum value. - - - - - - Gets or sets the maximum value. - - - The maximum value. - - - - Gets or sets the maximum value. - - - - - - Gets or sets a flag indicating whether left align is enabled - or not. - - - A flag indicating whether left align is enabled or not. - - - - Gets or sets a flag indicating whether left align is enabled or not. - - - - - - Implementation of Properties collection for the - - - - This class implements a properties collection that is thread safe and supports both - storing properties and capturing a read only copy of the current propertied. - - - This class is optimized to the scenario where the properties are read frequently - and are modified infrequently. - - - Nicko Cadell - - - - The read only copy of the properties. - - - - This variable is declared volatile to prevent the compiler and JIT from - reordering reads and writes of this thread performed on different threads. - - - - - - Lock object used to synchronize updates within this instance - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property from the global context - - the key for the entry to remove - - - Removing an entry from the global context properties is relatively expensive compared - with reading a value. - - - - - - Clear the global context properties - - - - - Get a readonly immutable copy of the properties - - the current global context properties - - - This implementation is fast because the GlobalContextProperties class - stores a readonly copy of the properties. - - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Reading the value for a key is faster than setting the value. - When the value is written a new read only copy of - the properties is created. - - - - - - Manages a mapping from levels to - - - - Manages an ordered mapping from instances - to subclasses. - - - Nicko Cadell - - - - Default constructor - - - - Initialise a new instance of . - - - - - - Add a to this mapping - - the entry to add - - - If a has previously been added - for the same then that entry will be - overwritten. - - - - - - Lookup the mapping for the specified level - - the level to lookup - the for the level or null if no mapping found - - - Lookup the value for the specified level. Finds the nearest - mapping value for the level that is equal to or less than the - specified. - - - If no mapping could be found then null is returned. - - - - - - Initialize options - - - - Caches the sorted list of in an array - - - - - - - - - - - - - Outputs log statements from within the log4net assembly. - - - - Log4net components cannot make log4net logging calls. However, it is - sometimes useful for the user to learn about what log4net is - doing. - - - All log4net internal debug calls go to the standard output stream - whereas internal error messages are sent to the standard error output - stream. - - - Nicko Cadell - Gert Driesen - - - - Formats Prefix, Source, and Message in the same format as the value - sent to Console.Out and Trace.Write. - - - - - - Initializes a new instance of the class. - - - - - - - - - Static constructor that initializes logging by reading - settings from the application configuration file. - - - - The log4net.Internal.Debug application setting - controls internal debugging. This setting should be set - to true to enable debugging. - - - The log4net.Internal.Quiet application setting - suppresses all internal logging including error messages. - This setting should be set to true to enable message - suppression. - - - - - - Raises the LogReceived event when an internal messages is received. - - - - - - - - - Writes log4net internal debug messages to the - standard output stream. - - - The message to log. - - - All internal debug messages are prepended with - the string "log4net: ". - - - - - - Writes log4net internal debug messages to the - standard output stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal debug messages are prepended with - the string "log4net: ". - - - - - - Writes log4net internal warning messages to the - standard error stream. - - The Type that generated this message. - The message to log. - - - All internal warning messages are prepended with - the string "log4net:WARN ". - - - - - - Writes log4net internal warning messages to the - standard error stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal warning messages are prepended with - the string "log4net:WARN ". - - - - - - Writes log4net internal error messages to the - standard error stream. - - The Type that generated this message. - The message to log. - - - All internal error messages are prepended with - the string "log4net:ERROR ". - - - - - - Writes log4net internal error messages to the - standard error stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal debug messages are prepended with - the string "log4net:ERROR ". - - - - - - Writes output to the standard output stream. - - The message to log. - - - Writes to both Console.Out and System.Diagnostics.Trace. - Note that the System.Diagnostics.Trace is not supported - on the Compact Framework. - - - If the AppDomain is not configured with a config file then - the call to System.Diagnostics.Trace may fail. This is only - an issue if you are programmatically creating your own AppDomains. - - - - - - Writes output to the standard error stream. - - The message to log. - - - Writes to both Console.Error and System.Diagnostics.Trace. - Note that the System.Diagnostics.Trace is not supported - on the Compact Framework. - - - If the AppDomain is not configured with a config file then - the call to System.Diagnostics.Trace may fail. This is only - an issue if you are programmatically creating your own AppDomains. - - - - - - Default debug level - - - - - In quietMode not even errors generate any output. - - - - - The event raised when an internal message has been received. - - - - - The Type that generated the internal message. - - - - - The DateTime stamp of when the internal message was received. - - - - - A string indicating the severity of the internal message. - - - "log4net: ", - "log4net:ERROR ", - "log4net:WARN " - - - - - The internal log message. - - - - - The Exception related to the message. - - - Optional. Will be null if no Exception was passed. - - - - - Gets or sets a value indicating whether log4net internal logging - is enabled or disabled. - - - true if log4net internal logging is enabled, otherwise - false. - - - - When set to true, internal debug level logging will be - displayed. - - - This value can be set by setting the application setting - log4net.Internal.Debug in the application configuration - file. - - - The default value is false, i.e. debugging is - disabled. - - - - - The following example enables internal debugging using the - application configuration file : - - - - - - - - - - - - - Gets or sets a value indicating whether log4net should generate no output - from internal logging, not even for errors. - - - true if log4net should generate no output at all from internal - logging, otherwise false. - - - - When set to true will cause internal logging at all levels to be - suppressed. This means that no warning or error reports will be logged. - This option overrides the setting and - disables all debug also. - - This value can be set by setting the application setting - log4net.Internal.Quiet in the application configuration file. - - - The default value is false, i.e. internal logging is not - disabled. - - - - The following example disables internal logging using the - application configuration file : - - - - - - - - - - - - - - - - - Test if LogLog.Debug is enabled for output. - - - true if Debug is enabled - - - - Test if LogLog.Debug is enabled for output. - - - - - - Test if LogLog.Warn is enabled for output. - - - true if Warn is enabled - - - - Test if LogLog.Warn is enabled for output. - - - - - - Test if LogLog.Error is enabled for output. - - - true if Error is enabled - - - - Test if LogLog.Error is enabled for output. - - - - - - Subscribes to the LogLog.LogReceived event and stores messages - to the supplied IList instance. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Represents a native error code and message. - - - - Represents a Win32 platform native error. - - - Nicko Cadell - Gert Driesen - - - - Create an instance of the class with the specified - error number and message. - - The number of the native error. - The message of the native error. - - - Create an instance of the class with the specified - error number and message. - - - - - - Create a new instance of the class for the last Windows error. - - - An instance of the class for the last windows error. - - - - The message for the error number is lookup up using the - native Win32 FormatMessage function. - - - - - - Create a new instance of the class. - - the error number for the native error - - An instance of the class for the specified - error number. - - - - The message for the specified error number is lookup up using the - native Win32 FormatMessage function. - - - - - - Retrieves the message corresponding with a Win32 message identifier. - - Message identifier for the requested message. - - The message corresponding with the specified message identifier. - - - - The message will be searched for in system message-table resource(s) - using the native FormatMessage function. - - - - - - Return error information string - - error information string - - - Return error information string - - - - - - Formats a message string. - - Formatting options, and how to interpret the parameter. - Location of the message definition. - Message identifier for the requested message. - Language identifier for the requested message. - If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . - If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. - Pointer to an array of values that are used as insert values in the formatted message. - - - The function requires a message definition as input. The message definition can come from a - buffer passed into the function. It can come from a message table resource in an - already-loaded module. Or the caller can ask the function to search the system's message - table resource(s) for the message definition. The function finds the message definition - in a message table resource based on a message identifier and a language identifier. - The function copies the formatted message text to an output buffer, processing any embedded - insert sequences if requested. - - - To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. - - - - - If the function succeeds, the return value is the number of TCHARs stored in the output - buffer, excluding the terminating null character. - - - If the function fails, the return value is zero. To get extended error information, - call . - - - - - - Gets the number of the native error. - - - The number of the native error. - - - - Gets the number of the native error. - - - - - - Gets the message of the native error. - - - The message of the native error. - - - - - Gets the message of the native error. - - - - - An always empty . - - - - A singleton implementation of the over a collection - that is empty and not modifiable. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Test if the enumerator can advance, if so advance. - - false as the cannot advance. - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will always return false. - - - - - - Resets the enumerator back to the start. - - - - As the enumerator is over an empty collection does nothing. - - - - - - The singleton instance of the . - - - - - Gets the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets the current object from the enumerator. - - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current key from the enumerator. - - - Throws an exception because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current value from the enumerator. - - The current value from the enumerator. - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current entry from the enumerator. - - - Throws an because the - never has a current entry. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - An always empty . - - - - A singleton implementation of the over a collection - that is empty and not modifiable. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Test if the enumerator can advance, if so advance - - false as the cannot advance. - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will always return false. - - - - - - Resets the enumerator back to the start. - - - - As the enumerator is over an empty collection does nothing. - - - - - - The singleton instance of the . - - - - - Get the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets the current object from the enumerator. - - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - A SecurityContext used when a SecurityContext is not required - - - - The is a no-op implementation of the - base class. It is used where a - is required but one has not been provided. - - - Nicko Cadell - - - - Singleton instance of - - - - Singleton instance of - - - - - - Private constructor - - - - Private constructor for singleton pattern. - - - - - - Impersonate this SecurityContext - - State supplied by the caller - null - - - No impersonation is done and null is always returned. - - - - - - Implements log4net's default error handling policy which consists - of emitting a message for the first error in an appender and - ignoring all subsequent errors. - - - - The error message is processed using the LogLog sub-system. - - - This policy aims at protecting an otherwise working application - from being flooded with error messages when logging fails. - - - Nicko Cadell - Gert Driesen - Ron Grabowski - - - - Default Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - The prefix to use for each message. - - - Initializes a new instance of the class - with the specified prefix. - - - - - - Reset the error handler back to its initial disabled state. - - - - - Log an Error - - The error message. - The exception. - The internal error code. - - - Sends the error information to 's Error method. - - - - - - Log an Error - - The error message. - The exception. - - - Prints the message and the stack trace of the exception on the standard - error output stream. - - - - - - Log an error - - The error message. - - - Print a the error message passed as parameter on the standard - error output stream. - - - - - - The date the error was recorded. - - - - - Flag to indicate if it is the first error - - - - - The message recorded during the first error. - - - - - The exception recorded during the first error. - - - - - The error code recorded during the first error. - - - - - String to prefix each message with - - - - - The fully qualified type of the OnlyOnceErrorHandler class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Is error logging enabled - - - - Is error logging enabled. Logging is only enabled for the - first error delivered to the . - - - - - - The date the first error that trigged this error handler occured. - - - - - The message from the first error that trigged this error handler. - - - - - The exception from the first error that trigged this error handler. - - - May be . - - - - - The error code from the first error that trigged this error handler. - - - Defaults to - - - - - A convenience class to convert property values to specific types. - - - - Utility functions for converting types and parsing values. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Converts a string to a value. - - String to convert. - The default value. - The value of . - - - If is "true", then true is returned. - If is "false", then false is returned. - Otherwise, is returned. - - - - - - Parses a file size into a number. - - String to parse. - The default value. - The value of . - - - Parses a file size of the form: number[KB|MB|GB] into a - long value. It is scaled with the appropriate multiplier. - - - is returned when - cannot be converted to a value. - - - - - - Converts a string to an object. - - The target type to convert to. - The string to convert to an object. - - The object converted from a string or null when the - conversion failed. - - - - Converts a string to an object. Uses the converter registry to try - to convert the string value into the specified target type. - - - - - - Checks if there is an appropriate type conversion from the source type to the target type. - - The type to convert from. - The type to convert to. - true if there is a conversion from the source type to the target type. - - Checks if there is an appropriate type conversion from the source type to the target type. - - - - - - - Converts an object to the target type. - - The object to convert to the target type. - The type to convert to. - The converted object. - - - Converts an object to the target type. - - - - - - Instantiates an object given a class name. - - The fully qualified class name of the object to instantiate. - The class to which the new object should belong. - The object to return in case of non-fulfillment. - - An instance of the or - if the object could not be instantiated. - - - - Checks that the is a subclass of - . If that test fails or the object could - not be instantiated, then is returned. - - - - - - Performs variable substitution in string from the - values of keys found in . - - The string on which variable substitution is performed. - The dictionary to use to lookup variables. - The result of the substitutions. - - - The variable substitution delimiters are ${ and }. - - - For example, if props contains key=value, then the call - - - - string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); - - - - will set the variable s to "Value of key is value.". - - - If no value could be found for the specified key, then substitution - defaults to an empty string. - - - For example, if system properties contains no value for the key - "nonExistentKey", then the call - - - - string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); - - - - will set s to "Value of nonExistentKey is []". - - - An Exception is thrown if contains a start - delimiter "${" which is not balanced by a stop delimiter "}". - - - - - - Converts the string representation of the name or numeric value of one or - more enumerated constants to an equivalent enumerated object. - - The type to convert to. - The enum string value. - If true, ignore case; otherwise, regard case. - An object of type whose value is represented by . - - - - The fully qualified type of the OptionConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Most of the work of the class - is delegated to the PatternParser class. - - - - The PatternParser processes a pattern string and - returns a chain of objects. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The pattern to parse. - - - Initializes a new instance of the class - with the specified pattern string. - - - - - - Parses the pattern into a chain of pattern converters. - - The head of a chain of pattern converters. - - - Parses the pattern into a chain of pattern converters. - - - - - - Build the unified cache of converters from the static and instance maps - - the list of all the converter names - - - Build the unified cache of converters from the static and instance maps - - - - - - Internal method to parse the specified pattern to find specified matches - - the pattern to parse - the converter names to match in the pattern - - - The matches param must be sorted such that longer strings come before shorter ones. - - - - - - Process a parsed literal - - the literal text - - - - Process a parsed converter pattern - - the name of the converter - the optional option for the converter - the formatting info for the converter - - - - Resets the internal state of the parser and adds the specified pattern converter - to the chain. - - The pattern converter to add. - - - - The first pattern converter in the chain - - - - - the last pattern converter in the chain - - - - - The pattern - - - - - Internal map of converter identifiers to converter types - - - - This map overrides the static s_globalRulesRegistry map. - - - - - - The fully qualified type of the PatternParser class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Get the converter registry used by this parser - - - The converter registry used by this parser - - - - Get the converter registry used by this parser - - - - - - Sort strings by length - - - - that orders strings by string length. - The longest strings are placed first - - - - - - This class implements a patterned string. - - - - This string has embedded patterns that are resolved and expanded - when the string is formatted. - - - This class functions similarly to the - in that it accepts a pattern and renders it to a string. Unlike the - however the PatternString - does not render the properties of a specific but - of the process in general. - - - The recognized conversion pattern names are: - - - - Conversion Pattern Name - Effect - - - appdomain - - - Used to output the friendly name of the current AppDomain. - - - - - date - - - Used to output the current date and time in the local time zone. - To output the date in universal time use the %utcdate pattern. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %date{HH:mm:ss,fff} or - %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %date{ISO8601} or %date{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - env - - - Used to output the a specific environment variable. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %env{COMPUTERNAME} would include the value - of the COMPUTERNAME environment variable. - - - The env pattern is not supported on the .NET Compact Framework. - - - - - identity - - - Used to output the user name for the currently active user - (Principal.Identity.Name). - - - - - newline - - - Outputs the platform dependent line separator character or - characters. - - - This conversion pattern name offers the same performance as using - non-portable line separator strings such as "\n", or "\r\n". - Thus, it is the preferred way of specifying a line separator. - - - - - processid - - - Used to output the system process ID for the current process. - - - - - property - - - Used to output a specific context property. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %property{user} would include the value - from the property that is keyed by the string 'user'. Each property value - that is to be included in the log must be specified separately. - Properties are stored in logging contexts. By default - the log4net:HostName property is set to the name of machine on - which the event was originally logged. - - - If no key is specified, e.g. %property then all the keys and their - values are printed in a comma separated list. - - - The properties of an event are combined from a number of different - contexts. These are listed below in the order in which they are searched. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - random - - - Used to output a random string of characters. The string is made up of - uppercase letters and numbers. By default the string is 4 characters long. - The length of the string can be specified within braces directly following the - pattern specifier, e.g. %random{8} would output an 8 character string. - - - - - username - - - Used to output the WindowsIdentity for the currently - active user. - - - - - utcdate - - - Used to output the date of the logging event in universal time. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %utcdate{HH:mm:ss,fff} or - %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %utcdate{ISO8601} or %utcdate{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - % - - - The sequence %% outputs a single percent sign. - - - - - - Additional pattern converters may be registered with a specific - instance using or - . - - - See the for details on the - format modifiers supported by the patterns. - - - Nicko Cadell - - - - Internal map of converter identifiers to converter types. - - - - - the pattern - - - - - the head of the pattern converter chain - - - - - patterns defined on this PatternString only - - - - - Initialize the global registry - - - - - Default constructor - - - - Initialize a new instance of - - - - - - Constructs a PatternString - - The pattern to use with this PatternString - - - Initialize a new instance of with the pattern specified. - - - - - - Initialize object options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Create the used to parse the pattern - - the pattern to parse - The - - - Returns PatternParser used to parse the conversion string. Subclasses - may override this to return a subclass of PatternParser which recognize - custom conversion pattern name. - - - - - - Produces a formatted string as specified by the conversion pattern. - - The TextWriter to write the formatted event to - - - Format the pattern to the . - - - - - - Format the pattern as a string - - the pattern formatted as a string - - - Format the pattern to a string. - - - - - - Add a converter to this PatternString - - the converter info - - - This version of the method is used by the configurator. - Programmatic users should use the alternative method. - - - - - - Add a converter to this PatternString - - the name of the conversion pattern for this converter - the type of the converter - - - Add a converter to this PatternString - - - - - - Gets or sets the pattern formatting string - - - The pattern formatting string - - - - The ConversionPattern option. This is the string which - controls formatting and consists of a mix of literal content and - conversion specifiers. - - - - - - String keyed object map. - - - - While this collection is serializable only member - objects that are serializable will - be serialized along with this collection. - - - Nicko Cadell - Gert Driesen - - - - String keyed object map that is read only. - - - - This collection is readonly and cannot be modified. - - - While this collection is serializable only member - objects that are serializable will - be serialized along with this collection. - - - Nicko Cadell - Gert Driesen - - - - The Hashtable used to store the properties data - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Copy Constructor - - properties to copy - - - Initializes a new instance of the class. - - - - - - Gets the key names. - - An array of all the keys. - - - Gets the key names. - - - - - - Test if the dictionary contains a specified key - - the key to look for - true if the dictionary contains the specified key - - - Test if the dictionary contains a specified key - - - - - - See - - - - - See - - - - - - See - - - - - - - Remove all properties from the properties collection - - - - - See - - - - - - - See - - - - - - - See - - - - - Gets or sets the value of the property with the specified key. - - - The value of the property with the specified key. - - The key of the property to get or set. - - - The property value will only be serialized if it is serializable. - If it cannot be serialized it will be silently ignored if - a serialization operation is performed. - - - - - - The hashtable used to store the properties - - - The internal collection used to store the properties - - - - The hashtable used to store the properties - - - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - The number of properties in this collection - - - - - See - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - properties to copy - - - Initializes a new instance of the class. - - - - - - Remove the entry with the specified key from this dictionary - - the key for the entry to remove - - - Remove the entry with the specified key from this dictionary - - - - - - See - - an enumerator - - - Returns a over the contest of this collection. - - - - - - See - - the key to remove - - - Remove the entry with the specified key from this dictionary - - - - - - See - - the key to lookup in the collection - true if the collection contains the specified key - - - Test if this collection contains a specified key. - - - - - - Remove all properties from the properties collection - - - - Remove all properties from the properties collection - - - - - - See - - the key - the value to store for the key - - - Store a value for the specified . - - - Thrown if the is not a string - - - - See - - - - - - - See - - - - - Gets or sets the value of the property with the specified key. - - - The value of the property with the specified key. - - The key of the property to get or set. - - - The property value will only be serialized if it is serializable. - If it cannot be serialized it will be silently ignored if - a serialization operation is performed. - - - - - - See - - - false - - - - This collection is modifiable. This property always - returns false. - - - - - - See - - - The value for the key specified. - - - - Get or set a value for the specified . - - - Thrown if the is not a string - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - A class to hold the key and data for a property set in the config file - - - - A class to hold the key and data for a property set in the config file - - - - - - Override Object.ToString to return sensible debug info - - string info about this object - - - - Property Key - - - Property Key - - - - Property Key. - - - - - - Property Value - - - Property Value - - - - Property Value. - - - - - - A that ignores the message - - - - This writer is used in special cases where it is necessary - to protect a writer from being closed by a client. - - - Nicko Cadell - - - - Constructor - - the writer to actually write to - - - Create a new ProtectCloseTextWriter using a writer - - - - - - Attach this instance to a different underlying - - the writer to attach to - - - Attach this instance to a different underlying - - - - - - Does not close the underlying output writer. - - - - Does not close the underlying output writer. - This method does nothing. - - - - - - Defines a lock that supports single writers and multiple readers - - - - ReaderWriterLock is used to synchronize access to a resource. - At any given time, it allows either concurrent read access for - multiple threads, or write access for a single thread. In a - situation where a resource is changed infrequently, a - ReaderWriterLock provides better throughput than a simple - one-at-a-time lock, such as . - - - If a platform does not support a System.Threading.ReaderWriterLock - implementation then all readers and writers are serialized. Therefore - the caller must not rely on multiple simultaneous readers. - - - Nicko Cadell - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Acquires a reader lock - - - - blocks if a different thread has the writer - lock, or if at least one thread is waiting for the writer lock. - - - - - - Decrements the lock count - - - - decrements the lock count. When the count - reaches zero, the lock is released. - - - - - - Acquires the writer lock - - - - This method blocks if another thread has a reader lock or writer lock. - - - - - - Decrements the lock count on the writer lock - - - - ReleaseWriterLock decrements the writer lock count. - When the count reaches zero, the writer lock is released. - - - - - - A that can be and reused - - - - A that can be and reused. - This uses a single buffer for string operations. - - - Nicko Cadell - - - - Create an instance of - - the format provider to use - - - Create an instance of - - - - - - Override Dispose to prevent closing of writer - - flag - - - Override Dispose to prevent closing of writer - - - - - - Reset this string writer so that it can be reused. - - the maximum buffer capacity before it is trimmed - the default size to make the buffer - - - Reset this string writer so that it can be reused. - The internal buffers are cleared and reset. - - - - - - Utility class for system specific information. - - - - Utility class of static methods for system specific information. - - - Nicko Cadell - Gert Driesen - Alexey Solofnenko - - - - Private constructor to prevent instances. - - - - Only static methods are exposed from this type. - - - - - - Initialize default values for private static fields. - - - - Only static methods are exposed from this type. - - - - - - Gets the assembly location path for the specified assembly. - - The assembly to get the location for. - The location of the assembly. - - - This method does not guarantee to return the correct path - to the assembly. If only tries to give an indication as to - where the assembly was loaded from. - - - - - - Gets the fully qualified name of the , including - the name of the assembly from which the was - loaded. - - The to get the fully qualified name for. - The fully qualified name for the . - - - This is equivalent to the Type.AssemblyQualifiedName property, - but this method works on the .NET Compact Framework 1.0 as well as - the full .NET runtime. - - - - - - Gets the short name of the . - - The to get the name for. - The short name of the . - - - The short name of the assembly is the - without the version, culture, or public key. i.e. it is just the - assembly's file name without the extension. - - - Use this rather than Assembly.GetName().Name because that - is not available on the Compact Framework. - - - Because of a FileIOPermission security demand we cannot do - the obvious Assembly.GetName().Name. We are allowed to get - the of the assembly so we - start from there and strip out just the assembly name. - - - - - - Gets the file name portion of the , including the extension. - - The to get the file name for. - The file name of the assembly. - - - Gets the file name portion of the , including the extension. - - - - - - Loads the type specified in the type string. - - A sibling type to use to load the type. - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified, it will be loaded from the assembly - containing the specified relative type. If the type is not found in the assembly - then all the loaded assemblies will be searched for the type. - - - - - - Loads the type specified in the type string. - - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified it will be loaded from the - assembly that is directly calling this method. If the type is not found - in the assembly then all the loaded assemblies will be searched for the type. - - - - - - Loads the type specified in the type string. - - An assembly to load the type from. - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified it will be loaded from the specified - assembly. If the type is not found in the assembly then all the loaded assemblies - will be searched for the type. - - - - - - Generate a new guid - - A new Guid - - - Generate a new guid - - - - - - Create an - - The name of the parameter that caused the exception - The value of the argument that causes this exception - The message that describes the error - the ArgumentOutOfRangeException object - - - Create a new instance of the class - with a specified error message, the parameter name, and the value - of the argument. - - - The Compact Framework does not support the 3 parameter constructor for the - type. This method provides an - implementation that works for all platforms. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Lookup an application setting - - the application settings key to lookup - the value for the key, or null - - - Configuration APIs are not supported under the Compact Framework - - - - - - Convert a path into a fully qualified local file path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - The path specified must be a local file path, a URI is not supported. - - - - - - Creates a new case-insensitive instance of the class with the default initial capacity. - - A new case-insensitive instance of the class with the default initial capacity - - - The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. - - - - - - Gets an empty array of types. - - - - The Type.EmptyTypes field is not available on - the .NET Compact Framework 1.0. - - - - - - The fully qualified type of the SystemInfo class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Cache the host name for the current machine - - - - - Cache the application friendly name - - - - - Text to output when a null is encountered. - - - - - Text to output when an unsupported feature is requested. - - - - - Start time for the current process. - - - - - Gets the system dependent line terminator. - - - The system dependent line terminator. - - - - Gets the system dependent line terminator. - - - - - - Gets the base directory for this . - - The base directory path for the current . - - - Gets the base directory for this . - - - The value returned may be either a local file path or a URI. - - - - - - Gets the path to the configuration file for the current . - - The path to the configuration file for the current . - - - The .NET Compact Framework 1.0 does not have a concept of a configuration - file. For this runtime, we use the entry assembly location as the root for - the configuration file name. - - - The value returned may be either a local file path or a URI. - - - - - - Gets the path to the file that first executed in the current . - - The path to the entry assembly. - - - Gets the path to the file that first executed in the current . - - - - - - Gets the ID of the current thread. - - The ID of the current thread. - - - On the .NET framework, the AppDomain.GetCurrentThreadId method - is used to obtain the thread ID for the current thread. This is the - operating system ID for the thread. - - - On the .NET Compact Framework 1.0 it is not possible to get the - operating system thread ID for the current thread. The native method - GetCurrentThreadId is implemented inline in a header file - and cannot be called. - - - On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this - gives a stable id unrelated to the operating system thread ID which may - change if the runtime is using fibers. - - - - - - Get the host name or machine name for the current machine - - - The hostname or machine name - - - - Get the host name or machine name for the current machine - - - The host name () or - the machine name (Environment.MachineName) for - the current machine, or if neither of these are available - then NOT AVAILABLE is returned. - - - - - - Get this application's friendly name - - - The friendly name of this application as a string - - - - If available the name of the application is retrieved from - the AppDomain using AppDomain.CurrentDomain.FriendlyName. - - - Otherwise the file name of the entry assembly is used. - - - - - - Get the start time for the current process. - - - - This is the time at which the log4net library was loaded into the - AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime - this is not the start time for the current process. - - - The log4net library should be loaded by an application early during its - startup, therefore this start time should be a good approximation for - the actual start time. - - - Note that AppDomains may be loaded and unloaded within the - same process without the process terminating, however this start time - will be set per AppDomain. - - - - - - Text to output when a null is encountered. - - - - Use this value to indicate a null has been encountered while - outputting a string representation of an item. - - - The default value is (null). This value can be overridden by specifying - a value for the log4net.NullText appSetting in the application's - .config file. - - - - - - Text to output when an unsupported feature is requested. - - - - Use this value when an unsupported feature is requested. - - - The default value is NOT AVAILABLE. This value can be overridden by specifying - a value for the log4net.NotAvailableText appSetting in the application's - .config file. - - - - - - Utility class that represents a format string. - - - - Utility class that represents a format string. - - - Nicko Cadell - - - - Initialise the - - An that supplies culture-specific formatting information. - A containing zero or more format items. - An array containing zero or more objects to format. - - - - Format the string and arguments - - the formatted string - - - - Replaces the format item in a specified with the text equivalent - of the value of a corresponding instance in a specified array. - A specified parameter supplies culture-specific formatting information. - - An that supplies culture-specific formatting information. - A containing zero or more format items. - An array containing zero or more objects to format. - - A copy of format in which the format items have been replaced by the - equivalent of the corresponding instances of in args. - - - - This method does not throw exceptions. If an exception thrown while formatting the result the - exception and arguments are returned in the result string. - - - - - - Process an error during StringFormat - - - - - Dump the contents of an array into a string builder - - - - - Dump an object to a string - - - - - The fully qualified type of the SystemStringFormat class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Implementation of Properties collection for the - - - - Class implements a collection of properties that is specific to each thread. - The class is not synchronized as each thread has its own . - - - Nicko Cadell - - - - The thread local data slot to use to store a PropertiesDictionary. - - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property - - the key for the entry to remove - - - Remove a property - - - - - - Clear all properties - - - - Clear all properties - - - - - - Get the PropertiesDictionary for this thread. - - create the dictionary if it does not exist, otherwise return null if is does not exist - the properties for this thread - - - The collection returned is only to be used on the calling thread. If the - caller needs to share the collection between different threads then the - caller must clone the collection before doing so. - - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Gets or sets the value of a property - - - - - - Implementation of Stack for the - - - - Implementation of Stack for the - - - Nicko Cadell - - - - The stack store. - - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - Clears all the contextual information held in this stack. - - - - Clears all the contextual information held in this stack. - Only call this if you think that this tread is being reused after - a previous call execution which may not have completed correctly. - You do not need to use this method if you always guarantee to call - the method of the - returned from even in exceptional circumstances, - for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) - syntax. - - - - - - Removes the top context from this stack. - - The message in the context that was removed from the top of this stack. - - - Remove the top context from this stack, and return - it to the caller. If this stack is empty then an - empty string (not ) is returned. - - - - - - Pushes a new context message into this stack. - - The new context message. - - An that can be used to clean up the context stack. - - - - Pushes a new context onto this stack. An - is returned that can be used to clean up this stack. This - can be easily combined with the using keyword to scope the - context. - - - Simple example of using the Push method with the using keyword. - - using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) - { - log.Warn("This should have an ThreadContext Stack message"); - } - - - - - - Gets the current context information for this stack. - - The current context information. - - - - Gets the current context information for this stack. - - Gets the current context information - - - Gets the current context information for this stack. - - - - - - Get a portable version of this object - - the portable instance of this object - - - Get a cross thread portable version of this object - - - - - - The number of messages in the stack - - - The current number of messages in the stack - - - - The current number of messages in the stack. That is - the number of times has been called - minus the number of times has been called. - - - - - - Gets and sets the internal stack used by this - - The internal storage stack - - - This property is provided only to support backward compatability - of the . Tytpically the internal stack should not - be modified. - - - - - - Inner class used to represent a single context frame in the stack. - - - - Inner class used to represent a single context frame in the stack. - - - - - - Constructor - - The message for this context. - The parent context in the chain. - - - Initializes a new instance of the class - with the specified message and parent context. - - - - - - Get the message. - - The message. - - - Get the message. - - - - - - Gets the full text of the context down to the root level. - - - The full text of the context down to the root level. - - - - Gets the full text of the context down to the root level. - - - - - - Struct returned from the method. - - - - This struct implements the and is designed to be used - with the pattern to remove the stack frame at the end of the scope. - - - - - - The ThreadContextStack internal stack - - - - - The depth to trim the stack to when this instance is disposed - - - - - Constructor - - The internal stack used by the ThreadContextStack. - The depth to return the stack to when this object is disposed. - - - Initializes a new instance of the class with - the specified stack and return depth. - - - - - - Returns the stack to the correct depth. - - - - Returns the stack to the correct depth. - - - - - - Implementation of Stacks collection for the - - - - Implementation of Stacks collection for the - - - Nicko Cadell - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - The fully qualified type of the ThreadContextStacks class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the named thread context stack - - - The named stack - - - - Gets the named thread context stack - - - - - - Utility class for transforming strings. - - - - Utility class for transforming strings. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Write a string to an - - the writer to write to - the string to write - The string to replace non XML compliant chars with - - - The test is escaped either using XML escape entities - or using CDATA sections. - - - - - - Replace invalid XML characters in text string - - the XML text input string - the string to use in place of invalid characters - A string that does not contain invalid XML characters. - - - Certain Unicode code points are not allowed in the XML InfoSet, for - details see: http://www.w3.org/TR/REC-xml/#charsets. - - - This method replaces any illegal characters in the input string - with the mask string specified. - - - - - - Count the number of times that the substring occurs in the text - - the text to search - the substring to find - the number of times the substring occurs in the text - - - The substring is assumed to be non repeating within itself. - - - - - - Characters illegal in XML 1.0 - - - - - The log4net Global Context. - - - - The GlobalContext provides a location for global debugging - information to be stored. - - - The global context has a properties map and these properties can - be included in the output of log messages. The - supports selecting and outputing these properties. - - - By default the log4net:HostName property is set to the name of - the current machine. - - - - - GlobalContext.Properties["hostname"] = Environment.MachineName; - - - - Nicko Cadell - - - - Private Constructor. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - The global context properties instance - - - - - The global properties map. - - - The global properties map. - - - - The global properties map. - - - - - - Provides information about the environment the assembly has - been built for. - - - - Version of the assembly - - - Version of the framework targeted - - - Type of framework targeted - - - Does it target a client profile? - - - - Identifies the version and target for this assembly. - - - - - This class is used by client applications to request logger instances. - - - - This class has static methods that are used by a client to request - a logger instance. The method is - used to retrieve a logger. - - - See the interface for more details. - - - Simple example of logging messages - - ILog log = LogManager.GetLogger("application-log"); - - log.Info("Application Start"); - log.Debug("This is a debug message"); - - if (log.IsDebugEnabled) - { - log.Debug("This is another debug message"); - } - - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - Returns the named logger if it exists. - - Returns the named logger if it exists. - - - - If the named logger exists (in the default repository) then it - returns a reference to the logger, otherwise it returns null. - - - The fully qualified logger name to look for. - The logger found, or null if no logger could be found. - - - - Returns the named logger if it exists. - - - - If the named logger exists (in the specified repository) then it - returns a reference to the logger, otherwise it returns - null. - - - The repository to lookup in. - The fully qualified logger name to look for. - - The logger found, or null if the logger doesn't exist in the specified - repository. - - - - - Returns the named logger if it exists. - - - - If the named logger exists (in the repository for the specified assembly) then it - returns a reference to the logger, otherwise it returns - null. - - - The assembly to use to lookup the repository. - The fully qualified logger name to look for. - - The logger, or null if the logger doesn't exist in the specified - assembly's repository. - - - - Get the currently defined loggers. - - Returns all the currently defined loggers in the default repository. - - - The root logger is not included in the returned array. - - All the defined loggers. - - - - Returns all the currently defined loggers in the specified repository. - - The repository to lookup in. - - The root logger is not included in the returned array. - - All the defined loggers. - - - - Returns all the currently defined loggers in the specified assembly's repository. - - The assembly to use to lookup the repository. - - The root logger is not included in the returned array. - - All the defined loggers. - - - Get or create a logger. - - Retrieves or creates a named logger. - - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The name of the logger to retrieve. - The logger with the name specified. - - - - Retrieves or creates a named logger. - - - - Retrieve a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The repository to lookup in. - The name of the logger to retrieve. - The logger with the name specified. - - - - Retrieves or creates a named logger. - - - - Retrieve a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The assembly to use to lookup the repository. - The name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Get the logger for the fully qualified name of the type specified. - - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Gets the logger for the fully qualified name of the type specified. - - The repository to lookup in. - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Gets the logger for the fully qualified name of the type specified. - - The assembly to use to lookup the repository. - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shuts down the log4net system. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in all the - default repositories. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - Shutdown a logger repository. - - Shuts down the default repository. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - default repository. - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - The repository to shutdown. - - - - Shuts down the repository specified. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository. The repository is looked up using - the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - The assembly to use to lookup the repository. - - - Reset the configuration of a repository - - Resets all values contained in this repository instance to their defaults. - - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - - - - Resets all values contained in this repository instance to their defaults. - - - - Reset all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - The repository to reset. - - - - Resets all values contained in this repository instance to their defaults. - - - - Reset all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - The assembly to use to lookup the repository to reset. - - - Get the logger repository. - - Returns the default instance. - - - - Gets the for the repository specified - by the callers assembly (). - - - The instance for the default repository. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The repository to lookup in. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The assembly to use to lookup the repository. - - - Get a logger repository. - - Returns the default instance. - - - - Gets the for the repository specified - by the callers assembly (). - - - The instance for the default repository. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The repository to lookup in. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The assembly to use to lookup the repository. - - - Create a domain - - Creates a repository with the specified repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to will return - the same repository instance. - - - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - Create a logger repository. - - Creates a repository with the specified repository type. - - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The created will be associated with the repository - specified such that a call to will return - the same repository instance. - - - - - - Creates a repository with the specified name. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name. - - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - The specified repository already exists. - - - - Creates a repository for the specified assembly and repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - - Creates a repository for the specified assembly and repository type. - - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - - Gets the list of currently defined repositories. - - - - Get an array of all the objects that have been created. - - - An array of all the known objects. - - - - Looks up the wrapper object for the logger specified. - - The logger to get the wrapper for. - The wrapper for the logger specified. - - - - Looks up the wrapper objects for the loggers specified. - - The loggers to get the wrappers for. - The wrapper objects for the loggers specified. - - - - Create the objects used by - this manager. - - The logger to wrap. - The wrapper for the logger specified. - - - - The wrapper map to use to hold the objects. - - - - - Implementation of Mapped Diagnostic Contexts. - - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - The MDC class is similar to the class except that it is - based on a map instead of a stack. It provides mapped - diagnostic contexts. A Mapped Diagnostic Context, or - MDC in short, is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The MDC is managed on a per thread basis. - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - Gets the context value identified by the parameter. - - The key to lookup in the MDC. - The string value held for the key, or a null reference if no corresponding value is found. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - If the parameter does not look up to a - previously defined context then null will be returned. - - - - - - Add an entry to the MDC - - The key to store the value under. - The value to store. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Puts a context value (the parameter) as identified - with the parameter into the current thread's - context map. - - - If a value is already defined for the - specified then the value will be replaced. If the - is specified as null then the key value mapping will be removed. - - - - - - Removes the key value mapping for the key specified. - - The key to remove. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Remove the specified entry from this thread's MDC - - - - - - Clear all entries in the MDC - - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Remove all the entries from this thread's MDC - - - - - - Implementation of Nested Diagnostic Contexts. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - A Nested Diagnostic Context, or NDC in short, is an instrument - to distinguish interleaved log output from different sources. Log - output is typically interleaved when a server handles multiple - clients near-simultaneously. - - - Interleaved log output can still be meaningful if each log entry - from different contexts had a distinctive stamp. This is where NDCs - come into play. - - - Note that NDCs are managed on a per thread basis. The NDC class - is made up of static methods that operate on the context of the - calling thread. - - - How to push a message into the context - - using(NDC.Push("my context message")) - { - ... all log calls will have 'my context message' included ... - - } // at the end of the using block the message is automatically removed - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - Clears all the contextual information held on the current thread. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Clears the stack of NDC data held on the current thread. - - - - - - Creates a clone of the stack of context information. - - A clone of the context info for this thread. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - The results of this method can be passed to the - method to allow child threads to inherit the context of their - parent thread. - - - - - - Inherits the contextual information from another thread. - - The context stack to inherit. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - This thread will use the context information from the stack - supplied. This can be used to initialize child threads with - the same contextual information as their parent threads. These - contexts will NOT be shared. Any further contexts that - are pushed onto the stack will not be visible to the other. - Call to obtain a stack to pass to - this method. - - - - - - Removes the top context from the stack. - - - The message in the context that was removed from the top - of the stack. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Remove the top context from the stack, and return - it to the caller. If the stack is empty then an - empty string (not null) is returned. - - - - - - Pushes a new context message. - - The new context message. - - An that can be used to clean up - the context stack. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Pushes a new context onto the context stack. An - is returned that can be used to clean up the context stack. This - can be easily combined with the using keyword to scope the - context. - - - Simple example of using the Push method with the using keyword. - - using(log4net.NDC.Push("NDC_Message")) - { - log.Warn("This should have an NDC message"); - } - - - - - - Removes the context information for this thread. It is - not required to call this method. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - This method is not implemented. - - - - - - Forces the stack depth to be at most . - - The maximum depth of the stack - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Forces the stack depth to be at most . - This may truncate the head of the stack. This only affects the - stack in the current thread. Also it does not prevent it from - growing, it only sets the maximum depth at the time of the - call. This can be used to return to a known context depth. - - - - - - Gets the current context depth. - - The current context depth. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - The number of context values pushed onto the context stack. - - - Used to record the current depth of the context. This can then - be restored using the method. - - - - - - - The log4net Thread Context. - - - - The ThreadContext provides a location for thread specific debugging - information to be stored. - The ThreadContext properties override any - properties with the same name. - - - The thread context has a properties map and a stack. - The properties and stack can - be included in the output of log messages. The - supports selecting and outputting these properties. - - - The Thread Context provides a diagnostic context for the current thread. - This is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The Thread Context is managed on a per thread basis. - - - Example of using the thread context properties to store a username. - - ThreadContext.Properties["user"] = userName; - log.Info("This log message has a ThreadContext Property called 'user'"); - - - Example of how to push a message into the context stack - - using(ThreadContext.Stacks["NDC"].Push("my context message")) - { - log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); - - } // at the end of the using block the message is automatically popped - - - - Nicko Cadell - - - - Private Constructor. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - The thread context properties instance - - - - - The thread context stacks instance - - - - - The thread properties map - - - The thread properties map - - - - The ThreadContext properties override any - properties with the same name. - - - - - - The thread stacks - - - stack map - - - - The thread local stacks. - - - - - diff --git a/source/packages/log4net.2.0.0/lib/net20-full/log4net.dll b/source/packages/log4net.2.0.0/lib/net20-full/log4net.dll deleted file mode 100644 index 2a56a3ed00c4b19747b600c0398b52467e7246be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 299008 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

    ~v%;*-`O{Wjc|O`TMK9&1jb^ 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⪼-V+9*2bn9vI!mpMD`i6~pFQZsJ_tUxkmFt=Kl-1e$>jZ&! zR@eTh<<~>!7BO6PKWq=()X7%eue>%Gj45P5uQq|cE{la=>(Jm|I1F#v!<+Q9tG8`? z=N1%k*REYSI=yZ7#)2ZuE2_xf3Pw*Cw^X)lfqsEuCv@x5`b8cf%4)5* zM=lMtvHBtd%{aj*dJx5`Uv6+x9Xb~EDuzX8qA>x$#5p8;1A%nIV)Y4NhF8%^l0Hm* zBfQ%*IqI4j_T1jN8Ewi+EJZuoBnVN5=s>7>2hI%Tkr6j2bRr1`Y#MWMq(sk}7Cm>b zDHg?*NAZHxU5}|#D+OSd)fXneqF_9M`gXa7(1%S;It{9 zK?H-TN?~5lDmsUl-^yTZaPTlCzq-3-wo5eJ&mM3($gXWnFm$#=vR zvMjG7IfmBFoU_W7o^eJ-X61Y_bU6!0iOa{Ip74pazLDPdB5~HO?Adr^+{VNIT!z!K&{B_^*?M0 z_1_;O!Za{HKEcoE-1((v#uu1inp>WoGz+;eF{k?Ew#fcHx-dRdduDFo$-Z;TQ%qf) zUznTeTYP%9Z=v?|lw$vV2M*kI&*6i2^bx)S)MwxL z;`x2lu3Gggqix^P_=UxN2l@~8A2@LO2>Y-UQBQ!=yhw5zVG^j!Dooa9#uuJkRD)OU zObB9j9wc<5QgE^p9G??oyA=6EW&PIW(3-GgB#8tVRr6MFljY-|*{7#HD$3 zVSN7N+-&Npj9pxqduFjEyuQ?K`E>b@y6;OL3pYQ^M=E`_!gG+&;n)E@!!Fne}KG=D>lIJnLMVqulGiuebkS|F5Rj zTlvGINPa{3fW2iwAir9lng4H)2i6PO_JyM?Bi9a|xZOwj-eaY75|PdsTC`09@$4n9 z=gaMXOT{gPBa|C!de!pyi6*)pVy6N)2&Yz&)8-nZ3|+}f-PjP;g}T9_!uRh zj)l{wQMF5IlSrR;wSa zr_+WOX*V9h6Jd?d@hs4N)UG{ki{w1Ou@eXR6C|g>A%1cANO)(8PqjG9d0uhHq{d4d z1l}%QRemYFm-^%QYI})32&@e**I)P`wj#E%@}C++SFq~%ZU$;M(o@r)J@Hxw`Gge@IMn2lh$ zT;M2aLVTtCWomI+2^@AMni_z5bk9 z!@xBRT*E+^Z^z>0zr)vXaSa34FmMe6*D!Dm1J^Kc4FlIOa18_3FmMe6*D!Dm1J^L{ IpDG6aKj2V*dH?_b diff --git a/source/packages/log4net.2.0.0/lib/net20-full/log4net.xml b/source/packages/log4net.2.0.0/lib/net20-full/log4net.xml deleted file mode 100644 index de8317a..0000000 --- a/source/packages/log4net.2.0.0/lib/net20-full/log4net.xml +++ /dev/null @@ -1,30205 +0,0 @@ - - - - log4net - - - -

    - Appender that logs to a database. - - - - appends logging events to a table within a - database. The appender can be configured to specify the connection - string by setting the property. - The connection type (provider) can be specified by setting the - property. For more information on database connection strings for - your specific database see http://www.connectionstrings.com/. - - - Records are written into the database either using a prepared - statement or a stored procedure. The property - is set to (System.Data.CommandType.Text) to specify a prepared statement - or to (System.Data.CommandType.StoredProcedure) to specify a stored - procedure. - - - The prepared statement text or the name of the stored procedure - must be set in the property. - - - The prepared statement or stored procedure can take a number - of parameters. Parameters are added using the - method. This adds a single to the - ordered list of parameters. The - type may be subclassed if required to provide database specific - functionality. The specifies - the parameter name, database type, size, and how the value should - be generated using a . - - - - An example of a SQL Server table that could be logged to: - - CREATE TABLE [dbo].[Log] ( - [ID] [int] IDENTITY (1, 1) NOT NULL , - [Date] [datetime] NOT NULL , - [Thread] [varchar] (255) NOT NULL , - [Level] [varchar] (20) NOT NULL , - [Logger] [varchar] (255) NOT NULL , - [Message] [varchar] (4000) NOT NULL - ) ON [PRIMARY] - - - - An example configuration to log to the above table: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Julian Biddle - Nicko Cadell - Gert Driesen - Lance Nehring - - - - Abstract base class implementation of that - buffers events in a fixed size buffer. - - - - This base class should be used by appenders that need to buffer a - number of events before logging them. For example the - buffers events and then submits the entire contents of the buffer to - the underlying database in one go. - - - Subclasses should override the - method to deliver the buffered events. - - The BufferingAppenderSkeleton maintains a fixed size cyclic - buffer of events. The size of the buffer is set using - the property. - - A is used to inspect - each event as it arrives in the appender. If the - triggers, then the current buffer is sent immediately - (see ). Otherwise the event - is stored in the buffer. For example, an evaluator can be used to - deliver the events immediately when an ERROR event arrives. - - - The buffering appender can be configured in a mode. - By default the appender is NOT lossy. When the buffer is full all - the buffered events are sent with . - If the property is set to true then the - buffer will not be sent when it is full, and new events arriving - in the appender will overwrite the oldest event in the buffer. - In lossy mode the buffer will only be sent when the - triggers. This can be useful behavior when you need to know about - ERROR events but not about events with a lower level, configure an - evaluator that will trigger when an ERROR event arrives, the whole - buffer will be sent which gives a history of events leading up to - the ERROR event. - - - Nicko Cadell - Gert Driesen - - - - Abstract base class implementation of . - - - - This class provides the code for common functionality, such - as support for threshold filtering and support for general filters. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface for your own strategies for printing log statements. - - - - Implementors should consider extending the - class which provides a default implementation of this interface. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Log the logging event in Appender specific way. - - The event to log - - - This method is called to log a message into this appender. - - - - - - Gets or sets the name of this appender. - - The name of the appender. - - The name uniquely identifies the appender. - - - - - Interface for appenders that support bulk logging. - - - - This interface extends the interface to - support bulk logging of objects. Appenders - should only implement this interface if they can bulk log efficiently. - - - Nicko Cadell - - - - Log the array of logging events in Appender specific way. - - The events to log - - - This method is called to log an array of events into this appender. - - - - - - Interface used to delay activate a configured object. - - - - This allows an object to defer activation of its options until all - options have been set. This is required for components which have - related options that remain ambiguous until all are set. - - - If a component implements this interface then the method - must be called by the container after its all the configured properties have been set - and before the component can be used. - - - Nicko Cadell - - - - Activate the options that were previously set with calls to properties. - - - - This allows an object to defer activation of its options until all - options have been set. This is required for components which have - related options that remain ambiguous until all are set. - - - If a component implements this interface then this method must be called - after its properties have been set before the component can be used. - - - - - - Initial buffer size - - - - - Maximum buffer size before it is recycled - - - - - Default constructor - - - Empty default constructor - - - - - Finalizes this appender by calling the implementation's - method. - - - - If this appender has not been closed then the Finalize method - will call . - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Closes the appender and release resources. - - - - Release any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - This method cannot be overridden by subclasses. This method - delegates the closing of the appender to the - method which must be overridden in the subclass. - - - - - - Performs threshold checks and invokes filters before - delegating actual logging to the subclasses specific - method. - - The event to log. - - - This method cannot be overridden by derived classes. A - derived class should override the method - which is called by this method. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - Calls and checks that - it returns true. - - - - - If all of the above steps succeed then the - will be passed to the abstract method. - - - - - - Performs threshold checks and invokes filters before - delegating actual logging to the subclasses specific - method. - - The array of events to log. - - - This method cannot be overridden by derived classes. A - derived class should override the method - which is called by this method. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - Calls and checks that - it returns true. - - - - - If all of the above steps succeed then the - will be passed to the method. - - - - - - Test if the logging event should we output by this appender - - the event to test - true if the event should be output, false if the event should be ignored - - - This method checks the logging event against the threshold level set - on this appender and also against the filters specified on this - appender. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - - - - - Adds a filter to the end of the filter chain. - - the filter to add to this appender - - - The Filters are organized in a linked list. - - - Setting this property causes the new filter to be pushed onto the - back of the filter chain. - - - - - - Clears the filter list for this appender. - - - - Clears the filter list for this appender. - - - - - - Checks if the message level is below this appender's threshold. - - to test against. - - - If there is no threshold set, then the return value is always true. - - - - true if the meets the - requirements of this appender. - - - - - Is called when the appender is closed. Derived classes should override - this method if resources need to be released. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Subclasses of should implement this method - to perform actual logging. - - The event to append. - - - A subclass must implement this method to perform - logging of the . - - This method will be called by - if all the conditions listed for that method are met. - - - To restrict the logging of events in the appender - override the method. - - - - - - Append a bulk array of logging events. - - the array of logging events - - - This base class implementation calls the - method for each element in the bulk array. - - - A sub class that can better process a bulk array of events should - override this method in addition to . - - - - - - Called before as a precondition. - - - - This method is called by - before the call to the abstract method. - - - This method can be overridden in a subclass to extend the checks - made before the event is passed to the method. - - - A subclass should ensure that they delegate this call to - this base class if it is overridden. - - - true if the call to should proceed. - - - - Renders the to a string. - - The event to render. - The event rendered as a string. - - - Helper method to render a to - a string. This appender must have a - set to render the to - a string. - - If there is exception data in the logging event and - the layout does not process the exception, this method - will append the exception text to the rendered string. - - - Where possible use the alternative version of this method - . - That method streams the rendering onto an existing Writer - which can give better performance if the caller already has - a open and ready for writing. - - - - - - Renders the to a string. - - The event to render. - The TextWriter to write the formatted event to - - - Helper method to render a to - a string. This appender must have a - set to render the to - a string. - - If there is exception data in the logging event and - the layout does not process the exception, this method - will append the exception text to the rendered string. - - - Use this method in preference to - where possible. If, however, the caller needs to render the event - to a string then does - provide an efficient mechanism for doing so. - - - - - - The layout of this appender. - - - See for more information. - - - - - The name of this appender. - - - See for more information. - - - - - The level threshold of this appender. - - - - There is no level threshold filtering by default. - - - See for more information. - - - - - - It is assumed and enforced that errorHandler is never null. - - - - It is assumed and enforced that errorHandler is never null. - - - See for more information. - - - - - - The first filter in the filter chain. - - - - Set to null initially. - - - See for more information. - - - - - - The last filter in the filter chain. - - - See for more information. - - - - - Flag indicating if this appender is closed. - - - See for more information. - - - - - The guard prevents an appender from repeatedly calling its own DoAppend method - - - - - StringWriter used to render events - - - - - The fully qualified type of the AppenderSkeleton class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the threshold of this appender. - - - The threshold of the appender. - - - - All log events with lower level than the threshold level are ignored - by the appender. - - - In configuration files this option is specified by setting the - value of the option to a level - string, such as "DEBUG", "INFO" and so on. - - - - - - Gets or sets the for this appender. - - The of the appender - - - The provides a default - implementation for the property. - - - - - - The filter chain. - - The head of the filter chain filter chain. - - - Returns the head Filter. The Filters are organized in a linked list - and so all Filters on this Appender are available through the result. - - - - - - Gets or sets the for this appender. - - The layout of the appender. - - - See for more information. - - - - - - - Gets or sets the name of this appender. - - The name of the appender. - - - The name uniquely identifies the appender. - - - - - - Tests if this appender requires a to be set. - - - - In the rather exceptional case, where the appender - implementation admits a layout but can also work without it, - then the appender should return true. - - - This default implementation always returns false. - - - - true if the appender requires a layout object, otherwise false. - - - - - The default buffer size. - - - The default size of the cyclic buffer used to store events. - This is set to 512 by default. - - - - - Initializes a new instance of the class. - - - - Protected default constructor to allow subclassing. - - - - - - Initializes a new instance of the class. - - the events passed through this appender must be - fixed by the time that they arrive in the derived class' SendBuffer method. - - - Protected constructor to allow subclassing. - - - The should be set if the subclass - expects the events delivered to be fixed even if the - is set to zero, i.e. when no buffering occurs. - - - - - - Flush the currently buffered events - - - - Flushes any events that have been buffered. - - - If the appender is buffering in mode then the contents - of the buffer will NOT be flushed to the appender. - - - - - - Flush the currently buffered events - - set to true to flush the buffer of lossy events - - - Flushes events that have been buffered. If is - false then events will only be flushed if this buffer is non-lossy mode. - - - If the appender is buffering in mode then the contents - of the buffer will only be flushed if is true. - In this case the contents of the buffer will be tested against the - and if triggering will be output. All other buffered - events will be discarded. - - - If is true then the buffer will always - be emptied by calling this method. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Close this appender instance. - - - - Close this appender instance. If this appender is marked - as not then the remaining events in - the buffer must be sent when the appender is closed. - - - - - - This method is called by the method. - - the event to log - - - Stores the in the cyclic buffer. - - - The buffer will be sent (i.e. passed to the - method) if one of the following conditions is met: - - - - The cyclic buffer is full and this appender is - marked as not lossy (see ) - - - An is set and - it is triggered for the - specified. - - - - Before the event is stored in the buffer it is fixed - (see ) to ensure that - any data referenced by the event will be valid when the buffer - is processed. - - - - - - Sends the contents of the buffer. - - The first logging event. - The buffer containing the events that need to be send. - - - The subclass must override . - - - - - - Sends the events. - - The events that need to be send. - - - The subclass must override this method to process the buffered events. - - - - - - The size of the cyclic buffer used to hold the logging events. - - - Set to by default. - - - - - The cyclic buffer used to store the logging events. - - - - - The triggering event evaluator that causes the buffer to be sent immediately. - - - The object that is used to determine if an event causes the entire - buffer to be sent immediately. This field can be null, which - indicates that event triggering is not to be done. The evaluator - can be set using the property. If this appender - has the ( property) set to - true then an must be set. - - - - - Indicates if the appender should overwrite events in the cyclic buffer - when it becomes full, or if the buffer should be flushed when the - buffer is full. - - - If this field is set to true then an must - be set. - - - - - The triggering event evaluator filters discarded events. - - - The object that is used to determine if an event that is discarded should - really be discarded or if it should be sent to the appenders. - This field can be null, which indicates that all discarded events will - be discarded. - - - - - Value indicating which fields in the event should be fixed - - - By default all fields are fixed - - - - - The events delivered to the subclass must be fixed. - - - - - Gets or sets a value that indicates whether the appender is lossy. - - - true if the appender is lossy, otherwise false. The default is false. - - - - This appender uses a buffer to store logging events before - delivering them. A triggering event causes the whole buffer - to be send to the remote sink. If the buffer overruns before - a triggering event then logging events could be lost. Set - to false to prevent logging events - from being lost. - - If is set to true then an - must be specified. - - - - - Gets or sets the size of the cyclic buffer used to hold the - logging events. - - - The size of the cyclic buffer used to hold the logging events. - - - - The option takes a positive integer - representing the maximum number of logging events to collect in - a cyclic buffer. When the is reached, - oldest events are deleted as new events are added to the - buffer. By default the size of the cyclic buffer is 512 events. - - - If the is set to a value less than - or equal to 1 then no buffering will occur. The logging event - will be delivered synchronously (depending on the - and properties). Otherwise the event will - be buffered. - - - - - - Gets or sets the that causes the - buffer to be sent immediately. - - - The that causes the buffer to be - sent immediately. - - - - The evaluator will be called for each event that is appended to this - appender. If the evaluator triggers then the current buffer will - immediately be sent (see ). - - If is set to true then an - must be specified. - - - - - Gets or sets the value of the to use. - - - The value of the to use. - - - - The evaluator will be called for each event that is discarded from this - appender. If the evaluator triggers then the current buffer will immediately - be sent (see ). - - - - - - Gets or sets a value indicating if only part of the logging event data - should be fixed. - - - true if the appender should only fix part of the logging event - data, otherwise false. The default is false. - - - - Setting this property to true will cause only part of the - event data to be fixed and serialized. This will improve performance. - - - See for more information. - - - - - - Gets or sets a the fields that will be fixed in the event - - - The event fields that will be fixed before the event is buffered - - - - The logging event needs to have certain thread specific values - captured before it can be buffered. See - for details. - - - - - - - Initializes a new instance of the class. - - - Public default constructor to initialize a new instance of this class. - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Override the parent method to close the database - - - - Closes the database command and database connection. - - - - - - Inserts the events into the database. - - The events to insert into the database. - - - Insert all the events specified in the - array into the database. - - - - - - Adds a parameter to the command. - - The parameter to add to the command. - - - Adds a parameter to the ordered list of command parameters. - - - - - - Writes the events to the database using the transaction specified. - - The transaction that the events will be executed under. - The array of events to insert into the database. - - - The transaction argument can be null if the appender has been - configured not to use transactions. See - property for more information. - - - - - - Formats the log message into database statement text. - - The event being logged. - - This method can be overridden by subclasses to provide - more control over the format of the database statement. - - - Text that can be passed to a . - - - - - Creates an instance used to connect to the database. - - - This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). - - The of the object. - The connectionString output from the ResolveConnectionString method. - An instance with a valid connection string. - - - - Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey - property. - - - ConnectiongStringName is only supported on .NET 2.0 and higher. - - Additional information describing the connection string. - A connection string used to connect to the database. - - - - Retrieves the class type of the ADO.NET provider. - - - - Gets the Type of the ADO.NET provider to use to connect to the - database. This method resolves the type specified in the - property. - - - Subclasses can override this method to return a different type - if necessary. - - - The of the ADO.NET provider - - - - Prepares the database command and initialize the parameters. - - - - - Connects to the database. - - - - - Cleanup the existing command. - - - If true, a message will be written using LogLog.Warn if an exception is encountered when calling Dispose. - - - - - Cleanup the existing connection. - - - Calls the IDbConnection's method. - - - - - Flag to indicate if we are using a command object - - - - Set to true when the appender is to use a prepared - statement or stored procedure to insert into the database. - - - - - - The list of objects. - - - - The list of objects. - - - - - - The security context to use for privileged calls - - - - - The that will be used - to insert logging events into a database. - - - - - The database command. - - - - - Database connection string. - - - - - The appSettings key from App.Config that contains the connection string. - - - - - The connectionStrings key from App.Config that contains the connection string. - - - - - String type name of the type name. - - - - - The text of the command. - - - - - The command type. - - - - - Indicates whether to use transactions when writing to the database. - - - - - Indicates whether to use transactions when writing to the database. - - - - - The fully qualified type of the AdoNetAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the database connection string that is used to connect to - the database. - - - The database connection string used to connect to the database. - - - - The connections string is specific to the connection type. - See for more information. - - - Connection string for MS Access via ODBC: - "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" - - Another connection string for MS Access via ODBC: - "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" - - Connection string for MS Access via OLE DB: - "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" - - - - - The appSettings key from App.Config that contains the connection string. - - - - - The connectionStrings key from App.Config that contains the connection string. - - - This property requires at least .NET 2.0. - - - - - Gets or sets the type name of the connection - that should be created. - - - The type name of the connection. - - - - The type name of the ADO.NET provider to use. - - - The default is to use the OLE DB provider. - - - Use the OLE DB Provider. This is the default value. - System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Use the MS SQL Server Provider. - System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Use the ODBC Provider. - Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral - This is an optional package that you can download from - http://msdn.microsoft.com/downloads - search for ODBC .NET Data Provider. - - Use the Oracle Provider. - System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - This is an optional package that you can download from - http://msdn.microsoft.com/downloads - search for .NET Managed Provider for Oracle. - - - - - Gets or sets the command text that is used to insert logging events - into the database. - - - The command text used to insert logging events into the database. - - - - Either the text of the prepared statement or the - name of the stored procedure to execute to write into - the database. - - - The property determines if - this text is a prepared statement or a stored procedure. - - - - - - Gets or sets the command type to execute. - - - The command type to execute. - - - - This value may be either (System.Data.CommandType.Text) to specify - that the is a prepared statement to execute, - or (System.Data.CommandType.StoredProcedure) to specify that the - property is the name of a stored procedure - to execute. - - - The default value is (System.Data.CommandType.Text). - - - - - - Should transactions be used to insert logging events in the database. - - - true if transactions should be used to insert logging events in - the database, otherwise false. The default value is true. - - - - Gets or sets a value that indicates whether transactions should be used - to insert logging events in the database. - - - When set a single transaction will be used to insert the buffered events - into the database. Otherwise each event will be inserted without using - an explicit transaction. - - - - - - Gets or sets the used to call the NetSend method. - - - The used to call the NetSend method. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Should this appender try to reconnect to the database on error. - - - true if the appender should try to reconnect to the database after an - error has occurred, otherwise false. The default value is false, - i.e. not to try to reconnect. - - - - The default behaviour is for the appender not to try to reconnect to the - database if an error occurs. Subsequent logging events are discarded. - - - To force the appender to attempt to reconnect to the database set this - property to true. - - - When the appender attempts to connect to the database there may be a - delay of up to the connection timeout specified in the connection string. - This delay will block the calling application's thread. - Until the connection can be reestablished this potential delay may occur multiple times. - - - - - - Gets or sets the underlying . - - - The underlying . - - - creates a to insert - logging events into a database. Classes deriving from - can use this property to get or set this . Use the - underlying returned from if - you require access beyond that which provides. - - - - - Parameter type used by the . - - - - This class provides the basic database parameter properties - as defined by the interface. - - This type can be subclassed to provide database specific - functionality. The two methods that are called externally are - and . - - - - - - Initializes a new instance of the class. - - - Default constructor for the AdoNetAppenderParameter class. - - - - - Prepare the specified database command object. - - The command to prepare. - - - Prepares the database command object by adding - this parameter to its collection of parameters. - - - - - - Renders the logging event and set the parameter value in the command. - - The command containing the parameter. - The event to be rendered. - - - Renders the logging event using this parameters layout - object. Sets the value of the parameter on the command object. - - - - - - The name of this parameter. - - - - - The database type for this parameter. - - - - - Flag to infer type rather than use the DbType - - - - - The precision for this parameter. - - - - - The scale for this parameter. - - - - - The size for this parameter. - - - - - The to use to render the - logging event into an object for this parameter. - - - - - Gets or sets the name of this parameter. - - - The name of this parameter. - - - - The name of this parameter. The parameter name - must match up to a named parameter to the SQL stored procedure - or prepared statement. - - - - - - Gets or sets the database type for this parameter. - - - The database type for this parameter. - - - - The database type for this parameter. This property should - be set to the database type from the - enumeration. See . - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the type from the value. - - - - - - - Gets or sets the precision for this parameter. - - - The precision for this parameter. - - - - The maximum number of digits used to represent the Value. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the precision from the value. - - - - - - - Gets or sets the scale for this parameter. - - - The scale for this parameter. - - - - The number of decimal places to which Value is resolved. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the scale from the value. - - - - - - - Gets or sets the size for this parameter. - - - The size for this parameter. - - - - The maximum size, in bytes, of the data within the column. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the size from the value. - - - - - - - Gets or sets the to use to - render the logging event into an object for this - parameter. - - - The used to render the - logging event into an object for this parameter. - - - - The that renders the value for this - parameter. - - - The can be used to adapt - any into a - for use in the property. - - - - - - Appends logging events to the terminal using ANSI color escape sequences. - - - - AnsiColorTerminalAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. It also allows the color of a specific level of message to be set. - - - This appender expects the terminal to understand the VT100 control set - in order to interpret the color codes. If the terminal or console does not - understand the control codes the behavior is not defined. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes each message to the System.Console.Out or - System.Console.Error that is set at the time the event is appended. - Therefore it is possible to programmatically redirect the output of this appender - (for example NUnit does this to capture program output). While this is the desired - behavior of this appender it may have security implications in your application. - - - When configuring the ANSI colored terminal appender, a mapping should be - specified to map a logging level to a color. For example: - - - - - - - - - - - - - - - The Level is the standard log4net logging level and ForeColor and BackColor can be any - of the following values: - - Blue - Green - Red - White - Yellow - Purple - Cyan - - These color values cannot be combined together to make new colors. - - - The attributes can be any combination of the following: - - Brightforeground is brighter - Dimforeground is dimmer - Underscoremessage is underlined - Blinkforeground is blinking (does not work on all terminals) - Reverseforeground and background are reversed - Hiddenoutput is hidden - Strikethroughmessage has a line through it - - While any of these attributes may be combined together not all combinations - work well together, for example setting both Bright and Dim attributes makes - no sense. - - - Patrick Wagstrom - Nicko Cadell - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Ansi code to reset terminal - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Add a mapping of level to color - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the foreground and background colours - for a level. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to color mappings set on this appender. - - - - - - Flag to write output to the error stream rather than the standard output stream - - - - - Mapping from level object to color value - - - - - Target is the value of the console output stream. - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The enum of possible display attributes - - - - The following flags can be combined together to - form the ANSI color attributes. - - - - - - - text is bright - - - - - text is dim - - - - - text is underlined - - - - - text is blinking - - - Not all terminals support this attribute - - - - - text and background colors are reversed - - - - - text is hidden - - - - - text is displayed with a strikethrough - - - - - The enum of possible foreground or background color values for - use with the color mapping method - - - - The output can be in one for the following ANSI colors. - - - - - - - color is black - - - - - color is red - - - - - color is green - - - - - color is yellow - - - - - color is blue - - - - - color is magenta - - - - - color is cyan - - - - - color is white - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and the color it should be displayed in. - - - - - - An entry in the - - - - This is an abstract base class for types that are stored in the - object. - - - Nicko Cadell - - - - Default protected constructor - - - - Default protected constructor - - - - - - Initialize any options defined on this entry - - - - Should be overridden by any classes that need to initialise based on their options - - - - - - The level that is the key for this mapping - - - The that is the key for this mapping - - - - Get or set the that is the key for this - mapping subclass. - - - - - - Initialize the options for the object - - - - Combine the and together - and append the attributes. - - - - - - The mapped foreground color for the specified level - - - - Required property. - The mapped foreground color for the specified level - - - - - - The mapped background color for the specified level - - - - Required property. - The mapped background color for the specified level - - - - - - The color attributes for the specified level - - - - Required property. - The color attributes for the specified level - - - - - - The combined , and - suitable for setting the ansi terminal color. - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a AppenderCollection instance. - - list to create a readonly wrapper arround - - An AppenderCollection wrapper that is read-only. - - - - - An empty readonly static AppenderCollection - - - - - Initializes a new instance of the AppenderCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the AppenderCollection class - that has the specified initial capacity. - - - The number of elements that the new AppenderCollection is initially capable of storing. - - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified AppenderCollection. - - The AppenderCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - - Copies the entire AppenderCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire AppenderCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the AppenderCollection. - - The to be added to the end of the AppenderCollection. - The index at which the value has been added. - - - - Removes all elements from the AppenderCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the AppenderCollection. - - The to check for. - true if is found in the AppenderCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the AppenderCollection. - - The to locate in the AppenderCollection. - - The zero-based index of the first occurrence of - in the entire AppenderCollection, if found; otherwise, -1. - - - - - Inserts an element into the AppenderCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the AppenderCollection. - - The to remove from the AppenderCollection. - - The specified was not found in the AppenderCollection. - - - - - Removes the element at the specified index of the AppenderCollection. - - The zero-based index of the element to remove. - - is less than zero - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the AppenderCollection. - - An for the entire AppenderCollection. - - - - Adds the elements of another AppenderCollection to the current AppenderCollection. - - The AppenderCollection whose elements should be added to the end of the current AppenderCollection. - The new of the AppenderCollection. - - - - Adds the elements of a array to the current AppenderCollection. - - The array whose elements should be added to the end of the AppenderCollection. - The new of the AppenderCollection. - - - - Adds the elements of a collection to the current AppenderCollection. - - The collection whose elements should be added to the end of the AppenderCollection. - The new of the AppenderCollection. - - - - Sets the capacity to the actual number of elements. - - - - - Return the collection elements as an array - - the array - - - - is less than zero - -or- - is equal to or greater than . - - - - - is less than zero - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the AppenderCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - The zero-based index of the element to get or set. - - is less than zero - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false - - - - Gets or sets the number of elements the AppenderCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - - A value - - - - - Supports simple iteration over a . - - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - - - - - Appends log events to the ASP.NET system. - - - - - Diagnostic information and tracing messages that you specify are appended to the output - of the page that is sent to the requesting browser. Optionally, you can view this information - from a separate trace viewer (Trace.axd) that displays trace information for every page in a - given application. - - - Trace statements are processed and displayed only when tracing is enabled. You can control - whether tracing is displayed to a page, to the trace viewer, or both. - - - The logging event is passed to the or - method depending on the level of the logging event. - The event's logger name is the default value for the category parameter of the Write/Warn method. - - - Nicko Cadell - Gert Driesen - Ron Grabowski - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Write the logging event to the ASP.NET trace - - the event to log - - - Write the logging event to the ASP.NET trace - HttpContext.Current.Trace - (). - - - - - - Defaults to %logger - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The category parameter sent to the Trace method. - - - - Defaults to %logger which will use the logger name of the current - as the category parameter. - - - - - - - - Buffers events and then forwards them to attached appenders. - - - - The events are buffered in this appender until conditions are - met to allow the appender to deliver the events to the attached - appenders. See for the - conditions that cause the buffer to be sent. - - The forwarding appender can be used to specify different - thresholds and filters for the same appender at different locations - within the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Interface for attaching appenders to objects. - - - - Interface for attaching, removing and retrieving appenders. - - - Nicko Cadell - Gert Driesen - - - - Attaches an appender. - - The appender to add. - - - Add the specified appender. The implementation may - choose to allow or deny duplicate appenders. - - - - - - Gets an attached appender with the specified name. - - The name of the appender to get. - - The appender with the name specified, or null if no appender with the - specified name is found. - - - - Returns an attached appender with the specified. - If no appender with the specified name is found null will be - returned. - - - - - - Removes all attached appenders. - - - - Removes and closes all attached appenders - - - - - - Removes the specified appender from the list of attached appenders. - - The appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Gets all attached appenders. - - - A collection of attached appenders. - - - - Gets a collection of attached appenders. - If there are no attached appenders the - implementation should return an empty - collection rather than null. - - - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Send the events. - - The events that need to be send. - - - Forwards the events to the attached appenders. - - - - - - Adds an to the list of appenders of this - instance. - - The to add to this appender. - - - If the specified is already in the list of - appenders, then it won't be added again. - - - - - - Looks for the appender with the specified name. - - The name of the appender to lookup. - - The appender with the specified name, or null. - - - - Get the named appender attached to this buffering appender. - - - - - - Removes all previously added appenders from this appender. - - - - This is useful when re-reading configuration information. - - - - - - Removes the specified appender from the list of appenders. - - The appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Implementation of the interface - - - - - Gets the appenders contained in this appender as an - . - - - If no appenders can be found, then an - is returned. - - - A collection of the appenders in this appender. - - - - - Appends logging events to the console. - - - - ColoredConsoleAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. It also allows the color of a specific type of message to be set. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes directly to the application's attached console - not to the System.Console.Out or System.Console.Error TextWriter. - The System.Console.Out and System.Console.Error streams can be - programmatically redirected (for example NUnit does this to capture program output). - This appender will ignore these redirections because it needs to use Win32 - API calls to colorize the output. To respect these redirections the - must be used. - - - When configuring the colored console appender, mapping should be - specified to map a logging level to a color. For example: - - - - - - - - - - - - - - The Level is the standard log4net logging level and ForeColor and BackColor can be any - combination of the following values: - - Blue - Green - Red - White - Yellow - Purple - Cyan - HighIntensity - - - - Rick Hobbs - Nicko Cadell - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - flag set to true to write to the console error stream - - When is set to true, output is written to - the standard error output stream. Otherwise, output is written to the standard - output stream. - - - - - Add a mapping of level to color - done by the config file - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the foreground and background colors - for a level. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to color mappings set on this appender. - - - - - - Flag to write output to the error stream rather than the standard output stream - - - - - Mapping from level object to color value - - - - - The console output stream writer to write to - - - - This writer is not thread safe. - - - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The enum of possible color values for use with the color mapping method - - - - The following flags can be combined together to - form the colors. - - - - - - - color is blue - - - - - color is green - - - - - color is red - - - - - color is white - - - - - color is yellow - - - - - color is purple - - - - - color is cyan - - - - - color is intensified - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and the color it should be displayed in. - - - - - - Initialize the options for the object - - - - Combine the and together. - - - - - - The mapped foreground color for the specified level - - - - Required property. - The mapped foreground color for the specified level. - - - - - - The mapped background color for the specified level - - - - Required property. - The mapped background color for the specified level. - - - - - - The combined and suitable for - setting the console color. - - - - - Appends logging events to the console. - - - - ConsoleAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes each message to the System.Console.Out or - System.Console.Error that is set at the time the event is appended. - Therefore it is possible to programmatically redirect the output of this appender - (for example NUnit does this to capture program output). While this is the desired - behavior of this appender it may have security implications in your application. - - - Nicko Cadell - Gert Driesen - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - flag set to true to write to the console error stream - - When is set to true, output is written to - the standard error output stream. Otherwise, output is written to the standard - output stream. - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appends log events to the system. - - - - The application configuration file can be used to control what listeners - are actually used. See the MSDN documentation for the - class for details on configuring the - debug system. - - - Events are written using the - method. The event's logger name is passed as the value for the category name to the Write method. - - - Nicko Cadell - - - - Initializes a new instance of the . - - - - Default constructor. - - - - - - Initializes a new instance of the - with a specified layout. - - The layout to use with this appender. - - - Obsolete constructor. - - - - - - Writes the logging event to the system. - - The event to log. - - - Writes the logging event to the system. - If is true then the - is called. - - - - - - Immediate flush means that the underlying writer or output stream - will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logs events are not actually written to persistent media if and - when the application crashes. - - - The default value is true. - - - - - Gets or sets a value that indicates whether the appender will - flush at the end of each write. - - - The default behavior is to flush at the end of each - write. If the option is set tofalse, then the underlying - stream can defer writing to physical medium to a later time. - - - Avoiding the flush operation at the end of each append results - in a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Writes events to the system event log. - - - - The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. - See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog - - - The EventID of the event log entry can be - set using the EventID property () - on the . - - - The Category of the event log entry can be - set using the Category property () - on the . - - - There is a limit of 32K characters for an event log message - - - When configuring the EventLogAppender a mapping can be - specified to map a logging level to an event log entry type. For example: - - - <mapping> - <level value="ERROR" /> - <eventLogEntryType value="Error" /> - </mapping> - <mapping> - <level value="DEBUG" /> - <eventLogEntryType value="Information" /> - </mapping> - - - The Level is the standard log4net logging level and eventLogEntryType can be any value - from the enum, i.e.: - - Erroran error event - Warninga warning event - Informationan informational event - - - - Aspi Havewala - Douglas de la Torre - Nicko Cadell - Gert Driesen - Thomas Voss - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initializes a new instance of the class - with the specified . - - The to use with this appender. - - - Obsolete constructor. - - - - - - Add a mapping of level to - done by the config file - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the event log entry type for a level. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Create an event log source - - - Uses different API calls under NET_2_0 - - - - - This method is called by the - method. - - the event to log - - Writes the event to the system event log using the - . - - If the event has an EventID property (see ) - set then this integer will be used as the event log event id. - - - There is a limit of 32K characters for an event log message - - - - - - Get the equivalent for a - - the Level to convert to an EventLogEntryType - The equivalent for a - - Because there are fewer applicable - values to use in logging levels than there are in the - this is a one way mapping. There is - a loss of information during the conversion. - - - - - The log name is the section in the event logs where the messages - are stored. - - - - - Name of the application to use when logging. This appears in the - application column of the event log named by . - - - - - The name of the machine which holds the event log. This is - currently only allowed to be '.' i.e. the current machine. - - - - - Mapping from level object to EventLogEntryType - - - - - The security context to use for privileged calls - - - - - The event ID to use unless one is explicitly specified via the LoggingEvent's properties. - - - - - The event category to use unless one is explicitly specified via the LoggingEvent's properties. - - - - - The fully qualified type of the EventLogAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - The name of the log where messages will be stored. - - - The string name of the log where messages will be stored. - - - This is the name of the log as it appears in the Event Viewer - tree. The default value is to log into the Application - log, this is where most applications write their events. However - if you need a separate log for your application (or applications) - then you should set the appropriately. - This should not be used to distinguish your event log messages - from those of other applications, the - property should be used to distinguish events. This property should be - used to group together events into a single log. - - - - - - Property used to set the Application name. This appears in the - event logs when logging. - - - The string used to distinguish events from different sources. - - - Sets the event log source property. - - - - - This property is used to return the name of the computer to use - when accessing the event logs. Currently, this is the current - computer, denoted by a dot "." - - - The string name of the machine holding the event log that - will be logged into. - - - This property cannot be changed. It is currently set to '.' - i.e. the local machine. This may be changed in future. - - - - - Gets or sets the used to write to the EventLog. - - - The used to write to the EventLog. - - - - The system security context used to write to the EventLog. - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. - - - - The EventID of the event log entry will normally be - set using the EventID property () - on the . - This property provides the fallback value which defaults to 0. - - - - - - Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. - - - - The Category of the event log entry will normally be - set using the Category property () - on the . - This property provides the fallback value which defaults to 0. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and its event log entry type. - - - - - - The for this entry - - - - Required property. - The for this entry - - - - - - Appends logging events to a file. - - - - Logging events are sent to the file specified by - the property. - - - The file can be opened in either append or overwrite mode - by specifying the property. - If the file path is relative it is taken as relative from - the application base directory. The file encoding can be - specified by setting the property. - - - The layout's and - values will be written each time the file is opened and closed - respectively. If the property is - then the file may contain multiple copies of the header and footer. - - - This appender will first try to open the file for writing when - is called. This will typically be during configuration. - If the file cannot be opened for writing the appender will attempt - to open the file again each time a message is logged to the appender. - If the file cannot be opened for writing when a message is logged then - the message will be discarded by this appender. - - - The supports pluggable file locking models via - the property. - The default behavior, implemented by - is to obtain an exclusive write lock on the file until this appender is closed. - The alternative models only hold a - write lock while the appender is writing a logging event () - or synchronize by using a named system wide Mutex (). - - - All locking strategies have issues and you should seriously consider using a different strategy that - avoids having multiple processes logging to the same file. - - - Nicko Cadell - Gert Driesen - Rodrigo B. de Oliveira - Douglas de la Torre - Niall Daley - - - - Sends logging events to a . - - - - An Appender that writes to a . - - - This appender may be used stand alone if initialized with an appropriate - writer, however it is typically used as a base class for an appender that - can open a to write to. - - - Nicko Cadell - Gert Driesen - Douglas de la Torre - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initializes a new instance of the class and - sets the output destination to a new initialized - with the specified . - - The layout to use with this appender. - The to output to. - - - Obsolete constructor. - - - - - - Initializes a new instance of the class and sets - the output destination to the specified . - - The layout to use with this appender - The to output to - - The must have been previously opened. - - - - Obsolete constructor. - - - - - - This method determines if there is a sense in attempting to append. - - - - This method checks if an output target has been set and if a - layout has been set. - - - false if any of the preconditions fail. - - - - This method is called by the - method. - - The event to log. - - - Writes a log statement to the output stream if the output stream exists - and is writable. - - - The format of the output will depend on the appender's layout. - - - - - - This method is called by the - method. - - The array of events to log. - - - This method writes all the bulk logged events to the output writer - before flushing the stream. - - - - - - Close this appender instance. The underlying stream or writer is also closed. - - - Closed appenders cannot be reused. - - - - - Writes the footer and closes the underlying . - - - - Writes the footer and closes the underlying . - - - - - - Closes the underlying . - - - - Closes the underlying . - - - - - - Clears internal references to the underlying - and other variables. - - - - Subclasses can override this method for an alternate closing behavior. - - - - - - Writes a footer as produced by the embedded layout's property. - - - - Writes a footer as produced by the embedded layout's property. - - - - - - Writes a header produced by the embedded layout's property. - - - - Writes a header produced by the embedded layout's property. - - - - - - Called to allow a subclass to lazily initialize the writer - - - - This method is called when an event is logged and the or - have not been set. This allows a subclass to - attempt to initialize the writer multiple times. - - - - - - This is the where logging events - will be written to. - - - - - Immediate flush means that the underlying - or output stream will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logging events are not actually persisted if and when the application - crashes. - - - The default value is true. - - - - - - The fully qualified type of the TextWriterAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or set whether the appender will flush at the end - of each append operation. - - - - The default behavior is to flush at the end of each - append operation. - - - If this option is set to false, then the underlying - stream can defer persisting the logging event to a later - time. - - - - Avoiding the flush operation at the end of each append results in - a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - Sets the where the log output will go. - - - - The specified must be open and writable. - - - The will be closed when the appender - instance is closed. - - - Note: Logging to an unopened will fail. - - - - - - Gets or set the and the underlying - , if any, for this appender. - - - The for this appender. - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Gets or sets the where logging events - will be written to. - - - The where logging events are written. - - - - This is the where logging events - will be written to. - - - - - - Default constructor - - - - Default constructor - - - - - - Construct a new appender using the layout, file and append mode. - - the layout to use with this appender - the full path to the file to write to - flag to indicate if the file should be appended to - - - Obsolete constructor. - - - - - - Construct a new appender using the layout and file specified. - The file will be appended to. - - the layout to use with this appender - the full path to the file to write to - - - Obsolete constructor. - - - - - - Activate the options on the file appender. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - This will cause the file to be opened. - - - - - - Closes any previously opened file and calls the parent's . - - - - Resets the filename and the file stream. - - - - - - Called to initialize the file writer - - - - Will be called for each logged message until the file is - successfully opened. - - - - - - This method is called by the - method. - - The event to log. - - - Writes a log statement to the output stream if the output stream exists - and is writable. - - - The format of the output will depend on the appender's layout. - - - - - - This method is called by the - method. - - The array of events to log. - - - Acquires the output file locks once before writing all the events to - the stream. - - - - - - Writes a footer as produced by the embedded layout's property. - - - - Writes a footer as produced by the embedded layout's property. - - - - - - Writes a header produced by the embedded layout's property. - - - - Writes a header produced by the embedded layout's property. - - - - - - Closes the underlying . - - - - Closes the underlying . - - - - - - Closes the previously opened file. - - - - Writes the to the file and then - closes the file. - - - - - - Sets and opens the file where the log output will go. The specified file must be writable. - - The path to the log file. Must be a fully qualified path. - If true will append to fileName. Otherwise will truncate fileName - - - Calls but guarantees not to throw an exception. - Errors are passed to the . - - - - - - Sets and opens the file where the log output will go. The specified file must be writable. - - The path to the log file. Must be a fully qualified path. - If true will append to fileName. Otherwise will truncate fileName - - - If there was already an opened file, then the previous file - is closed first. - - - This method will ensure that the directory structure - for the specified exists. - - - - - - Sets the quiet writer used for file output - - the file stream that has been opened for writing - - - This implementation of creates a - over the and passes it to the - method. - - - This method can be overridden by sub classes that want to wrap the - in some way, for example to encrypt the output - data using a System.Security.Cryptography.CryptoStream. - - - - - - Sets the quiet writer being used. - - the writer over the file stream that has been opened for writing - - - This method can be overridden by sub classes that want to - wrap the in some way. - - - - - - Convert a path into a fully qualified path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - - - - Flag to indicate if we should append to the file - or overwrite the file. The default is to append. - - - - - The name of the log file. - - - - - The encoding to use for the file stream. - - - - - The security context to use for privileged calls - - - - - The stream to log to. Has added locking semantics - - - - - The locking model to use - - - - - The fully qualified type of the FileAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the path to the file that logging will be written to. - - - The path to the file that logging will be written to. - - - - If the path is relative it is taken as relative from - the application base directory. - - - - - - Gets or sets a flag that indicates whether the file should be - appended to or overwritten. - - - Indicates whether the file should be appended to or overwritten. - - - - If the value is set to false then the file will be overwritten, if - it is set to true then the file will be appended to. - - The default value is true. - - - - - Gets or sets used to write to the file. - - - The used to write to the file. - - - - The default encoding set is - which is the encoding for the system's current ANSI code page. - - - - - - Gets or sets the used to write to the file. - - - The used to write to the file. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Gets or sets the used to handle locking of the file. - - - The used to lock the file. - - - - Gets or sets the used to handle locking of the file. - - - There are three built in locking models, , and . - The first locks the file from the start of logging to the end, the - second locks only for the minimal amount of time when logging each message - and the last synchronizes processes using a named system wide Mutex. - - - The default locking model is the . - - - - - - Write only that uses the - to manage access to an underlying resource. - - - - - True asynchronous writes are not supported, the implementation forces a synchronous write. - - - - - Exception base type for log4net. - - - - This type extends . It - does not add any new functionality but does differentiate the - type of exception being thrown. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - A message to include with the exception. - - - Initializes a new instance of the class with - the specified message. - - - - - - Constructor - - A message to include with the exception. - A nested exception to include. - - - Initializes a new instance of the class - with the specified message and inner exception. - - - - - - Serialization constructor - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Locking model base class - - - - Base class for the locking models available to the derived loggers. - - - - - - Open the output file - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Acquire the lock on the file in preparation for writing to it. - Return a stream pointing to the file. - must be called to release the lock on the output file. - - - - - - Release the lock on the file - - - - Release the lock on the file. No further writes will be made to the - stream until is called again. - - - - - - Helper method that creates a FileStream under CurrentAppender's SecurityContext. - - - - Typically called during OpenFile or AcquireLock. - - - If the directory portion of the does not exist, it is created - via Directory.CreateDirecctory. - - - - - - - - - - Helper method to close under CurrentAppender's SecurityContext. - - - Does not set to null. - - - - - - Gets or sets the for this LockingModel - - - The for this LockingModel - - - - The file appender this locking model is attached to and working on - behalf of. - - - The file appender is used to locate the security context and the error handler to use. - - - The value of this property will be set before is - called. - - - - - - Hold an exclusive lock on the output file - - - - Open the file once for writing and hold it open until is called. - Maintains an exclusive lock on the file during this time. - - - - - - Open the file specified and prepare for logging. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Does nothing. The lock is already taken - - - - - - Release the lock on the file - - - - Does nothing. The lock will be released when the file is closed. - - - - - - Acquires the file lock for each write - - - - Opens the file once for each / cycle, - thus holding the lock for the minimal amount of time. This method of locking - is considerably slower than but allows - other processes to move/delete the log file whilst logging continues. - - - - - - Prepares to open the file when the first message is logged. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Acquire the lock on the file in preparation for writing to it. - Return a stream pointing to the file. - must be called to release the lock on the output file. - - - - - - Release the lock on the file - - - - Release the lock on the file. No further writes will be made to the - stream until is called again. - - - - - - Provides cross-process file locking. - - Ron Grabowski - Steve Wranovsky - - - - Open the file specified and prepare for logging. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Does nothing. The lock is already taken - - - - - - - - - - - This appender forwards logging events to attached appenders. - - - - The forwarding appender can be used to specify different thresholds - and filters for the same appender at different locations within the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Forward the logging event to the attached appenders - - The event to log. - - - Delivers the logging event to all the attached appenders. - - - - - - Forward the logging events to the attached appenders - - The array of events to log. - - - Delivers the logging events to all the attached appenders. - - - - - - Adds an to the list of appenders of this - instance. - - The to add to this appender. - - - If the specified is already in the list of - appenders, then it won't be added again. - - - - - - Looks for the appender with the specified name. - - The name of the appender to lookup. - - The appender with the specified name, or null. - - - - Get the named appender attached to this appender. - - - - - - Removes all previously added appenders from this appender. - - - - This is useful when re-reading configuration information. - - - - - - Removes the specified appender from the list of appenders. - - The appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Implementation of the interface - - - - - Gets the appenders contained in this appender as an - . - - - If no appenders can be found, then an - is returned. - - - A collection of the appenders in this appender. - - - - - Logs events to a local syslog service. - - - - This appender uses the POSIX libc library functions openlog, syslog, and closelog. - If these functions are not available on the local system then this appender will not work! - - - The functions openlog, syslog, and closelog are specified in SUSv2 and - POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. - - - This appender talks to a local syslog service. If you need to log to a remote syslog - daemon and you cannot configure your local syslog service to do this you may be - able to use the to log via UDP. - - - Syslog messages must have a facility and and a severity. The severity - is derived from the Level of the logging event. - The facility must be chosen from the set of defined syslog - values. The facilities list is predefined - and cannot be extended. - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - Rob Lyon - Nicko Cadell - - - - Initializes a new instance of the class. - - - This instance of the class is set up to write - to a local syslog service. - - - - - Add a mapping of level to severity - - The mapping to add - - - Adds a to this appender. - - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to a remote syslog daemon. - - - The format of the output will depend on the appender's layout. - - - - - - Close the syslog when the appender is closed - - - - Close the syslog when the appender is closed - - - - - - Translates a log4net level to a syslog severity. - - A log4net level. - A syslog severity. - - - Translates a log4net level to a syslog severity. - - - - - - Generate a syslog priority. - - The syslog facility. - The syslog severity. - A syslog priority. - - - - The facility. The default facility is . - - - - - The message identity - - - - - Marshaled handle to the identity string. We have to hold on to the - string as the openlog and syslog APIs just hold the - pointer to the ident and dereference it for each log message. - - - - - Mapping from level object to syslog severity - - - - - Open connection to system logger. - - - - - Generate a log message. - - - - The libc syslog method takes a format string and a variable argument list similar - to the classic printf function. As this type of vararg list is not supported - by C# we need to specify the arguments explicitly. Here we have specified the - format string with a single message argument. The caller must set the format - string to "%s". - - - - - - Close descriptor used to write to system logger. - - - - - Message identity - - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - - - - Syslog facility - - - Set to one of the values. The list of - facilities is predefined and cannot be extended. The default value - is . - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - syslog severities - - - - The log4net Level maps to a syslog severity using the - method and the - class. The severity is set on . - - - - - - system is unusable - - - - - action must be taken immediately - - - - - critical conditions - - - - - error conditions - - - - - warning conditions - - - - - normal but significant condition - - - - - informational - - - - - debug-level messages - - - - - syslog facilities - - - - The syslog facility defines which subsystem the logging comes from. - This is set on the property. - - - - - - kernel messages - - - - - random user-level messages - - - - - mail system - - - - - system daemons - - - - - security/authorization messages - - - - - messages generated internally by syslogd - - - - - line printer subsystem - - - - - network news subsystem - - - - - UUCP subsystem - - - - - clock (cron/at) daemon - - - - - security/authorization messages (private) - - - - - ftp daemon - - - - - NTP subsystem - - - - - log audit - - - - - log alert - - - - - clock daemon - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - - - The mapped syslog severity for the specified level - - - - Required property. - The mapped syslog severity for the specified level - - - - - - Stores logging events in an array. - - - - The memory appender stores all the logging events - that are appended in an in-memory array. - - - Use the method to get - the current list of events that have been appended. - - - Use the method to clear the - current list of events. - - - Julian Biddle - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Gets the events that have been logged. - - The events that have been logged - - - Gets the events that have been logged. - - - - - - This method is called by the method. - - the event to log - - Stores the in the events list. - - - - - Clear the list of events - - - Clear the list of events - - - - - The list of events that have been appended. - - - - - Value indicating which fields in the event should be fixed - - - By default all fields are fixed - - - - - Gets or sets a value indicating whether only part of the logging event - data should be fixed. - - - true if the appender should only fix part of the logging event - data, otherwise false. The default is false. - - - - Setting this property to true will cause only part of the event - data to be fixed and stored in the appender, hereby improving performance. - - - See for more information. - - - - - - Gets or sets the fields that will be fixed in the event - - - - The logging event needs to have certain thread specific values - captured before it can be buffered. See - for details. - - - - - - Logs entries by sending network messages using the - native function. - - - - You can send messages only to names that are active - on the network. If you send the message to a user name, - that user must be logged on and running the Messenger - service to receive the message. - - - The receiver will get a top most window displaying the - messages one at a time, therefore this appender should - not be used to deliver a high volume of messages. - - - The following table lists some possible uses for this appender : - - - - - Action - Property Value(s) - - - Send a message to a user account on the local machine - - - = <name of the local machine> - - - = <user name> - - - - - Send a message to a user account on a remote machine - - - = <name of the remote machine> - - - = <user name> - - - - - Send a message to a domain user account - - - = <name of a domain controller | uninitialized> - - - = <user name> - - - - - Send a message to all the names in a workgroup or domain - - - = <workgroup name | domain name>* - - - - - Send a message from the local machine to a remote machine - - - = <name of the local machine | uninitialized> - - - = <name of the remote machine> - - - - - - - Note : security restrictions apply for sending - network messages, see - for more information. - - - - - An example configuration section to log information - using this appender from the local machine, named - LOCAL_PC, to machine OPERATOR_PC : - - - - - - - - - - Nicko Cadell - Gert Driesen - - - - The DNS or NetBIOS name of the server on which the function is to execute. - - - - - The sender of the network message. - - - - - The message alias to which the message should be sent. - - - - - The security context to use for privileged calls - - - - - Initializes the appender. - - - The default constructor initializes all fields to their default values. - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The appender will be ignored if no was specified. - - - The required property was not specified. - - - - This method is called by the method. - - The event to log. - - - Sends the event using a network message. - - - - - - Sends a buffer of information to a registered message alias. - - The DNS or NetBIOS name of the server on which the function is to execute. - The message alias to which the message buffer should be sent - The originator of the message. - The message text. - The length, in bytes, of the message text. - - - The following restrictions apply for sending network messages: - - - - - Platform - Requirements - - - Windows NT - - - No special group membership is required to send a network message. - - - Admin, Accounts, Print, or Server Operator group membership is required to - successfully send a network message on a remote server. - - - - - Windows 2000 or later - - - If you send a message on a domain controller that is running Active Directory, - access is allowed or denied based on the access control list (ACL) for the securable - object. The default ACL permits only Domain Admins and Account Operators to send a network message. - - - On a member server or workstation, only Administrators and Server Operators can send a network message. - - - - - - - For more information see Security Requirements for the Network Management Functions. - - - - - If the function succeeds, the return value is zero. - - - - - - Gets or sets the sender of the message. - - - The sender of the message. - - - If this property is not specified, the message is sent from the local computer. - - - - - Gets or sets the message alias to which the message should be sent. - - - The recipient of the message. - - - This property should always be specified in order to send a message. - - - - - Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. - - - DNS or NetBIOS name of the remote server on which the function is to execute. - - - - For Windows NT 4.0 and earlier, the string should begin with \\. - - - If this property is not specified, the local computer is used. - - - - - - Gets or sets the used to call the NetSend method. - - - The used to call the NetSend method. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appends log events to the OutputDebugString system. - - - - OutputDebugStringAppender appends log events to the - OutputDebugString system. - - - The string is passed to the native OutputDebugString - function. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Write the logging event to the output debug string API - - the event to log - - - Write the logging event to the output debug string API - - - - - - Stub for OutputDebugString native method - - the string to output - - - Stub for OutputDebugString native method - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Logs events to a remote syslog daemon. - - - - The BSD syslog protocol is used to remotely log to - a syslog daemon. The syslogd listens for for messages - on UDP port 514. - - - The syslog UDP protocol is not authenticated. Most syslog daemons - do not accept remote log messages because of the security implications. - You may be able to use the LocalSyslogAppender to talk to a local - syslog service. - - - There is an RFC 3164 that claims to document the BSD Syslog Protocol. - This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. - This appender generates what the RFC calls an "Original Device Message", - i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation - this format of message will be accepted by all current syslog daemon - implementations. The daemon will attach the current time and the source - hostname or IP address to any messages received. - - - Syslog messages must have a facility and and a severity. The severity - is derived from the Level of the logging event. - The facility must be chosen from the set of defined syslog - values. The facilities list is predefined - and cannot be extended. - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - Rob Lyon - Nicko Cadell - - - - Sends logging events as connectionless UDP datagrams to a remote host or a - multicast group using an . - - - - UDP guarantees neither that messages arrive, nor that they arrive in the correct order. - - - To view the logging results, a custom application can be developed that listens for logging - events. - - - When decoding events send via this appender remember to use the same encoding - to decode the events as was used to send the events. See the - property to specify the encoding to use. - - - - This example shows how to log receive logging events that are sent - on IP address 244.0.0.1 and port 8080 to the console. The event is - encoded in the packet as a unicode string and it is decoded as such. - - IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); - UdpClient udpClient; - byte[] buffer; - string loggingEvent; - - try - { - udpClient = new UdpClient(8080); - - while(true) - { - buffer = udpClient.Receive(ref remoteEndPoint); - loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); - Console.WriteLine(loggingEvent); - } - } - catch(Exception e) - { - Console.WriteLine(e.ToString()); - } - - - Dim remoteEndPoint as IPEndPoint - Dim udpClient as UdpClient - Dim buffer as Byte() - Dim loggingEvent as String - - Try - remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) - udpClient = new UdpClient(8080) - - While True - buffer = udpClient.Receive(ByRef remoteEndPoint) - loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) - Console.WriteLine(loggingEvent) - Wend - Catch e As Exception - Console.WriteLine(e.ToString()) - End Try - - - An example configuration section to log information using this appender to the - IP 224.0.0.1 on port 8080: - - - - - - - - - - Gert Driesen - Nicko Cadell - - - - Initializes a new instance of the class. - - - The default constructor initializes all fields to their default values. - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The appender will be ignored if no was specified or - an invalid remote or local TCP port number was specified. - - - The required property was not specified. - The TCP port number assigned to or is less than or greater than . - - - - This method is called by the method. - - The event to log. - - - Sends the event using an UDP datagram. - - - Exceptions are passed to the . - - - - - - Closes the UDP connection and releases all resources associated with - this instance. - - - - Disables the underlying and releases all managed - and unmanaged resources associated with the . - - - - - - Initializes the underlying connection. - - - - The underlying is initialized and binds to the - port number from which you intend to communicate. - - - Exceptions are passed to the . - - - - - - The IP address of the remote host or multicast group to which - the logging event will be sent. - - - - - The TCP port number of the remote host or multicast group to - which the logging event will be sent. - - - - - The cached remote endpoint to which the logging events will be sent. - - - - - The TCP port number from which the will communicate. - - - - - The instance that will be used for sending the - logging events. - - - - - The encoding to use for the packet. - - - - - Gets or sets the IP address of the remote host or multicast group to which - the underlying should sent the logging event. - - - The IP address of the remote host or multicast group to which the logging event - will be sent. - - - - Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to - 239.255.255.255). Multicast packets can pass across different networks through routers, so - it is possible to use multicasts in an Internet scenario as long as your network provider - supports multicasting. - - - Hosts that want to receive particular multicast messages must register their interest by joining - the multicast group. Multicast messages are not sent to networks where no host has joined - the multicast group. Class D IP addresses are used for multicast groups, to differentiate - them from normal host addresses, allowing nodes to easily detect if a message is of interest. - - - Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: - - - - - IP Address - Description - - - 224.0.0.1 - - - Sends a message to all system on the subnet. - - - - - 224.0.0.2 - - - Sends a message to all routers on the subnet. - - - - - 224.0.0.12 - - - The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. - - - - - - - A complete list of actually reserved multicast addresses and their owners in the ranges - defined by RFC 3171 can be found at the IANA web site. - - - The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative - addresses. These addresses can be reused with other local groups. Routers are typically - configured with filters to prevent multicast traffic in this range from flowing outside - of the local network. - - - - - - Gets or sets the TCP port number of the remote host or multicast group to which - the underlying should sent the logging event. - - - An integer value in the range to - indicating the TCP port number of the remote host or multicast group to which the logging event - will be sent. - - - The underlying will send messages to this TCP port number - on the remote host or multicast group. - - The value specified is less than or greater than . - - - - Gets or sets the TCP port number from which the underlying will communicate. - - - An integer value in the range to - indicating the TCP port number from which the underlying will communicate. - - - - The underlying will bind to this port for sending messages. - - - Setting the value to 0 (the default) will cause the udp client not to bind to - a local port. - - - The value specified is less than or greater than . - - - - Gets or sets used to write the packets. - - - The used to write the packets. - - - - The used to write the packets. - - - - - - Gets or sets the underlying . - - - The underlying . - - - creates a to send logging events - over a network. Classes deriving from can use this - property to get or set this . Use the underlying - returned from if you require access beyond that which - provides. - - - - - Gets or sets the cached remote endpoint to which the logging events should be sent. - - - The cached remote endpoint to which the logging events will be sent. - - - The method will initialize the remote endpoint - with the values of the and - properties. - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Syslog port 514 - - - - - Initializes a new instance of the class. - - - This instance of the class is set up to write - to a remote syslog daemon. - - - - - Add a mapping of level to severity - - The mapping to add - - - Add a mapping to this appender. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to a remote syslog daemon. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to syslog severity mappings set on this appender. - - - - - - Translates a log4net level to a syslog severity. - - A log4net level. - A syslog severity. - - - Translates a log4net level to a syslog severity. - - - - - - Generate a syslog priority. - - The syslog facility. - The syslog severity. - A syslog priority. - - - Generate a syslog priority. - - - - - - The facility. The default facility is . - - - - - The message identity - - - - - Mapping from level object to syslog severity - - - - - Message identity - - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - - - - Syslog facility - - - Set to one of the values. The list of - facilities is predefined and cannot be extended. The default value - is . - - - - - syslog severities - - - - The syslog severities. - - - - - - system is unusable - - - - - action must be taken immediately - - - - - critical conditions - - - - - error conditions - - - - - warning conditions - - - - - normal but significant condition - - - - - informational - - - - - debug-level messages - - - - - syslog facilities - - - - The syslog facilities - - - - - - kernel messages - - - - - random user-level messages - - - - - mail system - - - - - system daemons - - - - - security/authorization messages - - - - - messages generated internally by syslogd - - - - - line printer subsystem - - - - - network news subsystem - - - - - UUCP subsystem - - - - - clock (cron/at) daemon - - - - - security/authorization messages (private) - - - - - ftp daemon - - - - - NTP subsystem - - - - - log audit - - - - - log alert - - - - - clock daemon - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - - - The mapped syslog severity for the specified level - - - - Required property. - The mapped syslog severity for the specified level - - - - - - Delivers logging events to a remote logging sink. - - - - This Appender is designed to deliver events to a remote sink. - That is any object that implements the - interface. It delivers the events using .NET remoting. The - object to deliver events to is specified by setting the - appenders property. - - The RemotingAppender buffers events before sending them. This allows it to - make more efficient use of the remoting infrastructure. - - Once the buffer is full the events are still not sent immediately. - They are scheduled to be sent using a pool thread. The effect is that - the send occurs asynchronously. This is very important for a - number of non obvious reasons. The remoting infrastructure will - flow thread local variables (stored in the ), - if they are marked as , across the - remoting boundary. If the server is not contactable then - the remoting infrastructure will clear the - objects from the . To prevent a logging failure from - having side effects on the calling application the remoting call must be made - from a separate thread to the one used by the application. A - thread is used for this. If no thread is available then - the events will block in the thread pool manager until a thread is available. - - Because the events are sent asynchronously using pool threads it is possible to close - this appender before all the queued events have been sent. - When closing the appender attempts to wait until all the queued events have been sent, but - this will timeout after 30 seconds regardless. - - If this appender is being closed because the - event has fired it may not be possible to send all the queued events. During process - exit the runtime limits the time that a - event handler is allowed to run for. If the runtime terminates the threads before - the queued events have been sent then they will be lost. To ensure that all events - are sent the appender must be closed before the application exits. See - for details on how to shutdown - log4net programmatically. - - - Nicko Cadell - Gert Driesen - Daniel Cazzulino - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Send the contents of the buffer to the remote sink. - - - The events are not sent immediately. They are scheduled to be sent - using a pool thread. The effect is that the send occurs asynchronously. - This is very important for a number of non obvious reasons. The remoting - infrastructure will flow thread local variables (stored in the ), - if they are marked as , across the - remoting boundary. If the server is not contactable then - the remoting infrastructure will clear the - objects from the . To prevent a logging failure from - having side effects on the calling application the remoting call must be made - from a separate thread to the one used by the application. A - thread is used for this. If no thread is available then - the events will block in the thread pool manager until a thread is available. - - The events to send. - - - - Override base class close. - - - - This method waits while there are queued work items. The events are - sent asynchronously using work items. These items - will be sent once a thread pool thread is available to send them, therefore - it is possible to close the appender before all the queued events have been - sent. - - This method attempts to wait until all the queued events have been sent, but this - method will timeout after 30 seconds regardless. - - If the appender is being closed because the - event has fired it may not be possible to send all the queued events. During process - exit the runtime limits the time that a - event handler is allowed to run for. - - - - - A work item is being queued into the thread pool - - - - - A work item from the thread pool has completed - - - - - Send the contents of the buffer to the remote sink. - - - This method is designed to be used with the . - This method expects to be passed an array of - objects in the state param. - - the logging events to send - - - - The URL of the remote sink. - - - - - The local proxy (.NET remoting) for the remote logging sink. - - - - - The number of queued callbacks currently waiting or executing - - - - - Event used to signal when there are no queued work items - - - This event is set when there are no queued work items. In this - state it is safe to close the appender. - - - - - Gets or sets the URL of the well-known object that will accept - the logging events. - - - The well-known URL of the remote sink. - - - - The URL of the remoting sink that will accept logging events. - The sink must implement the - interface. - - - - - - Interface used to deliver objects to a remote sink. - - - This interface must be implemented by a remoting sink - if the is to be used - to deliver logging events to the sink. - - - - - Delivers logging events to the remote sink - - Array of events to log. - - - Delivers logging events to the remote sink - - - - - - Appender that rolls log files based on size or date or both. - - - - RollingFileAppender can roll log files based on size or date or both - depending on the setting of the property. - When set to the log file will be rolled - once its size exceeds the . - When set to the log file will be rolled - once the date boundary specified in the property - is crossed. - When set to the log file will be - rolled once the date boundary specified in the property - is crossed, but within a date boundary the file will also be rolled - once its size exceeds the . - When set to the log file will be rolled when - the appender is configured. This effectively means that the log file can be - rolled once per program execution. - - - A of few additional optional features have been added: - - Attach date pattern for current log file - Backup number increments for newer files - Infinite number of backups by file size - - - - - - For large or infinite numbers of backup files a - greater than zero is highly recommended, otherwise all the backup files need - to be renamed each time a new backup is created. - - - When Date/Time based rolling is used setting - to will reduce the number of file renamings to few or none. - - - - - - Changing or without clearing - the log file directory of backup files will cause unexpected and unwanted side effects. - - - - - If Date/Time based rolling is enabled this appender will attempt to roll existing files - in the directory without a Date/Time tag based on the last write date of the base log file. - The appender only rolls the log file when a message is logged. If Date/Time based rolling - is enabled then the appender will not roll the log file at the Date/Time boundary but - at the point when the next message is logged after the boundary has been crossed. - - - - The extends the and - has the same behavior when opening the log file. - The appender will first try to open the file for writing when - is called. This will typically be during configuration. - If the file cannot be opened for writing the appender will attempt - to open the file again each time a message is logged to the appender. - If the file cannot be opened for writing when a message is logged then - the message will be discarded by this appender. - - - When rolling a backup file necessitates deleting an older backup file the - file to be deleted is moved to a temporary name before being deleted. - - - - - A maximum number of backup files when rolling on date/time boundaries is not supported. - - - - Nicko Cadell - Gert Driesen - Aspi Havewala - Douglas de la Torre - Edward Smit - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - The fully qualified type of the RollingFileAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Sets the quiet writer being used. - - - This method can be overridden by sub classes. - - the writer to set - - - - Write out a logging event. - - the event to write to file. - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Write out an array of logging events. - - the events to write to file. - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Performs any required rolling before outputting the next event - - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Creates and opens the file for logging. If - is false then the fully qualified name is determined and used. - - the name of the file to open - true to append to existing file - - This method will ensure that the directory structure - for the specified exists. - - - - - Get the current output file name - - the base file name - the output file name - - The output file name is based on the base fileName specified. - If is set then the output - file name is the same as the base file passed in. Otherwise - the output file depends on the date pattern, on the count - direction or both. - - - - - Determines curSizeRollBackups (only within the current roll point) - - - - - Generates a wildcard pattern that can be used to find all files - that are similar to the base file name. - - - - - - - Builds a list of filenames for all files matching the base filename plus a file - pattern. - - - - - - - Initiates a roll over if needed for crossing a date boundary since the last run. - - - - - Initializes based on existing conditions at time of . - - - - Initializes based on existing conditions at time of . - The following is done - - determine curSizeRollBackups (only within the current roll point) - initiates a roll over if needed for crossing a date boundary since the last run. - - - - - - - Does the work of bumping the 'current' file counter higher - to the highest count when an incremental file name is seen. - The highest count is either the first file (when count direction - is greater than 0) or the last file (when count direction less than 0). - In either case, we want to know the highest count that is present. - - - - - - - Attempts to extract a number from the end of the file name that indicates - the number of the times the file has been rolled over. - - - Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. - - - - - - - Takes a list of files and a base file name, and looks for - 'incremented' versions of the base file. Bumps the max - count up to the highest count seen. - - - - - - - Calculates the RollPoint for the datePattern supplied. - - the date pattern to calculate the check period for - The RollPoint that is most accurate for the date pattern supplied - - Essentially the date pattern is examined to determine what the - most suitable roll point is. The roll point chosen is the roll point - with the smallest period that can be detected using the date pattern - supplied. i.e. if the date pattern only outputs the year, month, day - and hour then the smallest roll point that can be detected would be - and hourly roll point as minutes could not be detected. - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Sets initial conditions including date/time roll over information, first check, - scheduledFilename, and calls to initialize - the current number of backups. - - - - - - - - - .1, .2, .3, etc. - - - - - Rollover the file(s) to date/time tagged file(s). - - set to true if the file to be rolled is currently open - - - Rollover the file(s) to date/time tagged file(s). - Resets curSizeRollBackups. - If fileIsOpen is set then the new file is opened (through SafeOpenFile). - - - - - - Renames file to file . - - Name of existing file to roll. - New name for file. - - - Renames file to file . It - also checks for existence of target file and deletes if it does. - - - - - - Test if a file exists at a specified path - - the path to the file - true if the file exists - - - Test if a file exists at a specified path - - - - - - Deletes the specified file if it exists. - - The file to delete. - - - Delete a file if is exists. - The file is first moved to a new filename then deleted. - This allows the file to be removed even when it cannot - be deleted, but it still can be moved. - - - - - - Implements file roll base on file size. - - - - If the maximum number of size based backups is reached - (curSizeRollBackups == maxSizeRollBackups) then the oldest - file is deleted -- its index determined by the sign of countDirection. - If countDirection < 0, then files - {File.1, ..., File.curSizeRollBackups -1} - are renamed to {File.2, ..., - File.curSizeRollBackups}. Moreover, File is - renamed File.1 and closed. - - - A new file is created to receive further log output. - - - If maxSizeRollBackups is equal to zero, then the - File is truncated with no backup files created. - - - If maxSizeRollBackups < 0, then File is - renamed if needed and no files are deleted. - - - - - - Implements file roll. - - the base name to rename - - - If the maximum number of size based backups is reached - (curSizeRollBackups == maxSizeRollBackups) then the oldest - file is deleted -- its index determined by the sign of countDirection. - If countDirection < 0, then files - {File.1, ..., File.curSizeRollBackups -1} - are renamed to {File.2, ..., - File.curSizeRollBackups}. - - - If maxSizeRollBackups is equal to zero, then the - File is truncated with no backup files created. - - - If maxSizeRollBackups < 0, then File is - renamed if needed and no files are deleted. - - - This is called by to rename the files. - - - - - - Get the start time of the next window for the current rollpoint - - the current date - the type of roll point we are working with - the start time for the next roll point an interval after the currentDateTime date - - - Returns the date of the next roll point after the currentDateTime date passed to the method. - - - The basic strategy is to subtract the time parts that are less significant - than the rollpoint from the current time. This should roll the time back to - the start of the time window for the current rollpoint. Then we add 1 window - worth of time and get the start time of the next window for the rollpoint. - - - - - - This object supplies the current date/time. Allows test code to plug in - a method to control this class when testing date/time based rolling. The default - implementation uses the underlying value of DateTime.Now. - - - - - The date pattern. By default, the pattern is set to ".yyyy-MM-dd" - meaning daily rollover. - - - - - The actual formatted filename that is currently being written to - or will be the file transferred to on roll over - (based on staticLogFileName). - - - - - The timestamp when we shall next recompute the filename. - - - - - Holds date of last roll over - - - - - The type of rolling done - - - - - The default maximum file size is 10MB - - - - - There is zero backup files by default - - - - - How many sized based backups have been made so far - - - - - The rolling file count direction. - - - - - The rolling mode used in this appender. - - - - - Cache flag set if we are rolling by date. - - - - - Cache flag set if we are rolling by size. - - - - - Value indicating whether to always log to the same file. - - - - - Value indicating whether to preserve the file name extension when rolling. - - - - - FileName provided in configuration. Used for rolling properly - - - - - The 1st of January 1970 in UTC - - - - - Gets or sets the strategy for determining the current date and time. The default - implementation is to use LocalDateTime which internally calls through to DateTime.Now. - DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying - . - - - An implementation of the interface which returns the current date and time. - - - - Gets or sets the used to return the current date and time. - - - There are two built strategies for determining the current date and time, - - and . - - - The default strategy is . - - - - - - Gets or sets the date pattern to be used for generating file names - when rolling over on date. - - - The date pattern to be used for generating file names when rolling - over on date. - - - - Takes a string in the same format as expected by - . - - - This property determines the rollover schedule when rolling over - on date. - - - - - - Gets or sets the maximum number of backup files that are kept before - the oldest is erased. - - - The maximum number of backup files that are kept before the oldest is - erased. - - - - If set to zero, then there will be no backup files and the log file - will be truncated when it reaches . - - - If a negative number is supplied then no deletions will be made. Note - that this could result in very slow performance as a large number of - files are rolled over unless is used. - - - The maximum applies to each time based group of files and - not the total. - - - - - - Gets or sets the maximum size that the output file is allowed to reach - before being rolled over to backup files. - - - The maximum size in bytes that the output file is allowed to reach before being - rolled over to backup files. - - - - This property is equivalent to except - that it is required for differentiating the setter taking a - argument from the setter taking a - argument. - - - The default maximum file size is 10MB (10*1024*1024). - - - - - - Gets or sets the maximum size that the output file is allowed to reach - before being rolled over to backup files. - - - The maximum size that the output file is allowed to reach before being - rolled over to backup files. - - - - This property allows you to specify the maximum size with the - suffixes "KB", "MB" or "GB" so that the size is interpreted being - expressed respectively in kilobytes, megabytes or gigabytes. - - - For example, the value "10KB" will be interpreted as 10240 bytes. - - - The default maximum file size is 10MB. - - - If you have the option to set the maximum file size programmatically - consider using the property instead as this - allows you to set the size in bytes as a . - - - - - - Gets or sets the rolling file count direction. - - - The rolling file count direction. - - - - Indicates if the current file is the lowest numbered file or the - highest numbered file. - - - By default newer files have lower numbers ( < 0), - i.e. log.1 is most recent, log.5 is the 5th backup, etc... - - - >= 0 does the opposite i.e. - log.1 is the first backup made, log.5 is the 5th backup made, etc. - For infinite backups use >= 0 to reduce - rollover costs. - - The default file count direction is -1. - - - - - Gets or sets the rolling style. - - The rolling style. - - - The default rolling style is . - - - When set to this appender's - property is set to false, otherwise - the appender would append to a single file rather than rolling - the file each time it is opened. - - - - - - Gets or sets a value indicating whether to preserve the file name extension when rolling. - - - true if the file name extension should be preserved. - - - - By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. - However, under Windows the new file name will loose any program associations as the - extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or - file.curSizeRollBackup.log to maintain any program associations. - - - - - - Gets or sets a value indicating whether to always log to - the same file. - - - true if always should be logged to the same file, otherwise false. - - - - By default file.log is always the current file. Optionally - file.log.yyyy-mm-dd for current formatted datePattern can by the currently - logging file (or file.log.curSizeRollBackup or even - file.log.yyyy-mm-dd.curSizeRollBackup). - - - This will make time based rollovers with a large number of backups - much faster as the appender it won't have to rename all the backups! - - - - - - Style of rolling to use - - - - Style of rolling to use - - - - - - Roll files once per program execution - - - - Roll files once per program execution. - Well really once each time this appender is - configured. - - - Setting this option also sets AppendToFile to - false on the RollingFileAppender, otherwise - this appender would just be a normal file appender. - - - - - - Roll files based only on the size of the file - - - - - Roll files based only on the date - - - - - Roll files based on both the size and date of the file - - - - - The code assumes that the following 'time' constants are in a increasing sequence. - - - - The code assumes that the following 'time' constants are in a increasing sequence. - - - - - - Roll the log not based on the date - - - - - Roll the log for each minute - - - - - Roll the log for each hour - - - - - Roll the log twice a day (midday and midnight) - - - - - Roll the log each day (midnight) - - - - - Roll the log each week - - - - - Roll the log each month - - - - - This interface is used to supply Date/Time information to the . - - - This interface is used to supply Date/Time information to the . - Used primarily to allow test classes to plug themselves in so they can - supply test date/times. - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Default implementation of that returns the current time. - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Implementation of that returns the current time as the coordinated universal time (UTC). - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Send an e-mail when a specific logging event occurs, typically on errors - or fatal errors. - - - - The number of logging events delivered in this e-mail depend on - the value of option. The - keeps only the last - logging events in its - cyclic buffer. This keeps memory requirements at a reasonable level while - still delivering useful application context. - - - Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. - For these features to be enabled you need to ensure that you are using a version of - the log4net assembly that is built against the MS .NET 1.1 framework and that you are - running the your application on the MS .NET 1.1 runtime. On all other platforms only sending - unauthenticated messages to a server listening on port 25 (the default) is supported. - - - Authentication is supported by setting the property to - either or . - If using authentication then the - and properties must also be set. - - - To set the SMTP server port use the property. The default port is 25. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Default constructor - - - - - - Sends the contents of the cyclic buffer as an e-mail message. - - The logging events to send. - - - - Send the email message - - the body text to include in the mail - - - - Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - - Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses - that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - - Gets or sets a semicolon-delimited list of recipient e-mail addresses - that will be blind carbon copied. - - - A semicolon-delimited list of e-mail addresses. - - - - A semicolon-delimited list of recipient e-mail addresses. - - - - - - Gets or sets the e-mail address of the sender. - - - The e-mail address of the sender. - - - - The e-mail address of the sender. - - - - - - Gets or sets the subject line of the e-mail message. - - - The subject line of the e-mail message. - - - - The subject line of the e-mail message. - - - - - - Gets or sets the name of the SMTP relay mail server to use to send - the e-mail messages. - - - The name of the e-mail relay server. If SmtpServer is not set, the - name of the local SMTP server is used. - - - - The name of the e-mail relay server. If SmtpServer is not set, the - name of the local SMTP server is used. - - - - - - Obsolete - - - Use the BufferingAppenderSkeleton Fix methods instead - - - - Obsolete property. - - - - - - The mode to use to authentication with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - Valid Authentication mode values are: , - , and . - The default value is . When using - you must specify the - and to use to authenticate. - When using the Windows credentials for the current - thread, if impersonating, or the process will be used to authenticate. - - - - - - The username to use to authenticate with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - A and must be specified when - is set to , - otherwise the username will be ignored. - - - - - - The password to use to authenticate with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - A and must be specified when - is set to , - otherwise the password will be ignored. - - - - - - The port on which the SMTP server is listening - - - Server Port is only available on the MS .NET 1.1 runtime. - - The port on which the SMTP server is listening. The default - port is 25. The Port can only be changed when running on - the MS .NET 1.1 runtime. - - - - - - Gets or sets the priority of the e-mail message - - - One of the values. - - - - Sets the priority of the e-mails generated by this - appender. The default priority is . - - - If you are using this appender to report errors then - you may want to set the priority to . - - - - - - Enable or disable use of SSL when sending e-mail message - - - This is available on MS .NET 2.0 runtime and higher - - - - - Gets or sets the reply-to e-mail address. - - - This is available on MS .NET 2.0 runtime and higher - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Values for the property. - - - - SMTP authentication modes. - - - - - - No authentication - - - - - Basic authentication. - - - Requires a username and password to be supplied - - - - - Integrated authentication - - - Uses the Windows credentials from the current thread or process to authenticate. - - - - - Send an email when a specific logging event occurs, typically on errors - or fatal errors. Rather than sending via smtp it writes a file into the - directory specified by . This allows services such - as the IIS SMTP agent to manage sending the messages. - - - - The configuration for this appender is identical to that of the SMTPAppender, - except that instead of specifying the SMTPAppender.SMTPHost you specify - . - - - The number of logging events delivered in this e-mail depend on - the value of option. The - keeps only the last - logging events in its - cyclic buffer. This keeps memory requirements at a reasonable level while - still delivering useful application context. - - - Niall Daley - Nicko Cadell - - - - Default constructor - - - - Default constructor - - - - - - Sends the contents of the cyclic buffer as an e-mail message. - - The logging events to send. - - - Sends the contents of the cyclic buffer as an e-mail message. - - - - - - Activate the options on this appender. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Convert a path into a fully qualified path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - - - - The security context to use for privileged calls - - - - - Gets or sets a semicolon-delimited list of recipient e-mail addresses. - - - A semicolon-delimited list of e-mail addresses. - - - - A semicolon-delimited list of e-mail addresses. - - - - - - Gets or sets the e-mail address of the sender. - - - The e-mail address of the sender. - - - - The e-mail address of the sender. - - - - - - Gets or sets the subject line of the e-mail message. - - - The subject line of the e-mail message. - - - - The subject line of the e-mail message. - - - - - - Gets or sets the path to write the messages to. - - - - Gets or sets the path to write the messages to. This should be the same - as that used by the agent sending the messages. - - - - - - Gets or sets the used to write to the pickup directory. - - - The used to write to the pickup directory. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appender that allows clients to connect via Telnet to receive log messages - - - - The TelnetAppender accepts socket connections and streams logging messages - back to the client. - The output is provided in a telnet-friendly way so that a log can be monitored - over a TCP/IP socket. - This allows simple remote monitoring of application logging. - - - The default is 23 (the telnet port). - - - Keith Long - Nicko Cadell - - - - Default constructor - - - - Default constructor - - - - - - The fully qualified type of the TelnetAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Overrides the parent method to close the socket handler - - - - Closes all the outstanding connections. - - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Create the socket handler and wait for connections - - - - - - Writes the logging event to each connected client. - - The event to log. - - - Writes the logging event to each connected client. - - - - - - Gets or sets the TCP port number on which this will listen for connections. - - - An integer value in the range to - indicating the TCP port number on which this will listen for connections. - - - - The default value is 23 (the telnet port). - - - The value specified is less than - or greater than . - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Helper class to manage connected clients - - - - The SocketHandler class is used to accept connections from - clients. It is threaded so that clients can connect/disconnect - asynchronously. - - - - - - Opens a new server port on - - the local port to listen on for connections - - - Creates a socket handler on the specified local server port. - - - - - - Sends a string message to each of the connected clients - - the text to send - - - Sends a string message to each of the connected clients - - - - - - Add a client to the internal clients list - - client to add - - - - Remove a client from the internal clients list - - client to remove - - - - Callback used to accept a connection on the server socket - - The result of the asynchronous operation - - - On connection adds to the list of connections - if there are two many open connections you will be disconnected - - - - - - Close all network connections - - - - Make sure we close all network connections - - - - - - Test if this handler has active connections - - - true if this handler has active connections - - - - This property will be true while this handler has - active connections, that is at least one connection that - the handler will attempt to send a message to. - - - - - - Class that represents a client connected to this handler - - - - Class that represents a client connected to this handler - - - - - - Create this for the specified - - the client's socket - - - Opens a stream writer on the socket. - - - - - - Write a string to the client - - string to send - - - Write a string to the client - - - - - - Cleanup the clients connection - - - - Close the socket connection. - - - - - - Appends log events to the system. - - - - The application configuration file can be used to control what listeners - are actually used. See the MSDN documentation for the - class for details on configuring the - trace system. - - - Events are written using the System.Diagnostics.Trace.Write(string,string) - method. The event's logger name is the default value for the category parameter - of the Write method. - - - Compact Framework
    - The Compact Framework does not support the - class for any operation except Assert. When using the Compact Framework this - appender will write to the system rather than - the Trace system. This appender will therefore behave like the . -
    -
    - Douglas de la Torre - Nicko Cadell - Gert Driesen - Ron Grabowski -
    - - - Initializes a new instance of the . - - - - Default constructor. - - - - - - Initializes a new instance of the - with a specified layout. - - The layout to use with this appender. - - - Obsolete constructor. - - - - - - Writes the logging event to the system. - - The event to log. - - - Writes the logging event to the system. - - - - - - Immediate flush means that the underlying writer or output stream - will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logs events are not actually written to persistent media if and - when the application crashes. - - - The default value is true. - - - - - Defaults to %logger - - - - - Gets or sets a value that indicates whether the appender will - flush at the end of each write. - - - The default behavior is to flush at the end of each - write. If the option is set tofalse, then the underlying - stream can defer writing to physical medium to a later time. - - - Avoiding the flush operation at the end of each append results - in a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - - The category parameter sent to the Trace method. - - - - Defaults to %logger which will use the logger name of the current - as the category parameter. - - - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Assembly level attribute that specifies a domain to alias to this assembly's repository. - - - - AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. - - - An assembly's logger repository is defined by its , - however this can be overridden by an assembly loaded before the target assembly. - - - An assembly can alias another assembly's domain to its repository by - specifying this attribute with the name of the target domain. - - - This attribute can only be specified on the assembly and may be used - as many times as necessary to alias all the required domains. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute that specifies a repository to alias to this assembly's repository. - - - - An assembly's logger repository is defined by its , - however this can be overridden by an assembly loaded before the target assembly. - - - An assembly can alias another assembly's repository to its repository by - specifying this attribute with the name of the target repository. - - - This attribute can only be specified on the assembly and may be used - as many times as necessary to alias all the required repositories. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class with - the specified repository to alias to this assembly's repository. - - The repository to alias to this assemby's repository. - - - Initializes a new instance of the class with - the specified repository to alias to this assembly's repository. - - - - - - Gets or sets the repository to alias to this assemby's repository. - - - The repository to alias to this assemby's repository. - - - - The name of the repository to alias to this assemby's repository. - - - - - - Initializes a new instance of the class with - the specified domain to alias to this assembly's repository. - - The domain to alias to this assemby's repository. - - - Obsolete. Use instead of . - - - - - - Use this class to quickly configure a . - - - - Allows very simple programmatic configuration of log4net. - - - Only one appender can be configured using this configurator. - The appender is set at the root of the hierarchy and all logging - events will be delivered to that appender. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - The fully qualified type of the BasicConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Initializes the log4net system with a default configuration. - - - - Initializes the log4net logging system using a - that will write to Console.Out. The log messages are - formatted using the layout object - with the - layout style. - - - - - - Initializes the log4net system using the specified appender. - - The appender to use to log all logging events. - - - Initializes the log4net system using the specified appender. - - - - - - Initializes the log4net system using the specified appenders. - - The appenders to use to log all logging events. - - - Initializes the log4net system using the specified appenders. - - - - - - Initializes the with a default configuration. - - The repository to configure. - - - Initializes the specified repository using a - that will write to Console.Out. The log messages are - formatted using the layout object - with the - layout style. - - - - - - Initializes the using the specified appender. - - The repository to configure. - The appender to use to log all logging events. - - - Initializes the using the specified appender. - - - - - - Initializes the using the specified appenders. - - The repository to configure. - The appenders to use to log all logging events. - - - Initializes the using the specified appender. - - - - - - Base class for all log4net configuration attributes. - - - This is an abstract class that must be extended by - specific configurators. This attribute allows the - configurator to be parameterized by an assembly level - attribute. - - Nicko Cadell - Gert Driesen - - - - Constructor used by subclasses. - - the ordering priority for this configurator - - - The is used to order the configurator - attributes before they are invoked. Higher priority configurators are executed - before lower priority ones. - - - - - - Configures the for the specified assembly. - - The assembly that this attribute was defined on. - The repository to configure. - - - Abstract method implemented by a subclass. When this method is called - the subclass should configure the . - - - - - - Compare this instance to another ConfiguratorAttribute - - the object to compare to - see - - - Compares the priorities of the two instances. - Sorts by priority in descending order. Objects with the same priority are - randomly ordered. - - - - - - Assembly level attribute that specifies the logging domain for the assembly. - - - - DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - Assemblies are mapped to logging domains. Each domain has its own - logging repository. This attribute specified on the assembly controls - the configuration of the domain. The property specifies the name - of the domain that this assembly is a part of. The - specifies the type of the repository objects to create for the domain. If - this attribute is not specified and a is not specified - then the assembly will be part of the default shared logging domain. - - - This attribute can only be specified on the assembly and may only be used - once per assembly. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute that specifies the logging repository for the assembly. - - - - Assemblies are mapped to logging repository. This attribute specified - on the assembly controls - the configuration of the repository. The property specifies the name - of the repository that this assembly is a part of. The - specifies the type of the object - to create for the assembly. If this attribute is not specified or a - is not specified then the assembly will be part of the default shared logging repository. - - - This attribute can only be specified on the assembly and may only be used - once per assembly. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initialize a new instance of the class - with the name of the repository. - - The name of the repository. - - - Initialize the attribute with the name for the assembly's repository. - - - - - - Gets or sets the name of the logging repository. - - - The string name to use as the name of the repository associated with this - assembly. - - - - This value does not have to be unique. Several assemblies can share the - same repository. They will share the logging configuration of the repository. - - - - - - Gets or sets the type of repository to create for this assembly. - - - The type of repository to create for this assembly. - - - - The type of the repository to create for the assembly. - The type must implement the - interface. - - - This will be the type of repository created when - the repository is created. If multiple assemblies reference the - same repository then the repository is only created once using the - of the first assembly to call into the - repository. - - - - - - Initializes a new instance of the class. - - - - Obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - - - - Initialize a new instance of the class - with the name of the domain. - - The name of the domain. - - - Obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - - - - Use this class to initialize the log4net environment using an Xml tree. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - Configures a using an Xml tree. - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - - - Automatically configures the log4net system based on the - application's configuration settings. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - 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 - log4net that contains the configuration data. - - - - - Automatically configures the using settings - stored in the application's configuration file. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - 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 - log4net that contains the configuration data. - - The repository to configure. - - - - Configures log4net using a log4net element - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - Loads the log4net configuration from the XML element - supplied as . - - The element to parse. - - - - Configures the using the specified XML - element. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - Loads the log4net configuration from the XML element - supplied as . - - The repository to configure. - The element to parse. - - - - Configures log4net using the specified configuration file. - - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures log4net using the specified configuration file. - - A stream to load the XML configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The stream to load the XML configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures log4net using the file specified, monitors the file for changes - and reloads the configuration if a change is detected. - - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the using the file specified, - monitors the file for changes and reloads the configuration if a change - is detected. - - The repository to configure. - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Assembly level attribute to configure the . - - - - AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute to configure the . - - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - If neither of the or - properties are set the configuration is loaded from the application's .config file. - If set the property takes priority over the - property. The property - specifies a path to a file to load the config from. The path is relative to the - application's base directory; . - The property is used as a postfix to the assembly file name. - The config file must be located in the application's base directory; . - For example in a console application setting the to - config has the same effect as not specifying the or - properties. - - - The property can be set to cause the - to watch the configuration file for changes. - - - - Log4net will only look for assembly level configuration attributes once. - When using the log4net assembly level attributes to control the configuration - of log4net you must ensure that the first call to any of the - methods is made from the assembly with the configuration - attributes. - - - If you cannot guarantee the order in which log4net calls will be made from - different assemblies you must use programmatic configuration instead, i.e. - call the method directly. - - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Default constructor - - - - - - Configures the for the specified assembly. - - The assembly that this attribute was defined on. - The repository to configure. - - - Configure the repository using the . - The specified must extend the - class otherwise the will not be able to - configure it. - - - The does not extend . - - - - Attempt to load configuration from the local file system - - The assembly that this attribute was defined on. - The repository to configure. - - - - Configure the specified repository using a - - The repository to configure. - the FileInfo pointing to the config file - - - - Attempt to load configuration from a URI - - The assembly that this attribute was defined on. - The repository to configure. - - - - The fully qualified type of the XmlConfiguratorAttribute class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the filename of the configuration file. - - - The filename of the configuration file. - - - - If specified, this is the name of the configuration file to use with - the . This file path is relative to the - application base directory (). - - - The takes priority over the . - - - - - - Gets or sets the extension of the configuration file. - - - The extension of the configuration file. - - - - If specified this is the extension for the configuration file. - The path to the config file is built by using the application - base directory (), - the assembly file name and the config file extension. - - - If the is set to MyExt then - possible config file names would be: MyConsoleApp.exe.MyExt or - MyClassLibrary.dll.MyExt. - - - The takes priority over the . - - - - - - Gets or sets a value indicating whether to watch the configuration file. - - - true if the configuration should be watched, false otherwise. - - - - If this flag is specified and set to true then the framework - will watch the configuration file and will reload the config each time - the file is modified. - - - The config file can only be watched if it is loaded from local disk. - In a No-Touch (Smart Client) deployment where the application is downloaded - from a web server the config file may not reside on the local disk - and therefore it may not be able to watch it. - - - Watching configuration is not supported on the SSCLI. - - - - - - Class to register for the log4net section of the configuration file - - - The log4net section of the configuration file needs to have a section - handler registered. This is the section handler used. It simply returns - the XML element that is the root of the section. - - - Example of registering the log4net section handler : - - - -
    - - - log4net configuration XML goes here - - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Parses the configuration section. - - The configuration settings in a corresponding parent configuration section. - The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. - The for the log4net section. - The for the log4net section. - - - Returns the containing the configuration data, - - - - - - Assembly level attribute that specifies a plugin to attach to - the repository. - - - - Specifies the type of a plugin to create and attach to the - assembly's repository. The plugin type must implement the - interface. - - - Nicko Cadell - Gert Driesen - - - - Interface used to create plugins. - - - - Interface used to create a plugin. - - - Nicko Cadell - Gert Driesen - - - - Creates the plugin object. - - the new plugin instance - - - Create and return a new plugin instance. - - - - - - Initializes a new instance of the class - with the specified type. - - The type name of plugin to create. - - - Create the attribute with the plugin type specified. - - - Where possible use the constructor that takes a . - - - - - - Initializes a new instance of the class - with the specified type. - - The type of plugin to create. - - - Create the attribute with the plugin type specified. - - - - - - Creates the plugin object defined by this attribute. - - - - Creates the instance of the object as - specified by this attribute. - - - The plugin object. - - - - Returns a representation of the properties of this object. - - - - Overrides base class method to - return a representation of the properties of this object. - - - A representation of the properties of this object - - - - Gets or sets the type for the plugin. - - - The type for the plugin. - - - - The type for the plugin. - - - - - - Gets or sets the type name for the plugin. - - - The type name for the plugin. - - - - The type name for the plugin. - - - Where possible use the property instead. - - - - - - Assembly level attribute to configure the . - - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - Nicko Cadell - - - - Construct provider attribute with type specified - - the type of the provider to use - - - The provider specified must subclass the - class. - - - - - - Configures the SecurityContextProvider - - The assembly that this attribute was defined on. - The repository to configure. - - - Creates a provider instance from the specified. - Sets this as the default security context provider . - - - - - - The fully qualified type of the SecurityContextProviderAttribute class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the type of the provider to use. - - - the type of the provider to use. - - - - The provider specified must subclass the - class. - - - - - - Use this class to initialize the log4net environment using an Xml tree. - - - - Configures a using an Xml tree. - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - - - Automatically configures the log4net system based on the - application's configuration settings. - - - - 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 - log4net that contains the configuration data. - - - To use this method to configure log4net you must specify - the section - handler for the log4net configuration section. See the - for an example. - - - - - - - Automatically configures the using settings - stored in the application's configuration file. - - - - 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 - log4net that contains the configuration data. - - - To use this method to configure log4net you must specify - the section - handler for the log4net configuration section. See the - for an example. - - - The repository to configure. - - - - Configures log4net using a log4net element - - - - Loads the log4net configuration from the XML element - supplied as . - - - The element to parse. - - - - Configures the using the specified XML - element. - - - Loads the log4net configuration from the XML element - supplied as . - - The repository to configure. - The element to parse. - - - - Configures log4net using the specified configuration file. - - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The first element matching <configuration> will be read as the - configuration. If this file is also a .NET .config file then you must specify - a configuration section for the log4net element otherwise .NET will - complain. Set the type for the section handler to , for example: - - -
    - - - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures log4net using the specified configuration URI. - - A URI to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The must support the URI scheme specified. - - - - - - Configures log4net using the specified configuration data stream. - - A stream to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The first element matching <configuration> will be read as the - configuration. If this file is also a .NET .config file then you must specify - a configuration section for the log4net element otherwise .NET will - complain. Set the type for the section handler to , for example: - - -
    - - - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures the using the specified configuration - URI. - - The repository to configure. - A URI to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The must support the URI scheme specified. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The stream to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures log4net using the file specified, monitors the file for changes - and reloads the configuration if a change is detected. - - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the using the file specified, - monitors the file for changes and reloads the configuration if a change - is detected. - - The repository to configure. - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the specified repository using a log4net element. - - The hierarchy to configure. - The element to parse. - - - Loads the log4net configuration from the XML element - supplied as . - - - This method is ultimately called by one of the Configure methods - to load the configuration from an . - - - - - - Maps repository names to ConfigAndWatchHandler instances to allow a particular - ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is - reconfigured. - - - - - The fully qualified type of the XmlConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Class used to watch config files. - - - - Uses the to monitor - changes to a specified file. Because multiple change notifications - may be raised when the file is modified, a timer is used to - compress the notifications into a single event. The timer - waits for time before delivering - the event notification. If any further - change notifications arrive while the timer is waiting it - is reset and waits again for to - elapse. - - - - - - The default amount of time to wait after receiving notification - before reloading the config file. - - - - - Holds the FileInfo used to configure the XmlConfigurator - - - - - Holds the repository being configured. - - - - - The timer used to compress the notification events. - - - - - Watches file for changes. This object should be disposed when no longer - needed to free system handles on the watched resources. - - - - - Initializes a new instance of the class to - watch a specified config file used to configure a repository. - - The repository to configure. - The configuration file to watch. - - - Initializes a new instance of the class. - - - - - - Event handler used by . - - The firing the event. - The argument indicates the file that caused the event to be fired. - - - This handler reloads the configuration from the file when the event is fired. - - - - - - Event handler used by . - - The firing the event. - The argument indicates the file that caused the event to be fired. - - - This handler reloads the configuration from the file when the event is fired. - - - - - - Called by the timer when the configuration has been updated. - - null - - - - Release the handles held by the watcher and timer. - - - - - The implementation of the interface suitable - for use with the compact framework - - - - This implementation is a simple - mapping between repository name and - object. - - - The .NET Compact Framework 1.0 does not support retrieving assembly - level attributes therefore unlike the DefaultRepositorySelector - this selector does not examine the calling assembly for attributes. - - - Nicko Cadell - - - - Interface used by the to select the . - - - - The uses a - to specify the policy for selecting the correct - to return to the caller. - - - Nicko Cadell - Gert Driesen - - - - Gets the for the specified assembly. - - The assembly to use to lookup to the - The for the assembly. - - - Gets the for the specified assembly. - - - How the association between and - is made is not defined. The implementation may choose any method for - this association. The results of this method must be repeatable, i.e. - when called again with the same arguments the result must be the - save value. - - - - - - Gets the named . - - The name to use to lookup to the . - The named - - Lookup a named . This is the repository created by - calling . - - - - - Creates a new repository for the assembly specified. - - The assembly to use to create the domain to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the domain - specified such that a call to with the - same assembly specified will return the same repository instance. - - - How the association between and - is made is not defined. The implementation may choose any method for - this association. - - - - - - Creates a new repository with the name specified. - - The name to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the name - specified such that a call to with the - same name will return the same repository instance. - - - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets an array of all currently defined repositories. - - - An array of the instances created by - this . - - - Gets an array of all of the repositories created by this selector. - - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - Create a new repository selector - - the type of the repositories to create, must implement - - - Create an new compact repository selector. - The default type for repositories must be specified, - an appropriate value would be . - - - throw if is null - throw if does not implement - - - - Get the for the specified assembly - - not used - The default - - - The argument is not used. This selector does not create a - separate repository for each assembly. - - - As a named repository is not specified the default repository is - returned. The default repository is named log4net-default-repository. - - - - - - Get the named - - the name of the repository to lookup - The named - - - Get the named . The default - repository is log4net-default-repository. Other repositories - must be created using the . - If the named repository does not exist an exception is thrown. - - - throw if is null - throw if the does not exist - - - - Create a new repository for the assembly specified - - not used - the type of repository to create, must implement - the repository created - - - The argument is not used. This selector does not create a - separate repository for each assembly. - - - If the is null then the - default repository type specified to the constructor is used. - - - As a named repository is not specified the default repository is - returned. The default repository is named log4net-default-repository. - - - - - - Create a new repository for the repository specified - - the repository to associate with the - the type of repository to create, must implement . - If this param is null then the default repository type is used. - the repository created - - - The created will be associated with the repository - specified such that a call to with the - same repository specified will return the same repository instance. - - - If the named repository already exists an exception will be thrown. - - - If is null then the default - repository type specified to the constructor is used. - - - throw if is null - throw if the already exists - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets a list of objects - - an array of all known objects - - - Gets an array of all of the repositories created by this selector. - - - - - - The fully qualified type of the CompactRepositorySelector class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Notify the registered listeners that the repository has been created - - The repository that has been created - - - Raises the LoggerRepositoryCreatedEvent - event. - - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - The default implementation of the interface. - - - - Uses attributes defined on the calling assembly to determine how to - configure the hierarchy for the repository. - - - Nicko Cadell - Gert Driesen - - - - Creates a new repository selector. - - The type of the repositories to create, must implement - - - Create an new repository selector. - The default type for repositories must be specified, - an appropriate value would be . - - - is . - does not implement . - - - - Gets the for the specified assembly. - - The assembly use to lookup the . - - - The type of the created and the repository - to create can be overridden by specifying the - attribute on the . - - - The default values are to use the - implementation of the interface and to use the - as the name of the repository. - - - The created will be automatically configured using - any attributes defined on - the . - - - The for the assembly - is . - - - - Gets the for the specified repository. - - The repository to use to lookup the . - The for the specified repository. - - - Returns the named repository. If is null - a is thrown. If the repository - does not exist a is thrown. - - - Use to create a repository. - - - is . - does not exist. - - - - Create a new repository for the assembly specified - - the assembly to use to create the repository to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The type of the created and - the repository to create can be overridden by specifying the - attribute on the - . The default values are to use the - implementation of the - interface and to use the - as the name of the repository. - - - The created will be automatically - configured using any - attributes defined on the . - - - If a repository for the already exists - that repository will be returned. An error will not be raised and that - repository may be of a different type to that specified in . - Also the attribute on the - assembly may be used to override the repository type specified in - . - - - is . - - - - Creates a new repository for the assembly specified. - - the assembly to use to create the repository to associate with the . - The type of repository to create, must implement . - The name to assign to the created repository - Set to true to read and apply the assembly attributes - The repository created. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The type of the created and - the repository to create can be overridden by specifying the - attribute on the - . The default values are to use the - implementation of the - interface and to use the - as the name of the repository. - - - The created will be automatically - configured using any - attributes defined on the . - - - If a repository for the already exists - that repository will be returned. An error will not be raised and that - repository may be of a different type to that specified in . - Also the attribute on the - assembly may be used to override the repository type specified in - . - - - is . - - - - Creates a new repository for the specified repository. - - The repository to associate with the . - The type of repository to create, must implement . - If this param is then the default repository type is used. - The new repository. - - - The created will be associated with the repository - specified such that a call to with the - same repository specified will return the same repository instance. - - - is . - already exists. - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets a list of objects - - an array of all known objects - - - Gets an array of all of the repositories created by this selector. - - - - - - Aliases a repository to an existing repository. - - The repository to alias. - The repository that the repository is aliased to. - - - The repository specified will be aliased to the repository when created. - The repository must not already exist. - - - When the repository is created it must utilize the same repository type as - the repository it is aliased to, otherwise the aliasing will fail. - - - - is . - -or- - is . - - - - - Notifies the registered listeners that the repository has been created. - - The repository that has been created. - - - Raises the event. - - - - - - Gets the repository name and repository type for the specified assembly. - - The assembly that has a . - in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. - in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. - is . - - - - Configures the repository using information from the assembly. - - The assembly containing - attributes which define the configuration for the repository. - The repository to configure. - - is . - -or- - is . - - - - - Loads the attribute defined plugins on the assembly. - - The assembly that contains the attributes. - The repository to add the plugins to. - - is . - -or- - is . - - - - - Loads the attribute defined aliases on the assembly. - - The assembly that contains the attributes. - The repository to alias to. - - is . - -or- - is . - - - - - The fully qualified type of the DefaultRepositorySelector class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - Defined error codes that can be passed to the method. - - - - Values passed to the method. - - - Nicko Cadell - - - - A general error - - - - - Error while writing output - - - - - Failed to flush file - - - - - Failed to close file - - - - - Unable to open output file - - - - - No layout specified - - - - - Failed to parse address - - - - - An evaluator that triggers on an Exception type - - - - This evaluator will trigger if the type of the Exception - passed to - is equal to a Type in . /// - - - Drew Schaeffer - - - - Test if an triggers an action - - - - Implementations of this interface allow certain appenders to decide - when to perform an appender specific action. - - - The action or behavior triggered is defined by the implementation. - - - Nicko Cadell - - - - Test if this event triggers the action - - The event to check - true if this event triggers the action, otherwise false - - - Return true if this event triggers the action - - - - - - The type that causes the trigger to fire. - - - - - Causes subclasses of to cause the trigger to fire. - - - - - Default ctor to allow dynamic creation through a configurator. - - - - - Constructs an evaluator and initializes to trigger on - - the type that triggers this evaluator. - If true, this evaluator will trigger on subclasses of . - - - - Is this the triggering event? - - The event to check - This method returns true, if the logging event Exception - Type is . - Otherwise it returns false - - - This evaluator will trigger if the Exception Type of the event - passed to - is . - - - - - - The type that triggers this evaluator. - - - - - If true, this evaluator will trigger on subclasses of . - - - - - Appenders may delegate their error handling to an . - - - - Error handling is a particularly tedious to get right because by - definition errors are hard to predict and to reproduce. - - - Nicko Cadell - Gert Driesen - - - - Handles the error and information about the error condition is passed as - a parameter. - - The message associated with the error. - The that was thrown when the error occurred. - The error code associated with the error. - - - Handles the error and information about the error condition is passed as - a parameter. - - - - - - Prints the error message passed as a parameter. - - The message associated with the error. - The that was thrown when the error occurred. - - - See . - - - - - - Prints the error message passed as a parameter. - - The message associated with the error. - - - See . - - - - - - Interface for objects that require fixing. - - - - Interface that indicates that the object requires fixing before it - can be taken outside the context of the appender's - method. - - - When objects that implement this interface are stored - in the context properties maps - and - are fixed - (see ) the - method will be called. - - - Nicko Cadell - - - - Get a portable version of this object - - the portable instance of this object - - - Get a portable instance object that represents the current - state of this object. The portable object can be stored - and logged from any thread with identical results. - - - - - - Interface that all loggers implement - - - - This interface supports logging events and testing if a level - is enabled for logging. - - - These methods will not throw exceptions. Note to implementor, ensure - that the implementation of these methods cannot allow an exception - to be thrown to the caller. - - - Nicko Cadell - Gert Driesen - - - - This generic form is intended to be used by wrappers. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - the exception to log, including its stack trace. Pass null to not log an exception. - - - Generates a logging event for the specified using - the and . - - - - - - This is the most generic printing method that is intended to be used - by wrappers. - - The event being logged. - - - Logs the specified logging event through this logger. - - - - - - Checks if this logger is enabled for a given passed as parameter. - - The level to check. - - true if this logger is enabled for level, otherwise false. - - - - Test if this logger is going to log events of the specified . - - - - - - Gets the name of the logger. - - - The name of the logger. - - - - The name of this logger - - - - - - Gets the where this - Logger instance is attached to. - - - The that this logger belongs to. - - - - Gets the where this - Logger instance is attached to. - - - - - - Base interface for all wrappers - - - - Base interface for all wrappers. - - - All wrappers must implement this interface. - - - Nicko Cadell - - - - Get the implementation behind this wrapper object. - - - The object that in implementing this object. - - - - The object that in implementing this - object. The Logger object may not - be the same object as this object because of logger decorators. - This gets the actual underlying objects that is used to process - the log events. - - - - - - Delegate used to handle logger repository creation event notifications - - The which created the repository. - The event args - that holds the instance that has been created. - - - Delegate used to handle logger repository creation event notifications. - - - - - - Provides data for the event. - - - - A - event is raised every time a is created. - - - - - - The created - - - - - Construct instance using specified - - the that has been created - - - Construct instance using specified - - - - - - The that has been created - - - The that has been created - - - - The that has been created - - - - - - Defines the default set of levels recognized by the system. - - - - Each has an associated . - - - Levels have a numeric that defines the relative - ordering between levels. Two Levels with the same - are deemed to be equivalent. - - - The levels that are recognized by log4net are set for each - and each repository can have different levels defined. The levels are stored - in the on the repository. Levels are - looked up by name from the . - - - When logging at level INFO the actual level used is not but - the value of LoggerRepository.LevelMap["INFO"]. The default value for this is - , but this can be changed by reconfiguring the level map. - - - Each level has a in addition to its . The - is the string that is written into the output log. By default - the display name is the same as the level name, but this can be used to alias levels - or to localize the log output. - - - Some of the predefined levels recognized by the system are: - - - - . - - - . - - - . - - - . - - - . - - - . - - - . - - - - Nicko Cadell - Gert Driesen - - - - Constructor - - Integer value for this level, higher values represent more severe levels. - The string name of this level. - The display name for this level. This may be localized or otherwise different from the name - - - Initializes a new instance of the class with - the specified level name and value. - - - - - - Constructor - - Integer value for this level, higher values represent more severe levels. - The string name of this level. - - - Initializes a new instance of the class with - the specified level name and value. - - - - - - Returns the representation of the current - . - - - A representation of the current . - - - - Returns the level . - - - - - - Compares levels. - - The object to compare against. - true if the objects are equal. - - - Compares the levels of instances, and - defers to base class if the target object is not a - instance. - - - - - - Returns a hash code - - A hash code for the current . - - - Returns a hash code suitable for use in hashing algorithms and data - structures like a hash table. - - - Returns the hash code of the level . - - - - - - Compares this instance to a specified object and returns an - indication of their relative values. - - A instance or to compare with this instance. - - A 32-bit signed integer that indicates the relative order of the - values compared. The return value has these meanings: - - - Value - Meaning - - - Less than zero - This instance is less than . - - - Zero - This instance is equal to . - - - Greater than zero - - This instance is greater than . - -or- - is . - - - - - - - must be an instance of - or ; otherwise, an exception is thrown. - - - is not a . - - - - Returns a value indicating whether a specified - is greater than another specified . - - A - A - - true if is greater than - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is less than another specified . - - A - A - - true if is less than - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is greater than or equal to another specified . - - A - A - - true if is greater than or equal to - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is less than or equal to another specified . - - A - A - - true if is less than or equal to - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether two specified - objects have the same value. - - A or . - A or . - - true if the value of is the same as the - value of ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether two specified - objects have different values. - - A or . - A or . - - true if the value of is different from - the value of ; otherwise, false. - - - - Compares two levels. - - - - - - Compares two specified instances. - - The first to compare. - The second to compare. - - A 32-bit signed integer that indicates the relative order of the - two values compared. The return value has these meanings: - - - Value - Meaning - - - Less than zero - is less than . - - - Zero - is equal to . - - - Greater than zero - is greater than . - - - - - - Compares two levels. - - - - - - The level designates a higher level than all the rest. - - - - - The level designates very severe error events. - System unusable, emergencies. - - - - - The level designates very severe error events. - System unusable, emergencies. - - - - - The level designates very severe error events - that will presumably lead the application to abort. - - - - - The level designates very severe error events. - Take immediate action, alerts. - - - - - The level designates very severe error events. - Critical condition, critical. - - - - - The level designates very severe error events. - - - - - The level designates error events that might - still allow the application to continue running. - - - - - The level designates potentially harmful - situations. - - - - - The level designates informational messages - that highlight the progress of the application at the highest level. - - - - - The level designates informational messages that - highlight the progress of the application at coarse-grained level. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates the lowest level possible. - - - - - Gets the name of this level. - - - The name of this level. - - - - Gets the name of this level. - - - - - - Gets the value of this level. - - - The value of this level. - - - - Gets the value of this level. - - - - - - Gets the display name of this level. - - - The display name of this level. - - - - Gets the display name of this level. - - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a LevelCollection instance. - - list to create a readonly wrapper arround - - A LevelCollection wrapper that is read-only. - - - - - Initializes a new instance of the LevelCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the LevelCollection class - that has the specified initial capacity. - - - The number of elements that the new LevelCollection is initially capable of storing. - - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified LevelCollection. - - The LevelCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - Copies the entire LevelCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire LevelCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the LevelCollection. - - The to be added to the end of the LevelCollection. - The index at which the value has been added. - - - - Removes all elements from the LevelCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the LevelCollection. - - The to check for. - true if is found in the LevelCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the LevelCollection. - - The to locate in the LevelCollection. - - The zero-based index of the first occurrence of - in the entire LevelCollection, if found; otherwise, -1. - - - - - Inserts an element into the LevelCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the LevelCollection. - - The to remove from the LevelCollection. - - The specified was not found in the LevelCollection. - - - - - Removes the element at the specified index of the LevelCollection. - - The zero-based index of the element to remove. - - is less than zero - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the LevelCollection. - - An for the entire LevelCollection. - - - - Adds the elements of another LevelCollection to the current LevelCollection. - - The LevelCollection whose elements should be added to the end of the current LevelCollection. - The new of the LevelCollection. - - - - Adds the elements of a array to the current LevelCollection. - - The array whose elements should be added to the end of the LevelCollection. - The new of the LevelCollection. - - - - Adds the elements of a collection to the current LevelCollection. - - The collection whose elements should be added to the end of the LevelCollection. - The new of the LevelCollection. - - - - Sets the capacity to the actual number of elements. - - - - - is less than zero - -or- - is equal to or greater than . - - - - - is less than zero - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the LevelCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - The zero-based index of the element to get or set. - - is less than zero - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false - - - - Gets or sets the number of elements the LevelCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - A value - - - - - Supports simple iteration over a . - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - An evaluator that triggers at a threshold level - - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - Nicko Cadell - - - - The threshold for triggering - - - - - Create a new evaluator using the threshold. - - - - Create a new evaluator using the threshold. - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Create a new evaluator using the specified threshold. - - the threshold to trigger at - - - Create a new evaluator using the specified threshold. - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Is this the triggering event? - - The event to check - This method returns true, if the event level - is equal or higher than the . - Otherwise it returns false - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - the threshold to trigger at - - - The that will cause this evaluator to trigger - - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Mapping between string name and Level object - - - - Mapping between string name and object. - This mapping is held separately for each . - The level name is case insensitive. - - - Nicko Cadell - - - - Mapping from level name to Level object. The - level name is case insensitive - - - - - Construct the level map - - - - Construct the level map. - - - - - - Clear the internal maps of all levels - - - - Clear the internal maps of all levels - - - - - - Create a new Level and add it to the map - - the string to display for the Level - the level value to give to the Level - - - Create a new Level and add it to the map - - - - - - - Create a new Level and add it to the map - - the string to display for the Level - the level value to give to the Level - the display name to give to the Level - - - Create a new Level and add it to the map - - - - - - Add a Level to the map - - the Level to add - - - Add a Level to the map - - - - - - Lookup a named level from the map - - the name of the level to lookup is taken from this level. - If the level is not set on the map then this level is added - the level in the map with the name specified - - - Lookup a named level from the map. The name of the level to lookup is taken - from the property of the - argument. - - - If no level with the specified name is found then the - argument is added to the level map - and returned. - - - - - - Lookup a by name - - The name of the Level to lookup - a Level from the map with the name specified - - - Returns the from the - map with the name specified. If the no level is - found then null is returned. - - - - - - Return all possible levels as a list of Level objects. - - all possible levels as a list of Level objects - - - Return all possible levels as a list of Level objects. - - - - - - The internal representation of caller location information. - - - - This class uses the System.Diagnostics.StackTrace class to generate - a call stack. The caller's information is then extracted from this stack. - - - The System.Diagnostics.StackTrace class is not supported on the - .NET Compact Framework 1.0 therefore caller location information is not - available on that framework. - - - The System.Diagnostics.StackTrace class has this to say about Release builds: - - - "StackTrace information will be most informative with Debug build configurations. - By default, Debug builds include debug symbols, while Release builds do not. The - debug symbols contain most of the file, method name, line number, and column - information used in constructing StackFrame and StackTrace objects. StackTrace - might not report as many method calls as expected, due to code transformations - that occur during optimization." - - - This means that in a Release build the caller information may be incomplete or may - not exist at all! Therefore caller location information cannot be relied upon in a Release build. - - - Nicko Cadell - Gert Driesen - - - - When location information is not available the constant - NA is returned. Current value of this string - constant is ?. - - - - - Constructor - - The declaring type of the method that is - the stack boundary into the logging system for this call. - - - Initializes a new instance of the - class based on the current thread. - - - - - - Constructor - - The fully qualified class name. - The method name. - The file name. - The line number of the method within the file. - - - Initializes a new instance of the - class with the specified data. - - - - - - The fully qualified type of the LocationInfo class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the fully qualified class name of the caller making the logging - request. - - - The fully qualified class name of the caller making the logging - request. - - - - Gets the fully qualified class name of the caller making the logging - request. - - - - - - Gets the file name of the caller. - - - The file name of the caller. - - - - Gets the file name of the caller. - - - - - - Gets the line number of the caller. - - - The line number of the caller. - - - - Gets the line number of the caller. - - - - - - Gets the method name of the caller. - - - The method name of the caller. - - - - Gets the method name of the caller. - - - - - - Gets all available caller information - - - All available caller information, in the format - fully.qualified.classname.of.caller.methodName(Filename:line) - - - - Gets all available caller information, in the format - fully.qualified.classname.of.caller.methodName(Filename:line) - - - - - - Gets the stack frames from the stack trace of the caller making the log request - - - - - Static manager that controls the creation of repositories - - - - Static manager that controls the creation of repositories - - - This class is used by the wrapper managers (e.g. ) - to provide access to the objects. - - - This manager also holds the that is used to - lookup and create repositories. The selector can be set either programmatically using - the property, or by setting the log4net.RepositorySelector - AppSetting in the applications config file to the fully qualified type name of the - selector to use. - - - Nicko Cadell - Gert Driesen - - - - Private constructor to prevent instances. Only static methods should be used. - - - - Private constructor to prevent instances. Only static methods should be used. - - - - - - Hook the shutdown event - - - - On the full .NET runtime, the static constructor hooks up the - AppDomain.ProcessExit and AppDomain.DomainUnload> events. - These are used to shutdown the log4net system as the application exits. - - - - - - Register for ProcessExit and DomainUnload events on the AppDomain - - - - This needs to be in a separate method because the events make - a LinkDemand for the ControlAppDomain SecurityPermission. Because - this is a LinkDemand it is demanded at JIT time. Therefore we cannot - catch the exception in the method itself, we have to catch it in the - caller. - - - - - - Return the default instance. - - the repository to lookup in - Return the default instance - - - Gets the for the repository specified - by the argument. - - - - - - Returns the default instance. - - The assembly to use to lookup the repository. - The default instance. - - - - Return the default instance. - - the repository to lookup in - Return the default instance - - - Gets the for the repository specified - by the argument. - - - - - - Returns the default instance. - - The assembly to use to lookup the repository. - The default instance. - - - Returns the default instance. - - - - - - Returns the named logger if it exists. - - The repository to lookup in. - The fully qualified logger name to look for. - - The logger found, or null if the named logger does not exist in the - specified repository. - - - - If the named logger exists (in the specified repository) then it - returns a reference to the logger, otherwise it returns - null. - - - - - - Returns the named logger if it exists. - - The assembly to use to lookup the repository. - The fully qualified logger name to look for. - - The logger found, or null if the named logger does not exist in the - specified assembly's repository. - - - - If the named logger exists (in the specified assembly's repository) then it - returns a reference to the logger, otherwise it returns - null. - - - - - - Returns all the currently defined loggers in the specified repository. - - The repository to lookup in. - All the defined loggers. - - - The root logger is not included in the returned array. - - - - - - Returns all the currently defined loggers in the specified assembly's repository. - - The assembly to use to lookup the repository. - All the defined loggers. - - - The root logger is not included in the returned array. - - - - - - Retrieves or creates a named logger. - - The repository to lookup in. - The name of the logger to retrieve. - The logger with the name specified. - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - - - - Retrieves or creates a named logger. - - The assembly to use to lookup the repository. - The name of the logger to retrieve. - The logger with the name specified. - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - - - - Shorthand for . - - The repository to lookup in. - The of which the fullname will be used as the name of the logger to retrieve. - The logger with the name specified. - - - Gets the logger for the fully qualified name of the type specified. - - - - - - Shorthand for . - - the assembly to use to lookup the repository - The of which the fullname will be used as the name of the logger to retrieve. - The logger with the name specified. - - - Gets the logger for the fully qualified name of the type specified. - - - - - - Shuts down the log4net system. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in all the - default repositories. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - The repository to shutdown. - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository for the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - The assembly to use to lookup the repository. - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository for the repository. The repository is looked up using - the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Resets all values contained in this repository instance to their defaults. - - The repository to reset. - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - - - - Resets all values contained in this repository instance to their defaults. - - The assembly to use to lookup the repository to reset. - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - - - - Creates a repository with the specified name. - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name. - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The name must be unique. Repositories cannot be redefined. - An Exception will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The name must be unique. Repositories cannot be redefined. - An Exception will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository for the specified assembly and repository type. - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - - - - Creates a repository for the specified assembly and repository type. - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - - - - Gets an array of all currently defined repositories. - - An array of all the known objects. - - - Gets an array of all currently defined repositories. - - - - - - Internal method to get pertinent version info. - - A string of version info. - - - - Called when the event fires - - the that is exiting - null - - - Called when the event fires. - - - When the event is triggered the log4net system is . - - - - - - Called when the event fires - - the that is exiting - null - - - Called when the event fires. - - - When the event is triggered the log4net system is . - - - - - - The fully qualified type of the LoggerManager class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Initialize the default repository selector - - - - - Gets or sets the repository selector used by the . - - - The repository selector used by the . - - - - The repository selector () is used by - the to create and select repositories - (). - - - The caller to supplies either a string name - or an assembly (if not supplied the assembly is inferred using - ). - - - This context is used by the selector to lookup a specific repository. - - - For the full .NET Framework, the default repository is DefaultRepositorySelector; - for the .NET Compact Framework CompactRepositorySelector is the default - repository. - - - - - - Implementation of the interface. - - - - This class should be used as the base for all wrapper implementations. - - - Nicko Cadell - Gert Driesen - - - - Constructs a new wrapper for the specified logger. - - The logger to wrap. - - - Constructs a new wrapper for the specified logger. - - - - - - The logger that this object is wrapping - - - - - Gets the implementation behind this wrapper object. - - - The object that this object is implementing. - - - - The Logger object may not be the same object as this object - because of logger decorators. - - - This gets the actual underlying objects that is used to process - the log events. - - - - - - Portable data structure used by - - - - Portable data structure used by - - - Nicko Cadell - - - - The logger name. - - - - The logger name. - - - - - - Level of logging event. - - - - Level of logging event. Level cannot be Serializable - because it is a flyweight. Due to its special serialization it - cannot be declared final either. - - - - - - The application supplied message. - - - - The application supplied message of logging event. - - - - - - The name of thread - - - - The name of thread in which this logging event was generated - - - - - - The time the event was logged - - - - The TimeStamp is stored in the local time zone for this computer. - - - - - - Location information for the caller. - - - - Location information for the caller. - - - - - - String representation of the user - - - - String representation of the user's windows name, - like DOMAIN\username - - - - - - String representation of the identity. - - - - String representation of the current thread's principal identity. - - - - - - The string representation of the exception - - - - The string representation of the exception - - - - - - String representation of the AppDomain. - - - - String representation of the AppDomain. - - - - - - Additional event specific properties - - - - A logger or an appender may attach additional - properties to specific events. These properties - have a string key and an object value. - - - - - - Flags passed to the property - - - - Flags passed to the property - - - Nicko Cadell - - - - Fix the MDC - - - - - Fix the NDC - - - - - Fix the rendered message - - - - - Fix the thread name - - - - - Fix the callers location information - - - CAUTION: Very slow to generate - - - - - Fix the callers windows user name - - - CAUTION: Slow to generate - - - - - Fix the domain friendly name - - - - - Fix the callers principal name - - - CAUTION: May be slow to generate - - - - - Fix the exception text - - - - - Fix the event properties. Active properties must implement in order to be eligible for fixing. - - - - - No fields fixed - - - - - All fields fixed - - - - - Partial fields fixed - - - - This set of partial fields gives good performance. The following fields are fixed: - - - - - - - - - - - - - The internal representation of logging events. - - - - When an affirmative decision is made to log then a - instance is created. This instance - is passed around to the different log4net components. - - - This class is of concern to those wishing to extend log4net. - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - for incurred by calling but it - is essential to maintaining data consistency. - - - Nicko Cadell - Gert Driesen - Douglas de la Torre - Daniel Cazzulino - - - - The key into the Properties map for the host name value. - - - - - The key into the Properties map for the thread identity value. - - - - - The key into the Properties map for the user name value. - - - - - Initializes a new instance of the class - from the supplied parameters. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - The name of the logger of this event. - The level of this event. - The message of this event. - The exception for this event. - - - Except , and , - all fields of LoggingEvent are filled when actually needed. Call - to cache all data locally - to prevent inconsistencies. - - This method is called by the log4net framework - to create a logging event. - - - - - - Initializes a new instance of the class - using specific data. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - Data used to initialize the logging event. - The fields in the struct that have already been fixed. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - The parameter should be used to specify which fields in the - struct have been preset. Fields not specified in the - will be captured from the environment if requested or fixed. - - - - - - Initializes a new instance of the class - using specific data. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - Data used to initialize the logging event. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - This constructor sets this objects flags to , - this assumes that all the data relating to this event is passed in via the - parameter and no other data should be captured from the environment. - - - - - - Initializes a new instance of the class - using specific data. - - Data used to initialize the logging event. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - This constructor sets this objects flags to , - this assumes that all the data relating to this event is passed in via the - parameter and no other data should be captured from the environment. - - - - - - Serialization constructor - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Ensure that the repository is set. - - the value for the repository - - - - Write the rendered message to a TextWriter - - the writer to write the message to - - - Unlike the property this method - does store the message data in the internal cache. Therefore - if called only once this method should be faster than the - property, however if the message is - to be accessed multiple times then the property will be more efficient. - - - - - - Serializes this object into the provided. - - The to populate with data. - The destination for this serialization. - - - The data in this event must be fixed before it can be serialized. - - - The method must be called during the - method call if this event - is to be used outside that method. - - - - - - Gets the portable data for this . - - The for this event. - - - A new can be constructed using a - instance. - - - Does a fix of the data - in the logging event before returning the event data. - - - - - - Gets the portable data for this . - - The set of data to ensure is fixed in the LoggingEventData - The for this event. - - - A new can be constructed using a - instance. - - - - - - Returns this event's exception's rendered using the - . - - - This event's exception's rendered using the . - - - - Obsolete. Use instead. - - - - - - Returns this event's exception's rendered using the - . - - - This event's exception's rendered using the . - - - - Returns this event's exception's rendered using the - . - - - - - - Fix instance fields that hold volatile data. - - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - incurred by calling but it - is essential to maintaining data consistency. - - - Calling is equivalent to - calling passing the parameter - false. - - - See for more - information. - - - - - - Fixes instance fields that hold volatile data. - - Set to true to not fix data that takes a long time to fix. - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - for incurred by calling but it - is essential to maintaining data consistency. - - - The param controls the data that - is fixed. Some of the data that can be fixed takes a long time to - generate, therefore if you do not require those settings to be fixed - they can be ignored by setting the param - to true. This setting will ignore the - and settings. - - - Set to false to ensure that all - settings are fixed. - - - - - - Fix the fields specified by the parameter - - the fields to fix - - - Only fields specified in the will be fixed. - Fields will not be fixed if they have previously been fixed. - It is not possible to 'unfix' a field. - - - - - - Lookup a composite property in this event - - the key for the property to lookup - the value for the property - - - This event has composite properties that combine together properties from - several different contexts in the following order: - - - this events properties - - This event has that can be set. These - properties are specific to this event only. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - - - Get all the composite properties in this event - - the containing all the properties - - - See for details of the composite properties - stored by the event. - - - This method returns a single containing all the - properties defined for this event. - - - - - - The internal logging event data. - - - - - The internal logging event data. - - - - - The internal logging event data. - - - - - The fully qualified Type of the calling - logger class in the stack frame (i.e. the declaring type of the method). - - - - - The application supplied message of logging event. - - - - - The exception that was thrown. - - - This is not serialized. The string representation - is serialized instead. - - - - - The repository that generated the logging event - - - This is not serialized. - - - - - The fix state for this event - - - These flags indicate which fields have been fixed. - Not serialized. - - - - - Indicated that the internal cache is updateable (ie not fixed) - - - This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler - changes in the caching strategy. - - - - - Gets the time when the current process started. - - - This is the time when this process started. - - - - The TimeStamp is stored in the local time zone for this computer. - - - Tries to get the start time for the current process. - Failing that it returns the time of the first call to - this property. - - - Note that AppDomains may be loaded and unloaded within the - same process without the process terminating and therefore - without the process start time being reset. - - - - - - Gets the of the logging event. - - - The of the logging event. - - - - Gets the of the logging event. - - - - - - Gets the time of the logging event. - - - The time of the logging event. - - - - The TimeStamp is stored in the local time zone for this computer. - - - - - - Gets the name of the logger that logged the event. - - - The name of the logger that logged the event. - - - - Gets the name of the logger that logged the event. - - - - - - Gets the location information for this logging event. - - - The location information for this logging event. - - - - The collected information is cached for future use. - - - See the class for more information on - supported frameworks and the different behavior in Debug and - Release builds. - - - - - - Gets the message object used to initialize this event. - - - The message object used to initialize this event. - - - - Gets the message object used to initialize this event. - Note that this event may not have a valid message object. - If the event is serialized the message object will not - be transferred. To get the text of the message the - property must be used - not this property. - - - If there is no defined message object for this event then - null will be returned. - - - - - - Gets the exception object used to initialize this event. - - - The exception object used to initialize this event. - - - - Gets the exception object used to initialize this event. - Note that this event may not have a valid exception object. - If the event is serialized the exception object will not - be transferred. To get the text of the exception the - method must be used - not this property. - - - If there is no defined exception object for this event then - null will be returned. - - - - - - The that this event was created in. - - - - The that this event was created in. - - - - - - Gets the message, rendered through the . - - - The message rendered through the . - - - - The collected information is cached for future use. - - - - - - Gets the name of the current thread. - - - The name of the current thread, or the thread ID when - the name is not available. - - - - The collected information is cached for future use. - - - - - - Gets the name of the current user. - - - The name of the current user, or NOT AVAILABLE when the - underlying runtime has no support for retrieving the name of the - current user. - - - - Calls WindowsIdentity.GetCurrent().Name to get the name of - the current windows user. - - - To improve performance, we could cache the string representation of - the name, and reuse that as long as the identity stayed constant. - Once the identity changed, we would need to re-assign and re-render - the string. - - - However, the WindowsIdentity.GetCurrent() call seems to - return different objects every time, so the current implementation - doesn't do this type of caching. - - - Timing for these operations: - - - - Method - Results - - - WindowsIdentity.GetCurrent() - 10000 loops, 00:00:00.2031250 seconds - - - WindowsIdentity.GetCurrent().Name - 10000 loops, 00:00:08.0468750 seconds - - - - This means we could speed things up almost 40 times by caching the - value of the WindowsIdentity.GetCurrent().Name property, since - this takes (8.04-0.20) = 7.84375 seconds. - - - - - - Gets the identity of the current thread principal. - - - The string name of the identity of the current thread principal. - - - - Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get - the name of the current thread principal. - - - - - - Gets the AppDomain friendly name. - - - The AppDomain friendly name. - - - - Gets the AppDomain friendly name. - - - - - - Additional event specific properties. - - - Additional event specific properties. - - - - A logger or an appender may attach additional - properties to specific events. These properties - have a string key and an object value. - - - This property is for events that have been added directly to - this event. The aggregate properties (which include these - event properties) can be retrieved using - and . - - - Once the properties have been fixed this property - returns the combined cached properties. This ensures that updates to - this property are always reflected in the underlying storage. When - returning the combined properties there may be more keys in the - Dictionary than expected. - - - - - - The fixed fields in this event - - - The set of fields that are fixed in this event - - - - Fields will not be fixed if they have previously been fixed. - It is not possible to 'unfix' a field. - - - - - - Implementation of wrapper interface. - - - - This implementation of the interface - forwards to the held by the base class. - - - This logger has methods to allow the caller to log at the following - levels: - - - - DEBUG - - The and methods log messages - at the DEBUG level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - INFO - - The and methods log messages - at the INFO level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - WARN - - The and methods log messages - at the WARN level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - ERROR - - The and methods log messages - at the ERROR level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - FATAL - - The and methods log messages - at the FATAL level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - - The values for these levels and their semantic meanings can be changed by - configuring the for the repository. - - - Nicko Cadell - Gert Driesen - - - - The ILog interface is use by application to log messages into - the log4net framework. - - - - Use the to obtain logger instances - that implement this interface. The - static method is used to get logger instances. - - - This class contains methods for logging at different levels and also - has properties for determining if those logging levels are - enabled in the current configuration. - - - This interface can be implemented in different ways. This documentation - specifies reasonable behavior that a caller can expect from the actual - implementation, however different implementations reserve the right to - do things differently. - - - Simple example of logging messages - - ILog log = LogManager.GetLogger("application-log"); - - log.Info("Application Start"); - log.Debug("This is a debug message"); - - if (log.IsDebugEnabled) - { - log.Debug("This is another debug message"); - } - - - - - Nicko Cadell - Gert Driesen - - - Log a message object with the level. - - Log a message object with the level. - - The message object to log. - - - This method first checks if this logger is DEBUG - enabled by comparing the level of this logger with the - level. If this logger is - DEBUG enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of - the additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Logs a message object with the level. - - - - This method first checks if this logger is INFO - enabled by comparing the level of this logger with the - level. If this logger is - INFO enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Logs a message object with the INFO level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Log a message object with the level. - - - - This method first checks if this logger is WARN - enabled by comparing the level of this logger with the - level. If this logger is - WARN enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Logs a message object with the level. - - The message object to log. - - - This method first checks if this logger is ERROR - enabled by comparing the level of this logger with the - level. If this logger is - ERROR enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Log a message object with the level. - - - - This method first checks if this logger is FATAL - enabled by comparing the level of this logger with the - level. If this logger is - FATAL enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - - This function is intended to lessen the computational cost of - disabled log debug statements. - - For some ILog interface log, when you write: - - log.Debug("This is entry number: " + i ); - - - You incur the cost constructing the message, string construction and concatenation in - this case, regardless of whether the message is logged or not. - - - If you are worried about speed (who isn't), then you should write: - - - if (log.IsDebugEnabled) - { - log.Debug("This is entry number: " + i ); - } - - - This way you will not incur the cost of parameter - construction if debugging is disabled for log. On - the other hand, if the log is debug enabled, you - will incur the cost of evaluating whether the logger is debug - enabled twice. Once in and once in - the . This is an insignificant overhead - since evaluating a logger takes about 1% of the time it - takes to actually log. This is the preferred style of logging. - - Alternatively if your logger is available statically then the is debug - enabled state can be stored in a static variable like this: - - - private static readonly bool isDebugEnabled = log.IsDebugEnabled; - - - Then when you come to log you can write: - - - if (isDebugEnabled) - { - log.Debug("This is entry number: " + i ); - } - - - This way the debug enabled state is only queried once - when the class is loaded. Using a private static readonly - variable is the most efficient because it is a run time constant - and can be heavily optimized by the JIT compiler. - - - Of course if you use a static readonly variable to - hold the enabled state of the logger then you cannot - change the enabled state at runtime to vary the logging - that is produced. You have to decide if you need absolute - speed or runtime flexibility. - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Construct a new wrapper for the specified logger. - - The logger to wrap. - - - Construct a new wrapper for the specified logger. - - - - - - Virtual method called when the configuration of the repository changes - - the repository holding the levels - - - Virtual method called when the configuration of the repository changes - - - - - - Logs a message object with the DEBUG level. - - The message object to log. - - - This method first checks if this logger is DEBUG - enabled by comparing the level of this logger with the - DEBUG level. If this logger is - DEBUG enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the DEBUG level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the DEBUG level including - the stack trace of the passed - as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the INFO level. - - The message object to log. - - - This method first checks if this logger is INFO - enabled by comparing the level of this logger with the - INFO level. If this logger is - INFO enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of - the additivity flag. - - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the INFO level. - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the INFO level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the WARN level. - - the message object to log - - - This method first checks if this logger is WARN - enabled by comparing the level of this logger with the - WARN level. If this logger is - WARN enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the WARN level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the WARN level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the ERROR level. - - The message object to log. - - - This method first checks if this logger is ERROR - enabled by comparing the level of this logger with the - ERROR level. If this logger is - ERROR enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the ERROR level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the ERROR level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the FATAL level. - - The message object to log. - - - This method first checks if this logger is FATAL - enabled by comparing the level of this logger with the - FATAL level. If this logger is - FATAL enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the FATAL level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the FATAL level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Event handler for the event - - the repository - Empty - - - - The fully qualified name of this declaring type not the type of any subclass. - - - - - Checks if this logger is enabled for the DEBUG - level. - - - true if this logger is enabled for DEBUG events, - false otherwise. - - - - This function is intended to lessen the computational cost of - disabled log debug statements. - - - For some log Logger object, when you write: - - - log.Debug("This is entry number: " + i ); - - - You incur the cost constructing the message, concatenation in - this case, regardless of whether the message is logged or not. - - - If you are worried about speed, then you should write: - - - if (log.IsDebugEnabled()) - { - log.Debug("This is entry number: " + i ); - } - - - This way you will not incur the cost of parameter - construction if debugging is disabled for log. On - the other hand, if the log is debug enabled, you - will incur the cost of evaluating whether the logger is debug - enabled twice. Once in IsDebugEnabled and once in - the Debug. This is an insignificant overhead - since evaluating a logger takes about 1% of the time it - takes to actually log. - - - - - - Checks if this logger is enabled for the INFO level. - - - true if this logger is enabled for INFO events, - false otherwise. - - - - See for more information and examples - of using this method. - - - - - - - Checks if this logger is enabled for the WARN level. - - - true if this logger is enabled for WARN events, - false otherwise. - - - - See for more information and examples - of using this method. - - - - - - - Checks if this logger is enabled for the ERROR level. - - - true if this logger is enabled for ERROR events, - false otherwise. - - - - See for more information and examples of using this method. - - - - - - - Checks if this logger is enabled for the FATAL level. - - - true if this logger is enabled for FATAL events, - false otherwise. - - - - See for more information and examples of using this method. - - - - - - - A SecurityContext used by log4net when interacting with protected resources - - - - A SecurityContext used by log4net when interacting with protected resources - for example with operating system services. This can be used to impersonate - a principal that has been granted privileges on the system resources. - - - Nicko Cadell - - - - Impersonate this SecurityContext - - State supplied by the caller - An instance that will - revoke the impersonation of this SecurityContext, or null - - - Impersonate this security context. Further calls on the current - thread should now be made in the security context provided - by this object. When the result - method is called the security - context of the thread should be reverted to the state it was in - before was called. - - - - - - The providers default instances. - - - - A configured component that interacts with potentially protected system - resources uses a to provide the elevated - privileges required. If the object has - been not been explicitly provided to the component then the component - will request one from this . - - - By default the is - an instance of which returns only - objects. This is a reasonable default - where the privileges required are not know by the system. - - - This default behavior can be overridden by subclassing the - and overriding the method to return - the desired objects. The default provider - can be replaced by programmatically setting the value of the - property. - - - An alternative is to use the log4net.Config.SecurityContextProviderAttribute - This attribute can be applied to an assembly in the same way as the - log4net.Config.XmlConfiguratorAttribute". The attribute takes - the type to use as the as an argument. - - - Nicko Cadell - - - - The default provider - - - - - Protected default constructor to allow subclassing - - - - Protected default constructor to allow subclassing - - - - - - Create a SecurityContext for a consumer - - The consumer requesting the SecurityContext - An impersonation context - - - The default implementation is to return a . - - - Subclasses should override this method to provide their own - behavior. - - - - - - Gets or sets the default SecurityContextProvider - - - The default SecurityContextProvider - - - - The default provider is used by configured components that - require a and have not had one - given to them. - - - By default this is an instance of - that returns objects. - - - The default provider can be set programmatically by setting - the value of this property to a sub class of - that has the desired behavior. - - - - - - An evaluator that triggers after specified number of seconds. - - - - This evaluator will trigger if the specified time period - has passed since last check. - - - Robert Sevcik - - - - The default time threshold for triggering in seconds. Zero means it won't trigger at all. - - - - - The time threshold for triggering in seconds. Zero means it won't trigger at all. - - - - - The time of last check. This gets updated when the object is created and when the evaluator triggers. - - - - - Create a new evaluator using the time threshold in seconds. - - - - Create a new evaluator using the time threshold in seconds. - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Create a new evaluator using the specified time threshold in seconds. - - - The time threshold in seconds to trigger after. - Zero means it won't trigger at all. - - - - Create a new evaluator using the specified time threshold in seconds. - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Is this the triggering event? - - The event to check - This method returns true, if the specified time period - has passed since last check.. - Otherwise it returns false - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - The time threshold in seconds to trigger after - - - The time threshold in seconds to trigger after. - Zero means it won't trigger at all. - - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Delegate used to handle creation of new wrappers. - - The logger to wrap in a wrapper. - - - Delegate used to handle creation of new wrappers. This delegate - is called from the - method to construct the wrapper for the specified logger. - - - The delegate to use is supplied to the - constructor. - - - - - - Maps between logger objects and wrapper objects. - - - - This class maintains a mapping between objects and - objects. Use the method to - lookup the for the specified . - - - New wrapper instances are created by the - method. The default behavior is for this method to delegate construction - of the wrapper to the delegate supplied - to the constructor. This allows specialization of the behavior without - requiring subclassing of this type. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the - - The handler to use to create the wrapper objects. - - - Initializes a new instance of the class with - the specified handler to create the wrapper objects. - - - - - - Gets the wrapper object for the specified logger. - - The wrapper object for the specified logger - - - If the logger is null then the corresponding wrapper is null. - - - Looks up the wrapper it it has previously been requested and - returns it. If the wrapper has never been requested before then - the virtual method is - called. - - - - - - Creates the wrapper object for the specified logger. - - The logger to wrap in a wrapper. - The wrapper object for the logger. - - - This implementation uses the - passed to the constructor to create the wrapper. This method - can be overridden in a subclass. - - - - - - Called when a monitored repository shutdown event is received. - - The that is shutting down - - - This method is called when a that this - is holding loggers for has signaled its shutdown - event . The default - behavior of this method is to release the references to the loggers - and their wrappers generated for this repository. - - - - - - Event handler for repository shutdown event. - - The sender of the event. - The event args. - - - - Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings - - - - - The handler to use to create the extension wrapper objects. - - - - - Internal reference to the delegate used to register for repository shutdown events. - - - - - Gets the map of logger repositories. - - - Map of logger repositories. - - - - Gets the hashtable that is keyed on . The - values are hashtables keyed on with the - value being the corresponding . - - - - - - Formats a as "HH:mm:ss,fff". - - - - Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". - - - Nicko Cadell - Gert Driesen - - - - Render a as a string. - - - - Interface to abstract the rendering of a - instance into a string. - - - The method is used to render the - date to a text writer. - - - Nicko Cadell - Gert Driesen - - - - Formats the specified date as a string. - - The date to format. - The writer to write to. - - - Format the as a string and write it - to the provided. - - - - - - String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. - - - - - String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. - - - - - String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. - - - - - Renders the date into a string. Format is "HH:mm:ss". - - The date to render into a string. - The string builder to write to. - - - Subclasses should override this method to render the date - into a string using a precision up to the second. This method - will be called at most once per second and the result will be - reused if it is needed again during the same second. - - - - - - Renders the date into a string. Format is "HH:mm:ss,fff". - - The date to render into a string. - The writer to write to. - - - Uses the method to generate the - time string up to the seconds and then appends the current - milliseconds. The results from are - cached and is called at most once - per second. - - - Sub classes should override - rather than . - - - - - - Last stored time with precision up to the second. - - - - - Last stored time with precision up to the second, formatted - as a string. - - - - - Last stored time with precision up to the second, formatted - as a string. - - - - - Formats a as "dd MMM yyyy HH:mm:ss,fff" - - - - Formats a in the format - "dd MMM yyyy HH:mm:ss,fff" for example, - "06 Nov 1994 15:49:37,459". - - - Nicko Cadell - Gert Driesen - Angelika Schnagl - - - - Default constructor. - - - - Initializes a new instance of the class. - - - - - - Formats the date without the milliseconds part - - The date to format. - The string builder to write to. - - - Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" - for example, "06 Nov 1994 15:49:37". - - - The base class will append the ",fff" milliseconds section. - This method will only be called at most once per second. - - - - - - The format info for the invariant culture. - - - - - Formats the as "yyyy-MM-dd HH:mm:ss,fff". - - - - Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Formats the date without the milliseconds part - - The date to format. - The string builder to write to. - - - Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". - - - The base class will append the ",fff" milliseconds section. - This method will only be called at most once per second. - - - - - - Formats the using the method. - - - - Formats the using the method. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The format string. - - - Initializes a new instance of the class - with the specified format string. - - - The format string must be compatible with the options - that can be supplied to . - - - - - - Formats the date using . - - The date to convert to a string. - The writer to write to. - - - Uses the date format string supplied to the constructor to call - the method to format the date. - - - - - - The format string used to format the . - - - - The format string must be compatible with the options - that can be supplied to . - - - - - - This filter drops all . - - - - You can add this filter to the end of a filter chain to - switch from the default "accept all unless instructed otherwise" - filtering behavior to a "deny all unless instructed otherwise" - behavior. - - - Nicko Cadell - Gert Driesen - - - - Subclass this type to implement customized logging event filtering - - - - Users should extend this class to implement customized logging - event filtering. Note that and - , the parent class of all standard - appenders, have built-in filtering rules. It is suggested that you - first use and understand the built-in rules before rushing to write - your own custom filters. - - - This abstract class assumes and also imposes that filters be - organized in a linear chain. The - method of each filter is called sequentially, in the order of their - addition to the chain. - - - The method must return one - of the integer constants , - or . - - - If the value is returned, then the log event is dropped - immediately without consulting with the remaining filters. - - - If the value is returned, then the next filter - in the chain is consulted. If there are no more filters in the - chain, then the log event is logged. Thus, in the presence of no - filters, the default behavior is to log all logging events. - - - If the value is returned, then the log - event is logged without consulting the remaining filters. - - - The philosophy of log4net filters is largely inspired from the - Linux ipchains. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface to provide customized logging event filtering - - - - Users should implement this interface to implement customized logging - event filtering. Note that and - , the parent class of all standard - appenders, have built-in filtering rules. It is suggested that you - first use and understand the built-in rules before rushing to write - your own custom filters. - - - This abstract class assumes and also imposes that filters be - organized in a linear chain. The - method of each filter is called sequentially, in the order of their - addition to the chain. - - - The method must return one - of the integer constants , - or . - - - If the value is returned, then the log event is dropped - immediately without consulting with the remaining filters. - - - If the value is returned, then the next filter - in the chain is consulted. If there are no more filters in the - chain, then the log event is logged. Thus, in the presence of no - filters, the default behavior is to log all logging events. - - - If the value is returned, then the log - event is logged without consulting the remaining filters. - - - The philosophy of log4net filters is largely inspired from the - Linux ipchains. - - - Nicko Cadell - Gert Driesen - - - - Decide if the logging event should be logged through an appender. - - The LoggingEvent to decide upon - The decision of the filter - - - If the decision is , then the event will be - dropped. If the decision is , then the next - filter, if any, will be invoked. If the decision is then - the event will be logged without consulting with other filters in - the chain. - - - - - - Property to get and set the next filter - - - The next filter in the chain - - - - Filters are typically composed into chains. This property allows the next filter in - the chain to be accessed. - - - - - - Points to the next filter in the filter chain. - - - - See for more information. - - - - - - Initialize the filter with the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Typically filter's options become active immediately on set, - however this method must still be called. - - - - - - Decide if the should be logged through an appender. - - The to decide upon - The decision of the filter - - - If the decision is , then the event will be - dropped. If the decision is , then the next - filter, if any, will be invoked. If the decision is then - the event will be logged without consulting with other filters in - the chain. - - - This method is marked abstract and must be implemented - in a subclass. - - - - - - Property to get and set the next filter - - - The next filter in the chain - - - - Filters are typically composed into chains. This property allows the next filter in - the chain to be accessed. - - - - - - Default constructor - - - - - Always returns the integer constant - - the LoggingEvent to filter - Always returns - - - Ignores the event being logged and just returns - . This can be used to change the default filter - chain behavior from to . This filter - should only be used as the last filter in the chain - as any further filters will be ignored! - - - - - - The return result from - - - - The return result from - - - - - - The log event must be dropped immediately without - consulting with the remaining filters, if any, in the chain. - - - - - This filter is neutral with respect to the log event. - The remaining filters, if any, should be consulted for a final decision. - - - - - The log event must be logged immediately without - consulting with the remaining filters, if any, in the chain. - - - - - This is a very simple filter based on matching. - - - - The filter admits two options and - . If there is an exact match between the value - of the option and the of the - , then the method returns in - case the option value is set - to true, if it is false then - is returned. If the does not match then - the result will be . - - - Nicko Cadell - Gert Driesen - - - - flag to indicate if the filter should on a match - - - - - the to match against - - - - - Default constructor - - - - - Tests if the of the logging event matches that of the filter - - the event to filter - see remarks - - - If the of the event matches the level of the - filter then the result of the function depends on the - value of . If it is true then - the function will return , it it is false then it - will return . If the does not match then - the result will be . - - - - - - when matching - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - The that the filter will match - - - - The level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - This is a simple filter based on matching. - - - - The filter admits three options and - that determine the range of priorities that are matched, and - . If there is a match between the range - of priorities and the of the , then the - method returns in case the - option value is set to true, if it is false - then is returned. If there is no match, is returned. - - - Nicko Cadell - Gert Driesen - - - - Flag to indicate the behavior when matching a - - - - - the minimum value to match - - - - - the maximum value to match - - - - - Default constructor - - - - - Check if the event should be logged. - - the logging event to check - see remarks - - - If the of the logging event is outside the range - matched by this filter then - is returned. If the is matched then the value of - is checked. If it is true then - is returned, otherwise - is returned. - - - - - - when matching and - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - Set the minimum matched - - - - The minimum level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - Sets the maximum matched - - - - The maximum level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - Simple filter to match a string in the event's logger name. - - - - The works very similar to the . It admits two - options and . If the - of the starts - with the value of the option, then the - method returns in - case the option value is set to true, - if it is false then is returned. - - - Daniel Cazzulino - - - - Flag to indicate the behavior when we have a match - - - - - The logger name string to substring match against the event - - - - - Default constructor - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The rendered message is matched against the . - If the equals the beginning of - the incoming () - then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - when matching - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - The that the filter will match - - - - This filter will attempt to match this value against logger name in - the following way. The match will be done against the beginning of the - logger name (using ). The match is - case sensitive. If a match is found then - the result depends on the value of . - - - - - - Simple filter to match a keyed string in the - - - - Simple filter to match a keyed string in the - - - As the MDC has been replaced with layered properties the - should be used instead. - - - Nicko Cadell - Gert Driesen - - - - Simple filter to match a string an event property - - - - Simple filter to match a string in the value for a - specific event property - - - Nicko Cadell - - - - Simple filter to match a string in the rendered message - - - - Simple filter to match a string in the rendered message - - - Nicko Cadell - Gert Driesen - - - - Flag to indicate the behavior when we have a match - - - - - The string to substring match against the message - - - - - A string regex to match - - - - - A regex object to match (generated from m_stringRegexToMatch) - - - - - Default constructor - - - - - Initialize and precompile the Regex if required - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The rendered message is matched against the . - If the occurs as a substring within - the message then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - when matching or - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - Sets the static string to match - - - - The string that will be substring matched against - the rendered message. If the message contains this - string then the filter will match. If a match is found then - the result depends on the value of . - - - One of or - must be specified. - - - - - - Sets the regular expression to match - - - - The regular expression pattern that will be matched against - the rendered message. If the message matches this - pattern then the filter will match. If a match is found then - the result depends on the value of . - - - One of or - must be specified. - - - - - - The key to use to lookup the string from the event properties - - - - - Default constructor - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The event property for the is matched against - the . - If the occurs as a substring within - the property value then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - The key to lookup in the event properties and then match against. - - - - The key name to use to lookup in the properties map of the - . The match will be performed against - the value of this property if it exists. - - - - - - Simple filter to match a string in the - - - - Simple filter to match a string in the - - - As the MDC has been replaced with named stacks stored in the - properties collections the should - be used instead. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Sets the to "NDC". - - - - - - Write the event appdomain name to the output - - - - Writes the to the output writer. - - - Daniel Cazzulino - Nicko Cadell - - - - Abstract class that provides the formatting functionality that - derived classes need. - - - Conversion specifiers in a conversion patterns are parsed to - individual PatternConverters. Each of which is responsible for - converting a logging event in a converter specific manner. - - Nicko Cadell - - - - Abstract class that provides the formatting functionality that - derived classes need. - - - - Conversion specifiers in a conversion patterns are parsed to - individual PatternConverters. Each of which is responsible for - converting a logging event in a converter specific manner. - - - Nicko Cadell - Gert Driesen - - - - Initial buffer size - - - - - Maximum buffer size before it is recycled - - - - - Protected constructor - - - - Initializes a new instance of the class. - - - - - - Evaluate this pattern converter and write the output to a writer. - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the appropriate way. - - - - - - Set the next pattern converter in the chains - - the pattern converter that should follow this converter in the chain - the next converter - - - The PatternConverter can merge with its neighbor during this method (or a sub class). - Therefore the return value may or may not be the value of the argument passed in. - - - - - - Write the pattern converter to the writer with appropriate formatting - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - This method calls to allow the subclass to perform - appropriate conversion of the pattern converter. If formatting options have - been specified via the then this method will - apply those formattings before writing the output. - - - - - - Fast space padding method. - - to which the spaces will be appended. - The number of spaces to be padded. - - - Fast space padding method. - - - - - - The option string to the converter - - - - - Write an dictionary to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the to a writer in the form: - - - {key1=value1, key2=value2, key3=value3} - - - If the specified - is not null then it is used to render the key and value to text, otherwise - the object's ToString method is called. - - - - - - Write an dictionary to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the to a writer in the form: - - - {key1=value1, key2=value2, key3=value3} - - - If the specified - is not null then it is used to render the key and value to text, otherwise - the object's ToString method is called. - - - - - - Write an object to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the Object to a writer. If the specified - is not null then it is used to render the object to text, otherwise - the object's ToString method is called. - - - - - - Get the next pattern converter in the chain - - - the next pattern converter in the chain - - - - Get the next pattern converter in the chain - - - - - - Gets or sets the formatting info for this converter - - - The formatting info for this converter - - - - Gets or sets the formatting info for this converter - - - - - - Gets or sets the option value for this converter - - - The option for this converter - - - - Gets or sets the option value for this converter - - - - - - - - - - - Initializes a new instance of the class. - - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The on which the pattern converter should be executed. - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - - Flag indicating if this converter handles exceptions - - - false if this converter handles exceptions - - - - - Flag indicating if this converter handles the logging event exception - - false if this converter handles the logging event exception - - - If this converter handles the exception object contained within - , then this property should be set to - false. Otherwise, if the layout ignores the exception - object, then the property should be set to true. - - - Set this value to override a this default setting. The default - value is true, this converter does not handle the exception. - - - - - - Write the event appdomain name to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output . - - - - - - Converter for items in the ASP.Net Cache. - - - - Outputs an item from the . - - - Ron Grabowski - - - - Abstract class that provides access to the current HttpContext () that - derived classes need. - - - This class handles the case when HttpContext.Current is null by writing - to the writer. - - Ron Grabowski - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - - Write the ASP.Net Cache item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. If no property has been set, all key value pairs from the Cache will - be written to the output. - - - - - - Converter for items in the . - - - - Outputs an item from the . - - - Ron Grabowski - - - - Write the ASP.Net HttpContext item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. - - - - - - Converter for items in the ASP.Net Cache. - - - - Outputs an item from the . - - - Ron Grabowski - - - - Write the ASP.Net Cache item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. - - - - - - Converter for items in the ASP.Net Cache. - - - - Outputs an item from the . - - - Ron Grabowski - - - - Write the ASP.Net Cache item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. If no property has been set, all key value pairs from the Session will - be written to the output. - - - - - - Date pattern converter, uses a to format - the date of a . - - - - Render the to the writer as a string. - - - The value of the determines - the formatting of the date. The following values are allowed: - - - Option value - Output - - - ISO8601 - - Uses the formatter. - Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. - - - - DATE - - Uses the formatter. - Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". - - - - ABSOLUTE - - Uses the formatter. - Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". - - - - other - - Any other pattern string uses the formatter. - This formatter passes the pattern string to the - method. - For details on valid patterns see - DateTimeFormatInfo Class. - - - - - - The is in the local time zone and is rendered in that zone. - To output the time in Universal time see . - - - Nicko Cadell - - - - The used to render the date to a string - - - - The used to render the date to a string - - - - - - Initialize the converter pattern based on the property. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Convert the pattern into the rendered message - - that will receive the formatted result. - the event being logged - - - Pass the to the - for it to render it to the writer. - - - The passed is in the local time zone. - - - - - - The fully qualified type of the DatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the exception text to the output - - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - - - If there is no exception then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - Nicko Cadell - - - - Default constructor - - - - - Write the exception text to the output - - that will receive the formatted result. - the event being logged - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - - - If there is no exception or the exception property specified - by the Option value does not exist then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - Recognized values for the Option parameter are: - - - - Message - - - Source - - - StackTrace - - - TargetSite - - - HelpLink - - - - - - - Writes the caller location file name to the output - - - - Writes the value of the for - the event to the output writer. - - - Nicko Cadell - - - - Write the caller location file name to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the for - the to the output . - - - - - - Write the caller location info to the output - - - - Writes the to the output writer. - - - Nicko Cadell - - - - Write the caller location info to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output writer. - - - - - - Writes the event identity to the output - - - - Writes the value of the to - the output writer. - - - Daniel Cazzulino - Nicko Cadell - - - - Writes the event identity to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the - to - the output . - - - - - - Write the event level to the output - - - - Writes the display name of the event - to the writer. - - - Nicko Cadell - - - - Write the event level to the output - - that will receive the formatted result. - the event being logged - - - Writes the of the - to the . - - - - - - Write the caller location line number to the output - - - - Writes the value of the for - the event to the output writer. - - - Nicko Cadell - - - - Write the caller location line number to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the for - the to the output . - - - - - - Converter for logger name - - - - Outputs the of the event. - - - Nicko Cadell - - - - Converter to output and truncate '.' separated strings - - - - This abstract class supports truncating a '.' separated string - to show a specified number of elements from the right hand side. - This is used to truncate class names that are fully qualified. - - - Subclasses should override the method to - return the fully qualified string. - - - Nicko Cadell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Get the fully qualified string data - - the event being logged - the fully qualified name - - - Overridden by subclasses to get the fully qualified name before the - precision is applied to it. - - - Return the fully qualified '.' (dot/period) separated string. - - - - - - Convert the pattern to the rendered message - - that will receive the formatted result. - the event being logged - - Render the to the precision - specified by the property. - - - - - The fully qualified type of the NamedPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the fully qualified name of the logger - - the event being logged - The fully qualified logger name - - - Returns the of the . - - - - - - Writes the event message to the output - - - - Uses the method - to write out the event message. - - - Nicko Cadell - - - - Writes the event message to the output - - that will receive the formatted result. - the event being logged - - - Uses the method - to write out the event message. - - - - - - Write the method name to the output - - - - Writes the caller location to - the output. - - - Nicko Cadell - - - - Write the method name to the output - - that will receive the formatted result. - the event being logged - - - Writes the caller location to - the output. - - - - - - Converter to include event NDC - - - - Outputs the value of the event property named NDC. - - - The should be used instead. - - - Nicko Cadell - - - - Write the event NDC to the output - - that will receive the formatted result. - the event being logged - - - As the thread context stacks are now stored in named event properties - this converter simply looks up the value of the NDC property. - - - The should be used instead. - - - - - - Property pattern converter - - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - Nicko Cadell - - - - Write the property value to the output - - that will receive the formatted result. - the event being logged - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - - - - Converter to output the relative time of the event - - - - Converter to output the time of the event relative to the start of the program. - - - Nicko Cadell - - - - Write the relative time to the output - - that will receive the formatted result. - the event being logged - - - Writes out the relative time of the event in milliseconds. - That is the number of milliseconds between the event - and the . - - - - - - Helper method to get the time difference between two DateTime objects - - start time (in the current local time zone) - end time (in the current local time zone) - the time difference in milliseconds - - - - Write the caller stack frames to the output - - - - Writes the to the output writer, using format: - type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) - - - Adam Davies - - - - Write the caller stack frames to the output - - - - Writes the to the output writer, using format: - type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 - - - Michael Cromwell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the strack frames to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output writer. - - - - - - Returns the Name of the method - - - This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter - string - - - - The fully qualified type of the StackTracePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - The fully qualified type of the StackTraceDetailPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Converter to include event thread name - - - - Writes the to the output. - - - Nicko Cadell - - - - Write the ThreadName to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the . - - - - - - Pattern converter for the class name - - - - Outputs the of the event. - - - Nicko Cadell - - - - Gets the fully qualified name of the class - - the event being logged - The fully qualified type name for the caller location - - - Returns the of the . - - - - - - Converter to include event user name - - Douglas de la Torre - Nicko Cadell - - - - Convert the pattern to the rendered message - - that will receive the formatted result. - the event being logged - - - - Write the TimeStamp to the output - - - - Date pattern converter, uses a to format - the date of a . - - - Uses a to format the - in Universal time. - - - See the for details on the date pattern syntax. - - - - Nicko Cadell - - - - Write the TimeStamp to the output - - that will receive the formatted result. - the event being logged - - - Pass the to the - for it to render it to the writer. - - - The passed is in the local time zone, this is converted - to Universal time before it is rendered. - - - - - - - The fully qualified type of the UtcDatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - A Layout that renders only the Exception text from the logging event - - - - A Layout that renders only the Exception text from the logging event. - - - This Layout should only be used with appenders that utilize multiple - layouts (e.g. ). - - - Nicko Cadell - Gert Driesen - - - - Extend this abstract class to create your own log layout format. - - - - This is the base implementation of the - interface. Most layout objects should extend this class. - - - - - - Subclasses must implement the - method. - - - Subclasses should set the in their default - constructor. - - - - Nicko Cadell - Gert Driesen - - - - Interface implemented by layout objects - - - - An object is used to format a - as text. The method is called by an - appender to transform the into a string. - - - The layout can also supply and - text that is appender before any events and after all the events respectively. - - - Nicko Cadell - Gert Driesen - - - - Implement this method to create your own layout format. - - The TextWriter to write the formatted event to - The event to format - - - This method is called by an appender to format - the as text and output to a writer. - - - If the caller does not have a and prefers the - event to be formatted as a then the following - code can be used to format the event into a . - - - StringWriter writer = new StringWriter(); - Layout.Format(writer, loggingEvent); - string formattedEvent = writer.ToString(); - - - - - - The content type output by this layout. - - The content type - - - The content type output by this layout. - - - This is a MIME type e.g. "text/plain". - - - - - - The header for the layout format. - - the layout header - - - The Header text will be appended before any logging events - are formatted and appended. - - - - - - The footer for the layout format. - - the layout footer - - - The Footer text will be appended after all the logging events - have been formatted and appended. - - - - - - Flag indicating if this layout handle exceptions - - false if this layout handles exceptions - - - If this layout handles the exception object contained within - , then the layout should return - false. Otherwise, if the layout ignores the exception - object, then the layout should return true. - - - - - - The header text - - - - See for more information. - - - - - - The footer text - - - - See for more information. - - - - - - Flag indicating if this layout handles exceptions - - - - false if this layout handles exceptions - - - - - - Empty default constructor - - - - Empty default constructor - - - - - - Activate component options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - This method must be implemented by the subclass. - - - - - - Implement this method to create your own layout format. - - The TextWriter to write the formatted event to - The event to format - - - This method is called by an appender to format - the as text. - - - - - - Convenience method for easily formatting the logging event into a string variable. - - - - Creates a new StringWriter instance to store the formatted logging event. - - - - - The content type output by this layout. - - The content type is "text/plain" - - - The content type output by this layout. - - - This base class uses the value "text/plain". - To change this value a subclass must override this - property. - - - - - - The header for the layout format. - - the layout header - - - The Header text will be appended before any logging events - are formatted and appended. - - - - - - The footer for the layout format. - - the layout footer - - - The Footer text will be appended after all the logging events - have been formatted and appended. - - - - - - Flag indicating if this layout handles exceptions - - false if this layout handles exceptions - - - If this layout handles the exception object contained within - , then the layout should return - false. Otherwise, if the layout ignores the exception - object, then the layout should return true. - - - Set this value to override a this default setting. The default - value is true, this layout does not handle the exception. - - - - - - Default constructor - - - - Constructs a ExceptionLayout - - - - - - Activate component options - - - - Part of the component activation - framework. - - - This method does nothing as options become effective immediately. - - - - - - Gets the exception text from the logging event - - The TextWriter to write the formatted event to - the event being logged - - - Write the exception string to the . - The exception string is retrieved from . - - - - - - Interface for raw layout objects - - - - Interface used to format a - to an object. - - - This interface should not be confused with the - interface. This interface is used in - only certain specialized situations where a raw object is - required rather than a formatted string. The - is not generally useful than this interface. - - - Nicko Cadell - Gert Driesen - - - - Implement this method to create your own layout format. - - The event to format - returns the formatted event - - - Implement this method to create your own layout format. - - - - - - Adapts any to a - - - - Where an is required this adapter - allows a to be specified. - - - Nicko Cadell - Gert Driesen - - - - The layout to adapt - - - - - Construct a new adapter - - the layout to adapt - - - Create the adapter for the specified . - - - - - - Format the logging event as an object. - - The event to format - returns the formatted event - - - Format the logging event as an object. - - - Uses the object supplied to - the constructor to perform the formatting. - - - - - - A flexible layout configurable with pattern string. - - - - The goal of this class is to a - as a string. The results - depend on the conversion pattern. - - - The conversion pattern is closely related to the conversion - pattern of the printf function in C. A conversion pattern is - composed of literal text and format control expressions called - conversion specifiers. - - - You are free to insert any literal text within the conversion - pattern. - - - Each conversion specifier starts with a percent sign (%) and is - followed by optional format modifiers and a conversion - pattern name. The conversion pattern name specifies the type of - data, e.g. logger, level, date, thread name. The format - modifiers control such things as field width, padding, left and - right justification. The following is a simple example. - - - Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume - that the log4net environment was set to use a PatternLayout. Then the - statements - - - ILog log = LogManager.GetLogger(typeof(TestApp)); - log.Debug("Message 1"); - log.Warn("Message 2"); - - would yield the output - - DEBUG [main]: Message 1 - WARN [main]: Message 2 - - - Note that there is no explicit separator between text and - conversion specifiers. The pattern parser knows when it has reached - the end of a conversion specifier when it reads a conversion - character. In the example above the conversion specifier - %-5level means the level of the logging event should be left - justified to a width of five characters. - - - The recognized conversion pattern names are: - - - - Conversion Pattern Name - Effect - - - a - Equivalent to appdomain - - - appdomain - - Used to output the friendly name of the AppDomain where the - logging event was generated. - - - - aspnet-cache - - - Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-context - - - Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-request - - - Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-session - - - Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - c - Equivalent to logger - - - C - Equivalent to type - - - class - Equivalent to type - - - d - Equivalent to date - - - date - - - Used to output the date of the logging event in the local time zone. - To output the date in universal time use the %utcdate pattern. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %date{HH:mm:ss,fff} or - %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %date{ISO8601} or %date{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - exception - - - Used to output the exception passed in with the log message. - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - If there is no exception then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - - - F - Equivalent to file - - - file - - - Used to output the file name where the logging request was - issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - identity - - - Used to output the user name for the currently active user - (Principal.Identity.Name). - - - WARNING Generating caller information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - - - l - Equivalent to location - - - L - Equivalent to line - - - location - - - Used to output location information of the caller which generated - the logging event. - - - The location information depends on the CLI implementation but - usually consists of the fully qualified name of the calling - method followed by the callers source the file name and line - number between parentheses. - - - The location information can be very useful. However, its - generation is extremely slow. Its use should be avoided - unless execution speed is not an issue. - - - See the note below on the availability of caller location information. - - - - - level - - - Used to output the level of the logging event. - - - - - line - - - Used to output the line number from where the logging request - was issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - logger - - - Used to output the logger of the logging event. The - logger conversion specifier can be optionally followed by - precision specifier, that is a decimal constant in - brackets. - - - If a precision specifier is given, then only the corresponding - number of right most components of the logger name will be - printed. By default the logger name is printed in full. - - - For example, for the logger name "a.b.c" the pattern - %logger{2} will output "b.c". - - - - - m - Equivalent to message - - - M - Equivalent to method - - - message - - - Used to output the application supplied message associated with - the logging event. - - - - - mdc - - - The MDC (old name for the ThreadContext.Properties) is now part of the - combined event properties. This pattern is supported for compatibility - but is equivalent to property. - - - - - method - - - Used to output the method name where the logging request was - issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - n - Equivalent to newline - - - newline - - - Outputs the platform dependent line separator character or - characters. - - - This conversion pattern offers the same performance as using - non-portable line separator strings such as "\n", or "\r\n". - Thus, it is the preferred way of specifying a line separator. - - - - - ndc - - - Used to output the NDC (nested diagnostic context) associated - with the thread that generated the logging event. - - - - - p - Equivalent to level - - - P - Equivalent to property - - - properties - Equivalent to property - - - property - - - Used to output the an event specific property. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %property{user} would include the value - from the property that is keyed by the string 'user'. Each property value - that is to be included in the log must be specified separately. - Properties are added to events by loggers or appenders. By default - the log4net:HostName property is set to the name of machine on - which the event was originally logged. - - - If no key is specified, e.g. %property then all the keys and their - values are printed in a comma separated list. - - - The properties of an event are combined from a number of different - contexts. These are listed below in the order in which they are searched. - - - - the event properties - - The event has that can be set. These - properties are specific to this event only. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - - r - Equivalent to timestamp - - - stacktrace - - - Used to output the stack trace of the logging event - The stack trace level specifier may be enclosed - between braces. For example, %stacktrace{level}. - If no stack trace level specifier is given then 1 is assumed - - - Output uses the format: - type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 - - - This pattern is not available for Compact Framework assemblies. - - - - - stacktracedetail - - - Used to output the stack trace of the logging event - The stack trace level specifier may be enclosed - between braces. For example, %stacktracedetail{level}. - If no stack trace level specifier is given then 1 is assumed - - - Output uses the format: - type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) - - - This pattern is not available for Compact Framework assemblies. - - - - - t - Equivalent to thread - - - timestamp - - - Used to output the number of milliseconds elapsed since the start - of the application until the creation of the logging event. - - - - - thread - - - Used to output the name of the thread that generated the - logging event. Uses the thread number if no name is available. - - - - - type - - - Used to output the fully qualified type name of the caller - issuing the logging request. This conversion specifier - can be optionally followed by precision specifier, that - is a decimal constant in brackets. - - - If a precision specifier is given, then only the corresponding - number of right most components of the class name will be - printed. By default the class name is output in fully qualified form. - - - For example, for the class name "log4net.Layout.PatternLayout", the - pattern %type{1} will output "PatternLayout". - - - WARNING Generating the caller class information is - slow. Thus, its use should be avoided unless execution speed is - not an issue. - - - See the note below on the availability of caller location information. - - - - - u - Equivalent to identity - - - username - - - Used to output the WindowsIdentity for the currently - active user. - - - WARNING Generating caller WindowsIdentity information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - - - utcdate - - - Used to output the date of the logging event in universal time. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %utcdate{HH:mm:ss,fff} or - %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %utcdate{ISO8601} or %utcdate{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - w - Equivalent to username - - - x - Equivalent to ndc - - - X - Equivalent to mdc - - - % - - - The sequence %% outputs a single percent sign. - - - - - - The single letter patterns are deprecated in favor of the - longer more descriptive pattern names. - - - By default the relevant information is output as is. However, - with the aid of format modifiers it is possible to change the - minimum field width, the maximum field width and justification. - - - The optional format modifier is placed between the percent sign - and the conversion pattern name. - - - The first optional format modifier is the left justification - flag which is just the minus (-) character. Then comes the - optional minimum field width modifier. This is a decimal - constant that represents the minimum number of characters to - output. If the data item requires fewer characters, it is padded on - either the left or the right until the minimum width is - reached. The default is to pad on the left (right justify) but you - can specify right padding with the left justification flag. The - padding character is space. If the data item is larger than the - minimum field width, the field is expanded to accommodate the - data. The value is never truncated. - - - This behavior can be changed using the maximum field - width modifier which is designated by a period followed by a - decimal constant. If the data item is longer than the maximum - field, then the extra characters are removed from the - beginning of the data item and not from the end. For - example, it the maximum field width is eight and the data item is - ten characters long, then the first two characters of the data item - are dropped. This behavior deviates from the printf function in C - where truncation is done from the end. - - - Below are various format modifier examples for the logger - conversion specifier. - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Format modifierleft justifyminimum widthmaximum widthcomment
    %20loggerfalse20none - - Left pad with spaces if the logger name is less than 20 - characters long. - -
    %-20loggertrue20none - - Right pad with spaces if the logger - name is less than 20 characters long. - -
    %.30loggerNAnone30 - - Truncate from the beginning if the logger - name is longer than 30 characters. - -
    %20.30loggerfalse2030 - - Left pad with spaces if the logger name is shorter than 20 - characters. However, if logger name is longer than 30 characters, - then truncate from the beginning. - -
    %-20.30loggertrue2030 - - Right pad with spaces if the logger name is shorter than 20 - characters. However, if logger name is longer than 30 characters, - then truncate from the beginning. - -
    -
    - - Note about caller location information.
    - The following patterns %type %file %line %method %location %class %C %F %L %l %M - all generate caller location information. - Location information uses the System.Diagnostics.StackTrace class to generate - a call stack. The caller's information is then extracted from this stack. -
    - - - The System.Diagnostics.StackTrace class is not supported on the - .NET Compact Framework 1.0 therefore caller location information is not - available on that framework. - - - - - The System.Diagnostics.StackTrace class has this to say about Release builds: - - - "StackTrace information will be most informative with Debug build configurations. - By default, Debug builds include debug symbols, while Release builds do not. The - debug symbols contain most of the file, method name, line number, and column - information used in constructing StackFrame and StackTrace objects. StackTrace - might not report as many method calls as expected, due to code transformations - that occur during optimization." - - - This means that in a Release build the caller information may be incomplete or may - not exist at all! Therefore caller location information cannot be relied upon in a Release build. - - - - Additional pattern converters may be registered with a specific - instance using the method. - -
    - - This is a more detailed pattern. - %timestamp [%thread] %level %logger %ndc - %message%newline - - - A similar pattern except that the relative time is - right padded if less than 6 digits, thread name is right padded if - less than 15 characters and truncated if longer and the logger - name is left padded if shorter than 30 characters and truncated if - longer. - %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline - - Nicko Cadell - Gert Driesen - Douglas de la Torre - Daniel Cazzulino -
    - - - Default pattern string for log output. - - - - Default pattern string for log output. - Currently set to the string "%message%newline" - which just prints the application supplied message. - - - - - - A detailed conversion pattern - - - - A conversion pattern which includes Time, Thread, Logger, and Nested Context. - Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. - - - - - - Internal map of converter identifiers to converter types. - - - - This static map is overridden by the m_converterRegistry instance map - - - - - - the pattern - - - - - the head of the pattern converter chain - - - - - patterns defined on this PatternLayout only - - - - - Initialize the global registry - - - - Defines the builtin global rules. - - - - - - Constructs a PatternLayout using the DefaultConversionPattern - - - - The default pattern just produces the application supplied message. - - - Note to Inheritors: This constructor calls the virtual method - . If you override this method be - aware that it will be called before your is called constructor. - - - As per the contract the - method must be called after the properties on this object have been - configured. - - - - - - Constructs a PatternLayout using the supplied conversion pattern - - the pattern to use - - - Note to Inheritors: This constructor calls the virtual method - . If you override this method be - aware that it will be called before your is called constructor. - - - When using this constructor the method - need not be called. This may not be the case when using a subclass. - - - - - - Create the pattern parser instance - - the pattern to parse - The that will format the event - - - Creates the used to parse the conversion string. Sets the - global and instance rules on the . - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a formatted string as specified by the conversion pattern. - - the event being logged - The TextWriter to write the formatted event to - - - Parse the using the patter format - specified in the property. - - - - - - Add a converter to this PatternLayout - - the converter info - - - This version of the method is used by the configurator. - Programmatic users should use the alternative method. - - - - - - Add a converter to this PatternLayout - - the name of the conversion pattern for this converter - the type of the converter - - - Add a named pattern converter to this instance. This - converter will be used in the formatting of the event. - This method must be called before . - - - The specified must extend the - type. - - - - - - The pattern formatting string - - - - The ConversionPattern option. This is the string which - controls formatting and consists of a mix of literal content and - conversion specifiers. - - - - - - Type converter for the interface - - - - Used to convert objects to the interface. - Supports converting from the interface to - the interface using the . - - - Nicko Cadell - Gert Driesen - - - - Interface supported by type converters - - - - This interface supports conversion from arbitrary types - to a single target type. See . - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Test if the can be converted to the - type supported by this converter. - - - - - - Convert the source object to the type supported by this object - - the object to convert - the converted object - - - Converts the to the type supported - by this converter. - - - - - - Can the sourceType be converted to an - - the source to be to be converted - true if the source type can be converted to - - - Test if the can be converted to a - . Only is supported - as the . - - - - - - Convert the value to a object - - the value to convert - the object - - - Convert the object to a - object. If the object - is a then the - is used to adapt between the two interfaces, otherwise an - exception is thrown. - - - - - - Extract the value of a property from the - - - - Extract the value of a property from the - - - Nicko Cadell - - - - Constructs a RawPropertyLayout - - - - - Lookup the property for - - The event to format - returns property value - - - Looks up and returns the object value of the property - named . If there is no property defined - with than name then null will be returned. - - - - - - The name of the value to lookup in the LoggingEvent Properties collection. - - - Value to lookup in the LoggingEvent Properties collection - - - - String name of the property to lookup in the . - - - - - - Extract the date from the - - - - Extract the date from the - - - Nicko Cadell - Gert Driesen - - - - Constructs a RawTimeStampLayout - - - - - Gets the as a . - - The event to format - returns the time stamp - - - Gets the as a . - - - The time stamp is in local time. To format the time stamp - in universal time use . - - - - - - Extract the date from the - - - - Extract the date from the - - - Nicko Cadell - Gert Driesen - - - - Constructs a RawUtcTimeStampLayout - - - - - Gets the as a . - - The event to format - returns the time stamp - - - Gets the as a . - - - The time stamp is in universal time. To format the time stamp - in local time use . - - - - - - A very simple layout - - - - SimpleLayout consists of the level of the log statement, - followed by " - " and then the log message itself. For example, - - DEBUG - Hello world - - - - Nicko Cadell - Gert Driesen - - - - Constructs a SimpleLayout - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a simple formatted output. - - the event being logged - The TextWriter to write the formatted event to - - - Formats the event as the level of the even, - followed by " - " and then the log message itself. The - output is terminated by a newline. - - - - - - Layout that formats the log events as XML elements. - - - - The output of the consists of a series of - log4net:event elements. It does not output a complete well-formed XML - file. The output is designed to be included as an external entity - in a separate file to form a correct XML file. - - - For example, if abc is the name of the file where - the output goes, then a well-formed XML file would - be: - - - <?xml version="1.0" ?> - - <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> - - <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> - &data; - </log4net:events> - - - This approach enforces the independence of the - and the appender where it is embedded. - - - The version attribute helps components to correctly - interpret output generated by . The value of - this attribute should be "1.2" for release 1.2 and later. - - - Alternatively the Header and Footer properties can be - configured to output the correct XML header, open tag and close tag. - When setting the Header and Footer properties it is essential - that the underlying data store not be appendable otherwise the data - will become invalid XML. - - - Nicko Cadell - Gert Driesen - - - - Layout that formats the log events as XML elements. - - - - This is an abstract class that must be subclassed by an implementation - to conform to a specific schema. - - - Deriving classes must implement the method. - - - Nicko Cadell - Gert Driesen - - - - Protected constructor to support subclasses - - - - Initializes a new instance of the class - with no location info. - - - - - - Protected constructor to support subclasses - - - - The parameter determines whether - location information will be output by the layout. If - is set to true, then the - file name and line number of the statement at the origin of the log - statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a formatted string. - - The event being logged. - The TextWriter to write the formatted event to - - - Format the and write it to the . - - - This method creates an that writes to the - . The is passed - to the method. Subclasses should override the - method rather than this method. - - - - - - Does the actual writing of the XML. - - The writer to use to output the event to. - The event to write. - - - Subclasses should override this method to format - the as XML. - - - - - - Flag to indicate if location information should be included in - the XML events. - - - - - The string to replace invalid chars with - - - - - Gets a value indicating whether to include location information in - the XML events. - - - true if location information should be included in the XML - events; otherwise, false. - - - - If is set to true, then the file - name and line number of the statement at the origin of the log - statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - The string to replace characters that can not be expressed in XML with. - - - Not all characters may be expressed in XML. This property contains the - string to replace those that can not with. This defaults to a ?. Set it - to the empty string to simply remove offending characters. For more - details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets - Character replacement will occur in the log message, the property names - and the property values. - - - - - - - Gets the content type output by this layout. - - - As this is the XML layout, the value is always "text/xml". - - - - As this is the XML layout, the value is always "text/xml". - - - - - - Constructs an XmlLayout - - - - - Constructs an XmlLayout. - - - - The LocationInfo option takes a boolean value. By - default, it is set to false which means there will be no location - information output by this layout. If the the option is set to - true, then the file name and line number of the statement - at the origin of the log statement will be output. - - - If you are embedding this layout within an SmtpAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Builds a cache of the element names - - - - - - Does the actual writing of the XML. - - The writer to use to output the event to. - The event to write. - - - Override the base class method - to write the to the . - - - - - - The prefix to use for all generated element names - - - - - The prefix to use for all element names - - - - The default prefix is log4net. Set this property - to change the prefix. If the prefix is set to an empty string - then no prefix will be written. - - - - - - Set whether or not to base64 encode the message. - - - - By default the log message will be written as text to the xml - output. This can cause problems when the message contains binary - data. By setting this to true the contents of the message will be - base64 encoded. If this is set then invalid character replacement - (see ) will not be performed - on the log message. - - - - - - Set whether or not to base64 encode the property values. - - - - By default the properties will be written as text to the xml - output. This can cause problems when one or more properties contain - binary data. By setting this to true the values of the properties - will be base64 encoded. If this is set then invalid character replacement - (see ) will not be performed - on the property values. - - - - - - Layout that formats the log events as XML elements compatible with the log4j schema - - - - Formats the log events according to the http://logging.apache.org/log4j schema. - - - Nicko Cadell - - - - The 1st of January 1970 in UTC - - - - - Constructs an XMLLayoutSchemaLog4j - - - - - Constructs an XMLLayoutSchemaLog4j. - - - - The LocationInfo option takes a boolean value. By - default, it is set to false which means there will be no location - information output by this layout. If the the option is set to - true, then the file name and line number of the statement - at the origin of the log statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Actually do the writing of the xml - - the writer to use - the event to write - - - Generate XML that is compatible with the log4j schema. - - - - - - The version of the log4j schema to use. - - - - Only version 1.2 of the log4j schema is supported. - - - - - - The default object Renderer. - - - - The default renderer supports rendering objects and collections to strings. - - - See the method for details of the output. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface in order to render objects as strings - - - - Certain types require special case conversion to - string form. This conversion is done by an object renderer. - Object renderers implement the - interface. - - - Nicko Cadell - Gert Driesen - - - - Render the object to a string - - The map used to lookup renderers - The object to render - The writer to render to - - - Render the object to a - string. - - - The parameter is - provided to lookup and render other objects. This is - very useful where contains - nested objects of unknown type. The - method can be used to render these objects. - - - - - - Default constructor - - - - Default constructor - - - - - - Render the object to a string - - The map used to lookup renderers - The object to render - The writer to render to - - - Render the object to a string. - - - The parameter is - provided to lookup and render other objects. This is - very useful where contains - nested objects of unknown type. The - method can be used to render these objects. - - - The default renderer supports rendering objects to strings as follows: - - - - Value - Rendered String - - - null - - "(null)" - - - - - - - For a one dimensional array this is the - array type name, an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. - - - For example: int[] {1, 2, 3}. - - - If the array is not one dimensional the - Array.ToString() is returned. - - - - - , & - - - Rendered as an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. - - - For example: {a, b, c}. - - - All collection classes that implement its subclasses, - or generic equivalents all implement the interface. - - - - - - - - Rendered as the key, an equals sign ('='), and the value (using the appropriate - renderer). - - - For example: key=value. - - - - - other - - Object.ToString() - - - - - - - - Render the array argument into a string - - The map used to lookup renderers - the array to render - The writer to render to - - - For a one dimensional array this is the - array type name, an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. For example: - int[] {1, 2, 3}. - - - If the array is not one dimensional the - Array.ToString() is returned. - - - - - - Render the enumerator argument into a string - - The map used to lookup renderers - the enumerator to render - The writer to render to - - - Rendered as an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. For example: - {a, b, c}. - - - - - - Render the DictionaryEntry argument into a string - - The map used to lookup renderers - the DictionaryEntry to render - The writer to render to - - - Render the key, an equals sign ('='), and the value (using the appropriate - renderer). For example: key=value. - - - - - - Map class objects to an . - - - - Maintains a mapping between types that require special - rendering and the that - is used to render them. - - - The method is used to render an - object using the appropriate renderers defined in this map. - - - Nicko Cadell - Gert Driesen - - - - Default Constructor - - - - Default constructor. - - - - - - Render using the appropriate renderer. - - the object to render to a string - the object rendered as a string - - - This is a convenience method used to render an object to a string. - The alternative method - should be used when streaming output to a . - - - - - - Render using the appropriate renderer. - - the object to render to a string - The writer to render to - - - Find the appropriate renderer for the type of the - parameter. This is accomplished by calling the - method. Once a renderer is found, it is - applied on the object and the result is returned - as a . - - - - - - Gets the renderer for the specified object type - - the object to lookup the renderer for - the renderer for - - - Gets the renderer for the specified object type. - - - Syntactic sugar method that calls - with the type of the object parameter. - - - - - - Gets the renderer for the specified type - - the type to lookup the renderer for - the renderer for the specified type - - - Returns the renderer for the specified type. - If no specific renderer has been defined the - will be returned. - - - - - - Internal function to recursively search interfaces - - the type to lookup the renderer for - the renderer for the specified type - - - - Clear the map of renderers - - - - Clear the custom renderers defined by using - . The - cannot be removed. - - - - - - Register an for . - - the type that will be rendered by - the renderer for - - - Register an object renderer for a specific source type. - This renderer will be returned from a call to - specifying the same as an argument. - - - - - - Get the default renderer instance - - the default renderer - - - Get the default renderer - - - - - - Interface implemented by logger repository plugins. - - - - Plugins define additional behavior that can be associated - with a . - The held by the - property is used to store the plugins for a repository. - - - The log4net.Config.PluginAttribute can be used to - attach plugins to repositories created using configuration - attributes. - - - Nicko Cadell - Gert Driesen - - - - Attaches the plugin to the specified . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - This method is called to notify the plugin that - it should stop operating and should detach from - the repository. - - - - - - Gets the name of the plugin. - - - The name of the plugin. - - - - Plugins are stored in the - keyed by name. Each plugin instance attached to a - repository must be a unique name. - - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a PluginCollection instance. - - list to create a readonly wrapper arround - - A PluginCollection wrapper that is read-only. - - - - - Initializes a new instance of the PluginCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the PluginCollection class - that has the specified initial capacity. - - - The number of elements that the new PluginCollection is initially capable of storing. - - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified PluginCollection. - - The PluginCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - - Copies the entire PluginCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire PluginCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the PluginCollection. - - The to be added to the end of the PluginCollection. - The index at which the value has been added. - - - - Removes all elements from the PluginCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the PluginCollection. - - The to check for. - true if is found in the PluginCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the PluginCollection. - - The to locate in the PluginCollection. - - The zero-based index of the first occurrence of - in the entire PluginCollection, if found; otherwise, -1. - - - - - Inserts an element into the PluginCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the PluginCollection. - - The to remove from the PluginCollection. - - The specified was not found in the PluginCollection. - - - - - Removes the element at the specified index of the PluginCollection. - - The zero-based index of the element to remove. - - is less than zero. - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the PluginCollection. - - An for the entire PluginCollection. - - - - Adds the elements of another PluginCollection to the current PluginCollection. - - The PluginCollection whose elements should be added to the end of the current PluginCollection. - The new of the PluginCollection. - - - - Adds the elements of a array to the current PluginCollection. - - The array whose elements should be added to the end of the PluginCollection. - The new of the PluginCollection. - - - - Adds the elements of a collection to the current PluginCollection. - - The collection whose elements should be added to the end of the PluginCollection. - The new of the PluginCollection. - - - - Sets the capacity to the actual number of elements. - - - - - is less than zero. - -or- - is equal to or greater than . - - - - - is less than zero. - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the PluginCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - An object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - - The at the specified index. - - The zero-based index of the element to get or set. - - is less than zero. - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false. - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false. - - - - Gets or sets the number of elements the PluginCollection can contain. - - - The number of elements the PluginCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - - A value - - - - - Supports simple iteration over a . - - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - The current element in the collection. - - - - - - - - Map of repository plugins. - - - - This class is a name keyed map of the plugins that are - attached to a repository. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The repository that the plugins should be attached to. - - - Initialize a new instance of the class with a - repository that the plugins should be attached to. - - - - - - Adds a to the map. - - The to add to the map. - - - The will be attached to the repository when added. - - - If there already exists a plugin with the same name - attached to the repository then the old plugin will - be and replaced with - the new plugin. - - - - - - Removes a from the map. - - The to remove from the map. - - - Remove a specific plugin from this map. - - - - - - Gets a by name. - - The name of the to lookup. - - The from the map with the name specified, or - null if no plugin is found. - - - - Lookup a plugin by name. If the plugin is not found null - will be returned. - - - - - - Gets all possible plugins as a list of objects. - - All possible plugins as a list of objects. - - - Get a collection of all the plugins defined in this map. - - - - - - Base implementation of - - - - Default abstract implementation of the - interface. This base class can be used by implementors - of the interface. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - the name of the plugin - - Initializes a new Plugin with the specified name. - - - - - Attaches this plugin to a . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - This method is called to notify the plugin that - it should stop operating and should detach from - the repository. - - - - - - The name of this plugin. - - - - - The repository this plugin is attached to. - - - - - Gets or sets the name of the plugin. - - - The name of the plugin. - - - - Plugins are stored in the - keyed by name. Each plugin instance attached to a - repository must be a unique name. - - - The name of the plugin must not change one the - plugin has been attached to a repository. - - - - - - The repository for this plugin - - - The that this plugin is attached to. - - - - Gets or sets the that this plugin is - attached to. - - - - - - Plugin that listens for events from the - - - - This plugin publishes an instance of - on a specified . This listens for logging events delivered from - a remote . - - - When an event is received it is relogged within the attached repository - as if it had been raised locally. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Initializes a new instance of the class. - - - The property must be set. - - - - - - Construct with sink Uri. - - The name to publish the sink under in the remoting infrastructure. - See for more details. - - - Initializes a new instance of the class - with specified name. - - - - - - Attaches this plugin to a . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - When the plugin is shutdown the remote logging - sink is disconnected. - - - - - - The fully qualified type of the RemoteLoggingServerPlugin class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the URI of this sink. - - - The URI of this sink. - - - - This is the name under which the object is marshaled. - - - - - - - Delivers objects to a remote sink. - - - - Internal class used to listen for logging events - and deliver them to the local repository. - - - - - - Constructor - - The repository to log to. - - - Initializes a new instance of the for the - specified . - - - - - - Logs the events to the repository. - - The events to log. - - - The events passed are logged to the - - - - - - Obtains a lifetime service object to control the lifetime - policy for this instance. - - null to indicate that this instance should live forever. - - - Obtains a lifetime service object to control the lifetime - policy for this instance. This object should live forever - therefore this implementation returns null. - - - - - - The underlying that events should - be logged to. - - - - - Default implementation of - - - - This default implementation of the - interface is used to create the default subclass - of the object. - - - Nicko Cadell - Gert Driesen - - - - Interface abstracts creation of instances - - - - This interface is used by the to - create new objects. - - - The method is called - to create a named . - - - Implement this interface to create new subclasses of . - - - Nicko Cadell - Gert Driesen - - - - Create a new instance - - The that will own the . - The name of the . - The instance for the specified name. - - - Create a new instance with the - specified name. - - - Called by the to create - new named instances. - - - If the is null then the root logger - must be returned. - - - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Create a new instance - - The that will own the . - The name of the . - The instance for the specified name. - - - Create a new instance with the - specified name. - - - Called by the to create - new named instances. - - - If the is null then the root logger - must be returned. - - - - - - Default internal subclass of - - - - This subclass has no additional behavior over the - class but does allow instances - to be created. - - - - - - Implementation of used by - - - - Internal class used to provide implementation of - interface. Applications should use to get - logger instances. - - - This is one of the central classes in the log4net implementation. One of the - distinctive features of log4net are hierarchical loggers and their - evaluation. The organizes the - instances into a rooted tree hierarchy. - - - The class is abstract. Only concrete subclasses of - can be created. The - is used to create instances of this type for the . - - - Nicko Cadell - Gert Driesen - Aspi Havewala - Douglas de la Torre - - - - This constructor created a new instance and - sets its name. - - The name of the . - - - This constructor is protected and designed to be used by - a subclass that is not abstract. - - - Loggers are constructed by - objects. See for the default - logger creator. - - - - - - Add to the list of appenders of this - Logger instance. - - An appender to add to this logger - - - Add to the list of appenders of this - Logger instance. - - - If is already in the list of - appenders, then it won't be added again. - - - - - - Look for the appender named as name - - The name of the appender to lookup - The appender with the name specified, or null. - - - Returns the named appender, or null if the appender is not found. - - - - - - Remove all previously added appenders from this Logger instance. - - - - Remove all previously added appenders from this Logger instance. - - - This is useful when re-reading configuration information. - - - - - - Remove the appender passed as parameter form the list of appenders. - - The appender to remove - The appender removed from the list - - - Remove the appender passed as parameter form the list of appenders. - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Remove the appender passed as parameter form the list of appenders. - - The name of the appender to remove - The appender removed from the list - - - Remove the named appender passed as parameter form the list of appenders. - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - This generic form is intended to be used by wrappers. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generate a logging event for the specified using - the and . - - - This method must not throw any exception to the caller. - - - - - - This is the most generic printing method that is intended to be used - by wrappers. - - The event being logged. - - - Logs the specified logging event through this logger. - - - This method must not throw any exception to the caller. - - - - - - Checks if this logger is enabled for a given passed as parameter. - - The level to check. - - true if this logger is enabled for level, otherwise false. - - - - Test if this logger is going to log events of the specified . - - - This method must not throw any exception to the caller. - - - - - - Deliver the to the attached appenders. - - The event to log. - - - Call the appenders in the hierarchy starting at - this. If no appenders could be found, emit a - warning. - - - This method calls all the appenders inherited from the - hierarchy circumventing any evaluation of whether to log or not - to log the particular log request. - - - - - - Closes all attached appenders implementing the interface. - - - - Used to ensure that the appenders are correctly shutdown. - - - - - - This is the most generic printing method. This generic form is intended to be used by wrappers - - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generate a logging event for the specified using - the . - - - - - - Creates a new logging event and logs the event without further checks. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generates a logging event and delivers it to the attached - appenders. - - - - - - Creates a new logging event and logs the event without further checks. - - The event being logged. - - - Delivers the logging event to the attached appenders. - - - - - - The fully qualified type of the Logger class. - - - - - The name of this logger. - - - - - The assigned level of this logger. - - - - The level variable need not be - assigned a value in which case it is inherited - form the hierarchy. - - - - - - The parent of this logger. - - - - The parent of this logger. - All loggers have at least one ancestor which is the root logger. - - - - - - Loggers need to know what Hierarchy they are in. - - - - Loggers need to know what Hierarchy they are in. - The hierarchy that this logger is a member of is stored - here. - - - - - - Helper implementation of the interface - - - - - Flag indicating if child loggers inherit their parents appenders - - - - Additivity is set to true by default, that is children inherit - the appenders of their ancestors by default. If this variable is - set to false then the appenders found in the - ancestors of this logger are not used. However, the children - of this logger will inherit its appenders, unless the children - have their additivity flag set to false too. See - the user manual for more details. - - - - - - Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl - - - - - Gets or sets the parent logger in the hierarchy. - - - The parent logger in the hierarchy. - - - - Part of the Composite pattern that makes the hierarchy. - The hierarchy is parent linked rather than child linked. - - - - - - Gets or sets a value indicating if child loggers inherit their parent's appenders. - - - true if child loggers inherit their parent's appenders. - - - - Additivity is set to true by default, that is children inherit - the appenders of their ancestors by default. If this variable is - set to false then the appenders found in the - ancestors of this logger are not used. However, the children - of this logger will inherit its appenders, unless the children - have their additivity flag set to false too. See - the user manual for more details. - - - - - - Gets the effective level for this logger. - - The nearest level in the logger hierarchy. - - - Starting from this logger, searches the logger hierarchy for a - non-null level and returns it. Otherwise, returns the level of the - root logger. - - The Logger class is designed so that this method executes as - quickly as possible. - - - - - Gets or sets the where this - Logger instance is attached to. - - The hierarchy that this logger belongs to. - - - This logger must be attached to a single . - - - - - - Gets or sets the assigned , if any, for this Logger. - - - The of this logger. - - - - The assigned can be null. - - - - - - Get the appenders contained in this logger as an - . - - A collection of the appenders in this logger - - - Get the appenders contained in this logger as an - . If no appenders - can be found, then a is returned. - - - - - - Gets the logger name. - - - The name of the logger. - - - - The name of this logger - - - - - - Gets the where this - Logger instance is attached to. - - - The that this logger belongs to. - - - - Gets the where this - Logger instance is attached to. - - - - - - Construct a new Logger - - the name of the logger - - - Initializes a new instance of the class - with the specified name. - - - - - - Delegate used to handle logger creation event notifications. - - The in which the has been created. - The event args that hold the instance that has been created. - - - Delegate used to handle logger creation event notifications. - - - - - - Provides data for the event. - - - - A event is raised every time a - is created. - - - - - - The created - - - - - Constructor - - The that has been created. - - - Initializes a new instance of the event argument - class,with the specified . - - - - - - Gets the that has been created. - - - The that has been created. - - - - The that has been created. - - - - - - Hierarchical organization of loggers - - - - The casual user should not have to deal with this class - directly. - - - This class is specialized in retrieving loggers by name and - also maintaining the logger hierarchy. Implements the - interface. - - - The structure of the logger hierarchy is maintained by the - method. The hierarchy is such that children - link to their parent but parents do not have any references to their - children. Moreover, loggers can be instantiated in any order, in - particular descendant before ancestor. - - - In case a descendant is created before a particular ancestor, - then it creates a provision node for the ancestor and adds itself - to the provision node. Other descendants of the same ancestor add - themselves to the previously created provision node. - - - Nicko Cadell - Gert Driesen - - - - Base implementation of - - - - Default abstract implementation of the interface. - - - Skeleton implementation of the interface. - All types can extend this type. - - - Nicko Cadell - Gert Driesen - - - - Interface implemented by logger repositories. - - - - This interface is implemented by logger repositories. e.g. - . - - - This interface is used by the - to obtain interfaces. - - - Nicko Cadell - Gert Driesen - - - - Check if the named logger exists in the repository. If so return - its reference, otherwise returns null. - - The name of the logger to lookup - The Logger object with the name specified - - - If the names logger exists it is returned, otherwise - null is returned. - - - - - - Returns all the currently defined loggers as an Array. - - All the defined loggers - - - Returns all the currently defined loggers as an Array. - - - - - - Returns a named logger instance - - The name of the logger to retrieve - The logger object with the name specified - - - Returns a named logger instance. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - - - Shutdown the repository - - - Shutting down a repository will safely close and remove - all appenders in all loggers including the root logger. - - - Some appenders need to be closed before the - application exists. Otherwise, pending logging events might be - lost. - - - The method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Reset the repositories configuration to a default state - - - - Reset all values contained in this instance to their - default state. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the through this repository. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are configured as an Array. - - All the Appenders - - - Returns all the Appenders that are configured as an Array. - - - - - - The name of the repository - - - The name of the repository - - - - The name of the repository. - - - - - - RendererMap accesses the object renderer map for this repository. - - - RendererMap accesses the object renderer map for this repository. - - - - RendererMap accesses the object renderer map for this repository. - - - The RendererMap holds a mapping between types and - objects. - - - - - - The plugin map for this repository. - - - The plugin map for this repository. - - - - The plugin map holds the instances - that have been attached to this repository. - - - - - - Get the level map for the Repository. - - - - Get the level map for the Repository. - - - The level map defines the mappings between - level names and objects in - this repository. - - - - - - The threshold for all events in this repository - - - The threshold for all events in this repository - - - - The threshold for all events in this repository. - - - - - - Flag indicates if this repository has been configured. - - - Flag indicates if this repository has been configured. - - - - Flag indicates if this repository has been configured. - - - - - - Collection of internal messages captured during the most - recent configuration process. - - - - - Event to notify that the repository has been shutdown. - - - Event to notify that the repository has been shutdown. - - - - Event raised when the repository has been shutdown. - - - - - - Event to notify that the repository has had its configuration reset. - - - Event to notify that the repository has had its configuration reset. - - - - Event raised when the repository's configuration has been - reset to default. - - - - - - Event to notify that the repository has had its configuration changed. - - - Event to notify that the repository has had its configuration changed. - - - - Event raised when the repository's configuration has been changed. - - - - - - Repository specific properties - - - Repository specific properties - - - - These properties can be specified on a repository specific basis. - - - - - - Default Constructor - - - - Initializes the repository with default (empty) properties. - - - - - - Construct the repository using specific properties - - the properties to set for this repository - - - Initializes the repository with specified properties. - - - - - - Test if logger exists - - The name of the logger to lookup - The Logger object with the name specified - - - Check if the named logger exists in the repository. If so return - its reference, otherwise returns null. - - - - - - Returns all the currently defined loggers in the repository - - All the defined loggers - - - Returns all the currently defined loggers in the repository as an Array. - - - - - - Return a new logger instance - - The name of the logger to retrieve - The logger object with the name specified - - - Return a new logger instance. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - - - - Shutdown the repository - - - - Shutdown the repository. Can be overridden in a subclass. - This base class implementation notifies the - listeners and all attached plugins of the shutdown event. - - - - - - Reset the repositories configuration to a default state - - - - Reset all values contained in this instance to their - default state. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the logEvent through this repository. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are configured as an Array. - - All the Appenders - - - Returns all the Appenders that are configured as an Array. - - - - - - The fully qualified type of the LoggerRepositorySkeleton class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Adds an object renderer for a specific class. - - The type that will be rendered by the renderer supplied. - The object renderer used to render the object. - - - Adds an object renderer for a specific class. - - - - - - Notify the registered listeners that the repository is shutting down - - Empty EventArgs - - - Notify any listeners that this repository is shutting down. - - - - - - Notify the registered listeners that the repository has had its configuration reset - - Empty EventArgs - - - Notify any listeners that this repository's configuration has been reset. - - - - - - Notify the registered listeners that the repository has had its configuration changed - - Empty EventArgs - - - Notify any listeners that this repository's configuration has changed. - - - - - - Raise a configuration changed event on this repository - - EventArgs.Empty - - - Applications that programmatically change the configuration of the repository should - raise this event notification to notify listeners. - - - - - - The name of the repository - - - The string name of the repository - - - - The name of this repository. The name is - used to store and lookup the repositories - stored by the . - - - - - - The threshold for all events in this repository - - - The threshold for all events in this repository - - - - The threshold for all events in this repository - - - - - - RendererMap accesses the object renderer map for this repository. - - - RendererMap accesses the object renderer map for this repository. - - - - RendererMap accesses the object renderer map for this repository. - - - The RendererMap holds a mapping between types and - objects. - - - - - - The plugin map for this repository. - - - The plugin map for this repository. - - - - The plugin map holds the instances - that have been attached to this repository. - - - - - - Get the level map for the Repository. - - - - Get the level map for the Repository. - - - The level map defines the mappings between - level names and objects in - this repository. - - - - - - Flag indicates if this repository has been configured. - - - Flag indicates if this repository has been configured. - - - - Flag indicates if this repository has been configured. - - - - - - Contains a list of internal messages captures during the - last configuration. - - - - - Event to notify that the repository has been shutdown. - - - Event to notify that the repository has been shutdown. - - - - Event raised when the repository has been shutdown. - - - - - - Event to notify that the repository has had its configuration reset. - - - Event to notify that the repository has had its configuration reset. - - - - Event raised when the repository's configuration has been - reset to default. - - - - - - Event to notify that the repository has had its configuration changed. - - - Event to notify that the repository has had its configuration changed. - - - - Event raised when the repository's configuration has been changed. - - - - - - Repository specific properties - - - Repository specific properties - - - These properties can be specified on a repository specific basis - - - - - Basic Configurator interface for repositories - - - - Interface used by basic configurator to configure a - with a default . - - - A should implement this interface to support - configuration by the . - - - Nicko Cadell - Gert Driesen - - - - Initialize the repository using the specified appender - - the appender to use to log all logging events - - - Configure the repository to route all logging events to the - specified appender. - - - - - - Initialize the repository using the specified appenders - - the appenders to use to log all logging events - - - Configure the repository to route all logging events to the - specified appenders. - - - - - - Configure repository using XML - - - - Interface used by Xml configurator to configure a . - - - A should implement this interface to support - configuration by the . - - - Nicko Cadell - Gert Driesen - - - - Initialize the repository using the specified config - - the element containing the root of the config - - - The schema for the XML configuration data is defined by - the implementation. - - - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Construct with properties - - The properties to pass to this repository. - - - Initializes a new instance of the class. - - - - - - Construct with a logger factory - - The factory to use to create new logger instances. - - - Initializes a new instance of the class with - the specified . - - - - - - Construct with properties and a logger factory - - The properties to pass to this repository. - The factory to use to create new logger instances. - - - Initializes a new instance of the class with - the specified . - - - - - - Test if a logger exists - - The name of the logger to lookup - The Logger object with the name specified - - - Check if the named logger exists in the hierarchy. If so return - its reference, otherwise returns null. - - - - - - Returns all the currently defined loggers in the hierarchy as an Array - - All the defined loggers - - - Returns all the currently defined loggers in the hierarchy as an Array. - The root logger is not included in the returned - enumeration. - - - - - - Return a new logger instance named as the first parameter using - the default factory. - - - - Return a new logger instance named as the first parameter using - the default factory. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - The name of the logger to retrieve - The logger object with the name specified - - - - Shutting down a hierarchy will safely close and remove - all appenders in all loggers including the root logger. - - - - Shutting down a hierarchy will safely close and remove - all appenders in all loggers including the root logger. - - - Some appenders need to be closed before the - application exists. Otherwise, pending logging events might be - lost. - - - The Shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Reset all values contained in this hierarchy instance to their default. - - - - Reset all values contained in this hierarchy instance to their - default. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the logEvent through this hierarchy. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are currently configured - - An array containing all the currently configured appenders - - - Returns all the instances that are currently configured. - All the loggers are searched for appenders. The appenders may also be containers - for appenders and these are also searched for additional loggers. - - - The list returned is unordered but does not contain duplicates. - - - - - - Collect the appenders from an . - The appender may also be a container. - - - - - - - Collect the appenders from an container - - - - - - - Initialize the log4net system using the specified appender - - the appender to use to log all logging events - - - - Initialize the log4net system using the specified appenders - - the appenders to use to log all logging events - - - - Initialize the log4net system using the specified appenders - - the appenders to use to log all logging events - - - This method provides the same functionality as the - method implemented - on this object, but it is protected and therefore can be called by subclasses. - - - - - - Initialize the log4net system using the specified config - - the element containing the root of the config - - - - Initialize the log4net system using the specified config - - the element containing the root of the config - - - This method provides the same functionality as the - method implemented - on this object, but it is protected and therefore can be called by subclasses. - - - - - - Test if this hierarchy is disabled for the specified . - - The level to check against. - - true if the repository is disabled for the level argument, false otherwise. - - - - If this hierarchy has not been configured then this method will - always return true. - - - This method will return true if this repository is - disabled for level object passed as parameter and - false otherwise. - - - See also the property. - - - - - - Clear all logger definitions from the internal hashtable - - - - This call will clear all logger definitions from the internal - hashtable. Invoking this method will irrevocably mess up the - logger hierarchy. - - - You should really know what you are doing before - invoking this method. - - - - - - Return a new logger instance named as the first parameter using - . - - The name of the logger to retrieve - The factory that will make the new logger instance - The logger object with the name specified - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated by the - parameter and linked with its existing - ancestors as well as children. - - - - - - Sends a logger creation event to all registered listeners - - The newly created logger - - Raises the logger creation event. - - - - - Updates all the parents of the specified logger - - The logger to update the parents for - - - This method loops through all the potential parents of - . There 3 possible cases: - - - - No entry for the potential parent of exists - - We create a ProvisionNode for this potential - parent and insert in that provision node. - - - - The entry is of type Logger for the potential parent. - - The entry is 's nearest existing parent. We - update 's parent field with this entry. We also break from - he loop because updating our parent's parent is our parent's - responsibility. - - - - The entry is of type ProvisionNode for this potential parent. - - We add to the list of children for this - potential parent. - - - - - - - - Replace a with a in the hierarchy. - - - - - - We update the links for all the children that placed themselves - in the provision node 'pn'. The second argument 'log' is a - reference for the newly created Logger, parent of all the - children in 'pn'. - - - We loop on all the children 'c' in 'pn'. - - - If the child 'c' has been already linked to a child of - 'log' then there is no need to update 'c'. - - - Otherwise, we set log's parent field to c's parent and set - c's parent field to log. - - - - - - Define or redefine a Level using the values in the argument - - the level values - - - Define or redefine a Level using the values in the argument - - - Supports setting levels via the configuration file. - - - - - - Set a Property using the values in the argument - - the property value - - - Set a Property using the values in the argument. - - - Supports setting property values via the configuration file. - - - - - - The fully qualified type of the Hierarchy class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Event used to notify that a logger has been created. - - - - Event raised when a logger is created. - - - - - - Has no appender warning been emitted - - - - Flag to indicate if we have already issued a warning - about not having an appender warning. - - - - - - Get the root of this hierarchy - - - - Get the root of this hierarchy. - - - - - - Gets or sets the default instance. - - The default - - - The logger factory is used to create logger instances. - - - - - - A class to hold the value, name and display name for a level - - - - A class to hold the value, name and display name for a level - - - - - - Override Object.ToString to return sensible debug info - - string info about this object - - - - Value of the level - - - - If the value is not set (defaults to -1) the value will be looked - up for the current level with the same name. - - - - - - Name of the level - - - The name of the level - - - - The name of the level. - - - - - - Display name for the level - - - The display name of the level - - - - The display name of the level. - - - - - - Used internally to accelerate hash table searches. - - - - Internal class used to improve performance of - string keyed hashtables. - - - The hashcode of the string is cached for reuse. - The string is stored as an interned value. - When comparing two objects for equality - the reference equality of the interned strings is compared. - - - Nicko Cadell - Gert Driesen - - - - Construct key with string name - - - - Initializes a new instance of the class - with the specified name. - - - Stores the hashcode of the string and interns - the string key to optimize comparisons. - - - The Compact Framework 1.0 the - method does not work. On the Compact Framework - the string keys are not interned nor are they - compared by reference. - - - The name of the logger. - - - - Returns a hash code for the current instance. - - A hash code for the current instance. - - - Returns the cached hashcode. - - - - - - Determines whether two instances - are equal. - - The to compare with the current . - - true if the specified is equal to the current ; otherwise, false. - - - - Compares the references of the interned strings. - - - - - - Provision nodes are used where no logger instance has been specified - - - - instances are used in the - when there is no specified - for that node. - - - A provision node holds a list of child loggers on behalf of - a logger that does not exist. - - - Nicko Cadell - Gert Driesen - - - - Create a new provision node with child node - - A child logger to add to this node. - - - Initializes a new instance of the class - with the specified child logger. - - - - - - The sits at the root of the logger hierarchy tree. - - - - The is a regular except - that it provides several guarantees. - - - First, it cannot be assigned a null - level. Second, since the root logger cannot have a parent, the - property always returns the value of the - level field without walking the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Construct a - - The level to assign to the root logger. - - - Initializes a new instance of the class with - the specified logging level. - - - The root logger names itself as "root". However, the root - logger cannot be retrieved by name. - - - - - - The fully qualified type of the RootLogger class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the assigned level value without walking the logger hierarchy. - - The assigned level value without walking the logger hierarchy. - - - Because the root logger cannot have a parent and its level - must not be null this property just returns the - value of . - - - - - - Gets or sets the assigned for the root logger. - - - The of the root logger. - - - - Setting the level of the root logger to a null reference - may have catastrophic results. We prevent this here. - - - - - - Initializes the log4net environment using an XML DOM. - - - - Configures a using an XML DOM. - - - Nicko Cadell - Gert Driesen - - - - Construct the configurator for a hierarchy - - The hierarchy to build. - - - Initializes a new instance of the class - with the specified . - - - - - - Configure the hierarchy by parsing a DOM tree of XML elements. - - The root element to parse. - - - Configure the hierarchy by parsing a DOM tree of XML elements. - - - - - - Parse appenders by IDREF. - - The appender ref element. - The instance of the appender that the ref refers to. - - - Parse an XML element that represents an appender and return - the appender. - - - - - - Parses an appender element. - - The appender element. - The appender instance or null when parsing failed. - - - Parse an XML element that represents an appender and return - the appender instance. - - - - - - Parses a logger element. - - The logger element. - - - Parse an XML element that represents a logger. - - - - - - Parses the root logger element. - - The root element. - - - Parse an XML element that represents the root logger. - - - - - - Parses the children of a logger element. - - The category element. - The logger instance. - Flag to indicate if the logger is the root logger. - - - Parse the child elements of a <logger> element. - - - - - - Parses an object renderer. - - The renderer element. - - - Parse an XML element that represents a renderer. - - - - - - Parses a level element. - - The level element. - The logger object to set the level on. - Flag to indicate if the logger is the root logger. - - - Parse an XML element that represents a level. - - - - - - Sets a parameter on an object. - - The parameter element. - The object to set the parameter on. - - The parameter name must correspond to a writable property - on the object. The value of the parameter is a string, - therefore this function will attempt to set a string - property first. If unable to set a string property it - will inspect the property and its argument type. It will - attempt to call a static method called Parse on the - type of the property. This method will take a single - string argument and return a value that can be used to - set the property. - - - - - Test if an element has no attributes or child elements - - the element to inspect - true if the element has any attributes or child elements, false otherwise - - - - Test if a is constructible with Activator.CreateInstance. - - the type to inspect - true if the type is creatable using a default constructor, false otherwise - - - - Look for a method on the that matches the supplied - - the type that has the method - the name of the method - the method info found - - - The method must be a public instance method on the . - The method must be named or "Add" followed by . - The method must take a single parameter. - - - - - - Converts a string value to a target type. - - The type of object to convert the string to. - The string value to use as the value of the object. - - - An object of type with value or - null when the conversion could not be performed. - - - - - - Creates an object as specified in XML. - - The XML element that contains the definition of the object. - The object type to use if not explicitly specified. - The type that the returned object must be or must inherit from. - The object or null - - - Parse an XML element and create an object instance based on the configuration - data. - - - The type of the instance may be specified in the XML. If not - specified then the is used - as the type. However the type is specified it must support the - type. - - - - - - key: appenderName, value: appender. - - - - - The Hierarchy being configured. - - - - - The fully qualified type of the XmlHierarchyConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - - - - - - - - - - - - - - - - - Delegate used to handle logger repository shutdown event notifications - - The that is shutting down. - Empty event args - - - Delegate used to handle logger repository shutdown event notifications. - - - - - - Delegate used to handle logger repository configuration reset event notifications - - The that has had its configuration reset. - Empty event args - - - Delegate used to handle logger repository configuration reset event notifications. - - - - - - Delegate used to handle event notifications for logger repository configuration changes. - - The that has had its configuration changed. - Empty event arguments. - - - Delegate used to handle event notifications for logger repository configuration changes. - - - - - - Write the name of the current AppDomain to the output - - - - Write the name of the current AppDomain to the output writer - - - Nicko Cadell - - - - Write the name of the current AppDomain to the output - - the writer to write to - null, state is not set - - - Writes name of the current AppDomain to the output . - - - - - - Write the current date to the output - - - - Date pattern converter, uses a to format - the current date and time to the writer as a string. - - - The value of the determines - the formatting of the date. The following values are allowed: - - - Option value - Output - - - ISO8601 - - Uses the formatter. - Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. - - - - DATE - - Uses the formatter. - Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". - - - - ABSOLUTE - - Uses the formatter. - Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". - - - - other - - Any other pattern string uses the formatter. - This formatter passes the pattern string to the - method. - For details on valid patterns see - DateTimeFormatInfo Class. - - - - - - The date and time is in the local time zone and is rendered in that zone. - To output the time in Universal time see . - - - Nicko Cadell - - - - The used to render the date to a string - - - - The used to render the date to a string - - - - - - Initialize the converter options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the current date to the output - - that will receive the formatted result. - null, state is not set - - - Pass the current date and time to the - for it to render it to the writer. - - - The date and time passed is in the local time zone. - - - - - - The fully qualified type of the DatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write an folder path to the output - - - - Write an special path environment folder path to the output writer. - The value of the determines - the name of the variable to output. - should be a value in the enumeration. - - - Ron Grabowski - - - - Write an special path environment folder path to the output - - the writer to write to - null, state is not set - - - Writes the special path environment folder path to the output . - The name of the special path environment folder path to output must be set - using the - property. - - - - - - The fully qualified type of the EnvironmentFolderPathPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write an environment variable to the output - - - - Write an environment variable to the output writer. - The value of the determines - the name of the variable to output. - - - Nicko Cadell - - - - Write an environment variable to the output - - the writer to write to - null, state is not set - - - Writes the environment variable to the output . - The name of the environment variable to output must be set - using the - property. - - - - - - The fully qualified type of the EnvironmentPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the current thread identity to the output - - - - Write the current thread identity to the output writer - - - Nicko Cadell - - - - Write the current thread identity to the output - - the writer to write to - null, state is not set - - - Writes the current thread identity to the output . - - - - - - The fully qualified type of the IdentityPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Pattern converter for literal string instances in the pattern - - - - Writes the literal string value specified in the - property to - the output. - - - Nicko Cadell - - - - Set the next converter in the chain - - The next pattern converter in the chain - The next pattern converter - - - Special case the building of the pattern converter chain - for instances. Two adjacent - literals in the pattern can be represented by a single combined - pattern converter. This implementation detects when a - is added to the chain - after this converter and combines its value with this converter's - literal value. - - - - - - Write the literal to the output - - the writer to write to - null, not set - - - Override the formatting behavior to ignore the FormattingInfo - because we have a literal instead. - - - Writes the value of - to the output . - - - - - - Convert this pattern into the rendered message - - that will receive the formatted result. - null, not set - - - This method is not used. - - - - - - Writes a newline to the output - - - - Writes the system dependent line terminator to the output. - This behavior can be overridden by setting the : - - - - Option Value - Output - - - DOS - DOS or Windows line terminator "\r\n" - - - UNIX - UNIX line terminator "\n" - - - - Nicko Cadell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the current process ID to the output - - - - Write the current process ID to the output writer - - - Nicko Cadell - - - - Write the current process ID to the output - - the writer to write to - null, state is not set - - - Write the current process ID to the output . - - - - - - The fully qualified type of the ProcessIdPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Property pattern converter - - - - This pattern converter reads the thread and global properties. - The thread properties take priority over global properties. - See for details of the - thread properties. See for - details of the global properties. - - - If the is specified then that will be used to - lookup a single property. If no is specified - then all properties will be dumped as a list of key value pairs. - - - Nicko Cadell - - - - Write the property value to the output - - that will receive the formatted result. - null, state is not set - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - - - - A Pattern converter that generates a string of random characters - - - - The converter generates a string of random characters. By default - the string is length 4. This can be changed by setting the - to the string value of the length required. - - - The random characters in the string are limited to uppercase letters - and numbers only. - - - The random number generator used by this class is not cryptographically secure. - - - Nicko Cadell - - - - Shared random number generator - - - - - Length of random string to generate. Default length 4. - - - - - Initialize the converter options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write a randoim string to the output - - the writer to write to - null, state is not set - - - Write a randoim string to the output . - - - - - - The fully qualified type of the RandomStringPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the current threads username to the output - - - - Write the current threads username to the output writer - - - Nicko Cadell - - - - Write the current threads username to the output - - the writer to write to - null, state is not set - - - Write the current threads username to the output . - - - - - - The fully qualified type of the UserNamePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the UTC date time to the output - - - - Date pattern converter, uses a to format - the current date and time in Universal time. - - - See the for details on the date pattern syntax. - - - - Nicko Cadell - - - - Write the current date and time to the output - - that will receive the formatted result. - null, state is not set - - - Pass the current date and time to the - for it to render it to the writer. - - - The date is in Universal time when it is rendered. - - - - - - - The fully qualified type of the UtcDatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Type converter for Boolean. - - - - Supports conversion from string to bool type. - - - - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Convert the source object to the type supported by this object - - the object to convert - the converted object - - - Uses the method to convert the - argument to a . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Exception base type for conversion errors. - - - - This type extends . It - does not add any new functionality but does differentiate the - type of exception being thrown. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - A message to include with the exception. - - - Initializes a new instance of the class - with the specified message. - - - - - - Constructor - - A message to include with the exception. - A nested exception to include. - - - Initializes a new instance of the class - with the specified message and inner exception. - - - - - - Serialization constructor - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Creates a new instance of the class. - - The conversion destination type. - The value to convert. - An instance of the . - - - Creates a new instance of the class. - - - - - - Creates a new instance of the class. - - The conversion destination type. - The value to convert. - A nested exception to include. - An instance of the . - - - Creates a new instance of the class. - - - - - - Register of type converters for specific types. - - - - Maintains a registry of type converters used to convert between - types. - - - Use the and - methods to register new converters. - The and methods - lookup appropriate converters to use. - - - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - Initializes a new instance of the class. - - - - - Static constructor. - - - - This constructor defines the intrinsic type converters. - - - - - - Adds a converter for a specific type. - - The type being converted to. - The type converter to use to convert to the destination type. - - - Adds a converter instance for a specific type. - - - - - - Adds a converter for a specific type. - - The type being converted to. - The type of the type converter to use to convert to the destination type. - - - Adds a converter for a specific type. - - - - - - Gets the type converter to use to convert values to the destination type. - - The type being converted from. - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - Gets the type converter to use to convert values to the destination type. - - - - - - Gets the type converter to use to convert values to the destination type. - - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - Gets the type converter to use to convert values to the destination type. - - - - - - Lookups the type converter to use as specified by the attributes on the - destination type. - - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - - Creates the instance of the type converter. - - The type of the type converter. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - The type specified for the type converter must implement - the or interfaces - and must have a public default (no argument) constructor. - - - - - - The fully qualified type of the ConverterRegistry class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Mapping from to type converter. - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to an encoding - the encoding - - - Uses the method to - convert the argument to an . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Interface supported by type converters - - - - This interface supports conversion from a single type to arbitrary types. - See . - - - Nicko Cadell - - - - Returns whether this converter can convert the object to the specified type - - A Type that represents the type you want to convert to - true if the conversion is possible - - - Test if the type supported by this converter can be converted to the - . - - - - - - Converts the given value object to the specified type, using the arguments - - the object to convert - The Type to convert the value parameter to - the converted object - - - Converts the (which must be of the type supported - by this converter) to the specified.. - - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to an IPAddress - the IPAddress - - - Uses the method to convert the - argument to an . - If that fails then the string is resolved as a DNS hostname. - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - The string is used as the - of the . - - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a PatternLayout - the PatternLayout - - - Creates and returns a new using - the as the - . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Convert between string and - - - - Supports conversion from string to type, - and from a type to a string. - - - The string is used as the - of the . - - - - - - Nicko Cadell - - - - Can the target type be converted to the type supported by this object - - A that represents the type you want to convert to - true if the conversion is possible - - - Returns true if the is - assignable from a type. - - - - - - Converts the given value object to the specified type, using the arguments - - the object to convert - The Type to convert the value parameter to - the converted object - - - Uses the method to convert the - argument to a . - - - - The object cannot be converted to the - . To check for this condition use the - method. - - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a PatternString - the PatternString - - - Creates and returns a new using - the as the - . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a Type - the Type - - - Uses the method to convert the - argument to a . - Additional effort is made to locate partially specified types - by searching the loaded assemblies. - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Attribute used to associate a type converter - - - - Class and Interface level attribute that specifies a type converter - to use with the associated type. - - - To associate a type converter with a target type apply a - TypeConverterAttribute to the target type. Specify the - type of the type converter on the attribute. - - - Nicko Cadell - Gert Driesen - - - - The string type name of the type converter - - - - - Default constructor - - - - Default constructor - - - - - - Create a new type converter attribute for the specified type name - - The string type name of the type converter - - - The type specified must implement the - or the interfaces. - - - - - - Create a new type converter attribute for the specified type - - The type of the type converter - - - The type specified must implement the - or the interfaces. - - - - - - The string type name of the type converter - - - The string type name of the type converter - - - - The type specified must implement the - or the interfaces. - - - - - - A straightforward implementation of the interface. - - - - This is the default implementation of the - interface. Implementors of the interface - should aggregate an instance of this type. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Append on on all attached appenders. - - The event being logged. - The number of appenders called. - - - Calls the method on all - attached appenders. - - - - - - Append on on all attached appenders. - - The array of events being logged. - The number of appenders called. - - - Calls the method on all - attached appenders. - - - - - - Calls the DoAppende method on the with - the objects supplied. - - The appender - The events - - - If the supports the - interface then the will be passed - through using that interface. Otherwise the - objects in the array will be passed one at a time. - - - - - - Attaches an appender. - - The appender to add. - - - If the appender is already in the list it won't be added again. - - - - - - Gets an attached appender with the specified name. - - The name of the appender to get. - - The appender with the name specified, or null if no appender with the - specified name is found. - - - - Lookup an attached appender by name. - - - - - - Removes all attached appenders. - - - - Removes and closes all attached appenders - - - - - - Removes the specified appender from the list of attached appenders. - - The appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - List of appenders - - - - - Array of appenders, used to cache the m_appenderList - - - - - The fully qualified type of the AppenderAttachedImpl class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets all attached appenders. - - - A collection of attached appenders, or null if there - are no attached appenders. - - - - The read only collection of all currently attached appenders. - - - - - - This class aggregates several PropertiesDictionary collections together. - - - - Provides a dictionary style lookup over an ordered list of - collections. - - - Nicko Cadell - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Add a Properties Dictionary to this composite collection - - the properties to add - - - Properties dictionaries added first take precedence over dictionaries added - later. - - - - - - Flatten this composite collection into a single properties dictionary - - the flattened dictionary - - - Reduces the collection of ordered dictionaries to a single dictionary - containing the resultant values for the keys. - - - - - - Gets the value of a property - - - The value for the property with the specified key - - - - Looks up the value for the specified. - The collections are searched - in the order in which they were added to this collection. The value - returned is the value held by the first collection that contains - the specified key. - - - If none of the collections contain the specified key then - null is returned. - - - - - - Base class for Context Properties implementations - - - - This class defines a basic property get set accessor - - - Nicko Cadell - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Gets or sets the value of a property - - - - - - Wrapper class used to map converter names to converter types - - - - Pattern converter info class used during configuration by custom - PatternString and PatternLayer converters. - - - - - - default constructor - - - - - - - - - - - Gets or sets the name of the conversion pattern - - - - The name of the pattern in the format string - - - - - - Gets or sets the type of the converter - - - - The value specified must extend the - type. - - - - - - - - - - - Subclass of that maintains a count of - the number of bytes written. - - - - This writer counts the number of bytes written. - - - Nicko Cadell - Gert Driesen - - - - that does not leak exceptions - - - - does not throw exceptions when things go wrong. - Instead, it delegates error handling to its . - - - Nicko Cadell - Gert Driesen - - - - Adapter that extends and forwards all - messages to an instance of . - - - - Adapter that extends and forwards all - messages to an instance of . - - - Nicko Cadell - - - - The writer to forward messages to - - - - - Create an instance of that forwards all - messages to a . - - The to forward to - - - Create an instance of that forwards all - messages to a . - - - - - - Closes the writer and releases any system resources associated with the writer - - - - - - - - - Dispose this writer - - flag indicating if we are being disposed - - - Dispose this writer - - - - - - Flushes any buffered output - - - - Clears all buffers for the writer and causes any buffered data to be written - to the underlying device - - - - - - Writes a character to the wrapped TextWriter - - the value to write to the TextWriter - - - Writes a character to the wrapped TextWriter - - - - - - Writes a character buffer to the wrapped TextWriter - - the data buffer - the start index - the number of characters to write - - - Writes a character buffer to the wrapped TextWriter - - - - - - Writes a string to the wrapped TextWriter - - the value to write to the TextWriter - - - Writes a string to the wrapped TextWriter - - - - - - Gets or sets the underlying . - - - The underlying . - - - - Gets or sets the underlying . - - - - - - The Encoding in which the output is written - - - The - - - - The Encoding in which the output is written - - - - - - Gets an object that controls formatting - - - The format provider - - - - Gets an object that controls formatting - - - - - - Gets or sets the line terminator string used by the TextWriter - - - The line terminator to use - - - - Gets or sets the line terminator string used by the TextWriter - - - - - - Constructor - - the writer to actually write to - the error handler to report error to - - - Create a new QuietTextWriter using a writer and error handler - - - - - - Writes a character to the underlying writer - - the char to write - - - Writes a character to the underlying writer - - - - - - Writes a buffer to the underlying writer - - the buffer to write - the start index to write from - the number of characters to write - - - Writes a buffer to the underlying writer - - - - - - Writes a string to the output. - - The string data to write to the output. - - - Writes a string to the output. - - - - - - Closes the underlying output writer. - - - - Closes the underlying output writer. - - - - - - The error handler instance to pass all errors to - - - - - Flag to indicate if this writer is closed - - - - - Gets or sets the error handler that all errors are passed to. - - - The error handler that all errors are passed to. - - - - Gets or sets the error handler that all errors are passed to. - - - - - - Gets a value indicating whether this writer is closed. - - - true if this writer is closed, otherwise false. - - - - Gets a value indicating whether this writer is closed. - - - - - - Constructor - - The to actually write to. - The to report errors to. - - - Creates a new instance of the class - with the specified and . - - - - - - Writes a character to the underlying writer and counts the number of bytes written. - - the char to write - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Writes a buffer to the underlying writer and counts the number of bytes written. - - the buffer to write - the start index to write from - the number of characters to write - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Writes a string to the output and counts the number of bytes written. - - The string data to write to the output. - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Total number of bytes written. - - - - - Gets or sets the total number of bytes written. - - - The total number of bytes written. - - - - Gets or sets the total number of bytes written. - - - - - - A fixed size rolling buffer of logging events. - - - - An array backed fixed size leaky bucket. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The maximum number of logging events in the buffer. - - - Initializes a new instance of the class with - the specified maximum number of buffered logging events. - - - The argument is not a positive integer. - - - - Appends a to the buffer. - - The event to append to the buffer. - The event discarded from the buffer, if the buffer is full, otherwise null. - - - Append an event to the buffer. If the buffer still contains free space then - null is returned. If the buffer is full then an event will be dropped - to make space for the new event, the event dropped is returned. - - - - - - Get and remove the oldest event in the buffer. - - The oldest logging event in the buffer - - - Gets the oldest (first) logging event in the buffer and removes it - from the buffer. - - - - - - Pops all the logging events from the buffer into an array. - - An array of all the logging events in the buffer. - - - Get all the events in the buffer and clear the buffer. - - - - - - Clear the buffer - - - - Clear the buffer of all events. The events in the buffer are lost. - - - - - - Gets the th oldest event currently in the buffer. - - The th oldest event currently in the buffer. - - - If is outside the range 0 to the number of events - currently in the buffer, then null is returned. - - - - - - Gets the maximum size of the buffer. - - The maximum size of the buffer. - - - Gets the maximum size of the buffer - - - - - - Gets the number of logging events in the buffer. - - The number of logging events in the buffer. - - - This number is guaranteed to be in the range 0 to - (inclusive). - - - - - - An always empty . - - - - A singleton implementation of the - interface that always represents an empty collection. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Copies the elements of the to an - , starting at a particular Array index. - - The one-dimensional - that is the destination of the elements copied from - . The Array must have zero-based - indexing. - The zero-based index in array at which - copying begins. - - - As the collection is empty no values are copied into the array. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - The singleton instance of the empty collection. - - - - - Gets the singleton instance of the empty collection. - - The singleton instance of the empty collection. - - - Gets the singleton instance of the empty collection. - - - - - - Gets a value indicating if access to the is synchronized (thread-safe). - - - true if access to the is synchronized (thread-safe); otherwise, false. - - - - For the this property is always true. - - - - - - Gets the number of elements contained in the . - - - The number of elements contained in the . - - - - As the collection is empty the is always 0. - - - - - - Gets an object that can be used to synchronize access to the . - - - An object that can be used to synchronize access to the . - - - - As the collection is empty and thread safe and synchronized this instance is also - the object. - - - - - - An always empty . - - - - A singleton implementation of the - interface that always represents an empty collection. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Copies the elements of the to an - , starting at a particular Array index. - - The one-dimensional - that is the destination of the elements copied from - . The Array must have zero-based - indexing. - The zero-based index in array at which - copying begins. - - - As the collection is empty no values are copied into the array. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - Adds an element with the provided key and value to the - . - - The to use as the key of the element to add. - The to use as the value of the element to add. - - - As the collection is empty no new values can be added. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - Removes all elements from the . - - - - As the collection is empty no values can be removed. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - Determines whether the contains an element - with the specified key. - - The key to locate in the . - false - - - As the collection is empty the method always returns false. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - Removes the element with the specified key from the . - - The key of the element to remove. - - - As the collection is empty no values can be removed. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - The singleton instance of the empty dictionary. - - - - - Gets the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets a value indicating if access to the is synchronized (thread-safe). - - - true if access to the is synchronized (thread-safe); otherwise, false. - - - - For the this property is always true. - - - - - - Gets the number of elements contained in the - - - The number of elements contained in the . - - - - As the collection is empty the is always 0. - - - - - - Gets an object that can be used to synchronize access to the . - - - An object that can be used to synchronize access to the . - - - - As the collection is empty and thread safe and synchronized this instance is also - the object. - - - - - - Gets a value indicating whether the has a fixed size. - - true - - - As the collection is empty always returns true. - - - - - - Gets a value indicating whether the is read-only. - - true - - - As the collection is empty always returns true. - - - - - - Gets an containing the keys of the . - - An containing the keys of the . - - - As the collection is empty a is returned. - - - - - - Gets an containing the values of the . - - An containing the values of the . - - - As the collection is empty a is returned. - - - - - - Gets or sets the element with the specified key. - - The key of the element to get or set. - null - - - As the collection is empty no values can be looked up or stored. - If the index getter is called then null is returned. - A is thrown if the setter is called. - - - This dictionary is always empty and cannot be modified. - - - - Contain the information obtained when parsing formatting modifiers - in conversion modifiers. - - - - Holds the formatting information extracted from the format string by - the . This is used by the - objects when rendering the output. - - - Nicko Cadell - Gert Driesen - - - - Defaut Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - - - Initializes a new instance of the class - with the specified parameters. - - - - - - Gets or sets the minimum value. - - - The minimum value. - - - - Gets or sets the minimum value. - - - - - - Gets or sets the maximum value. - - - The maximum value. - - - - Gets or sets the maximum value. - - - - - - Gets or sets a flag indicating whether left align is enabled - or not. - - - A flag indicating whether left align is enabled or not. - - - - Gets or sets a flag indicating whether left align is enabled or not. - - - - - - Implementation of Properties collection for the - - - - This class implements a properties collection that is thread safe and supports both - storing properties and capturing a read only copy of the current propertied. - - - This class is optimized to the scenario where the properties are read frequently - and are modified infrequently. - - - Nicko Cadell - - - - The read only copy of the properties. - - - - This variable is declared volatile to prevent the compiler and JIT from - reordering reads and writes of this thread performed on different threads. - - - - - - Lock object used to synchronize updates within this instance - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property from the global context - - the key for the entry to remove - - - Removing an entry from the global context properties is relatively expensive compared - with reading a value. - - - - - - Clear the global context properties - - - - - Get a readonly immutable copy of the properties - - the current global context properties - - - This implementation is fast because the GlobalContextProperties class - stores a readonly copy of the properties. - - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Reading the value for a key is faster than setting the value. - When the value is written a new read only copy of - the properties is created. - - - - - - Manages a mapping from levels to - - - - Manages an ordered mapping from instances - to subclasses. - - - Nicko Cadell - - - - Default constructor - - - - Initialise a new instance of . - - - - - - Add a to this mapping - - the entry to add - - - If a has previously been added - for the same then that entry will be - overwritten. - - - - - - Lookup the mapping for the specified level - - the level to lookup - the for the level or null if no mapping found - - - Lookup the value for the specified level. Finds the nearest - mapping value for the level that is equal to or less than the - specified. - - - If no mapping could be found then null is returned. - - - - - - Initialize options - - - - Caches the sorted list of in an array - - - - - - Implementation of Properties collection for the - - - - Class implements a collection of properties that is specific to each thread. - The class is not synchronized as each thread has its own . - - - This class stores its properties in a slot on the named - log4net.Util.LogicalThreadContextProperties. - - - The requires a link time - for the - . - If the calling code does not have this permission then this context will be disabled. - It will not store any property values set on it. - - - Nicko Cadell - - - - Flag used to disable this context if we don't have permission to access the CallContext. - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property - - the key for the entry to remove - - - Remove the value for the specified from the context. - - - - - - Clear all the context properties - - - - Clear all the context properties - - - - - - Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. - - create the dictionary if it does not exist, otherwise return null if is does not exist - the properties for this thread - - - The collection returned is only to be used on the calling thread. If the - caller needs to share the collection between different threads then the - caller must clone the collection before doings so. - - - - - - Gets the call context get data. - - The peroperties dictionary stored in the call context - - The method has a - security link demand, therfore we must put the method call in a seperate method - that we can wrap in an exception handler. - - - - - Sets the call context data. - - The properties. - - The method has a - security link demand, therfore we must put the method call in a seperate method - that we can wrap in an exception handler. - - - - - The fully qualified type of the LogicalThreadContextProperties class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Get or set the property value for the specified. - - - - - - - - - - - - - Outputs log statements from within the log4net assembly. - - - - Log4net components cannot make log4net logging calls. However, it is - sometimes useful for the user to learn about what log4net is - doing. - - - All log4net internal debug calls go to the standard output stream - whereas internal error messages are sent to the standard error output - stream. - - - Nicko Cadell - Gert Driesen - - - - Formats Prefix, Source, and Message in the same format as the value - sent to Console.Out and Trace.Write. - - - - - - Initializes a new instance of the class. - - - - - - - - - Static constructor that initializes logging by reading - settings from the application configuration file. - - - - The log4net.Internal.Debug application setting - controls internal debugging. This setting should be set - to true to enable debugging. - - - The log4net.Internal.Quiet application setting - suppresses all internal logging including error messages. - This setting should be set to true to enable message - suppression. - - - - - - Raises the LogReceived event when an internal messages is received. - - - - - - - - - Writes log4net internal debug messages to the - standard output stream. - - - The message to log. - - - All internal debug messages are prepended with - the string "log4net: ". - - - - - - Writes log4net internal debug messages to the - standard output stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal debug messages are prepended with - the string "log4net: ". - - - - - - Writes log4net internal warning messages to the - standard error stream. - - The Type that generated this message. - The message to log. - - - All internal warning messages are prepended with - the string "log4net:WARN ". - - - - - - Writes log4net internal warning messages to the - standard error stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal warning messages are prepended with - the string "log4net:WARN ". - - - - - - Writes log4net internal error messages to the - standard error stream. - - The Type that generated this message. - The message to log. - - - All internal error messages are prepended with - the string "log4net:ERROR ". - - - - - - Writes log4net internal error messages to the - standard error stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal debug messages are prepended with - the string "log4net:ERROR ". - - - - - - Writes output to the standard output stream. - - The message to log. - - - Writes to both Console.Out and System.Diagnostics.Trace. - Note that the System.Diagnostics.Trace is not supported - on the Compact Framework. - - - If the AppDomain is not configured with a config file then - the call to System.Diagnostics.Trace may fail. This is only - an issue if you are programmatically creating your own AppDomains. - - - - - - Writes output to the standard error stream. - - The message to log. - - - Writes to both Console.Error and System.Diagnostics.Trace. - Note that the System.Diagnostics.Trace is not supported - on the Compact Framework. - - - If the AppDomain is not configured with a config file then - the call to System.Diagnostics.Trace may fail. This is only - an issue if you are programmatically creating your own AppDomains. - - - - - - Default debug level - - - - - In quietMode not even errors generate any output. - - - - - The event raised when an internal message has been received. - - - - - The Type that generated the internal message. - - - - - The DateTime stamp of when the internal message was received. - - - - - A string indicating the severity of the internal message. - - - "log4net: ", - "log4net:ERROR ", - "log4net:WARN " - - - - - The internal log message. - - - - - The Exception related to the message. - - - Optional. Will be null if no Exception was passed. - - - - - Gets or sets a value indicating whether log4net internal logging - is enabled or disabled. - - - true if log4net internal logging is enabled, otherwise - false. - - - - When set to true, internal debug level logging will be - displayed. - - - This value can be set by setting the application setting - log4net.Internal.Debug in the application configuration - file. - - - The default value is false, i.e. debugging is - disabled. - - - - - The following example enables internal debugging using the - application configuration file : - - - - - - - - - - - - - Gets or sets a value indicating whether log4net should generate no output - from internal logging, not even for errors. - - - true if log4net should generate no output at all from internal - logging, otherwise false. - - - - When set to true will cause internal logging at all levels to be - suppressed. This means that no warning or error reports will be logged. - This option overrides the setting and - disables all debug also. - - This value can be set by setting the application setting - log4net.Internal.Quiet in the application configuration file. - - - The default value is false, i.e. internal logging is not - disabled. - - - - The following example disables internal logging using the - application configuration file : - - - - - - - - - - - - - - - - - Test if LogLog.Debug is enabled for output. - - - true if Debug is enabled - - - - Test if LogLog.Debug is enabled for output. - - - - - - Test if LogLog.Warn is enabled for output. - - - true if Warn is enabled - - - - Test if LogLog.Warn is enabled for output. - - - - - - Test if LogLog.Error is enabled for output. - - - true if Error is enabled - - - - Test if LogLog.Error is enabled for output. - - - - - - Subscribes to the LogLog.LogReceived event and stores messages - to the supplied IList instance. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Represents a native error code and message. - - - - Represents a Win32 platform native error. - - - Nicko Cadell - Gert Driesen - - - - Create an instance of the class with the specified - error number and message. - - The number of the native error. - The message of the native error. - - - Create an instance of the class with the specified - error number and message. - - - - - - Create a new instance of the class for the last Windows error. - - - An instance of the class for the last windows error. - - - - The message for the error number is lookup up using the - native Win32 FormatMessage function. - - - - - - Create a new instance of the class. - - the error number for the native error - - An instance of the class for the specified - error number. - - - - The message for the specified error number is lookup up using the - native Win32 FormatMessage function. - - - - - - Retrieves the message corresponding with a Win32 message identifier. - - Message identifier for the requested message. - - The message corresponding with the specified message identifier. - - - - The message will be searched for in system message-table resource(s) - using the native FormatMessage function. - - - - - - Return error information string - - error information string - - - Return error information string - - - - - - Formats a message string. - - Formatting options, and how to interpret the parameter. - Location of the message definition. - Message identifier for the requested message. - Language identifier for the requested message. - If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . - If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. - Pointer to an array of values that are used as insert values in the formatted message. - - - The function requires a message definition as input. The message definition can come from a - buffer passed into the function. It can come from a message table resource in an - already-loaded module. Or the caller can ask the function to search the system's message - table resource(s) for the message definition. The function finds the message definition - in a message table resource based on a message identifier and a language identifier. - The function copies the formatted message text to an output buffer, processing any embedded - insert sequences if requested. - - - To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. - - - - - If the function succeeds, the return value is the number of TCHARs stored in the output - buffer, excluding the terminating null character. - - - If the function fails, the return value is zero. To get extended error information, - call . - - - - - - Gets the number of the native error. - - - The number of the native error. - - - - Gets the number of the native error. - - - - - - Gets the message of the native error. - - - The message of the native error. - - - - - Gets the message of the native error. - - - - - An always empty . - - - - A singleton implementation of the over a collection - that is empty and not modifiable. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Test if the enumerator can advance, if so advance. - - false as the cannot advance. - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will always return false. - - - - - - Resets the enumerator back to the start. - - - - As the enumerator is over an empty collection does nothing. - - - - - - The singleton instance of the . - - - - - Gets the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets the current object from the enumerator. - - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current key from the enumerator. - - - Throws an exception because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current value from the enumerator. - - The current value from the enumerator. - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current entry from the enumerator. - - - Throws an because the - never has a current entry. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - An always empty . - - - - A singleton implementation of the over a collection - that is empty and not modifiable. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Test if the enumerator can advance, if so advance - - false as the cannot advance. - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will always return false. - - - - - - Resets the enumerator back to the start. - - - - As the enumerator is over an empty collection does nothing. - - - - - - The singleton instance of the . - - - - - Get the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets the current object from the enumerator. - - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - A SecurityContext used when a SecurityContext is not required - - - - The is a no-op implementation of the - base class. It is used where a - is required but one has not been provided. - - - Nicko Cadell - - - - Singleton instance of - - - - Singleton instance of - - - - - - Private constructor - - - - Private constructor for singleton pattern. - - - - - - Impersonate this SecurityContext - - State supplied by the caller - null - - - No impersonation is done and null is always returned. - - - - - - Implements log4net's default error handling policy which consists - of emitting a message for the first error in an appender and - ignoring all subsequent errors. - - - - The error message is processed using the LogLog sub-system. - - - This policy aims at protecting an otherwise working application - from being flooded with error messages when logging fails. - - - Nicko Cadell - Gert Driesen - Ron Grabowski - - - - Default Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - The prefix to use for each message. - - - Initializes a new instance of the class - with the specified prefix. - - - - - - Reset the error handler back to its initial disabled state. - - - - - Log an Error - - The error message. - The exception. - The internal error code. - - - Sends the error information to 's Error method. - - - - - - Log an Error - - The error message. - The exception. - - - Prints the message and the stack trace of the exception on the standard - error output stream. - - - - - - Log an error - - The error message. - - - Print a the error message passed as parameter on the standard - error output stream. - - - - - - The date the error was recorded. - - - - - Flag to indicate if it is the first error - - - - - The message recorded during the first error. - - - - - The exception recorded during the first error. - - - - - The error code recorded during the first error. - - - - - String to prefix each message with - - - - - The fully qualified type of the OnlyOnceErrorHandler class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Is error logging enabled - - - - Is error logging enabled. Logging is only enabled for the - first error delivered to the . - - - - - - The date the first error that trigged this error handler occured. - - - - - The message from the first error that trigged this error handler. - - - - - The exception from the first error that trigged this error handler. - - - May be . - - - - - The error code from the first error that trigged this error handler. - - - Defaults to - - - - - A convenience class to convert property values to specific types. - - - - Utility functions for converting types and parsing values. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Converts a string to a value. - - String to convert. - The default value. - The value of . - - - If is "true", then true is returned. - If is "false", then false is returned. - Otherwise, is returned. - - - - - - Parses a file size into a number. - - String to parse. - The default value. - The value of . - - - Parses a file size of the form: number[KB|MB|GB] into a - long value. It is scaled with the appropriate multiplier. - - - is returned when - cannot be converted to a value. - - - - - - Converts a string to an object. - - The target type to convert to. - The string to convert to an object. - - The object converted from a string or null when the - conversion failed. - - - - Converts a string to an object. Uses the converter registry to try - to convert the string value into the specified target type. - - - - - - Checks if there is an appropriate type conversion from the source type to the target type. - - The type to convert from. - The type to convert to. - true if there is a conversion from the source type to the target type. - - Checks if there is an appropriate type conversion from the source type to the target type. - - - - - - - Converts an object to the target type. - - The object to convert to the target type. - The type to convert to. - The converted object. - - - Converts an object to the target type. - - - - - - Instantiates an object given a class name. - - The fully qualified class name of the object to instantiate. - The class to which the new object should belong. - The object to return in case of non-fulfillment. - - An instance of the or - if the object could not be instantiated. - - - - Checks that the is a subclass of - . If that test fails or the object could - not be instantiated, then is returned. - - - - - - Performs variable substitution in string from the - values of keys found in . - - The string on which variable substitution is performed. - The dictionary to use to lookup variables. - The result of the substitutions. - - - The variable substitution delimiters are ${ and }. - - - For example, if props contains key=value, then the call - - - - string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); - - - - will set the variable s to "Value of key is value.". - - - If no value could be found for the specified key, then substitution - defaults to an empty string. - - - For example, if system properties contains no value for the key - "nonExistentKey", then the call - - - - string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); - - - - will set s to "Value of nonExistentKey is []". - - - An Exception is thrown if contains a start - delimiter "${" which is not balanced by a stop delimiter "}". - - - - - - Converts the string representation of the name or numeric value of one or - more enumerated constants to an equivalent enumerated object. - - The type to convert to. - The enum string value. - If true, ignore case; otherwise, regard case. - An object of type whose value is represented by . - - - - The fully qualified type of the OptionConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Most of the work of the class - is delegated to the PatternParser class. - - - - The PatternParser processes a pattern string and - returns a chain of objects. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The pattern to parse. - - - Initializes a new instance of the class - with the specified pattern string. - - - - - - Parses the pattern into a chain of pattern converters. - - The head of a chain of pattern converters. - - - Parses the pattern into a chain of pattern converters. - - - - - - Build the unified cache of converters from the static and instance maps - - the list of all the converter names - - - Build the unified cache of converters from the static and instance maps - - - - - - Internal method to parse the specified pattern to find specified matches - - the pattern to parse - the converter names to match in the pattern - - - The matches param must be sorted such that longer strings come before shorter ones. - - - - - - Process a parsed literal - - the literal text - - - - Process a parsed converter pattern - - the name of the converter - the optional option for the converter - the formatting info for the converter - - - - Resets the internal state of the parser and adds the specified pattern converter - to the chain. - - The pattern converter to add. - - - - The first pattern converter in the chain - - - - - the last pattern converter in the chain - - - - - The pattern - - - - - Internal map of converter identifiers to converter types - - - - This map overrides the static s_globalRulesRegistry map. - - - - - - The fully qualified type of the PatternParser class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Get the converter registry used by this parser - - - The converter registry used by this parser - - - - Get the converter registry used by this parser - - - - - - Sort strings by length - - - - that orders strings by string length. - The longest strings are placed first - - - - - - This class implements a patterned string. - - - - This string has embedded patterns that are resolved and expanded - when the string is formatted. - - - This class functions similarly to the - in that it accepts a pattern and renders it to a string. Unlike the - however the PatternString - does not render the properties of a specific but - of the process in general. - - - The recognized conversion pattern names are: - - - - Conversion Pattern Name - Effect - - - appdomain - - - Used to output the friendly name of the current AppDomain. - - - - - date - - - Used to output the current date and time in the local time zone. - To output the date in universal time use the %utcdate pattern. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %date{HH:mm:ss,fff} or - %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %date{ISO8601} or %date{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - env - - - Used to output the a specific environment variable. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %env{COMPUTERNAME} would include the value - of the COMPUTERNAME environment variable. - - - The env pattern is not supported on the .NET Compact Framework. - - - - - identity - - - Used to output the user name for the currently active user - (Principal.Identity.Name). - - - - - newline - - - Outputs the platform dependent line separator character or - characters. - - - This conversion pattern name offers the same performance as using - non-portable line separator strings such as "\n", or "\r\n". - Thus, it is the preferred way of specifying a line separator. - - - - - processid - - - Used to output the system process ID for the current process. - - - - - property - - - Used to output a specific context property. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %property{user} would include the value - from the property that is keyed by the string 'user'. Each property value - that is to be included in the log must be specified separately. - Properties are stored in logging contexts. By default - the log4net:HostName property is set to the name of machine on - which the event was originally logged. - - - If no key is specified, e.g. %property then all the keys and their - values are printed in a comma separated list. - - - The properties of an event are combined from a number of different - contexts. These are listed below in the order in which they are searched. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - random - - - Used to output a random string of characters. The string is made up of - uppercase letters and numbers. By default the string is 4 characters long. - The length of the string can be specified within braces directly following the - pattern specifier, e.g. %random{8} would output an 8 character string. - - - - - username - - - Used to output the WindowsIdentity for the currently - active user. - - - - - utcdate - - - Used to output the date of the logging event in universal time. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %utcdate{HH:mm:ss,fff} or - %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %utcdate{ISO8601} or %utcdate{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - % - - - The sequence %% outputs a single percent sign. - - - - - - Additional pattern converters may be registered with a specific - instance using or - . - - - See the for details on the - format modifiers supported by the patterns. - - - Nicko Cadell - - - - Internal map of converter identifiers to converter types. - - - - - the pattern - - - - - the head of the pattern converter chain - - - - - patterns defined on this PatternString only - - - - - Initialize the global registry - - - - - Default constructor - - - - Initialize a new instance of - - - - - - Constructs a PatternString - - The pattern to use with this PatternString - - - Initialize a new instance of with the pattern specified. - - - - - - Initialize object options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Create the used to parse the pattern - - the pattern to parse - The - - - Returns PatternParser used to parse the conversion string. Subclasses - may override this to return a subclass of PatternParser which recognize - custom conversion pattern name. - - - - - - Produces a formatted string as specified by the conversion pattern. - - The TextWriter to write the formatted event to - - - Format the pattern to the . - - - - - - Format the pattern as a string - - the pattern formatted as a string - - - Format the pattern to a string. - - - - - - Add a converter to this PatternString - - the converter info - - - This version of the method is used by the configurator. - Programmatic users should use the alternative method. - - - - - - Add a converter to this PatternString - - the name of the conversion pattern for this converter - the type of the converter - - - Add a converter to this PatternString - - - - - - Gets or sets the pattern formatting string - - - The pattern formatting string - - - - The ConversionPattern option. This is the string which - controls formatting and consists of a mix of literal content and - conversion specifiers. - - - - - - String keyed object map. - - - - While this collection is serializable only member - objects that are serializable will - be serialized along with this collection. - - - Nicko Cadell - Gert Driesen - - - - String keyed object map that is read only. - - - - This collection is readonly and cannot be modified. - - - While this collection is serializable only member - objects that are serializable will - be serialized along with this collection. - - - Nicko Cadell - Gert Driesen - - - - The Hashtable used to store the properties data - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Copy Constructor - - properties to copy - - - Initializes a new instance of the class. - - - - - - Deserialization constructor - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Gets the key names. - - An array of all the keys. - - - Gets the key names. - - - - - - Test if the dictionary contains a specified key - - the key to look for - true if the dictionary contains the specified key - - - Test if the dictionary contains a specified key - - - - - - Serializes this object into the provided. - - The to populate with data. - The destination for this serialization. - - - Serializes this object into the provided. - - - - - - See - - - - - See - - - - - - See - - - - - - - Remove all properties from the properties collection - - - - - See - - - - - - - See - - - - - - - See - - - - - Gets or sets the value of the property with the specified key. - - - The value of the property with the specified key. - - The key of the property to get or set. - - - The property value will only be serialized if it is serializable. - If it cannot be serialized it will be silently ignored if - a serialization operation is performed. - - - - - - The hashtable used to store the properties - - - The internal collection used to store the properties - - - - The hashtable used to store the properties - - - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - The number of properties in this collection - - - - - See - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - properties to copy - - - Initializes a new instance of the class. - - - - - - Initializes a new instance of the class - with serialized data. - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Because this class is sealed the serialization constructor is private. - - - - - - Remove the entry with the specified key from this dictionary - - the key for the entry to remove - - - Remove the entry with the specified key from this dictionary - - - - - - See - - an enumerator - - - Returns a over the contest of this collection. - - - - - - See - - the key to remove - - - Remove the entry with the specified key from this dictionary - - - - - - See - - the key to lookup in the collection - true if the collection contains the specified key - - - Test if this collection contains a specified key. - - - - - - Remove all properties from the properties collection - - - - Remove all properties from the properties collection - - - - - - See - - the key - the value to store for the key - - - Store a value for the specified . - - - Thrown if the is not a string - - - - See - - - - - - - See - - - - - Gets or sets the value of the property with the specified key. - - - The value of the property with the specified key. - - The key of the property to get or set. - - - The property value will only be serialized if it is serializable. - If it cannot be serialized it will be silently ignored if - a serialization operation is performed. - - - - - - See - - - false - - - - This collection is modifiable. This property always - returns false. - - - - - - See - - - The value for the key specified. - - - - Get or set a value for the specified . - - - Thrown if the is not a string - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - A class to hold the key and data for a property set in the config file - - - - A class to hold the key and data for a property set in the config file - - - - - - Override Object.ToString to return sensible debug info - - string info about this object - - - - Property Key - - - Property Key - - - - Property Key. - - - - - - Property Value - - - Property Value - - - - Property Value. - - - - - - A that ignores the message - - - - This writer is used in special cases where it is necessary - to protect a writer from being closed by a client. - - - Nicko Cadell - - - - Constructor - - the writer to actually write to - - - Create a new ProtectCloseTextWriter using a writer - - - - - - Attach this instance to a different underlying - - the writer to attach to - - - Attach this instance to a different underlying - - - - - - Does not close the underlying output writer. - - - - Does not close the underlying output writer. - This method does nothing. - - - - - - Defines a lock that supports single writers and multiple readers - - - - ReaderWriterLock is used to synchronize access to a resource. - At any given time, it allows either concurrent read access for - multiple threads, or write access for a single thread. In a - situation where a resource is changed infrequently, a - ReaderWriterLock provides better throughput than a simple - one-at-a-time lock, such as . - - - If a platform does not support a System.Threading.ReaderWriterLock - implementation then all readers and writers are serialized. Therefore - the caller must not rely on multiple simultaneous readers. - - - Nicko Cadell - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Acquires a reader lock - - - - blocks if a different thread has the writer - lock, or if at least one thread is waiting for the writer lock. - - - - - - Decrements the lock count - - - - decrements the lock count. When the count - reaches zero, the lock is released. - - - - - - Acquires the writer lock - - - - This method blocks if another thread has a reader lock or writer lock. - - - - - - Decrements the lock count on the writer lock - - - - ReleaseWriterLock decrements the writer lock count. - When the count reaches zero, the writer lock is released. - - - - - - A that can be and reused - - - - A that can be and reused. - This uses a single buffer for string operations. - - - Nicko Cadell - - - - Create an instance of - - the format provider to use - - - Create an instance of - - - - - - Override Dispose to prevent closing of writer - - flag - - - Override Dispose to prevent closing of writer - - - - - - Reset this string writer so that it can be reused. - - the maximum buffer capacity before it is trimmed - the default size to make the buffer - - - Reset this string writer so that it can be reused. - The internal buffers are cleared and reset. - - - - - - Utility class for system specific information. - - - - Utility class of static methods for system specific information. - - - Nicko Cadell - Gert Driesen - Alexey Solofnenko - - - - Private constructor to prevent instances. - - - - Only static methods are exposed from this type. - - - - - - Initialize default values for private static fields. - - - - Only static methods are exposed from this type. - - - - - - Gets the assembly location path for the specified assembly. - - The assembly to get the location for. - The location of the assembly. - - - This method does not guarantee to return the correct path - to the assembly. If only tries to give an indication as to - where the assembly was loaded from. - - - - - - Gets the fully qualified name of the , including - the name of the assembly from which the was - loaded. - - The to get the fully qualified name for. - The fully qualified name for the . - - - This is equivalent to the Type.AssemblyQualifiedName property, - but this method works on the .NET Compact Framework 1.0 as well as - the full .NET runtime. - - - - - - Gets the short name of the . - - The to get the name for. - The short name of the . - - - The short name of the assembly is the - without the version, culture, or public key. i.e. it is just the - assembly's file name without the extension. - - - Use this rather than Assembly.GetName().Name because that - is not available on the Compact Framework. - - - Because of a FileIOPermission security demand we cannot do - the obvious Assembly.GetName().Name. We are allowed to get - the of the assembly so we - start from there and strip out just the assembly name. - - - - - - Gets the file name portion of the , including the extension. - - The to get the file name for. - The file name of the assembly. - - - Gets the file name portion of the , including the extension. - - - - - - Loads the type specified in the type string. - - A sibling type to use to load the type. - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified, it will be loaded from the assembly - containing the specified relative type. If the type is not found in the assembly - then all the loaded assemblies will be searched for the type. - - - - - - Loads the type specified in the type string. - - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified it will be loaded from the - assembly that is directly calling this method. If the type is not found - in the assembly then all the loaded assemblies will be searched for the type. - - - - - - Loads the type specified in the type string. - - An assembly to load the type from. - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified it will be loaded from the specified - assembly. If the type is not found in the assembly then all the loaded assemblies - will be searched for the type. - - - - - - Generate a new guid - - A new Guid - - - Generate a new guid - - - - - - Create an - - The name of the parameter that caused the exception - The value of the argument that causes this exception - The message that describes the error - the ArgumentOutOfRangeException object - - - Create a new instance of the class - with a specified error message, the parameter name, and the value - of the argument. - - - The Compact Framework does not support the 3 parameter constructor for the - type. This method provides an - implementation that works for all platforms. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Lookup an application setting - - the application settings key to lookup - the value for the key, or null - - - Configuration APIs are not supported under the Compact Framework - - - - - - Convert a path into a fully qualified local file path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - The path specified must be a local file path, a URI is not supported. - - - - - - Creates a new case-insensitive instance of the class with the default initial capacity. - - A new case-insensitive instance of the class with the default initial capacity - - - The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. - - - - - - Gets an empty array of types. - - - - The Type.EmptyTypes field is not available on - the .NET Compact Framework 1.0. - - - - - - The fully qualified type of the SystemInfo class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Cache the host name for the current machine - - - - - Cache the application friendly name - - - - - Text to output when a null is encountered. - - - - - Text to output when an unsupported feature is requested. - - - - - Start time for the current process. - - - - - Gets the system dependent line terminator. - - - The system dependent line terminator. - - - - Gets the system dependent line terminator. - - - - - - Gets the base directory for this . - - The base directory path for the current . - - - Gets the base directory for this . - - - The value returned may be either a local file path or a URI. - - - - - - Gets the path to the configuration file for the current . - - The path to the configuration file for the current . - - - The .NET Compact Framework 1.0 does not have a concept of a configuration - file. For this runtime, we use the entry assembly location as the root for - the configuration file name. - - - The value returned may be either a local file path or a URI. - - - - - - Gets the path to the file that first executed in the current . - - The path to the entry assembly. - - - Gets the path to the file that first executed in the current . - - - - - - Gets the ID of the current thread. - - The ID of the current thread. - - - On the .NET framework, the AppDomain.GetCurrentThreadId method - is used to obtain the thread ID for the current thread. This is the - operating system ID for the thread. - - - On the .NET Compact Framework 1.0 it is not possible to get the - operating system thread ID for the current thread. The native method - GetCurrentThreadId is implemented inline in a header file - and cannot be called. - - - On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this - gives a stable id unrelated to the operating system thread ID which may - change if the runtime is using fibers. - - - - - - Get the host name or machine name for the current machine - - - The hostname or machine name - - - - Get the host name or machine name for the current machine - - - The host name () or - the machine name (Environment.MachineName) for - the current machine, or if neither of these are available - then NOT AVAILABLE is returned. - - - - - - Get this application's friendly name - - - The friendly name of this application as a string - - - - If available the name of the application is retrieved from - the AppDomain using AppDomain.CurrentDomain.FriendlyName. - - - Otherwise the file name of the entry assembly is used. - - - - - - Get the start time for the current process. - - - - This is the time at which the log4net library was loaded into the - AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime - this is not the start time for the current process. - - - The log4net library should be loaded by an application early during its - startup, therefore this start time should be a good approximation for - the actual start time. - - - Note that AppDomains may be loaded and unloaded within the - same process without the process terminating, however this start time - will be set per AppDomain. - - - - - - Text to output when a null is encountered. - - - - Use this value to indicate a null has been encountered while - outputting a string representation of an item. - - - The default value is (null). This value can be overridden by specifying - a value for the log4net.NullText appSetting in the application's - .config file. - - - - - - Text to output when an unsupported feature is requested. - - - - Use this value when an unsupported feature is requested. - - - The default value is NOT AVAILABLE. This value can be overridden by specifying - a value for the log4net.NotAvailableText appSetting in the application's - .config file. - - - - - - Utility class that represents a format string. - - - - Utility class that represents a format string. - - - Nicko Cadell - - - - Initialise the - - An that supplies culture-specific formatting information. - A containing zero or more format items. - An array containing zero or more objects to format. - - - - Format the string and arguments - - the formatted string - - - - Replaces the format item in a specified with the text equivalent - of the value of a corresponding instance in a specified array. - A specified parameter supplies culture-specific formatting information. - - An that supplies culture-specific formatting information. - A containing zero or more format items. - An array containing zero or more objects to format. - - A copy of format in which the format items have been replaced by the - equivalent of the corresponding instances of in args. - - - - This method does not throw exceptions. If an exception thrown while formatting the result the - exception and arguments are returned in the result string. - - - - - - Process an error during StringFormat - - - - - Dump the contents of an array into a string builder - - - - - Dump an object to a string - - - - - The fully qualified type of the SystemStringFormat class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Implementation of Properties collection for the - - - - Class implements a collection of properties that is specific to each thread. - The class is not synchronized as each thread has its own . - - - Nicko Cadell - - - - The thread local data slot to use to store a PropertiesDictionary. - - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property - - the key for the entry to remove - - - Remove a property - - - - - - Clear all properties - - - - Clear all properties - - - - - - Get the PropertiesDictionary for this thread. - - create the dictionary if it does not exist, otherwise return null if is does not exist - the properties for this thread - - - The collection returned is only to be used on the calling thread. If the - caller needs to share the collection between different threads then the - caller must clone the collection before doing so. - - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Gets or sets the value of a property - - - - - - Implementation of Stack for the - - - - Implementation of Stack for the - - - Nicko Cadell - - - - The stack store. - - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - Clears all the contextual information held in this stack. - - - - Clears all the contextual information held in this stack. - Only call this if you think that this tread is being reused after - a previous call execution which may not have completed correctly. - You do not need to use this method if you always guarantee to call - the method of the - returned from even in exceptional circumstances, - for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) - syntax. - - - - - - Removes the top context from this stack. - - The message in the context that was removed from the top of this stack. - - - Remove the top context from this stack, and return - it to the caller. If this stack is empty then an - empty string (not ) is returned. - - - - - - Pushes a new context message into this stack. - - The new context message. - - An that can be used to clean up the context stack. - - - - Pushes a new context onto this stack. An - is returned that can be used to clean up this stack. This - can be easily combined with the using keyword to scope the - context. - - - Simple example of using the Push method with the using keyword. - - using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) - { - log.Warn("This should have an ThreadContext Stack message"); - } - - - - - - Gets the current context information for this stack. - - The current context information. - - - - Gets the current context information for this stack. - - Gets the current context information - - - Gets the current context information for this stack. - - - - - - Get a portable version of this object - - the portable instance of this object - - - Get a cross thread portable version of this object - - - - - - The number of messages in the stack - - - The current number of messages in the stack - - - - The current number of messages in the stack. That is - the number of times has been called - minus the number of times has been called. - - - - - - Gets and sets the internal stack used by this - - The internal storage stack - - - This property is provided only to support backward compatability - of the . Tytpically the internal stack should not - be modified. - - - - - - Inner class used to represent a single context frame in the stack. - - - - Inner class used to represent a single context frame in the stack. - - - - - - Constructor - - The message for this context. - The parent context in the chain. - - - Initializes a new instance of the class - with the specified message and parent context. - - - - - - Get the message. - - The message. - - - Get the message. - - - - - - Gets the full text of the context down to the root level. - - - The full text of the context down to the root level. - - - - Gets the full text of the context down to the root level. - - - - - - Struct returned from the method. - - - - This struct implements the and is designed to be used - with the pattern to remove the stack frame at the end of the scope. - - - - - - The ThreadContextStack internal stack - - - - - The depth to trim the stack to when this instance is disposed - - - - - Constructor - - The internal stack used by the ThreadContextStack. - The depth to return the stack to when this object is disposed. - - - Initializes a new instance of the class with - the specified stack and return depth. - - - - - - Returns the stack to the correct depth. - - - - Returns the stack to the correct depth. - - - - - - Implementation of Stacks collection for the - - - - Implementation of Stacks collection for the - - - Nicko Cadell - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - The fully qualified type of the ThreadContextStacks class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the named thread context stack - - - The named stack - - - - Gets the named thread context stack - - - - - - Utility class for transforming strings. - - - - Utility class for transforming strings. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Write a string to an - - the writer to write to - the string to write - The string to replace non XML compliant chars with - - - The test is escaped either using XML escape entities - or using CDATA sections. - - - - - - Replace invalid XML characters in text string - - the XML text input string - the string to use in place of invalid characters - A string that does not contain invalid XML characters. - - - Certain Unicode code points are not allowed in the XML InfoSet, for - details see: http://www.w3.org/TR/REC-xml/#charsets. - - - This method replaces any illegal characters in the input string - with the mask string specified. - - - - - - Count the number of times that the substring occurs in the text - - the text to search - the substring to find - the number of times the substring occurs in the text - - - The substring is assumed to be non repeating within itself. - - - - - - Characters illegal in XML 1.0 - - - - - Impersonate a Windows Account - - - - This impersonates a Windows account. - - - How the impersonation is done depends on the value of . - This allows the context to either impersonate a set of user credentials specified - using username, domain name and password or to revert to the process credentials. - - - - - - Default constructor - - - - Default constructor - - - - - - Initialize the SecurityContext based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The security context will try to Logon the specified user account and - capture a primary token for impersonation. - - - The required , - or properties were not specified. - - - - Impersonate the Windows account specified by the and properties. - - caller provided state - - An instance that will revoke the impersonation of this SecurityContext - - - - Depending on the property either - impersonate a user using credentials supplied or revert - to the process credentials. - - - - - - Create a given the userName, domainName and password. - - the user name - the domain name - the password - the for the account specified - - - Uses the Windows API call LogonUser to get a principal token for the account. This - token is used to initialize the WindowsIdentity. - - - - - - Gets or sets the impersonation mode for this security context - - - The impersonation mode for this security context - - - - Impersonate either a user with user credentials or - revert this thread to the credentials of the process. - The value is one of the - enum. - - - The default value is - - - When the mode is set to - the user's credentials are established using the - , and - values. - - - When the mode is set to - no other properties need to be set. If the calling thread is - impersonating then it will be reverted back to the process credentials. - - - - - - Gets or sets the Windows username for this security context - - - The Windows username for this security context - - - - This property must be set if - is set to (the default setting). - - - - - - Gets or sets the Windows domain name for this security context - - - The Windows domain name for this security context - - - - The default value for is the local machine name - taken from the property. - - - This property must be set if - is set to (the default setting). - - - - - - Sets the password for the Windows account specified by the and properties. - - - The password for the Windows account specified by the and properties. - - - - This property must be set if - is set to (the default setting). - - - - - - The impersonation modes for the - - - - See the property for - details. - - - - - - Impersonate a user using the credentials supplied - - - - - Revert this the thread to the credentials of the process - - - - - Adds to - - - - Helper class to expose the - through the interface. - - - - - - Constructor - - the impersonation context being wrapped - - - Constructor - - - - - - Revert the impersonation - - - - Revert the impersonation - - - - - - The log4net Global Context. - - - - The GlobalContext provides a location for global debugging - information to be stored. - - - The global context has a properties map and these properties can - be included in the output of log messages. The - supports selecting and outputing these properties. - - - By default the log4net:HostName property is set to the name of - the current machine. - - - - - GlobalContext.Properties["hostname"] = Environment.MachineName; - - - - Nicko Cadell - - - - Private Constructor. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - The global context properties instance - - - - - The global properties map. - - - The global properties map. - - - - The global properties map. - - - - - - Provides information about the environment the assembly has - been built for. - - - - Version of the assembly - - - Version of the framework targeted - - - Type of framework targeted - - - Does it target a client profile? - - - - Identifies the version and target for this assembly. - - - - - The log4net Logical Thread Context. - - - - The LogicalThreadContext provides a location for specific debugging - information to be stored. - The LogicalThreadContext properties override any or - properties with the same name. - - - The Logical Thread Context has a properties map and a stack. - The properties and stack can - be included in the output of log messages. The - supports selecting and outputting these properties. - - - The Logical Thread Context provides a diagnostic context for the current call context. - This is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The Logical Thread Context is managed on a per basis. - - - The requires a link time - for the - . - If the calling code does not have this permission then this context will be disabled. - It will not store any property values set on it. - - - Example of using the thread context properties to store a username. - - LogicalThreadContext.Properties["user"] = userName; - log.Info("This log message has a LogicalThreadContext Property called 'user'"); - - - Example of how to push a message into the context stack - - using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) - { - log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); - - } // at the end of the using block the message is automatically popped - - - - Nicko Cadell - - - - Private Constructor. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - The thread context properties instance - - - - - The thread context stacks instance - - - - - The thread properties map - - - The thread properties map - - - - The LogicalThreadContext properties override any - or properties with the same name. - - - - - - The thread stacks - - - stack map - - - - The logical thread stacks. - - - - - - This class is used by client applications to request logger instances. - - - - This class has static methods that are used by a client to request - a logger instance. The method is - used to retrieve a logger. - - - See the interface for more details. - - - Simple example of logging messages - - ILog log = LogManager.GetLogger("application-log"); - - log.Info("Application Start"); - log.Debug("This is a debug message"); - - if (log.IsDebugEnabled) - { - log.Debug("This is another debug message"); - } - - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - Returns the named logger if it exists. - - Returns the named logger if it exists. - - - - If the named logger exists (in the default repository) then it - returns a reference to the logger, otherwise it returns null. - - - The fully qualified logger name to look for. - The logger found, or null if no logger could be found. - - - - Returns the named logger if it exists. - - - - If the named logger exists (in the specified repository) then it - returns a reference to the logger, otherwise it returns - null. - - - The repository to lookup in. - The fully qualified logger name to look for. - - The logger found, or null if the logger doesn't exist in the specified - repository. - - - - - Returns the named logger if it exists. - - - - If the named logger exists (in the repository for the specified assembly) then it - returns a reference to the logger, otherwise it returns - null. - - - The assembly to use to lookup the repository. - The fully qualified logger name to look for. - - The logger, or null if the logger doesn't exist in the specified - assembly's repository. - - - - Get the currently defined loggers. - - Returns all the currently defined loggers in the default repository. - - - The root logger is not included in the returned array. - - All the defined loggers. - - - - Returns all the currently defined loggers in the specified repository. - - The repository to lookup in. - - The root logger is not included in the returned array. - - All the defined loggers. - - - - Returns all the currently defined loggers in the specified assembly's repository. - - The assembly to use to lookup the repository. - - The root logger is not included in the returned array. - - All the defined loggers. - - - Get or create a logger. - - Retrieves or creates a named logger. - - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The name of the logger to retrieve. - The logger with the name specified. - - - - Retrieves or creates a named logger. - - - - Retrieve a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The repository to lookup in. - The name of the logger to retrieve. - The logger with the name specified. - - - - Retrieves or creates a named logger. - - - - Retrieve a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The assembly to use to lookup the repository. - The name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Get the logger for the fully qualified name of the type specified. - - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Gets the logger for the fully qualified name of the type specified. - - The repository to lookup in. - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Gets the logger for the fully qualified name of the type specified. - - The assembly to use to lookup the repository. - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shuts down the log4net system. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in all the - default repositories. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - Shutdown a logger repository. - - Shuts down the default repository. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - default repository. - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - The repository to shutdown. - - - - Shuts down the repository specified. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository. The repository is looked up using - the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - The assembly to use to lookup the repository. - - - Reset the configuration of a repository - - Resets all values contained in this repository instance to their defaults. - - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - - - - Resets all values contained in this repository instance to their defaults. - - - - Reset all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - The repository to reset. - - - - Resets all values contained in this repository instance to their defaults. - - - - Reset all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - The assembly to use to lookup the repository to reset. - - - Get the logger repository. - - Returns the default instance. - - - - Gets the for the repository specified - by the callers assembly (). - - - The instance for the default repository. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The repository to lookup in. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The assembly to use to lookup the repository. - - - Get a logger repository. - - Returns the default instance. - - - - Gets the for the repository specified - by the callers assembly (). - - - The instance for the default repository. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The repository to lookup in. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The assembly to use to lookup the repository. - - - Create a domain - - Creates a repository with the specified repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to will return - the same repository instance. - - - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - Create a logger repository. - - Creates a repository with the specified repository type. - - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The created will be associated with the repository - specified such that a call to will return - the same repository instance. - - - - - - Creates a repository with the specified name. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name. - - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - The specified repository already exists. - - - - Creates a repository for the specified assembly and repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - - Creates a repository for the specified assembly and repository type. - - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - - Gets the list of currently defined repositories. - - - - Get an array of all the objects that have been created. - - - An array of all the known objects. - - - - Looks up the wrapper object for the logger specified. - - The logger to get the wrapper for. - The wrapper for the logger specified. - - - - Looks up the wrapper objects for the loggers specified. - - The loggers to get the wrappers for. - The wrapper objects for the loggers specified. - - - - Create the objects used by - this manager. - - The logger to wrap. - The wrapper for the logger specified. - - - - The wrapper map to use to hold the objects. - - - - - Implementation of Mapped Diagnostic Contexts. - - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - The MDC class is similar to the class except that it is - based on a map instead of a stack. It provides mapped - diagnostic contexts. A Mapped Diagnostic Context, or - MDC in short, is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The MDC is managed on a per thread basis. - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - Gets the context value identified by the parameter. - - The key to lookup in the MDC. - The string value held for the key, or a null reference if no corresponding value is found. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - If the parameter does not look up to a - previously defined context then null will be returned. - - - - - - Add an entry to the MDC - - The key to store the value under. - The value to store. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Puts a context value (the parameter) as identified - with the parameter into the current thread's - context map. - - - If a value is already defined for the - specified then the value will be replaced. If the - is specified as null then the key value mapping will be removed. - - - - - - Removes the key value mapping for the key specified. - - The key to remove. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Remove the specified entry from this thread's MDC - - - - - - Clear all entries in the MDC - - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Remove all the entries from this thread's MDC - - - - - - Implementation of Nested Diagnostic Contexts. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - A Nested Diagnostic Context, or NDC in short, is an instrument - to distinguish interleaved log output from different sources. Log - output is typically interleaved when a server handles multiple - clients near-simultaneously. - - - Interleaved log output can still be meaningful if each log entry - from different contexts had a distinctive stamp. This is where NDCs - come into play. - - - Note that NDCs are managed on a per thread basis. The NDC class - is made up of static methods that operate on the context of the - calling thread. - - - How to push a message into the context - - using(NDC.Push("my context message")) - { - ... all log calls will have 'my context message' included ... - - } // at the end of the using block the message is automatically removed - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - Clears all the contextual information held on the current thread. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Clears the stack of NDC data held on the current thread. - - - - - - Creates a clone of the stack of context information. - - A clone of the context info for this thread. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - The results of this method can be passed to the - method to allow child threads to inherit the context of their - parent thread. - - - - - - Inherits the contextual information from another thread. - - The context stack to inherit. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - This thread will use the context information from the stack - supplied. This can be used to initialize child threads with - the same contextual information as their parent threads. These - contexts will NOT be shared. Any further contexts that - are pushed onto the stack will not be visible to the other. - Call to obtain a stack to pass to - this method. - - - - - - Removes the top context from the stack. - - - The message in the context that was removed from the top - of the stack. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Remove the top context from the stack, and return - it to the caller. If the stack is empty then an - empty string (not null) is returned. - - - - - - Pushes a new context message. - - The new context message. - - An that can be used to clean up - the context stack. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Pushes a new context onto the context stack. An - is returned that can be used to clean up the context stack. This - can be easily combined with the using keyword to scope the - context. - - - Simple example of using the Push method with the using keyword. - - using(log4net.NDC.Push("NDC_Message")) - { - log.Warn("This should have an NDC message"); - } - - - - - - Removes the context information for this thread. It is - not required to call this method. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - This method is not implemented. - - - - - - Forces the stack depth to be at most . - - The maximum depth of the stack - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Forces the stack depth to be at most . - This may truncate the head of the stack. This only affects the - stack in the current thread. Also it does not prevent it from - growing, it only sets the maximum depth at the time of the - call. This can be used to return to a known context depth. - - - - - - Gets the current context depth. - - The current context depth. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - The number of context values pushed onto the context stack. - - - Used to record the current depth of the context. This can then - be restored using the method. - - - - - - - The log4net Thread Context. - - - - The ThreadContext provides a location for thread specific debugging - information to be stored. - The ThreadContext properties override any - properties with the same name. - - - The thread context has a properties map and a stack. - The properties and stack can - be included in the output of log messages. The - supports selecting and outputting these properties. - - - The Thread Context provides a diagnostic context for the current thread. - This is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The Thread Context is managed on a per thread basis. - - - Example of using the thread context properties to store a username. - - ThreadContext.Properties["user"] = userName; - log.Info("This log message has a ThreadContext Property called 'user'"); - - - Example of how to push a message into the context stack - - using(ThreadContext.Stacks["NDC"].Push("my context message")) - { - log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); - - } // at the end of the using block the message is automatically popped - - - - Nicko Cadell - - - - Private Constructor. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - The thread context properties instance - - - - - The thread context stacks instance - - - - - The thread properties map - - - The thread properties map - - - - The ThreadContext properties override any - properties with the same name. - - - - - - The thread stacks - - - stack map - - - - The thread local stacks. - - - - - diff --git a/source/packages/log4net.2.0.0/lib/net35-client/log4net.dll b/source/packages/log4net.2.0.0/lib/net35-client/log4net.dll deleted file mode 100644 index 51a72f380d03a9b088929ac1acabca70c28bb6ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 294912 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 K1OH)S;Qt2|`>5pr diff --git a/source/packages/log4net.2.0.0/lib/net35-client/log4net.xml b/source/packages/log4net.2.0.0/lib/net35-client/log4net.xml deleted file mode 100644 index 71886da..0000000 --- a/source/packages/log4net.2.0.0/lib/net35-client/log4net.xml +++ /dev/null @@ -1,30000 +0,0 @@ - - - - log4net - - - -

    - Appender that logs to a database. - - - - appends logging events to a table within a - database. The appender can be configured to specify the connection - string by setting the property. - The connection type (provider) can be specified by setting the - property. For more information on database connection strings for - your specific database see http://www.connectionstrings.com/. - - - Records are written into the database either using a prepared - statement or a stored procedure. The property - is set to (System.Data.CommandType.Text) to specify a prepared statement - or to (System.Data.CommandType.StoredProcedure) to specify a stored - procedure. - - - The prepared statement text or the name of the stored procedure - must be set in the property. - - - The prepared statement or stored procedure can take a number - of parameters. Parameters are added using the - method. This adds a single to the - ordered list of parameters. The - type may be subclassed if required to provide database specific - functionality. The specifies - the parameter name, database type, size, and how the value should - be generated using a . - - - - An example of a SQL Server table that could be logged to: - - CREATE TABLE [dbo].[Log] ( - [ID] [int] IDENTITY (1, 1) NOT NULL , - [Date] [datetime] NOT NULL , - [Thread] [varchar] (255) NOT NULL , - [Level] [varchar] (20) NOT NULL , - [Logger] [varchar] (255) NOT NULL , - [Message] [varchar] (4000) NOT NULL - ) ON [PRIMARY] - - - - An example configuration to log to the above table: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Julian Biddle - Nicko Cadell - Gert Driesen - Lance Nehring - - - - Abstract base class implementation of that - buffers events in a fixed size buffer. - - - - This base class should be used by appenders that need to buffer a - number of events before logging them. For example the - buffers events and then submits the entire contents of the buffer to - the underlying database in one go. - - - Subclasses should override the - method to deliver the buffered events. - - The BufferingAppenderSkeleton maintains a fixed size cyclic - buffer of events. The size of the buffer is set using - the property. - - A is used to inspect - each event as it arrives in the appender. If the - triggers, then the current buffer is sent immediately - (see ). Otherwise the event - is stored in the buffer. For example, an evaluator can be used to - deliver the events immediately when an ERROR event arrives. - - - The buffering appender can be configured in a mode. - By default the appender is NOT lossy. When the buffer is full all - the buffered events are sent with . - If the property is set to true then the - buffer will not be sent when it is full, and new events arriving - in the appender will overwrite the oldest event in the buffer. - In lossy mode the buffer will only be sent when the - triggers. This can be useful behavior when you need to know about - ERROR events but not about events with a lower level, configure an - evaluator that will trigger when an ERROR event arrives, the whole - buffer will be sent which gives a history of events leading up to - the ERROR event. - - - Nicko Cadell - Gert Driesen - - - - Abstract base class implementation of . - - - - This class provides the code for common functionality, such - as support for threshold filtering and support for general filters. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface for your own strategies for printing log statements. - - - - Implementors should consider extending the - class which provides a default implementation of this interface. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Log the logging event in Appender specific way. - - The event to log - - - This method is called to log a message into this appender. - - - - - - Gets or sets the name of this appender. - - The name of the appender. - - The name uniquely identifies the appender. - - - - - Interface for appenders that support bulk logging. - - - - This interface extends the interface to - support bulk logging of objects. Appenders - should only implement this interface if they can bulk log efficiently. - - - Nicko Cadell - - - - Log the array of logging events in Appender specific way. - - The events to log - - - This method is called to log an array of events into this appender. - - - - - - Interface used to delay activate a configured object. - - - - This allows an object to defer activation of its options until all - options have been set. This is required for components which have - related options that remain ambiguous until all are set. - - - If a component implements this interface then the method - must be called by the container after its all the configured properties have been set - and before the component can be used. - - - Nicko Cadell - - - - Activate the options that were previously set with calls to properties. - - - - This allows an object to defer activation of its options until all - options have been set. This is required for components which have - related options that remain ambiguous until all are set. - - - If a component implements this interface then this method must be called - after its properties have been set before the component can be used. - - - - - - Initial buffer size - - - - - Maximum buffer size before it is recycled - - - - - Default constructor - - - Empty default constructor - - - - - Finalizes this appender by calling the implementation's - method. - - - - If this appender has not been closed then the Finalize method - will call . - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Closes the appender and release resources. - - - - Release any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - This method cannot be overridden by subclasses. This method - delegates the closing of the appender to the - method which must be overridden in the subclass. - - - - - - Performs threshold checks and invokes filters before - delegating actual logging to the subclasses specific - method. - - The event to log. - - - This method cannot be overridden by derived classes. A - derived class should override the method - which is called by this method. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - Calls and checks that - it returns true. - - - - - If all of the above steps succeed then the - will be passed to the abstract method. - - - - - - Performs threshold checks and invokes filters before - delegating actual logging to the subclasses specific - method. - - The array of events to log. - - - This method cannot be overridden by derived classes. A - derived class should override the method - which is called by this method. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - Calls and checks that - it returns true. - - - - - If all of the above steps succeed then the - will be passed to the method. - - - - - - Test if the logging event should we output by this appender - - the event to test - true if the event should be output, false if the event should be ignored - - - This method checks the logging event against the threshold level set - on this appender and also against the filters specified on this - appender. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - - - - - Adds a filter to the end of the filter chain. - - the filter to add to this appender - - - The Filters are organized in a linked list. - - - Setting this property causes the new filter to be pushed onto the - back of the filter chain. - - - - - - Clears the filter list for this appender. - - - - Clears the filter list for this appender. - - - - - - Checks if the message level is below this appender's threshold. - - to test against. - - - If there is no threshold set, then the return value is always true. - - - - true if the meets the - requirements of this appender. - - - - - Is called when the appender is closed. Derived classes should override - this method if resources need to be released. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Subclasses of should implement this method - to perform actual logging. - - The event to append. - - - A subclass must implement this method to perform - logging of the . - - This method will be called by - if all the conditions listed for that method are met. - - - To restrict the logging of events in the appender - override the method. - - - - - - Append a bulk array of logging events. - - the array of logging events - - - This base class implementation calls the - method for each element in the bulk array. - - - A sub class that can better process a bulk array of events should - override this method in addition to . - - - - - - Called before as a precondition. - - - - This method is called by - before the call to the abstract method. - - - This method can be overridden in a subclass to extend the checks - made before the event is passed to the method. - - - A subclass should ensure that they delegate this call to - this base class if it is overridden. - - - true if the call to should proceed. - - - - Renders the to a string. - - The event to render. - The event rendered as a string. - - - Helper method to render a to - a string. This appender must have a - set to render the to - a string. - - If there is exception data in the logging event and - the layout does not process the exception, this method - will append the exception text to the rendered string. - - - Where possible use the alternative version of this method - . - That method streams the rendering onto an existing Writer - which can give better performance if the caller already has - a open and ready for writing. - - - - - - Renders the to a string. - - The event to render. - The TextWriter to write the formatted event to - - - Helper method to render a to - a string. This appender must have a - set to render the to - a string. - - If there is exception data in the logging event and - the layout does not process the exception, this method - will append the exception text to the rendered string. - - - Use this method in preference to - where possible. If, however, the caller needs to render the event - to a string then does - provide an efficient mechanism for doing so. - - - - - - The layout of this appender. - - - See for more information. - - - - - The name of this appender. - - - See for more information. - - - - - The level threshold of this appender. - - - - There is no level threshold filtering by default. - - - See for more information. - - - - - - It is assumed and enforced that errorHandler is never null. - - - - It is assumed and enforced that errorHandler is never null. - - - See for more information. - - - - - - The first filter in the filter chain. - - - - Set to null initially. - - - See for more information. - - - - - - The last filter in the filter chain. - - - See for more information. - - - - - Flag indicating if this appender is closed. - - - See for more information. - - - - - The guard prevents an appender from repeatedly calling its own DoAppend method - - - - - StringWriter used to render events - - - - - The fully qualified type of the AppenderSkeleton class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the threshold of this appender. - - - The threshold of the appender. - - - - All log events with lower level than the threshold level are ignored - by the appender. - - - In configuration files this option is specified by setting the - value of the option to a level - string, such as "DEBUG", "INFO" and so on. - - - - - - Gets or sets the for this appender. - - The of the appender - - - The provides a default - implementation for the property. - - - - - - The filter chain. - - The head of the filter chain filter chain. - - - Returns the head Filter. The Filters are organized in a linked list - and so all Filters on this Appender are available through the result. - - - - - - Gets or sets the for this appender. - - The layout of the appender. - - - See for more information. - - - - - - - Gets or sets the name of this appender. - - The name of the appender. - - - The name uniquely identifies the appender. - - - - - - Tests if this appender requires a to be set. - - - - In the rather exceptional case, where the appender - implementation admits a layout but can also work without it, - then the appender should return true. - - - This default implementation always returns false. - - - - true if the appender requires a layout object, otherwise false. - - - - - The default buffer size. - - - The default size of the cyclic buffer used to store events. - This is set to 512 by default. - - - - - Initializes a new instance of the class. - - - - Protected default constructor to allow subclassing. - - - - - - Initializes a new instance of the class. - - the events passed through this appender must be - fixed by the time that they arrive in the derived class' SendBuffer method. - - - Protected constructor to allow subclassing. - - - The should be set if the subclass - expects the events delivered to be fixed even if the - is set to zero, i.e. when no buffering occurs. - - - - - - Flush the currently buffered events - - - - Flushes any events that have been buffered. - - - If the appender is buffering in mode then the contents - of the buffer will NOT be flushed to the appender. - - - - - - Flush the currently buffered events - - set to true to flush the buffer of lossy events - - - Flushes events that have been buffered. If is - false then events will only be flushed if this buffer is non-lossy mode. - - - If the appender is buffering in mode then the contents - of the buffer will only be flushed if is true. - In this case the contents of the buffer will be tested against the - and if triggering will be output. All other buffered - events will be discarded. - - - If is true then the buffer will always - be emptied by calling this method. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Close this appender instance. - - - - Close this appender instance. If this appender is marked - as not then the remaining events in - the buffer must be sent when the appender is closed. - - - - - - This method is called by the method. - - the event to log - - - Stores the in the cyclic buffer. - - - The buffer will be sent (i.e. passed to the - method) if one of the following conditions is met: - - - - The cyclic buffer is full and this appender is - marked as not lossy (see ) - - - An is set and - it is triggered for the - specified. - - - - Before the event is stored in the buffer it is fixed - (see ) to ensure that - any data referenced by the event will be valid when the buffer - is processed. - - - - - - Sends the contents of the buffer. - - The first logging event. - The buffer containing the events that need to be send. - - - The subclass must override . - - - - - - Sends the events. - - The events that need to be send. - - - The subclass must override this method to process the buffered events. - - - - - - The size of the cyclic buffer used to hold the logging events. - - - Set to by default. - - - - - The cyclic buffer used to store the logging events. - - - - - The triggering event evaluator that causes the buffer to be sent immediately. - - - The object that is used to determine if an event causes the entire - buffer to be sent immediately. This field can be null, which - indicates that event triggering is not to be done. The evaluator - can be set using the property. If this appender - has the ( property) set to - true then an must be set. - - - - - Indicates if the appender should overwrite events in the cyclic buffer - when it becomes full, or if the buffer should be flushed when the - buffer is full. - - - If this field is set to true then an must - be set. - - - - - The triggering event evaluator filters discarded events. - - - The object that is used to determine if an event that is discarded should - really be discarded or if it should be sent to the appenders. - This field can be null, which indicates that all discarded events will - be discarded. - - - - - Value indicating which fields in the event should be fixed - - - By default all fields are fixed - - - - - The events delivered to the subclass must be fixed. - - - - - Gets or sets a value that indicates whether the appender is lossy. - - - true if the appender is lossy, otherwise false. The default is false. - - - - This appender uses a buffer to store logging events before - delivering them. A triggering event causes the whole buffer - to be send to the remote sink. If the buffer overruns before - a triggering event then logging events could be lost. Set - to false to prevent logging events - from being lost. - - If is set to true then an - must be specified. - - - - - Gets or sets the size of the cyclic buffer used to hold the - logging events. - - - The size of the cyclic buffer used to hold the logging events. - - - - The option takes a positive integer - representing the maximum number of logging events to collect in - a cyclic buffer. When the is reached, - oldest events are deleted as new events are added to the - buffer. By default the size of the cyclic buffer is 512 events. - - - If the is set to a value less than - or equal to 1 then no buffering will occur. The logging event - will be delivered synchronously (depending on the - and properties). Otherwise the event will - be buffered. - - - - - - Gets or sets the that causes the - buffer to be sent immediately. - - - The that causes the buffer to be - sent immediately. - - - - The evaluator will be called for each event that is appended to this - appender. If the evaluator triggers then the current buffer will - immediately be sent (see ). - - If is set to true then an - must be specified. - - - - - Gets or sets the value of the to use. - - - The value of the to use. - - - - The evaluator will be called for each event that is discarded from this - appender. If the evaluator triggers then the current buffer will immediately - be sent (see ). - - - - - - Gets or sets a value indicating if only part of the logging event data - should be fixed. - - - true if the appender should only fix part of the logging event - data, otherwise false. The default is false. - - - - Setting this property to true will cause only part of the - event data to be fixed and serialized. This will improve performance. - - - See for more information. - - - - - - Gets or sets a the fields that will be fixed in the event - - - The event fields that will be fixed before the event is buffered - - - - The logging event needs to have certain thread specific values - captured before it can be buffered. See - for details. - - - - - - - Initializes a new instance of the class. - - - Public default constructor to initialize a new instance of this class. - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Override the parent method to close the database - - - - Closes the database command and database connection. - - - - - - Inserts the events into the database. - - The events to insert into the database. - - - Insert all the events specified in the - array into the database. - - - - - - Adds a parameter to the command. - - The parameter to add to the command. - - - Adds a parameter to the ordered list of command parameters. - - - - - - Writes the events to the database using the transaction specified. - - The transaction that the events will be executed under. - The array of events to insert into the database. - - - The transaction argument can be null if the appender has been - configured not to use transactions. See - property for more information. - - - - - - Formats the log message into database statement text. - - The event being logged. - - This method can be overridden by subclasses to provide - more control over the format of the database statement. - - - Text that can be passed to a . - - - - - Creates an instance used to connect to the database. - - - This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). - - The of the object. - The connectionString output from the ResolveConnectionString method. - An instance with a valid connection string. - - - - Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey - property. - - - ConnectiongStringName is only supported on .NET 2.0 and higher. - - Additional information describing the connection string. - A connection string used to connect to the database. - - - - Retrieves the class type of the ADO.NET provider. - - - - Gets the Type of the ADO.NET provider to use to connect to the - database. This method resolves the type specified in the - property. - - - Subclasses can override this method to return a different type - if necessary. - - - The of the ADO.NET provider - - - - Prepares the database command and initialize the parameters. - - - - - Connects to the database. - - - - - Cleanup the existing command. - - - If true, a message will be written using LogLog.Warn if an exception is encountered when calling Dispose. - - - - - Cleanup the existing connection. - - - Calls the IDbConnection's method. - - - - - Flag to indicate if we are using a command object - - - - Set to true when the appender is to use a prepared - statement or stored procedure to insert into the database. - - - - - - The list of objects. - - - - The list of objects. - - - - - - The security context to use for privileged calls - - - - - The that will be used - to insert logging events into a database. - - - - - The database command. - - - - - Database connection string. - - - - - The appSettings key from App.Config that contains the connection string. - - - - - The connectionStrings key from App.Config that contains the connection string. - - - - - String type name of the type name. - - - - - The text of the command. - - - - - The command type. - - - - - Indicates whether to use transactions when writing to the database. - - - - - Indicates whether to use transactions when writing to the database. - - - - - The fully qualified type of the AdoNetAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the database connection string that is used to connect to - the database. - - - The database connection string used to connect to the database. - - - - The connections string is specific to the connection type. - See for more information. - - - Connection string for MS Access via ODBC: - "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" - - Another connection string for MS Access via ODBC: - "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" - - Connection string for MS Access via OLE DB: - "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" - - - - - The appSettings key from App.Config that contains the connection string. - - - - - The connectionStrings key from App.Config that contains the connection string. - - - This property requires at least .NET 2.0. - - - - - Gets or sets the type name of the connection - that should be created. - - - The type name of the connection. - - - - The type name of the ADO.NET provider to use. - - - The default is to use the OLE DB provider. - - - Use the OLE DB Provider. This is the default value. - System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Use the MS SQL Server Provider. - System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Use the ODBC Provider. - Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral - This is an optional package that you can download from - http://msdn.microsoft.com/downloads - search for ODBC .NET Data Provider. - - Use the Oracle Provider. - System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - This is an optional package that you can download from - http://msdn.microsoft.com/downloads - search for .NET Managed Provider for Oracle. - - - - - Gets or sets the command text that is used to insert logging events - into the database. - - - The command text used to insert logging events into the database. - - - - Either the text of the prepared statement or the - name of the stored procedure to execute to write into - the database. - - - The property determines if - this text is a prepared statement or a stored procedure. - - - - - - Gets or sets the command type to execute. - - - The command type to execute. - - - - This value may be either (System.Data.CommandType.Text) to specify - that the is a prepared statement to execute, - or (System.Data.CommandType.StoredProcedure) to specify that the - property is the name of a stored procedure - to execute. - - - The default value is (System.Data.CommandType.Text). - - - - - - Should transactions be used to insert logging events in the database. - - - true if transactions should be used to insert logging events in - the database, otherwise false. The default value is true. - - - - Gets or sets a value that indicates whether transactions should be used - to insert logging events in the database. - - - When set a single transaction will be used to insert the buffered events - into the database. Otherwise each event will be inserted without using - an explicit transaction. - - - - - - Gets or sets the used to call the NetSend method. - - - The used to call the NetSend method. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Should this appender try to reconnect to the database on error. - - - true if the appender should try to reconnect to the database after an - error has occurred, otherwise false. The default value is false, - i.e. not to try to reconnect. - - - - The default behaviour is for the appender not to try to reconnect to the - database if an error occurs. Subsequent logging events are discarded. - - - To force the appender to attempt to reconnect to the database set this - property to true. - - - When the appender attempts to connect to the database there may be a - delay of up to the connection timeout specified in the connection string. - This delay will block the calling application's thread. - Until the connection can be reestablished this potential delay may occur multiple times. - - - - - - Gets or sets the underlying . - - - The underlying . - - - creates a to insert - logging events into a database. Classes deriving from - can use this property to get or set this . Use the - underlying returned from if - you require access beyond that which provides. - - - - - Parameter type used by the . - - - - This class provides the basic database parameter properties - as defined by the interface. - - This type can be subclassed to provide database specific - functionality. The two methods that are called externally are - and . - - - - - - Initializes a new instance of the class. - - - Default constructor for the AdoNetAppenderParameter class. - - - - - Prepare the specified database command object. - - The command to prepare. - - - Prepares the database command object by adding - this parameter to its collection of parameters. - - - - - - Renders the logging event and set the parameter value in the command. - - The command containing the parameter. - The event to be rendered. - - - Renders the logging event using this parameters layout - object. Sets the value of the parameter on the command object. - - - - - - The name of this parameter. - - - - - The database type for this parameter. - - - - - Flag to infer type rather than use the DbType - - - - - The precision for this parameter. - - - - - The scale for this parameter. - - - - - The size for this parameter. - - - - - The to use to render the - logging event into an object for this parameter. - - - - - Gets or sets the name of this parameter. - - - The name of this parameter. - - - - The name of this parameter. The parameter name - must match up to a named parameter to the SQL stored procedure - or prepared statement. - - - - - - Gets or sets the database type for this parameter. - - - The database type for this parameter. - - - - The database type for this parameter. This property should - be set to the database type from the - enumeration. See . - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the type from the value. - - - - - - - Gets or sets the precision for this parameter. - - - The precision for this parameter. - - - - The maximum number of digits used to represent the Value. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the precision from the value. - - - - - - - Gets or sets the scale for this parameter. - - - The scale for this parameter. - - - - The number of decimal places to which Value is resolved. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the scale from the value. - - - - - - - Gets or sets the size for this parameter. - - - The size for this parameter. - - - - The maximum size, in bytes, of the data within the column. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the size from the value. - - - - - - - Gets or sets the to use to - render the logging event into an object for this - parameter. - - - The used to render the - logging event into an object for this parameter. - - - - The that renders the value for this - parameter. - - - The can be used to adapt - any into a - for use in the property. - - - - - - Appends logging events to the terminal using ANSI color escape sequences. - - - - AnsiColorTerminalAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. It also allows the color of a specific level of message to be set. - - - This appender expects the terminal to understand the VT100 control set - in order to interpret the color codes. If the terminal or console does not - understand the control codes the behavior is not defined. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes each message to the System.Console.Out or - System.Console.Error that is set at the time the event is appended. - Therefore it is possible to programmatically redirect the output of this appender - (for example NUnit does this to capture program output). While this is the desired - behavior of this appender it may have security implications in your application. - - - When configuring the ANSI colored terminal appender, a mapping should be - specified to map a logging level to a color. For example: - - - - - - - - - - - - - - - The Level is the standard log4net logging level and ForeColor and BackColor can be any - of the following values: - - Blue - Green - Red - White - Yellow - Purple - Cyan - - These color values cannot be combined together to make new colors. - - - The attributes can be any combination of the following: - - Brightforeground is brighter - Dimforeground is dimmer - Underscoremessage is underlined - Blinkforeground is blinking (does not work on all terminals) - Reverseforeground and background are reversed - Hiddenoutput is hidden - Strikethroughmessage has a line through it - - While any of these attributes may be combined together not all combinations - work well together, for example setting both Bright and Dim attributes makes - no sense. - - - Patrick Wagstrom - Nicko Cadell - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Ansi code to reset terminal - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Add a mapping of level to color - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the foreground and background colours - for a level. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to color mappings set on this appender. - - - - - - Flag to write output to the error stream rather than the standard output stream - - - - - Mapping from level object to color value - - - - - Target is the value of the console output stream. - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The enum of possible display attributes - - - - The following flags can be combined together to - form the ANSI color attributes. - - - - - - - text is bright - - - - - text is dim - - - - - text is underlined - - - - - text is blinking - - - Not all terminals support this attribute - - - - - text and background colors are reversed - - - - - text is hidden - - - - - text is displayed with a strikethrough - - - - - The enum of possible foreground or background color values for - use with the color mapping method - - - - The output can be in one for the following ANSI colors. - - - - - - - color is black - - - - - color is red - - - - - color is green - - - - - color is yellow - - - - - color is blue - - - - - color is magenta - - - - - color is cyan - - - - - color is white - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and the color it should be displayed in. - - - - - - An entry in the - - - - This is an abstract base class for types that are stored in the - object. - - - Nicko Cadell - - - - Default protected constructor - - - - Default protected constructor - - - - - - Initialize any options defined on this entry - - - - Should be overridden by any classes that need to initialise based on their options - - - - - - The level that is the key for this mapping - - - The that is the key for this mapping - - - - Get or set the that is the key for this - mapping subclass. - - - - - - Initialize the options for the object - - - - Combine the and together - and append the attributes. - - - - - - The mapped foreground color for the specified level - - - - Required property. - The mapped foreground color for the specified level - - - - - - The mapped background color for the specified level - - - - Required property. - The mapped background color for the specified level - - - - - - The color attributes for the specified level - - - - Required property. - The color attributes for the specified level - - - - - - The combined , and - suitable for setting the ansi terminal color. - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a AppenderCollection instance. - - list to create a readonly wrapper arround - - An AppenderCollection wrapper that is read-only. - - - - - An empty readonly static AppenderCollection - - - - - Initializes a new instance of the AppenderCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the AppenderCollection class - that has the specified initial capacity. - - - The number of elements that the new AppenderCollection is initially capable of storing. - - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified AppenderCollection. - - The AppenderCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - - Copies the entire AppenderCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire AppenderCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the AppenderCollection. - - The to be added to the end of the AppenderCollection. - The index at which the value has been added. - - - - Removes all elements from the AppenderCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the AppenderCollection. - - The to check for. - true if is found in the AppenderCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the AppenderCollection. - - The to locate in the AppenderCollection. - - The zero-based index of the first occurrence of - in the entire AppenderCollection, if found; otherwise, -1. - - - - - Inserts an element into the AppenderCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the AppenderCollection. - - The to remove from the AppenderCollection. - - The specified was not found in the AppenderCollection. - - - - - Removes the element at the specified index of the AppenderCollection. - - The zero-based index of the element to remove. - - is less than zero - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the AppenderCollection. - - An for the entire AppenderCollection. - - - - Adds the elements of another AppenderCollection to the current AppenderCollection. - - The AppenderCollection whose elements should be added to the end of the current AppenderCollection. - The new of the AppenderCollection. - - - - Adds the elements of a array to the current AppenderCollection. - - The array whose elements should be added to the end of the AppenderCollection. - The new of the AppenderCollection. - - - - Adds the elements of a collection to the current AppenderCollection. - - The collection whose elements should be added to the end of the AppenderCollection. - The new of the AppenderCollection. - - - - Sets the capacity to the actual number of elements. - - - - - Return the collection elements as an array - - the array - - - - is less than zero - -or- - is equal to or greater than . - - - - - is less than zero - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the AppenderCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - The zero-based index of the element to get or set. - - is less than zero - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false - - - - Gets or sets the number of elements the AppenderCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - - A value - - - - - Supports simple iteration over a . - - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - - - - Buffers events and then forwards them to attached appenders. - - - - The events are buffered in this appender until conditions are - met to allow the appender to deliver the events to the attached - appenders. See for the - conditions that cause the buffer to be sent. - - The forwarding appender can be used to specify different - thresholds and filters for the same appender at different locations - within the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Interface for attaching appenders to objects. - - - - Interface for attaching, removing and retrieving appenders. - - - Nicko Cadell - Gert Driesen - - - - Attaches an appender. - - The appender to add. - - - Add the specified appender. The implementation may - choose to allow or deny duplicate appenders. - - - - - - Gets an attached appender with the specified name. - - The name of the appender to get. - - The appender with the name specified, or null if no appender with the - specified name is found. - - - - Returns an attached appender with the specified. - If no appender with the specified name is found null will be - returned. - - - - - - Removes all attached appenders. - - - - Removes and closes all attached appenders - - - - - - Removes the specified appender from the list of attached appenders. - - The appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Gets all attached appenders. - - - A collection of attached appenders. - - - - Gets a collection of attached appenders. - If there are no attached appenders the - implementation should return an empty - collection rather than null. - - - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Send the events. - - The events that need to be send. - - - Forwards the events to the attached appenders. - - - - - - Adds an to the list of appenders of this - instance. - - The to add to this appender. - - - If the specified is already in the list of - appenders, then it won't be added again. - - - - - - Looks for the appender with the specified name. - - The name of the appender to lookup. - - The appender with the specified name, or null. - - - - Get the named appender attached to this buffering appender. - - - - - - Removes all previously added appenders from this appender. - - - - This is useful when re-reading configuration information. - - - - - - Removes the specified appender from the list of appenders. - - The appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Implementation of the interface - - - - - Gets the appenders contained in this appender as an - . - - - If no appenders can be found, then an - is returned. - - - A collection of the appenders in this appender. - - - - - Appends logging events to the console. - - - - ColoredConsoleAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. It also allows the color of a specific type of message to be set. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes directly to the application's attached console - not to the System.Console.Out or System.Console.Error TextWriter. - The System.Console.Out and System.Console.Error streams can be - programmatically redirected (for example NUnit does this to capture program output). - This appender will ignore these redirections because it needs to use Win32 - API calls to colorize the output. To respect these redirections the - must be used. - - - When configuring the colored console appender, mapping should be - specified to map a logging level to a color. For example: - - - - - - - - - - - - - - The Level is the standard log4net logging level and ForeColor and BackColor can be any - combination of the following values: - - Blue - Green - Red - White - Yellow - Purple - Cyan - HighIntensity - - - - Rick Hobbs - Nicko Cadell - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - flag set to true to write to the console error stream - - When is set to true, output is written to - the standard error output stream. Otherwise, output is written to the standard - output stream. - - - - - Add a mapping of level to color - done by the config file - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the foreground and background colors - for a level. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to color mappings set on this appender. - - - - - - Flag to write output to the error stream rather than the standard output stream - - - - - Mapping from level object to color value - - - - - The console output stream writer to write to - - - - This writer is not thread safe. - - - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The enum of possible color values for use with the color mapping method - - - - The following flags can be combined together to - form the colors. - - - - - - - color is blue - - - - - color is green - - - - - color is red - - - - - color is white - - - - - color is yellow - - - - - color is purple - - - - - color is cyan - - - - - color is intensified - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and the color it should be displayed in. - - - - - - Initialize the options for the object - - - - Combine the and together. - - - - - - The mapped foreground color for the specified level - - - - Required property. - The mapped foreground color for the specified level. - - - - - - The mapped background color for the specified level - - - - Required property. - The mapped background color for the specified level. - - - - - - The combined and suitable for - setting the console color. - - - - - Appends logging events to the console. - - - - ConsoleAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes each message to the System.Console.Out or - System.Console.Error that is set at the time the event is appended. - Therefore it is possible to programmatically redirect the output of this appender - (for example NUnit does this to capture program output). While this is the desired - behavior of this appender it may have security implications in your application. - - - Nicko Cadell - Gert Driesen - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - flag set to true to write to the console error stream - - When is set to true, output is written to - the standard error output stream. Otherwise, output is written to the standard - output stream. - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appends log events to the system. - - - - The application configuration file can be used to control what listeners - are actually used. See the MSDN documentation for the - class for details on configuring the - debug system. - - - Events are written using the - method. The event's logger name is passed as the value for the category name to the Write method. - - - Nicko Cadell - - - - Initializes a new instance of the . - - - - Default constructor. - - - - - - Initializes a new instance of the - with a specified layout. - - The layout to use with this appender. - - - Obsolete constructor. - - - - - - Writes the logging event to the system. - - The event to log. - - - Writes the logging event to the system. - If is true then the - is called. - - - - - - Immediate flush means that the underlying writer or output stream - will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logs events are not actually written to persistent media if and - when the application crashes. - - - The default value is true. - - - - - Gets or sets a value that indicates whether the appender will - flush at the end of each write. - - - The default behavior is to flush at the end of each - write. If the option is set tofalse, then the underlying - stream can defer writing to physical medium to a later time. - - - Avoiding the flush operation at the end of each append results - in a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Writes events to the system event log. - - - - The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. - See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog - - - The EventID of the event log entry can be - set using the EventID property () - on the . - - - The Category of the event log entry can be - set using the Category property () - on the . - - - There is a limit of 32K characters for an event log message - - - When configuring the EventLogAppender a mapping can be - specified to map a logging level to an event log entry type. For example: - - - <mapping> - <level value="ERROR" /> - <eventLogEntryType value="Error" /> - </mapping> - <mapping> - <level value="DEBUG" /> - <eventLogEntryType value="Information" /> - </mapping> - - - The Level is the standard log4net logging level and eventLogEntryType can be any value - from the enum, i.e.: - - Erroran error event - Warninga warning event - Informationan informational event - - - - Aspi Havewala - Douglas de la Torre - Nicko Cadell - Gert Driesen - Thomas Voss - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initializes a new instance of the class - with the specified . - - The to use with this appender. - - - Obsolete constructor. - - - - - - Add a mapping of level to - done by the config file - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the event log entry type for a level. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Create an event log source - - - Uses different API calls under NET_2_0 - - - - - This method is called by the - method. - - the event to log - - Writes the event to the system event log using the - . - - If the event has an EventID property (see ) - set then this integer will be used as the event log event id. - - - There is a limit of 32K characters for an event log message - - - - - - Get the equivalent for a - - the Level to convert to an EventLogEntryType - The equivalent for a - - Because there are fewer applicable - values to use in logging levels than there are in the - this is a one way mapping. There is - a loss of information during the conversion. - - - - - The log name is the section in the event logs where the messages - are stored. - - - - - Name of the application to use when logging. This appears in the - application column of the event log named by . - - - - - The name of the machine which holds the event log. This is - currently only allowed to be '.' i.e. the current machine. - - - - - Mapping from level object to EventLogEntryType - - - - - The security context to use for privileged calls - - - - - The event ID to use unless one is explicitly specified via the LoggingEvent's properties. - - - - - The event category to use unless one is explicitly specified via the LoggingEvent's properties. - - - - - The fully qualified type of the EventLogAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - The name of the log where messages will be stored. - - - The string name of the log where messages will be stored. - - - This is the name of the log as it appears in the Event Viewer - tree. The default value is to log into the Application - log, this is where most applications write their events. However - if you need a separate log for your application (or applications) - then you should set the appropriately. - This should not be used to distinguish your event log messages - from those of other applications, the - property should be used to distinguish events. This property should be - used to group together events into a single log. - - - - - - Property used to set the Application name. This appears in the - event logs when logging. - - - The string used to distinguish events from different sources. - - - Sets the event log source property. - - - - - This property is used to return the name of the computer to use - when accessing the event logs. Currently, this is the current - computer, denoted by a dot "." - - - The string name of the machine holding the event log that - will be logged into. - - - This property cannot be changed. It is currently set to '.' - i.e. the local machine. This may be changed in future. - - - - - Gets or sets the used to write to the EventLog. - - - The used to write to the EventLog. - - - - The system security context used to write to the EventLog. - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. - - - - The EventID of the event log entry will normally be - set using the EventID property () - on the . - This property provides the fallback value which defaults to 0. - - - - - - Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. - - - - The Category of the event log entry will normally be - set using the Category property () - on the . - This property provides the fallback value which defaults to 0. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and its event log entry type. - - - - - - The for this entry - - - - Required property. - The for this entry - - - - - - Appends logging events to a file. - - - - Logging events are sent to the file specified by - the property. - - - The file can be opened in either append or overwrite mode - by specifying the property. - If the file path is relative it is taken as relative from - the application base directory. The file encoding can be - specified by setting the property. - - - The layout's and - values will be written each time the file is opened and closed - respectively. If the property is - then the file may contain multiple copies of the header and footer. - - - This appender will first try to open the file for writing when - is called. This will typically be during configuration. - If the file cannot be opened for writing the appender will attempt - to open the file again each time a message is logged to the appender. - If the file cannot be opened for writing when a message is logged then - the message will be discarded by this appender. - - - The supports pluggable file locking models via - the property. - The default behavior, implemented by - is to obtain an exclusive write lock on the file until this appender is closed. - The alternative models only hold a - write lock while the appender is writing a logging event () - or synchronize by using a named system wide Mutex (). - - - All locking strategies have issues and you should seriously consider using a different strategy that - avoids having multiple processes logging to the same file. - - - Nicko Cadell - Gert Driesen - Rodrigo B. de Oliveira - Douglas de la Torre - Niall Daley - - - - Sends logging events to a . - - - - An Appender that writes to a . - - - This appender may be used stand alone if initialized with an appropriate - writer, however it is typically used as a base class for an appender that - can open a to write to. - - - Nicko Cadell - Gert Driesen - Douglas de la Torre - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initializes a new instance of the class and - sets the output destination to a new initialized - with the specified . - - The layout to use with this appender. - The to output to. - - - Obsolete constructor. - - - - - - Initializes a new instance of the class and sets - the output destination to the specified . - - The layout to use with this appender - The to output to - - The must have been previously opened. - - - - Obsolete constructor. - - - - - - This method determines if there is a sense in attempting to append. - - - - This method checks if an output target has been set and if a - layout has been set. - - - false if any of the preconditions fail. - - - - This method is called by the - method. - - The event to log. - - - Writes a log statement to the output stream if the output stream exists - and is writable. - - - The format of the output will depend on the appender's layout. - - - - - - This method is called by the - method. - - The array of events to log. - - - This method writes all the bulk logged events to the output writer - before flushing the stream. - - - - - - Close this appender instance. The underlying stream or writer is also closed. - - - Closed appenders cannot be reused. - - - - - Writes the footer and closes the underlying . - - - - Writes the footer and closes the underlying . - - - - - - Closes the underlying . - - - - Closes the underlying . - - - - - - Clears internal references to the underlying - and other variables. - - - - Subclasses can override this method for an alternate closing behavior. - - - - - - Writes a footer as produced by the embedded layout's property. - - - - Writes a footer as produced by the embedded layout's property. - - - - - - Writes a header produced by the embedded layout's property. - - - - Writes a header produced by the embedded layout's property. - - - - - - Called to allow a subclass to lazily initialize the writer - - - - This method is called when an event is logged and the or - have not been set. This allows a subclass to - attempt to initialize the writer multiple times. - - - - - - This is the where logging events - will be written to. - - - - - Immediate flush means that the underlying - or output stream will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logging events are not actually persisted if and when the application - crashes. - - - The default value is true. - - - - - - The fully qualified type of the TextWriterAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or set whether the appender will flush at the end - of each append operation. - - - - The default behavior is to flush at the end of each - append operation. - - - If this option is set to false, then the underlying - stream can defer persisting the logging event to a later - time. - - - - Avoiding the flush operation at the end of each append results in - a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - Sets the where the log output will go. - - - - The specified must be open and writable. - - - The will be closed when the appender - instance is closed. - - - Note: Logging to an unopened will fail. - - - - - - Gets or set the and the underlying - , if any, for this appender. - - - The for this appender. - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Gets or sets the where logging events - will be written to. - - - The where logging events are written. - - - - This is the where logging events - will be written to. - - - - - - Default constructor - - - - Default constructor - - - - - - Construct a new appender using the layout, file and append mode. - - the layout to use with this appender - the full path to the file to write to - flag to indicate if the file should be appended to - - - Obsolete constructor. - - - - - - Construct a new appender using the layout and file specified. - The file will be appended to. - - the layout to use with this appender - the full path to the file to write to - - - Obsolete constructor. - - - - - - Activate the options on the file appender. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - This will cause the file to be opened. - - - - - - Closes any previously opened file and calls the parent's . - - - - Resets the filename and the file stream. - - - - - - Called to initialize the file writer - - - - Will be called for each logged message until the file is - successfully opened. - - - - - - This method is called by the - method. - - The event to log. - - - Writes a log statement to the output stream if the output stream exists - and is writable. - - - The format of the output will depend on the appender's layout. - - - - - - This method is called by the - method. - - The array of events to log. - - - Acquires the output file locks once before writing all the events to - the stream. - - - - - - Writes a footer as produced by the embedded layout's property. - - - - Writes a footer as produced by the embedded layout's property. - - - - - - Writes a header produced by the embedded layout's property. - - - - Writes a header produced by the embedded layout's property. - - - - - - Closes the underlying . - - - - Closes the underlying . - - - - - - Closes the previously opened file. - - - - Writes the to the file and then - closes the file. - - - - - - Sets and opens the file where the log output will go. The specified file must be writable. - - The path to the log file. Must be a fully qualified path. - If true will append to fileName. Otherwise will truncate fileName - - - Calls but guarantees not to throw an exception. - Errors are passed to the . - - - - - - Sets and opens the file where the log output will go. The specified file must be writable. - - The path to the log file. Must be a fully qualified path. - If true will append to fileName. Otherwise will truncate fileName - - - If there was already an opened file, then the previous file - is closed first. - - - This method will ensure that the directory structure - for the specified exists. - - - - - - Sets the quiet writer used for file output - - the file stream that has been opened for writing - - - This implementation of creates a - over the and passes it to the - method. - - - This method can be overridden by sub classes that want to wrap the - in some way, for example to encrypt the output - data using a System.Security.Cryptography.CryptoStream. - - - - - - Sets the quiet writer being used. - - the writer over the file stream that has been opened for writing - - - This method can be overridden by sub classes that want to - wrap the in some way. - - - - - - Convert a path into a fully qualified path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - - - - Flag to indicate if we should append to the file - or overwrite the file. The default is to append. - - - - - The name of the log file. - - - - - The encoding to use for the file stream. - - - - - The security context to use for privileged calls - - - - - The stream to log to. Has added locking semantics - - - - - The locking model to use - - - - - The fully qualified type of the FileAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the path to the file that logging will be written to. - - - The path to the file that logging will be written to. - - - - If the path is relative it is taken as relative from - the application base directory. - - - - - - Gets or sets a flag that indicates whether the file should be - appended to or overwritten. - - - Indicates whether the file should be appended to or overwritten. - - - - If the value is set to false then the file will be overwritten, if - it is set to true then the file will be appended to. - - The default value is true. - - - - - Gets or sets used to write to the file. - - - The used to write to the file. - - - - The default encoding set is - which is the encoding for the system's current ANSI code page. - - - - - - Gets or sets the used to write to the file. - - - The used to write to the file. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Gets or sets the used to handle locking of the file. - - - The used to lock the file. - - - - Gets or sets the used to handle locking of the file. - - - There are three built in locking models, , and . - The first locks the file from the start of logging to the end, the - second locks only for the minimal amount of time when logging each message - and the last synchronizes processes using a named system wide Mutex. - - - The default locking model is the . - - - - - - Write only that uses the - to manage access to an underlying resource. - - - - - True asynchronous writes are not supported, the implementation forces a synchronous write. - - - - - Exception base type for log4net. - - - - This type extends . It - does not add any new functionality but does differentiate the - type of exception being thrown. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - A message to include with the exception. - - - Initializes a new instance of the class with - the specified message. - - - - - - Constructor - - A message to include with the exception. - A nested exception to include. - - - Initializes a new instance of the class - with the specified message and inner exception. - - - - - - Serialization constructor - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Locking model base class - - - - Base class for the locking models available to the derived loggers. - - - - - - Open the output file - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Acquire the lock on the file in preparation for writing to it. - Return a stream pointing to the file. - must be called to release the lock on the output file. - - - - - - Release the lock on the file - - - - Release the lock on the file. No further writes will be made to the - stream until is called again. - - - - - - Helper method that creates a FileStream under CurrentAppender's SecurityContext. - - - - Typically called during OpenFile or AcquireLock. - - - If the directory portion of the does not exist, it is created - via Directory.CreateDirecctory. - - - - - - - - - - Helper method to close under CurrentAppender's SecurityContext. - - - Does not set to null. - - - - - - Gets or sets the for this LockingModel - - - The for this LockingModel - - - - The file appender this locking model is attached to and working on - behalf of. - - - The file appender is used to locate the security context and the error handler to use. - - - The value of this property will be set before is - called. - - - - - - Hold an exclusive lock on the output file - - - - Open the file once for writing and hold it open until is called. - Maintains an exclusive lock on the file during this time. - - - - - - Open the file specified and prepare for logging. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Does nothing. The lock is already taken - - - - - - Release the lock on the file - - - - Does nothing. The lock will be released when the file is closed. - - - - - - Acquires the file lock for each write - - - - Opens the file once for each / cycle, - thus holding the lock for the minimal amount of time. This method of locking - is considerably slower than but allows - other processes to move/delete the log file whilst logging continues. - - - - - - Prepares to open the file when the first message is logged. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Acquire the lock on the file in preparation for writing to it. - Return a stream pointing to the file. - must be called to release the lock on the output file. - - - - - - Release the lock on the file - - - - Release the lock on the file. No further writes will be made to the - stream until is called again. - - - - - - Provides cross-process file locking. - - Ron Grabowski - Steve Wranovsky - - - - Open the file specified and prepare for logging. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Does nothing. The lock is already taken - - - - - - - - - - - This appender forwards logging events to attached appenders. - - - - The forwarding appender can be used to specify different thresholds - and filters for the same appender at different locations within the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Forward the logging event to the attached appenders - - The event to log. - - - Delivers the logging event to all the attached appenders. - - - - - - Forward the logging events to the attached appenders - - The array of events to log. - - - Delivers the logging events to all the attached appenders. - - - - - - Adds an to the list of appenders of this - instance. - - The to add to this appender. - - - If the specified is already in the list of - appenders, then it won't be added again. - - - - - - Looks for the appender with the specified name. - - The name of the appender to lookup. - - The appender with the specified name, or null. - - - - Get the named appender attached to this appender. - - - - - - Removes all previously added appenders from this appender. - - - - This is useful when re-reading configuration information. - - - - - - Removes the specified appender from the list of appenders. - - The appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Implementation of the interface - - - - - Gets the appenders contained in this appender as an - . - - - If no appenders can be found, then an - is returned. - - - A collection of the appenders in this appender. - - - - - Logs events to a local syslog service. - - - - This appender uses the POSIX libc library functions openlog, syslog, and closelog. - If these functions are not available on the local system then this appender will not work! - - - The functions openlog, syslog, and closelog are specified in SUSv2 and - POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. - - - This appender talks to a local syslog service. If you need to log to a remote syslog - daemon and you cannot configure your local syslog service to do this you may be - able to use the to log via UDP. - - - Syslog messages must have a facility and and a severity. The severity - is derived from the Level of the logging event. - The facility must be chosen from the set of defined syslog - values. The facilities list is predefined - and cannot be extended. - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - Rob Lyon - Nicko Cadell - - - - Initializes a new instance of the class. - - - This instance of the class is set up to write - to a local syslog service. - - - - - Add a mapping of level to severity - - The mapping to add - - - Adds a to this appender. - - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to a remote syslog daemon. - - - The format of the output will depend on the appender's layout. - - - - - - Close the syslog when the appender is closed - - - - Close the syslog when the appender is closed - - - - - - Translates a log4net level to a syslog severity. - - A log4net level. - A syslog severity. - - - Translates a log4net level to a syslog severity. - - - - - - Generate a syslog priority. - - The syslog facility. - The syslog severity. - A syslog priority. - - - - The facility. The default facility is . - - - - - The message identity - - - - - Marshaled handle to the identity string. We have to hold on to the - string as the openlog and syslog APIs just hold the - pointer to the ident and dereference it for each log message. - - - - - Mapping from level object to syslog severity - - - - - Open connection to system logger. - - - - - Generate a log message. - - - - The libc syslog method takes a format string and a variable argument list similar - to the classic printf function. As this type of vararg list is not supported - by C# we need to specify the arguments explicitly. Here we have specified the - format string with a single message argument. The caller must set the format - string to "%s". - - - - - - Close descriptor used to write to system logger. - - - - - Message identity - - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - - - - Syslog facility - - - Set to one of the values. The list of - facilities is predefined and cannot be extended. The default value - is . - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - syslog severities - - - - The log4net Level maps to a syslog severity using the - method and the - class. The severity is set on . - - - - - - system is unusable - - - - - action must be taken immediately - - - - - critical conditions - - - - - error conditions - - - - - warning conditions - - - - - normal but significant condition - - - - - informational - - - - - debug-level messages - - - - - syslog facilities - - - - The syslog facility defines which subsystem the logging comes from. - This is set on the property. - - - - - - kernel messages - - - - - random user-level messages - - - - - mail system - - - - - system daemons - - - - - security/authorization messages - - - - - messages generated internally by syslogd - - - - - line printer subsystem - - - - - network news subsystem - - - - - UUCP subsystem - - - - - clock (cron/at) daemon - - - - - security/authorization messages (private) - - - - - ftp daemon - - - - - NTP subsystem - - - - - log audit - - - - - log alert - - - - - clock daemon - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - - - The mapped syslog severity for the specified level - - - - Required property. - The mapped syslog severity for the specified level - - - - - - Stores logging events in an array. - - - - The memory appender stores all the logging events - that are appended in an in-memory array. - - - Use the method to get - the current list of events that have been appended. - - - Use the method to clear the - current list of events. - - - Julian Biddle - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Gets the events that have been logged. - - The events that have been logged - - - Gets the events that have been logged. - - - - - - This method is called by the method. - - the event to log - - Stores the in the events list. - - - - - Clear the list of events - - - Clear the list of events - - - - - The list of events that have been appended. - - - - - Value indicating which fields in the event should be fixed - - - By default all fields are fixed - - - - - Gets or sets a value indicating whether only part of the logging event - data should be fixed. - - - true if the appender should only fix part of the logging event - data, otherwise false. The default is false. - - - - Setting this property to true will cause only part of the event - data to be fixed and stored in the appender, hereby improving performance. - - - See for more information. - - - - - - Gets or sets the fields that will be fixed in the event - - - - The logging event needs to have certain thread specific values - captured before it can be buffered. See - for details. - - - - - - Logs entries by sending network messages using the - native function. - - - - You can send messages only to names that are active - on the network. If you send the message to a user name, - that user must be logged on and running the Messenger - service to receive the message. - - - The receiver will get a top most window displaying the - messages one at a time, therefore this appender should - not be used to deliver a high volume of messages. - - - The following table lists some possible uses for this appender : - - - - - Action - Property Value(s) - - - Send a message to a user account on the local machine - - - = <name of the local machine> - - - = <user name> - - - - - Send a message to a user account on a remote machine - - - = <name of the remote machine> - - - = <user name> - - - - - Send a message to a domain user account - - - = <name of a domain controller | uninitialized> - - - = <user name> - - - - - Send a message to all the names in a workgroup or domain - - - = <workgroup name | domain name>* - - - - - Send a message from the local machine to a remote machine - - - = <name of the local machine | uninitialized> - - - = <name of the remote machine> - - - - - - - Note : security restrictions apply for sending - network messages, see - for more information. - - - - - An example configuration section to log information - using this appender from the local machine, named - LOCAL_PC, to machine OPERATOR_PC : - - - - - - - - - - Nicko Cadell - Gert Driesen - - - - The DNS or NetBIOS name of the server on which the function is to execute. - - - - - The sender of the network message. - - - - - The message alias to which the message should be sent. - - - - - The security context to use for privileged calls - - - - - Initializes the appender. - - - The default constructor initializes all fields to their default values. - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The appender will be ignored if no was specified. - - - The required property was not specified. - - - - This method is called by the method. - - The event to log. - - - Sends the event using a network message. - - - - - - Sends a buffer of information to a registered message alias. - - The DNS or NetBIOS name of the server on which the function is to execute. - The message alias to which the message buffer should be sent - The originator of the message. - The message text. - The length, in bytes, of the message text. - - - The following restrictions apply for sending network messages: - - - - - Platform - Requirements - - - Windows NT - - - No special group membership is required to send a network message. - - - Admin, Accounts, Print, or Server Operator group membership is required to - successfully send a network message on a remote server. - - - - - Windows 2000 or later - - - If you send a message on a domain controller that is running Active Directory, - access is allowed or denied based on the access control list (ACL) for the securable - object. The default ACL permits only Domain Admins and Account Operators to send a network message. - - - On a member server or workstation, only Administrators and Server Operators can send a network message. - - - - - - - For more information see Security Requirements for the Network Management Functions. - - - - - If the function succeeds, the return value is zero. - - - - - - Gets or sets the sender of the message. - - - The sender of the message. - - - If this property is not specified, the message is sent from the local computer. - - - - - Gets or sets the message alias to which the message should be sent. - - - The recipient of the message. - - - This property should always be specified in order to send a message. - - - - - Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. - - - DNS or NetBIOS name of the remote server on which the function is to execute. - - - - For Windows NT 4.0 and earlier, the string should begin with \\. - - - If this property is not specified, the local computer is used. - - - - - - Gets or sets the used to call the NetSend method. - - - The used to call the NetSend method. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appends log events to the OutputDebugString system. - - - - OutputDebugStringAppender appends log events to the - OutputDebugString system. - - - The string is passed to the native OutputDebugString - function. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Write the logging event to the output debug string API - - the event to log - - - Write the logging event to the output debug string API - - - - - - Stub for OutputDebugString native method - - the string to output - - - Stub for OutputDebugString native method - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Logs events to a remote syslog daemon. - - - - The BSD syslog protocol is used to remotely log to - a syslog daemon. The syslogd listens for for messages - on UDP port 514. - - - The syslog UDP protocol is not authenticated. Most syslog daemons - do not accept remote log messages because of the security implications. - You may be able to use the LocalSyslogAppender to talk to a local - syslog service. - - - There is an RFC 3164 that claims to document the BSD Syslog Protocol. - This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. - This appender generates what the RFC calls an "Original Device Message", - i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation - this format of message will be accepted by all current syslog daemon - implementations. The daemon will attach the current time and the source - hostname or IP address to any messages received. - - - Syslog messages must have a facility and and a severity. The severity - is derived from the Level of the logging event. - The facility must be chosen from the set of defined syslog - values. The facilities list is predefined - and cannot be extended. - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - Rob Lyon - Nicko Cadell - - - - Sends logging events as connectionless UDP datagrams to a remote host or a - multicast group using an . - - - - UDP guarantees neither that messages arrive, nor that they arrive in the correct order. - - - To view the logging results, a custom application can be developed that listens for logging - events. - - - When decoding events send via this appender remember to use the same encoding - to decode the events as was used to send the events. See the - property to specify the encoding to use. - - - - This example shows how to log receive logging events that are sent - on IP address 244.0.0.1 and port 8080 to the console. The event is - encoded in the packet as a unicode string and it is decoded as such. - - IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); - UdpClient udpClient; - byte[] buffer; - string loggingEvent; - - try - { - udpClient = new UdpClient(8080); - - while(true) - { - buffer = udpClient.Receive(ref remoteEndPoint); - loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); - Console.WriteLine(loggingEvent); - } - } - catch(Exception e) - { - Console.WriteLine(e.ToString()); - } - - - Dim remoteEndPoint as IPEndPoint - Dim udpClient as UdpClient - Dim buffer as Byte() - Dim loggingEvent as String - - Try - remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) - udpClient = new UdpClient(8080) - - While True - buffer = udpClient.Receive(ByRef remoteEndPoint) - loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) - Console.WriteLine(loggingEvent) - Wend - Catch e As Exception - Console.WriteLine(e.ToString()) - End Try - - - An example configuration section to log information using this appender to the - IP 224.0.0.1 on port 8080: - - - - - - - - - - Gert Driesen - Nicko Cadell - - - - Initializes a new instance of the class. - - - The default constructor initializes all fields to their default values. - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The appender will be ignored if no was specified or - an invalid remote or local TCP port number was specified. - - - The required property was not specified. - The TCP port number assigned to or is less than or greater than . - - - - This method is called by the method. - - The event to log. - - - Sends the event using an UDP datagram. - - - Exceptions are passed to the . - - - - - - Closes the UDP connection and releases all resources associated with - this instance. - - - - Disables the underlying and releases all managed - and unmanaged resources associated with the . - - - - - - Initializes the underlying connection. - - - - The underlying is initialized and binds to the - port number from which you intend to communicate. - - - Exceptions are passed to the . - - - - - - The IP address of the remote host or multicast group to which - the logging event will be sent. - - - - - The TCP port number of the remote host or multicast group to - which the logging event will be sent. - - - - - The cached remote endpoint to which the logging events will be sent. - - - - - The TCP port number from which the will communicate. - - - - - The instance that will be used for sending the - logging events. - - - - - The encoding to use for the packet. - - - - - Gets or sets the IP address of the remote host or multicast group to which - the underlying should sent the logging event. - - - The IP address of the remote host or multicast group to which the logging event - will be sent. - - - - Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to - 239.255.255.255). Multicast packets can pass across different networks through routers, so - it is possible to use multicasts in an Internet scenario as long as your network provider - supports multicasting. - - - Hosts that want to receive particular multicast messages must register their interest by joining - the multicast group. Multicast messages are not sent to networks where no host has joined - the multicast group. Class D IP addresses are used for multicast groups, to differentiate - them from normal host addresses, allowing nodes to easily detect if a message is of interest. - - - Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: - - - - - IP Address - Description - - - 224.0.0.1 - - - Sends a message to all system on the subnet. - - - - - 224.0.0.2 - - - Sends a message to all routers on the subnet. - - - - - 224.0.0.12 - - - The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. - - - - - - - A complete list of actually reserved multicast addresses and their owners in the ranges - defined by RFC 3171 can be found at the IANA web site. - - - The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative - addresses. These addresses can be reused with other local groups. Routers are typically - configured with filters to prevent multicast traffic in this range from flowing outside - of the local network. - - - - - - Gets or sets the TCP port number of the remote host or multicast group to which - the underlying should sent the logging event. - - - An integer value in the range to - indicating the TCP port number of the remote host or multicast group to which the logging event - will be sent. - - - The underlying will send messages to this TCP port number - on the remote host or multicast group. - - The value specified is less than or greater than . - - - - Gets or sets the TCP port number from which the underlying will communicate. - - - An integer value in the range to - indicating the TCP port number from which the underlying will communicate. - - - - The underlying will bind to this port for sending messages. - - - Setting the value to 0 (the default) will cause the udp client not to bind to - a local port. - - - The value specified is less than or greater than . - - - - Gets or sets used to write the packets. - - - The used to write the packets. - - - - The used to write the packets. - - - - - - Gets or sets the underlying . - - - The underlying . - - - creates a to send logging events - over a network. Classes deriving from can use this - property to get or set this . Use the underlying - returned from if you require access beyond that which - provides. - - - - - Gets or sets the cached remote endpoint to which the logging events should be sent. - - - The cached remote endpoint to which the logging events will be sent. - - - The method will initialize the remote endpoint - with the values of the and - properties. - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Syslog port 514 - - - - - Initializes a new instance of the class. - - - This instance of the class is set up to write - to a remote syslog daemon. - - - - - Add a mapping of level to severity - - The mapping to add - - - Add a mapping to this appender. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to a remote syslog daemon. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to syslog severity mappings set on this appender. - - - - - - Translates a log4net level to a syslog severity. - - A log4net level. - A syslog severity. - - - Translates a log4net level to a syslog severity. - - - - - - Generate a syslog priority. - - The syslog facility. - The syslog severity. - A syslog priority. - - - Generate a syslog priority. - - - - - - The facility. The default facility is . - - - - - The message identity - - - - - Mapping from level object to syslog severity - - - - - Message identity - - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - - - - Syslog facility - - - Set to one of the values. The list of - facilities is predefined and cannot be extended. The default value - is . - - - - - syslog severities - - - - The syslog severities. - - - - - - system is unusable - - - - - action must be taken immediately - - - - - critical conditions - - - - - error conditions - - - - - warning conditions - - - - - normal but significant condition - - - - - informational - - - - - debug-level messages - - - - - syslog facilities - - - - The syslog facilities - - - - - - kernel messages - - - - - random user-level messages - - - - - mail system - - - - - system daemons - - - - - security/authorization messages - - - - - messages generated internally by syslogd - - - - - line printer subsystem - - - - - network news subsystem - - - - - UUCP subsystem - - - - - clock (cron/at) daemon - - - - - security/authorization messages (private) - - - - - ftp daemon - - - - - NTP subsystem - - - - - log audit - - - - - log alert - - - - - clock daemon - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - - - The mapped syslog severity for the specified level - - - - Required property. - The mapped syslog severity for the specified level - - - - - - Delivers logging events to a remote logging sink. - - - - This Appender is designed to deliver events to a remote sink. - That is any object that implements the - interface. It delivers the events using .NET remoting. The - object to deliver events to is specified by setting the - appenders property. - - The RemotingAppender buffers events before sending them. This allows it to - make more efficient use of the remoting infrastructure. - - Once the buffer is full the events are still not sent immediately. - They are scheduled to be sent using a pool thread. The effect is that - the send occurs asynchronously. This is very important for a - number of non obvious reasons. The remoting infrastructure will - flow thread local variables (stored in the ), - if they are marked as , across the - remoting boundary. If the server is not contactable then - the remoting infrastructure will clear the - objects from the . To prevent a logging failure from - having side effects on the calling application the remoting call must be made - from a separate thread to the one used by the application. A - thread is used for this. If no thread is available then - the events will block in the thread pool manager until a thread is available. - - Because the events are sent asynchronously using pool threads it is possible to close - this appender before all the queued events have been sent. - When closing the appender attempts to wait until all the queued events have been sent, but - this will timeout after 30 seconds regardless. - - If this appender is being closed because the - event has fired it may not be possible to send all the queued events. During process - exit the runtime limits the time that a - event handler is allowed to run for. If the runtime terminates the threads before - the queued events have been sent then they will be lost. To ensure that all events - are sent the appender must be closed before the application exits. See - for details on how to shutdown - log4net programmatically. - - - Nicko Cadell - Gert Driesen - Daniel Cazzulino - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Send the contents of the buffer to the remote sink. - - - The events are not sent immediately. They are scheduled to be sent - using a pool thread. The effect is that the send occurs asynchronously. - This is very important for a number of non obvious reasons. The remoting - infrastructure will flow thread local variables (stored in the ), - if they are marked as , across the - remoting boundary. If the server is not contactable then - the remoting infrastructure will clear the - objects from the . To prevent a logging failure from - having side effects on the calling application the remoting call must be made - from a separate thread to the one used by the application. A - thread is used for this. If no thread is available then - the events will block in the thread pool manager until a thread is available. - - The events to send. - - - - Override base class close. - - - - This method waits while there are queued work items. The events are - sent asynchronously using work items. These items - will be sent once a thread pool thread is available to send them, therefore - it is possible to close the appender before all the queued events have been - sent. - - This method attempts to wait until all the queued events have been sent, but this - method will timeout after 30 seconds regardless. - - If the appender is being closed because the - event has fired it may not be possible to send all the queued events. During process - exit the runtime limits the time that a - event handler is allowed to run for. - - - - - A work item is being queued into the thread pool - - - - - A work item from the thread pool has completed - - - - - Send the contents of the buffer to the remote sink. - - - This method is designed to be used with the . - This method expects to be passed an array of - objects in the state param. - - the logging events to send - - - - The URL of the remote sink. - - - - - The local proxy (.NET remoting) for the remote logging sink. - - - - - The number of queued callbacks currently waiting or executing - - - - - Event used to signal when there are no queued work items - - - This event is set when there are no queued work items. In this - state it is safe to close the appender. - - - - - Gets or sets the URL of the well-known object that will accept - the logging events. - - - The well-known URL of the remote sink. - - - - The URL of the remoting sink that will accept logging events. - The sink must implement the - interface. - - - - - - Interface used to deliver objects to a remote sink. - - - This interface must be implemented by a remoting sink - if the is to be used - to deliver logging events to the sink. - - - - - Delivers logging events to the remote sink - - Array of events to log. - - - Delivers logging events to the remote sink - - - - - - Appender that rolls log files based on size or date or both. - - - - RollingFileAppender can roll log files based on size or date or both - depending on the setting of the property. - When set to the log file will be rolled - once its size exceeds the . - When set to the log file will be rolled - once the date boundary specified in the property - is crossed. - When set to the log file will be - rolled once the date boundary specified in the property - is crossed, but within a date boundary the file will also be rolled - once its size exceeds the . - When set to the log file will be rolled when - the appender is configured. This effectively means that the log file can be - rolled once per program execution. - - - A of few additional optional features have been added: - - Attach date pattern for current log file - Backup number increments for newer files - Infinite number of backups by file size - - - - - - For large or infinite numbers of backup files a - greater than zero is highly recommended, otherwise all the backup files need - to be renamed each time a new backup is created. - - - When Date/Time based rolling is used setting - to will reduce the number of file renamings to few or none. - - - - - - Changing or without clearing - the log file directory of backup files will cause unexpected and unwanted side effects. - - - - - If Date/Time based rolling is enabled this appender will attempt to roll existing files - in the directory without a Date/Time tag based on the last write date of the base log file. - The appender only rolls the log file when a message is logged. If Date/Time based rolling - is enabled then the appender will not roll the log file at the Date/Time boundary but - at the point when the next message is logged after the boundary has been crossed. - - - - The extends the and - has the same behavior when opening the log file. - The appender will first try to open the file for writing when - is called. This will typically be during configuration. - If the file cannot be opened for writing the appender will attempt - to open the file again each time a message is logged to the appender. - If the file cannot be opened for writing when a message is logged then - the message will be discarded by this appender. - - - When rolling a backup file necessitates deleting an older backup file the - file to be deleted is moved to a temporary name before being deleted. - - - - - A maximum number of backup files when rolling on date/time boundaries is not supported. - - - - Nicko Cadell - Gert Driesen - Aspi Havewala - Douglas de la Torre - Edward Smit - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - The fully qualified type of the RollingFileAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Sets the quiet writer being used. - - - This method can be overridden by sub classes. - - the writer to set - - - - Write out a logging event. - - the event to write to file. - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Write out an array of logging events. - - the events to write to file. - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Performs any required rolling before outputting the next event - - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Creates and opens the file for logging. If - is false then the fully qualified name is determined and used. - - the name of the file to open - true to append to existing file - - This method will ensure that the directory structure - for the specified exists. - - - - - Get the current output file name - - the base file name - the output file name - - The output file name is based on the base fileName specified. - If is set then the output - file name is the same as the base file passed in. Otherwise - the output file depends on the date pattern, on the count - direction or both. - - - - - Determines curSizeRollBackups (only within the current roll point) - - - - - Generates a wildcard pattern that can be used to find all files - that are similar to the base file name. - - - - - - - Builds a list of filenames for all files matching the base filename plus a file - pattern. - - - - - - - Initiates a roll over if needed for crossing a date boundary since the last run. - - - - - Initializes based on existing conditions at time of . - - - - Initializes based on existing conditions at time of . - The following is done - - determine curSizeRollBackups (only within the current roll point) - initiates a roll over if needed for crossing a date boundary since the last run. - - - - - - - Does the work of bumping the 'current' file counter higher - to the highest count when an incremental file name is seen. - The highest count is either the first file (when count direction - is greater than 0) or the last file (when count direction less than 0). - In either case, we want to know the highest count that is present. - - - - - - - Attempts to extract a number from the end of the file name that indicates - the number of the times the file has been rolled over. - - - Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. - - - - - - - Takes a list of files and a base file name, and looks for - 'incremented' versions of the base file. Bumps the max - count up to the highest count seen. - - - - - - - Calculates the RollPoint for the datePattern supplied. - - the date pattern to calculate the check period for - The RollPoint that is most accurate for the date pattern supplied - - Essentially the date pattern is examined to determine what the - most suitable roll point is. The roll point chosen is the roll point - with the smallest period that can be detected using the date pattern - supplied. i.e. if the date pattern only outputs the year, month, day - and hour then the smallest roll point that can be detected would be - and hourly roll point as minutes could not be detected. - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Sets initial conditions including date/time roll over information, first check, - scheduledFilename, and calls to initialize - the current number of backups. - - - - - - - - - .1, .2, .3, etc. - - - - - Rollover the file(s) to date/time tagged file(s). - - set to true if the file to be rolled is currently open - - - Rollover the file(s) to date/time tagged file(s). - Resets curSizeRollBackups. - If fileIsOpen is set then the new file is opened (through SafeOpenFile). - - - - - - Renames file to file . - - Name of existing file to roll. - New name for file. - - - Renames file to file . It - also checks for existence of target file and deletes if it does. - - - - - - Test if a file exists at a specified path - - the path to the file - true if the file exists - - - Test if a file exists at a specified path - - - - - - Deletes the specified file if it exists. - - The file to delete. - - - Delete a file if is exists. - The file is first moved to a new filename then deleted. - This allows the file to be removed even when it cannot - be deleted, but it still can be moved. - - - - - - Implements file roll base on file size. - - - - If the maximum number of size based backups is reached - (curSizeRollBackups == maxSizeRollBackups) then the oldest - file is deleted -- its index determined by the sign of countDirection. - If countDirection < 0, then files - {File.1, ..., File.curSizeRollBackups -1} - are renamed to {File.2, ..., - File.curSizeRollBackups}. Moreover, File is - renamed File.1 and closed. - - - A new file is created to receive further log output. - - - If maxSizeRollBackups is equal to zero, then the - File is truncated with no backup files created. - - - If maxSizeRollBackups < 0, then File is - renamed if needed and no files are deleted. - - - - - - Implements file roll. - - the base name to rename - - - If the maximum number of size based backups is reached - (curSizeRollBackups == maxSizeRollBackups) then the oldest - file is deleted -- its index determined by the sign of countDirection. - If countDirection < 0, then files - {File.1, ..., File.curSizeRollBackups -1} - are renamed to {File.2, ..., - File.curSizeRollBackups}. - - - If maxSizeRollBackups is equal to zero, then the - File is truncated with no backup files created. - - - If maxSizeRollBackups < 0, then File is - renamed if needed and no files are deleted. - - - This is called by to rename the files. - - - - - - Get the start time of the next window for the current rollpoint - - the current date - the type of roll point we are working with - the start time for the next roll point an interval after the currentDateTime date - - - Returns the date of the next roll point after the currentDateTime date passed to the method. - - - The basic strategy is to subtract the time parts that are less significant - than the rollpoint from the current time. This should roll the time back to - the start of the time window for the current rollpoint. Then we add 1 window - worth of time and get the start time of the next window for the rollpoint. - - - - - - This object supplies the current date/time. Allows test code to plug in - a method to control this class when testing date/time based rolling. The default - implementation uses the underlying value of DateTime.Now. - - - - - The date pattern. By default, the pattern is set to ".yyyy-MM-dd" - meaning daily rollover. - - - - - The actual formatted filename that is currently being written to - or will be the file transferred to on roll over - (based on staticLogFileName). - - - - - The timestamp when we shall next recompute the filename. - - - - - Holds date of last roll over - - - - - The type of rolling done - - - - - The default maximum file size is 10MB - - - - - There is zero backup files by default - - - - - How many sized based backups have been made so far - - - - - The rolling file count direction. - - - - - The rolling mode used in this appender. - - - - - Cache flag set if we are rolling by date. - - - - - Cache flag set if we are rolling by size. - - - - - Value indicating whether to always log to the same file. - - - - - Value indicating whether to preserve the file name extension when rolling. - - - - - FileName provided in configuration. Used for rolling properly - - - - - The 1st of January 1970 in UTC - - - - - Gets or sets the strategy for determining the current date and time. The default - implementation is to use LocalDateTime which internally calls through to DateTime.Now. - DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying - . - - - An implementation of the interface which returns the current date and time. - - - - Gets or sets the used to return the current date and time. - - - There are two built strategies for determining the current date and time, - - and . - - - The default strategy is . - - - - - - Gets or sets the date pattern to be used for generating file names - when rolling over on date. - - - The date pattern to be used for generating file names when rolling - over on date. - - - - Takes a string in the same format as expected by - . - - - This property determines the rollover schedule when rolling over - on date. - - - - - - Gets or sets the maximum number of backup files that are kept before - the oldest is erased. - - - The maximum number of backup files that are kept before the oldest is - erased. - - - - If set to zero, then there will be no backup files and the log file - will be truncated when it reaches . - - - If a negative number is supplied then no deletions will be made. Note - that this could result in very slow performance as a large number of - files are rolled over unless is used. - - - The maximum applies to each time based group of files and - not the total. - - - - - - Gets or sets the maximum size that the output file is allowed to reach - before being rolled over to backup files. - - - The maximum size in bytes that the output file is allowed to reach before being - rolled over to backup files. - - - - This property is equivalent to except - that it is required for differentiating the setter taking a - argument from the setter taking a - argument. - - - The default maximum file size is 10MB (10*1024*1024). - - - - - - Gets or sets the maximum size that the output file is allowed to reach - before being rolled over to backup files. - - - The maximum size that the output file is allowed to reach before being - rolled over to backup files. - - - - This property allows you to specify the maximum size with the - suffixes "KB", "MB" or "GB" so that the size is interpreted being - expressed respectively in kilobytes, megabytes or gigabytes. - - - For example, the value "10KB" will be interpreted as 10240 bytes. - - - The default maximum file size is 10MB. - - - If you have the option to set the maximum file size programmatically - consider using the property instead as this - allows you to set the size in bytes as a . - - - - - - Gets or sets the rolling file count direction. - - - The rolling file count direction. - - - - Indicates if the current file is the lowest numbered file or the - highest numbered file. - - - By default newer files have lower numbers ( < 0), - i.e. log.1 is most recent, log.5 is the 5th backup, etc... - - - >= 0 does the opposite i.e. - log.1 is the first backup made, log.5 is the 5th backup made, etc. - For infinite backups use >= 0 to reduce - rollover costs. - - The default file count direction is -1. - - - - - Gets or sets the rolling style. - - The rolling style. - - - The default rolling style is . - - - When set to this appender's - property is set to false, otherwise - the appender would append to a single file rather than rolling - the file each time it is opened. - - - - - - Gets or sets a value indicating whether to preserve the file name extension when rolling. - - - true if the file name extension should be preserved. - - - - By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. - However, under Windows the new file name will loose any program associations as the - extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or - file.curSizeRollBackup.log to maintain any program associations. - - - - - - Gets or sets a value indicating whether to always log to - the same file. - - - true if always should be logged to the same file, otherwise false. - - - - By default file.log is always the current file. Optionally - file.log.yyyy-mm-dd for current formatted datePattern can by the currently - logging file (or file.log.curSizeRollBackup or even - file.log.yyyy-mm-dd.curSizeRollBackup). - - - This will make time based rollovers with a large number of backups - much faster as the appender it won't have to rename all the backups! - - - - - - Style of rolling to use - - - - Style of rolling to use - - - - - - Roll files once per program execution - - - - Roll files once per program execution. - Well really once each time this appender is - configured. - - - Setting this option also sets AppendToFile to - false on the RollingFileAppender, otherwise - this appender would just be a normal file appender. - - - - - - Roll files based only on the size of the file - - - - - Roll files based only on the date - - - - - Roll files based on both the size and date of the file - - - - - The code assumes that the following 'time' constants are in a increasing sequence. - - - - The code assumes that the following 'time' constants are in a increasing sequence. - - - - - - Roll the log not based on the date - - - - - Roll the log for each minute - - - - - Roll the log for each hour - - - - - Roll the log twice a day (midday and midnight) - - - - - Roll the log each day (midnight) - - - - - Roll the log each week - - - - - Roll the log each month - - - - - This interface is used to supply Date/Time information to the . - - - This interface is used to supply Date/Time information to the . - Used primarily to allow test classes to plug themselves in so they can - supply test date/times. - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Default implementation of that returns the current time. - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Implementation of that returns the current time as the coordinated universal time (UTC). - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Send an e-mail when a specific logging event occurs, typically on errors - or fatal errors. - - - - The number of logging events delivered in this e-mail depend on - the value of option. The - keeps only the last - logging events in its - cyclic buffer. This keeps memory requirements at a reasonable level while - still delivering useful application context. - - - Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. - For these features to be enabled you need to ensure that you are using a version of - the log4net assembly that is built against the MS .NET 1.1 framework and that you are - running the your application on the MS .NET 1.1 runtime. On all other platforms only sending - unauthenticated messages to a server listening on port 25 (the default) is supported. - - - Authentication is supported by setting the property to - either or . - If using authentication then the - and properties must also be set. - - - To set the SMTP server port use the property. The default port is 25. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Default constructor - - - - - - Sends the contents of the cyclic buffer as an e-mail message. - - The logging events to send. - - - - Send the email message - - the body text to include in the mail - - - - Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - - Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses - that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - - Gets or sets a semicolon-delimited list of recipient e-mail addresses - that will be blind carbon copied. - - - A semicolon-delimited list of e-mail addresses. - - - - A semicolon-delimited list of recipient e-mail addresses. - - - - - - Gets or sets the e-mail address of the sender. - - - The e-mail address of the sender. - - - - The e-mail address of the sender. - - - - - - Gets or sets the subject line of the e-mail message. - - - The subject line of the e-mail message. - - - - The subject line of the e-mail message. - - - - - - Gets or sets the name of the SMTP relay mail server to use to send - the e-mail messages. - - - The name of the e-mail relay server. If SmtpServer is not set, the - name of the local SMTP server is used. - - - - The name of the e-mail relay server. If SmtpServer is not set, the - name of the local SMTP server is used. - - - - - - Obsolete - - - Use the BufferingAppenderSkeleton Fix methods instead - - - - Obsolete property. - - - - - - The mode to use to authentication with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - Valid Authentication mode values are: , - , and . - The default value is . When using - you must specify the - and to use to authenticate. - When using the Windows credentials for the current - thread, if impersonating, or the process will be used to authenticate. - - - - - - The username to use to authenticate with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - A and must be specified when - is set to , - otherwise the username will be ignored. - - - - - - The password to use to authenticate with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - A and must be specified when - is set to , - otherwise the password will be ignored. - - - - - - The port on which the SMTP server is listening - - - Server Port is only available on the MS .NET 1.1 runtime. - - The port on which the SMTP server is listening. The default - port is 25. The Port can only be changed when running on - the MS .NET 1.1 runtime. - - - - - - Gets or sets the priority of the e-mail message - - - One of the values. - - - - Sets the priority of the e-mails generated by this - appender. The default priority is . - - - If you are using this appender to report errors then - you may want to set the priority to . - - - - - - Enable or disable use of SSL when sending e-mail message - - - This is available on MS .NET 2.0 runtime and higher - - - - - Gets or sets the reply-to e-mail address. - - - This is available on MS .NET 2.0 runtime and higher - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Values for the property. - - - - SMTP authentication modes. - - - - - - No authentication - - - - - Basic authentication. - - - Requires a username and password to be supplied - - - - - Integrated authentication - - - Uses the Windows credentials from the current thread or process to authenticate. - - - - - Send an email when a specific logging event occurs, typically on errors - or fatal errors. Rather than sending via smtp it writes a file into the - directory specified by . This allows services such - as the IIS SMTP agent to manage sending the messages. - - - - The configuration for this appender is identical to that of the SMTPAppender, - except that instead of specifying the SMTPAppender.SMTPHost you specify - . - - - The number of logging events delivered in this e-mail depend on - the value of option. The - keeps only the last - logging events in its - cyclic buffer. This keeps memory requirements at a reasonable level while - still delivering useful application context. - - - Niall Daley - Nicko Cadell - - - - Default constructor - - - - Default constructor - - - - - - Sends the contents of the cyclic buffer as an e-mail message. - - The logging events to send. - - - Sends the contents of the cyclic buffer as an e-mail message. - - - - - - Activate the options on this appender. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Convert a path into a fully qualified path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - - - - The security context to use for privileged calls - - - - - Gets or sets a semicolon-delimited list of recipient e-mail addresses. - - - A semicolon-delimited list of e-mail addresses. - - - - A semicolon-delimited list of e-mail addresses. - - - - - - Gets or sets the e-mail address of the sender. - - - The e-mail address of the sender. - - - - The e-mail address of the sender. - - - - - - Gets or sets the subject line of the e-mail message. - - - The subject line of the e-mail message. - - - - The subject line of the e-mail message. - - - - - - Gets or sets the path to write the messages to. - - - - Gets or sets the path to write the messages to. This should be the same - as that used by the agent sending the messages. - - - - - - Gets or sets the used to write to the pickup directory. - - - The used to write to the pickup directory. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appender that allows clients to connect via Telnet to receive log messages - - - - The TelnetAppender accepts socket connections and streams logging messages - back to the client. - The output is provided in a telnet-friendly way so that a log can be monitored - over a TCP/IP socket. - This allows simple remote monitoring of application logging. - - - The default is 23 (the telnet port). - - - Keith Long - Nicko Cadell - - - - Default constructor - - - - Default constructor - - - - - - The fully qualified type of the TelnetAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Overrides the parent method to close the socket handler - - - - Closes all the outstanding connections. - - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Create the socket handler and wait for connections - - - - - - Writes the logging event to each connected client. - - The event to log. - - - Writes the logging event to each connected client. - - - - - - Gets or sets the TCP port number on which this will listen for connections. - - - An integer value in the range to - indicating the TCP port number on which this will listen for connections. - - - - The default value is 23 (the telnet port). - - - The value specified is less than - or greater than . - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Helper class to manage connected clients - - - - The SocketHandler class is used to accept connections from - clients. It is threaded so that clients can connect/disconnect - asynchronously. - - - - - - Opens a new server port on - - the local port to listen on for connections - - - Creates a socket handler on the specified local server port. - - - - - - Sends a string message to each of the connected clients - - the text to send - - - Sends a string message to each of the connected clients - - - - - - Add a client to the internal clients list - - client to add - - - - Remove a client from the internal clients list - - client to remove - - - - Callback used to accept a connection on the server socket - - The result of the asynchronous operation - - - On connection adds to the list of connections - if there are two many open connections you will be disconnected - - - - - - Close all network connections - - - - Make sure we close all network connections - - - - - - Test if this handler has active connections - - - true if this handler has active connections - - - - This property will be true while this handler has - active connections, that is at least one connection that - the handler will attempt to send a message to. - - - - - - Class that represents a client connected to this handler - - - - Class that represents a client connected to this handler - - - - - - Create this for the specified - - the client's socket - - - Opens a stream writer on the socket. - - - - - - Write a string to the client - - string to send - - - Write a string to the client - - - - - - Cleanup the clients connection - - - - Close the socket connection. - - - - - - Appends log events to the system. - - - - The application configuration file can be used to control what listeners - are actually used. See the MSDN documentation for the - class for details on configuring the - trace system. - - - Events are written using the System.Diagnostics.Trace.Write(string,string) - method. The event's logger name is the default value for the category parameter - of the Write method. - - - Compact Framework
    - The Compact Framework does not support the - class for any operation except Assert. When using the Compact Framework this - appender will write to the system rather than - the Trace system. This appender will therefore behave like the . -
    -
    - Douglas de la Torre - Nicko Cadell - Gert Driesen - Ron Grabowski -
    - - - Initializes a new instance of the . - - - - Default constructor. - - - - - - Initializes a new instance of the - with a specified layout. - - The layout to use with this appender. - - - Obsolete constructor. - - - - - - Writes the logging event to the system. - - The event to log. - - - Writes the logging event to the system. - - - - - - Immediate flush means that the underlying writer or output stream - will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logs events are not actually written to persistent media if and - when the application crashes. - - - The default value is true. - - - - - Defaults to %logger - - - - - Gets or sets a value that indicates whether the appender will - flush at the end of each write. - - - The default behavior is to flush at the end of each - write. If the option is set tofalse, then the underlying - stream can defer writing to physical medium to a later time. - - - Avoiding the flush operation at the end of each append results - in a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - - The category parameter sent to the Trace method. - - - - Defaults to %logger which will use the logger name of the current - as the category parameter. - - - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Assembly level attribute that specifies a domain to alias to this assembly's repository. - - - - AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. - - - An assembly's logger repository is defined by its , - however this can be overridden by an assembly loaded before the target assembly. - - - An assembly can alias another assembly's domain to its repository by - specifying this attribute with the name of the target domain. - - - This attribute can only be specified on the assembly and may be used - as many times as necessary to alias all the required domains. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute that specifies a repository to alias to this assembly's repository. - - - - An assembly's logger repository is defined by its , - however this can be overridden by an assembly loaded before the target assembly. - - - An assembly can alias another assembly's repository to its repository by - specifying this attribute with the name of the target repository. - - - This attribute can only be specified on the assembly and may be used - as many times as necessary to alias all the required repositories. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class with - the specified repository to alias to this assembly's repository. - - The repository to alias to this assemby's repository. - - - Initializes a new instance of the class with - the specified repository to alias to this assembly's repository. - - - - - - Gets or sets the repository to alias to this assemby's repository. - - - The repository to alias to this assemby's repository. - - - - The name of the repository to alias to this assemby's repository. - - - - - - Initializes a new instance of the class with - the specified domain to alias to this assembly's repository. - - The domain to alias to this assemby's repository. - - - Obsolete. Use instead of . - - - - - - Use this class to quickly configure a . - - - - Allows very simple programmatic configuration of log4net. - - - Only one appender can be configured using this configurator. - The appender is set at the root of the hierarchy and all logging - events will be delivered to that appender. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - The fully qualified type of the BasicConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Initializes the log4net system with a default configuration. - - - - Initializes the log4net logging system using a - that will write to Console.Out. The log messages are - formatted using the layout object - with the - layout style. - - - - - - Initializes the log4net system using the specified appender. - - The appender to use to log all logging events. - - - Initializes the log4net system using the specified appender. - - - - - - Initializes the log4net system using the specified appenders. - - The appenders to use to log all logging events. - - - Initializes the log4net system using the specified appenders. - - - - - - Initializes the with a default configuration. - - The repository to configure. - - - Initializes the specified repository using a - that will write to Console.Out. The log messages are - formatted using the layout object - with the - layout style. - - - - - - Initializes the using the specified appender. - - The repository to configure. - The appender to use to log all logging events. - - - Initializes the using the specified appender. - - - - - - Initializes the using the specified appenders. - - The repository to configure. - The appenders to use to log all logging events. - - - Initializes the using the specified appender. - - - - - - Base class for all log4net configuration attributes. - - - This is an abstract class that must be extended by - specific configurators. This attribute allows the - configurator to be parameterized by an assembly level - attribute. - - Nicko Cadell - Gert Driesen - - - - Constructor used by subclasses. - - the ordering priority for this configurator - - - The is used to order the configurator - attributes before they are invoked. Higher priority configurators are executed - before lower priority ones. - - - - - - Configures the for the specified assembly. - - The assembly that this attribute was defined on. - The repository to configure. - - - Abstract method implemented by a subclass. When this method is called - the subclass should configure the . - - - - - - Compare this instance to another ConfiguratorAttribute - - the object to compare to - see - - - Compares the priorities of the two instances. - Sorts by priority in descending order. Objects with the same priority are - randomly ordered. - - - - - - Assembly level attribute that specifies the logging domain for the assembly. - - - - DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - Assemblies are mapped to logging domains. Each domain has its own - logging repository. This attribute specified on the assembly controls - the configuration of the domain. The property specifies the name - of the domain that this assembly is a part of. The - specifies the type of the repository objects to create for the domain. If - this attribute is not specified and a is not specified - then the assembly will be part of the default shared logging domain. - - - This attribute can only be specified on the assembly and may only be used - once per assembly. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute that specifies the logging repository for the assembly. - - - - Assemblies are mapped to logging repository. This attribute specified - on the assembly controls - the configuration of the repository. The property specifies the name - of the repository that this assembly is a part of. The - specifies the type of the object - to create for the assembly. If this attribute is not specified or a - is not specified then the assembly will be part of the default shared logging repository. - - - This attribute can only be specified on the assembly and may only be used - once per assembly. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initialize a new instance of the class - with the name of the repository. - - The name of the repository. - - - Initialize the attribute with the name for the assembly's repository. - - - - - - Gets or sets the name of the logging repository. - - - The string name to use as the name of the repository associated with this - assembly. - - - - This value does not have to be unique. Several assemblies can share the - same repository. They will share the logging configuration of the repository. - - - - - - Gets or sets the type of repository to create for this assembly. - - - The type of repository to create for this assembly. - - - - The type of the repository to create for the assembly. - The type must implement the - interface. - - - This will be the type of repository created when - the repository is created. If multiple assemblies reference the - same repository then the repository is only created once using the - of the first assembly to call into the - repository. - - - - - - Initializes a new instance of the class. - - - - Obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - - - - Initialize a new instance of the class - with the name of the domain. - - The name of the domain. - - - Obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - - - - Use this class to initialize the log4net environment using an Xml tree. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - Configures a using an Xml tree. - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - - - Automatically configures the log4net system based on the - application's configuration settings. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - 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 - log4net that contains the configuration data. - - - - - Automatically configures the using settings - stored in the application's configuration file. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - 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 - log4net that contains the configuration data. - - The repository to configure. - - - - Configures log4net using a log4net element - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - Loads the log4net configuration from the XML element - supplied as . - - The element to parse. - - - - Configures the using the specified XML - element. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - Loads the log4net configuration from the XML element - supplied as . - - The repository to configure. - The element to parse. - - - - Configures log4net using the specified configuration file. - - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures log4net using the specified configuration file. - - A stream to load the XML configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The stream to load the XML configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures log4net using the file specified, monitors the file for changes - and reloads the configuration if a change is detected. - - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the using the file specified, - monitors the file for changes and reloads the configuration if a change - is detected. - - The repository to configure. - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Assembly level attribute to configure the . - - - - AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute to configure the . - - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - If neither of the or - properties are set the configuration is loaded from the application's .config file. - If set the property takes priority over the - property. The property - specifies a path to a file to load the config from. The path is relative to the - application's base directory; . - The property is used as a postfix to the assembly file name. - The config file must be located in the application's base directory; . - For example in a console application setting the to - config has the same effect as not specifying the or - properties. - - - The property can be set to cause the - to watch the configuration file for changes. - - - - Log4net will only look for assembly level configuration attributes once. - When using the log4net assembly level attributes to control the configuration - of log4net you must ensure that the first call to any of the - methods is made from the assembly with the configuration - attributes. - - - If you cannot guarantee the order in which log4net calls will be made from - different assemblies you must use programmatic configuration instead, i.e. - call the method directly. - - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Default constructor - - - - - - Configures the for the specified assembly. - - The assembly that this attribute was defined on. - The repository to configure. - - - Configure the repository using the . - The specified must extend the - class otherwise the will not be able to - configure it. - - - The does not extend . - - - - Attempt to load configuration from the local file system - - The assembly that this attribute was defined on. - The repository to configure. - - - - Configure the specified repository using a - - The repository to configure. - the FileInfo pointing to the config file - - - - Attempt to load configuration from a URI - - The assembly that this attribute was defined on. - The repository to configure. - - - - The fully qualified type of the XmlConfiguratorAttribute class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the filename of the configuration file. - - - The filename of the configuration file. - - - - If specified, this is the name of the configuration file to use with - the . This file path is relative to the - application base directory (). - - - The takes priority over the . - - - - - - Gets or sets the extension of the configuration file. - - - The extension of the configuration file. - - - - If specified this is the extension for the configuration file. - The path to the config file is built by using the application - base directory (), - the assembly file name and the config file extension. - - - If the is set to MyExt then - possible config file names would be: MyConsoleApp.exe.MyExt or - MyClassLibrary.dll.MyExt. - - - The takes priority over the . - - - - - - Gets or sets a value indicating whether to watch the configuration file. - - - true if the configuration should be watched, false otherwise. - - - - If this flag is specified and set to true then the framework - will watch the configuration file and will reload the config each time - the file is modified. - - - The config file can only be watched if it is loaded from local disk. - In a No-Touch (Smart Client) deployment where the application is downloaded - from a web server the config file may not reside on the local disk - and therefore it may not be able to watch it. - - - Watching configuration is not supported on the SSCLI. - - - - - - Class to register for the log4net section of the configuration file - - - The log4net section of the configuration file needs to have a section - handler registered. This is the section handler used. It simply returns - the XML element that is the root of the section. - - - Example of registering the log4net section handler : - - - -
    - - - log4net configuration XML goes here - - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Parses the configuration section. - - The configuration settings in a corresponding parent configuration section. - The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. - The for the log4net section. - The for the log4net section. - - - Returns the containing the configuration data, - - - - - - Assembly level attribute that specifies a plugin to attach to - the repository. - - - - Specifies the type of a plugin to create and attach to the - assembly's repository. The plugin type must implement the - interface. - - - Nicko Cadell - Gert Driesen - - - - Interface used to create plugins. - - - - Interface used to create a plugin. - - - Nicko Cadell - Gert Driesen - - - - Creates the plugin object. - - the new plugin instance - - - Create and return a new plugin instance. - - - - - - Initializes a new instance of the class - with the specified type. - - The type name of plugin to create. - - - Create the attribute with the plugin type specified. - - - Where possible use the constructor that takes a . - - - - - - Initializes a new instance of the class - with the specified type. - - The type of plugin to create. - - - Create the attribute with the plugin type specified. - - - - - - Creates the plugin object defined by this attribute. - - - - Creates the instance of the object as - specified by this attribute. - - - The plugin object. - - - - Returns a representation of the properties of this object. - - - - Overrides base class method to - return a representation of the properties of this object. - - - A representation of the properties of this object - - - - Gets or sets the type for the plugin. - - - The type for the plugin. - - - - The type for the plugin. - - - - - - Gets or sets the type name for the plugin. - - - The type name for the plugin. - - - - The type name for the plugin. - - - Where possible use the property instead. - - - - - - Assembly level attribute to configure the . - - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - Nicko Cadell - - - - Construct provider attribute with type specified - - the type of the provider to use - - - The provider specified must subclass the - class. - - - - - - Configures the SecurityContextProvider - - The assembly that this attribute was defined on. - The repository to configure. - - - Creates a provider instance from the specified. - Sets this as the default security context provider . - - - - - - The fully qualified type of the SecurityContextProviderAttribute class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the type of the provider to use. - - - the type of the provider to use. - - - - The provider specified must subclass the - class. - - - - - - Use this class to initialize the log4net environment using an Xml tree. - - - - Configures a using an Xml tree. - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - - - Automatically configures the log4net system based on the - application's configuration settings. - - - - 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 - log4net that contains the configuration data. - - - To use this method to configure log4net you must specify - the section - handler for the log4net configuration section. See the - for an example. - - - - - - - Automatically configures the using settings - stored in the application's configuration file. - - - - 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 - log4net that contains the configuration data. - - - To use this method to configure log4net you must specify - the section - handler for the log4net configuration section. See the - for an example. - - - The repository to configure. - - - - Configures log4net using a log4net element - - - - Loads the log4net configuration from the XML element - supplied as . - - - The element to parse. - - - - Configures the using the specified XML - element. - - - Loads the log4net configuration from the XML element - supplied as . - - The repository to configure. - The element to parse. - - - - Configures log4net using the specified configuration file. - - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The first element matching <configuration> will be read as the - configuration. If this file is also a .NET .config file then you must specify - a configuration section for the log4net element otherwise .NET will - complain. Set the type for the section handler to , for example: - - -
    - - - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures log4net using the specified configuration URI. - - A URI to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The must support the URI scheme specified. - - - - - - Configures log4net using the specified configuration data stream. - - A stream to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The first element matching <configuration> will be read as the - configuration. If this file is also a .NET .config file then you must specify - a configuration section for the log4net element otherwise .NET will - complain. Set the type for the section handler to , for example: - - -
    - - - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures the using the specified configuration - URI. - - The repository to configure. - A URI to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The must support the URI scheme specified. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The stream to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures log4net using the file specified, monitors the file for changes - and reloads the configuration if a change is detected. - - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the using the file specified, - monitors the file for changes and reloads the configuration if a change - is detected. - - The repository to configure. - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the specified repository using a log4net element. - - The hierarchy to configure. - The element to parse. - - - Loads the log4net configuration from the XML element - supplied as . - - - This method is ultimately called by one of the Configure methods - to load the configuration from an . - - - - - - Maps repository names to ConfigAndWatchHandler instances to allow a particular - ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is - reconfigured. - - - - - The fully qualified type of the XmlConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Class used to watch config files. - - - - Uses the to monitor - changes to a specified file. Because multiple change notifications - may be raised when the file is modified, a timer is used to - compress the notifications into a single event. The timer - waits for time before delivering - the event notification. If any further - change notifications arrive while the timer is waiting it - is reset and waits again for to - elapse. - - - - - - The default amount of time to wait after receiving notification - before reloading the config file. - - - - - Holds the FileInfo used to configure the XmlConfigurator - - - - - Holds the repository being configured. - - - - - The timer used to compress the notification events. - - - - - Watches file for changes. This object should be disposed when no longer - needed to free system handles on the watched resources. - - - - - Initializes a new instance of the class to - watch a specified config file used to configure a repository. - - The repository to configure. - The configuration file to watch. - - - Initializes a new instance of the class. - - - - - - Event handler used by . - - The firing the event. - The argument indicates the file that caused the event to be fired. - - - This handler reloads the configuration from the file when the event is fired. - - - - - - Event handler used by . - - The firing the event. - The argument indicates the file that caused the event to be fired. - - - This handler reloads the configuration from the file when the event is fired. - - - - - - Called by the timer when the configuration has been updated. - - null - - - - Release the handles held by the watcher and timer. - - - - - The implementation of the interface suitable - for use with the compact framework - - - - This implementation is a simple - mapping between repository name and - object. - - - The .NET Compact Framework 1.0 does not support retrieving assembly - level attributes therefore unlike the DefaultRepositorySelector - this selector does not examine the calling assembly for attributes. - - - Nicko Cadell - - - - Interface used by the to select the . - - - - The uses a - to specify the policy for selecting the correct - to return to the caller. - - - Nicko Cadell - Gert Driesen - - - - Gets the for the specified assembly. - - The assembly to use to lookup to the - The for the assembly. - - - Gets the for the specified assembly. - - - How the association between and - is made is not defined. The implementation may choose any method for - this association. The results of this method must be repeatable, i.e. - when called again with the same arguments the result must be the - save value. - - - - - - Gets the named . - - The name to use to lookup to the . - The named - - Lookup a named . This is the repository created by - calling . - - - - - Creates a new repository for the assembly specified. - - The assembly to use to create the domain to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the domain - specified such that a call to with the - same assembly specified will return the same repository instance. - - - How the association between and - is made is not defined. The implementation may choose any method for - this association. - - - - - - Creates a new repository with the name specified. - - The name to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the name - specified such that a call to with the - same name will return the same repository instance. - - - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets an array of all currently defined repositories. - - - An array of the instances created by - this . - - - Gets an array of all of the repositories created by this selector. - - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - Create a new repository selector - - the type of the repositories to create, must implement - - - Create an new compact repository selector. - The default type for repositories must be specified, - an appropriate value would be . - - - throw if is null - throw if does not implement - - - - Get the for the specified assembly - - not used - The default - - - The argument is not used. This selector does not create a - separate repository for each assembly. - - - As a named repository is not specified the default repository is - returned. The default repository is named log4net-default-repository. - - - - - - Get the named - - the name of the repository to lookup - The named - - - Get the named . The default - repository is log4net-default-repository. Other repositories - must be created using the . - If the named repository does not exist an exception is thrown. - - - throw if is null - throw if the does not exist - - - - Create a new repository for the assembly specified - - not used - the type of repository to create, must implement - the repository created - - - The argument is not used. This selector does not create a - separate repository for each assembly. - - - If the is null then the - default repository type specified to the constructor is used. - - - As a named repository is not specified the default repository is - returned. The default repository is named log4net-default-repository. - - - - - - Create a new repository for the repository specified - - the repository to associate with the - the type of repository to create, must implement . - If this param is null then the default repository type is used. - the repository created - - - The created will be associated with the repository - specified such that a call to with the - same repository specified will return the same repository instance. - - - If the named repository already exists an exception will be thrown. - - - If is null then the default - repository type specified to the constructor is used. - - - throw if is null - throw if the already exists - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets a list of objects - - an array of all known objects - - - Gets an array of all of the repositories created by this selector. - - - - - - The fully qualified type of the CompactRepositorySelector class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Notify the registered listeners that the repository has been created - - The repository that has been created - - - Raises the LoggerRepositoryCreatedEvent - event. - - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - The default implementation of the interface. - - - - Uses attributes defined on the calling assembly to determine how to - configure the hierarchy for the repository. - - - Nicko Cadell - Gert Driesen - - - - Creates a new repository selector. - - The type of the repositories to create, must implement - - - Create an new repository selector. - The default type for repositories must be specified, - an appropriate value would be . - - - is . - does not implement . - - - - Gets the for the specified assembly. - - The assembly use to lookup the . - - - The type of the created and the repository - to create can be overridden by specifying the - attribute on the . - - - The default values are to use the - implementation of the interface and to use the - as the name of the repository. - - - The created will be automatically configured using - any attributes defined on - the . - - - The for the assembly - is . - - - - Gets the for the specified repository. - - The repository to use to lookup the . - The for the specified repository. - - - Returns the named repository. If is null - a is thrown. If the repository - does not exist a is thrown. - - - Use to create a repository. - - - is . - does not exist. - - - - Create a new repository for the assembly specified - - the assembly to use to create the repository to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The type of the created and - the repository to create can be overridden by specifying the - attribute on the - . The default values are to use the - implementation of the - interface and to use the - as the name of the repository. - - - The created will be automatically - configured using any - attributes defined on the . - - - If a repository for the already exists - that repository will be returned. An error will not be raised and that - repository may be of a different type to that specified in . - Also the attribute on the - assembly may be used to override the repository type specified in - . - - - is . - - - - Creates a new repository for the assembly specified. - - the assembly to use to create the repository to associate with the . - The type of repository to create, must implement . - The name to assign to the created repository - Set to true to read and apply the assembly attributes - The repository created. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The type of the created and - the repository to create can be overridden by specifying the - attribute on the - . The default values are to use the - implementation of the - interface and to use the - as the name of the repository. - - - The created will be automatically - configured using any - attributes defined on the . - - - If a repository for the already exists - that repository will be returned. An error will not be raised and that - repository may be of a different type to that specified in . - Also the attribute on the - assembly may be used to override the repository type specified in - . - - - is . - - - - Creates a new repository for the specified repository. - - The repository to associate with the . - The type of repository to create, must implement . - If this param is then the default repository type is used. - The new repository. - - - The created will be associated with the repository - specified such that a call to with the - same repository specified will return the same repository instance. - - - is . - already exists. - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets a list of objects - - an array of all known objects - - - Gets an array of all of the repositories created by this selector. - - - - - - Aliases a repository to an existing repository. - - The repository to alias. - The repository that the repository is aliased to. - - - The repository specified will be aliased to the repository when created. - The repository must not already exist. - - - When the repository is created it must utilize the same repository type as - the repository it is aliased to, otherwise the aliasing will fail. - - - - is . - -or- - is . - - - - - Notifies the registered listeners that the repository has been created. - - The repository that has been created. - - - Raises the event. - - - - - - Gets the repository name and repository type for the specified assembly. - - The assembly that has a . - in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. - in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. - is . - - - - Configures the repository using information from the assembly. - - The assembly containing - attributes which define the configuration for the repository. - The repository to configure. - - is . - -or- - is . - - - - - Loads the attribute defined plugins on the assembly. - - The assembly that contains the attributes. - The repository to add the plugins to. - - is . - -or- - is . - - - - - Loads the attribute defined aliases on the assembly. - - The assembly that contains the attributes. - The repository to alias to. - - is . - -or- - is . - - - - - The fully qualified type of the DefaultRepositorySelector class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - Defined error codes that can be passed to the method. - - - - Values passed to the method. - - - Nicko Cadell - - - - A general error - - - - - Error while writing output - - - - - Failed to flush file - - - - - Failed to close file - - - - - Unable to open output file - - - - - No layout specified - - - - - Failed to parse address - - - - - An evaluator that triggers on an Exception type - - - - This evaluator will trigger if the type of the Exception - passed to - is equal to a Type in . /// - - - Drew Schaeffer - - - - Test if an triggers an action - - - - Implementations of this interface allow certain appenders to decide - when to perform an appender specific action. - - - The action or behavior triggered is defined by the implementation. - - - Nicko Cadell - - - - Test if this event triggers the action - - The event to check - true if this event triggers the action, otherwise false - - - Return true if this event triggers the action - - - - - - The type that causes the trigger to fire. - - - - - Causes subclasses of to cause the trigger to fire. - - - - - Default ctor to allow dynamic creation through a configurator. - - - - - Constructs an evaluator and initializes to trigger on - - the type that triggers this evaluator. - If true, this evaluator will trigger on subclasses of . - - - - Is this the triggering event? - - The event to check - This method returns true, if the logging event Exception - Type is . - Otherwise it returns false - - - This evaluator will trigger if the Exception Type of the event - passed to - is . - - - - - - The type that triggers this evaluator. - - - - - If true, this evaluator will trigger on subclasses of . - - - - - Appenders may delegate their error handling to an . - - - - Error handling is a particularly tedious to get right because by - definition errors are hard to predict and to reproduce. - - - Nicko Cadell - Gert Driesen - - - - Handles the error and information about the error condition is passed as - a parameter. - - The message associated with the error. - The that was thrown when the error occurred. - The error code associated with the error. - - - Handles the error and information about the error condition is passed as - a parameter. - - - - - - Prints the error message passed as a parameter. - - The message associated with the error. - The that was thrown when the error occurred. - - - See . - - - - - - Prints the error message passed as a parameter. - - The message associated with the error. - - - See . - - - - - - Interface for objects that require fixing. - - - - Interface that indicates that the object requires fixing before it - can be taken outside the context of the appender's - method. - - - When objects that implement this interface are stored - in the context properties maps - and - are fixed - (see ) the - method will be called. - - - Nicko Cadell - - - - Get a portable version of this object - - the portable instance of this object - - - Get a portable instance object that represents the current - state of this object. The portable object can be stored - and logged from any thread with identical results. - - - - - - Interface that all loggers implement - - - - This interface supports logging events and testing if a level - is enabled for logging. - - - These methods will not throw exceptions. Note to implementor, ensure - that the implementation of these methods cannot allow an exception - to be thrown to the caller. - - - Nicko Cadell - Gert Driesen - - - - This generic form is intended to be used by wrappers. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - the exception to log, including its stack trace. Pass null to not log an exception. - - - Generates a logging event for the specified using - the and . - - - - - - This is the most generic printing method that is intended to be used - by wrappers. - - The event being logged. - - - Logs the specified logging event through this logger. - - - - - - Checks if this logger is enabled for a given passed as parameter. - - The level to check. - - true if this logger is enabled for level, otherwise false. - - - - Test if this logger is going to log events of the specified . - - - - - - Gets the name of the logger. - - - The name of the logger. - - - - The name of this logger - - - - - - Gets the where this - Logger instance is attached to. - - - The that this logger belongs to. - - - - Gets the where this - Logger instance is attached to. - - - - - - Base interface for all wrappers - - - - Base interface for all wrappers. - - - All wrappers must implement this interface. - - - Nicko Cadell - - - - Get the implementation behind this wrapper object. - - - The object that in implementing this object. - - - - The object that in implementing this - object. The Logger object may not - be the same object as this object because of logger decorators. - This gets the actual underlying objects that is used to process - the log events. - - - - - - Delegate used to handle logger repository creation event notifications - - The which created the repository. - The event args - that holds the instance that has been created. - - - Delegate used to handle logger repository creation event notifications. - - - - - - Provides data for the event. - - - - A - event is raised every time a is created. - - - - - - The created - - - - - Construct instance using specified - - the that has been created - - - Construct instance using specified - - - - - - The that has been created - - - The that has been created - - - - The that has been created - - - - - - Defines the default set of levels recognized by the system. - - - - Each has an associated . - - - Levels have a numeric that defines the relative - ordering between levels. Two Levels with the same - are deemed to be equivalent. - - - The levels that are recognized by log4net are set for each - and each repository can have different levels defined. The levels are stored - in the on the repository. Levels are - looked up by name from the . - - - When logging at level INFO the actual level used is not but - the value of LoggerRepository.LevelMap["INFO"]. The default value for this is - , but this can be changed by reconfiguring the level map. - - - Each level has a in addition to its . The - is the string that is written into the output log. By default - the display name is the same as the level name, but this can be used to alias levels - or to localize the log output. - - - Some of the predefined levels recognized by the system are: - - - - . - - - . - - - . - - - . - - - . - - - . - - - . - - - - Nicko Cadell - Gert Driesen - - - - Constructor - - Integer value for this level, higher values represent more severe levels. - The string name of this level. - The display name for this level. This may be localized or otherwise different from the name - - - Initializes a new instance of the class with - the specified level name and value. - - - - - - Constructor - - Integer value for this level, higher values represent more severe levels. - The string name of this level. - - - Initializes a new instance of the class with - the specified level name and value. - - - - - - Returns the representation of the current - . - - - A representation of the current . - - - - Returns the level . - - - - - - Compares levels. - - The object to compare against. - true if the objects are equal. - - - Compares the levels of instances, and - defers to base class if the target object is not a - instance. - - - - - - Returns a hash code - - A hash code for the current . - - - Returns a hash code suitable for use in hashing algorithms and data - structures like a hash table. - - - Returns the hash code of the level . - - - - - - Compares this instance to a specified object and returns an - indication of their relative values. - - A instance or to compare with this instance. - - A 32-bit signed integer that indicates the relative order of the - values compared. The return value has these meanings: - - - Value - Meaning - - - Less than zero - This instance is less than . - - - Zero - This instance is equal to . - - - Greater than zero - - This instance is greater than . - -or- - is . - - - - - - - must be an instance of - or ; otherwise, an exception is thrown. - - - is not a . - - - - Returns a value indicating whether a specified - is greater than another specified . - - A - A - - true if is greater than - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is less than another specified . - - A - A - - true if is less than - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is greater than or equal to another specified . - - A - A - - true if is greater than or equal to - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is less than or equal to another specified . - - A - A - - true if is less than or equal to - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether two specified - objects have the same value. - - A or . - A or . - - true if the value of is the same as the - value of ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether two specified - objects have different values. - - A or . - A or . - - true if the value of is different from - the value of ; otherwise, false. - - - - Compares two levels. - - - - - - Compares two specified instances. - - The first to compare. - The second to compare. - - A 32-bit signed integer that indicates the relative order of the - two values compared. The return value has these meanings: - - - Value - Meaning - - - Less than zero - is less than . - - - Zero - is equal to . - - - Greater than zero - is greater than . - - - - - - Compares two levels. - - - - - - The level designates a higher level than all the rest. - - - - - The level designates very severe error events. - System unusable, emergencies. - - - - - The level designates very severe error events. - System unusable, emergencies. - - - - - The level designates very severe error events - that will presumably lead the application to abort. - - - - - The level designates very severe error events. - Take immediate action, alerts. - - - - - The level designates very severe error events. - Critical condition, critical. - - - - - The level designates very severe error events. - - - - - The level designates error events that might - still allow the application to continue running. - - - - - The level designates potentially harmful - situations. - - - - - The level designates informational messages - that highlight the progress of the application at the highest level. - - - - - The level designates informational messages that - highlight the progress of the application at coarse-grained level. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates the lowest level possible. - - - - - Gets the name of this level. - - - The name of this level. - - - - Gets the name of this level. - - - - - - Gets the value of this level. - - - The value of this level. - - - - Gets the value of this level. - - - - - - Gets the display name of this level. - - - The display name of this level. - - - - Gets the display name of this level. - - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a LevelCollection instance. - - list to create a readonly wrapper arround - - A LevelCollection wrapper that is read-only. - - - - - Initializes a new instance of the LevelCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the LevelCollection class - that has the specified initial capacity. - - - The number of elements that the new LevelCollection is initially capable of storing. - - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified LevelCollection. - - The LevelCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - Copies the entire LevelCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire LevelCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the LevelCollection. - - The to be added to the end of the LevelCollection. - The index at which the value has been added. - - - - Removes all elements from the LevelCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the LevelCollection. - - The to check for. - true if is found in the LevelCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the LevelCollection. - - The to locate in the LevelCollection. - - The zero-based index of the first occurrence of - in the entire LevelCollection, if found; otherwise, -1. - - - - - Inserts an element into the LevelCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the LevelCollection. - - The to remove from the LevelCollection. - - The specified was not found in the LevelCollection. - - - - - Removes the element at the specified index of the LevelCollection. - - The zero-based index of the element to remove. - - is less than zero - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the LevelCollection. - - An for the entire LevelCollection. - - - - Adds the elements of another LevelCollection to the current LevelCollection. - - The LevelCollection whose elements should be added to the end of the current LevelCollection. - The new of the LevelCollection. - - - - Adds the elements of a array to the current LevelCollection. - - The array whose elements should be added to the end of the LevelCollection. - The new of the LevelCollection. - - - - Adds the elements of a collection to the current LevelCollection. - - The collection whose elements should be added to the end of the LevelCollection. - The new of the LevelCollection. - - - - Sets the capacity to the actual number of elements. - - - - - is less than zero - -or- - is equal to or greater than . - - - - - is less than zero - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the LevelCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - The zero-based index of the element to get or set. - - is less than zero - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false - - - - Gets or sets the number of elements the LevelCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - A value - - - - - Supports simple iteration over a . - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - An evaluator that triggers at a threshold level - - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - Nicko Cadell - - - - The threshold for triggering - - - - - Create a new evaluator using the threshold. - - - - Create a new evaluator using the threshold. - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Create a new evaluator using the specified threshold. - - the threshold to trigger at - - - Create a new evaluator using the specified threshold. - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Is this the triggering event? - - The event to check - This method returns true, if the event level - is equal or higher than the . - Otherwise it returns false - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - the threshold to trigger at - - - The that will cause this evaluator to trigger - - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Mapping between string name and Level object - - - - Mapping between string name and object. - This mapping is held separately for each . - The level name is case insensitive. - - - Nicko Cadell - - - - Mapping from level name to Level object. The - level name is case insensitive - - - - - Construct the level map - - - - Construct the level map. - - - - - - Clear the internal maps of all levels - - - - Clear the internal maps of all levels - - - - - - Create a new Level and add it to the map - - the string to display for the Level - the level value to give to the Level - - - Create a new Level and add it to the map - - - - - - - Create a new Level and add it to the map - - the string to display for the Level - the level value to give to the Level - the display name to give to the Level - - - Create a new Level and add it to the map - - - - - - Add a Level to the map - - the Level to add - - - Add a Level to the map - - - - - - Lookup a named level from the map - - the name of the level to lookup is taken from this level. - If the level is not set on the map then this level is added - the level in the map with the name specified - - - Lookup a named level from the map. The name of the level to lookup is taken - from the property of the - argument. - - - If no level with the specified name is found then the - argument is added to the level map - and returned. - - - - - - Lookup a by name - - The name of the Level to lookup - a Level from the map with the name specified - - - Returns the from the - map with the name specified. If the no level is - found then null is returned. - - - - - - Return all possible levels as a list of Level objects. - - all possible levels as a list of Level objects - - - Return all possible levels as a list of Level objects. - - - - - - The internal representation of caller location information. - - - - This class uses the System.Diagnostics.StackTrace class to generate - a call stack. The caller's information is then extracted from this stack. - - - The System.Diagnostics.StackTrace class is not supported on the - .NET Compact Framework 1.0 therefore caller location information is not - available on that framework. - - - The System.Diagnostics.StackTrace class has this to say about Release builds: - - - "StackTrace information will be most informative with Debug build configurations. - By default, Debug builds include debug symbols, while Release builds do not. The - debug symbols contain most of the file, method name, line number, and column - information used in constructing StackFrame and StackTrace objects. StackTrace - might not report as many method calls as expected, due to code transformations - that occur during optimization." - - - This means that in a Release build the caller information may be incomplete or may - not exist at all! Therefore caller location information cannot be relied upon in a Release build. - - - Nicko Cadell - Gert Driesen - - - - When location information is not available the constant - NA is returned. Current value of this string - constant is ?. - - - - - Constructor - - The declaring type of the method that is - the stack boundary into the logging system for this call. - - - Initializes a new instance of the - class based on the current thread. - - - - - - Constructor - - The fully qualified class name. - The method name. - The file name. - The line number of the method within the file. - - - Initializes a new instance of the - class with the specified data. - - - - - - The fully qualified type of the LocationInfo class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the fully qualified class name of the caller making the logging - request. - - - The fully qualified class name of the caller making the logging - request. - - - - Gets the fully qualified class name of the caller making the logging - request. - - - - - - Gets the file name of the caller. - - - The file name of the caller. - - - - Gets the file name of the caller. - - - - - - Gets the line number of the caller. - - - The line number of the caller. - - - - Gets the line number of the caller. - - - - - - Gets the method name of the caller. - - - The method name of the caller. - - - - Gets the method name of the caller. - - - - - - Gets all available caller information - - - All available caller information, in the format - fully.qualified.classname.of.caller.methodName(Filename:line) - - - - Gets all available caller information, in the format - fully.qualified.classname.of.caller.methodName(Filename:line) - - - - - - Gets the stack frames from the stack trace of the caller making the log request - - - - - Static manager that controls the creation of repositories - - - - Static manager that controls the creation of repositories - - - This class is used by the wrapper managers (e.g. ) - to provide access to the objects. - - - This manager also holds the that is used to - lookup and create repositories. The selector can be set either programmatically using - the property, or by setting the log4net.RepositorySelector - AppSetting in the applications config file to the fully qualified type name of the - selector to use. - - - Nicko Cadell - Gert Driesen - - - - Private constructor to prevent instances. Only static methods should be used. - - - - Private constructor to prevent instances. Only static methods should be used. - - - - - - Hook the shutdown event - - - - On the full .NET runtime, the static constructor hooks up the - AppDomain.ProcessExit and AppDomain.DomainUnload> events. - These are used to shutdown the log4net system as the application exits. - - - - - - Register for ProcessExit and DomainUnload events on the AppDomain - - - - This needs to be in a separate method because the events make - a LinkDemand for the ControlAppDomain SecurityPermission. Because - this is a LinkDemand it is demanded at JIT time. Therefore we cannot - catch the exception in the method itself, we have to catch it in the - caller. - - - - - - Return the default instance. - - the repository to lookup in - Return the default instance - - - Gets the for the repository specified - by the argument. - - - - - - Returns the default instance. - - The assembly to use to lookup the repository. - The default instance. - - - - Return the default instance. - - the repository to lookup in - Return the default instance - - - Gets the for the repository specified - by the argument. - - - - - - Returns the default instance. - - The assembly to use to lookup the repository. - The default instance. - - - Returns the default instance. - - - - - - Returns the named logger if it exists. - - The repository to lookup in. - The fully qualified logger name to look for. - - The logger found, or null if the named logger does not exist in the - specified repository. - - - - If the named logger exists (in the specified repository) then it - returns a reference to the logger, otherwise it returns - null. - - - - - - Returns the named logger if it exists. - - The assembly to use to lookup the repository. - The fully qualified logger name to look for. - - The logger found, or null if the named logger does not exist in the - specified assembly's repository. - - - - If the named logger exists (in the specified assembly's repository) then it - returns a reference to the logger, otherwise it returns - null. - - - - - - Returns all the currently defined loggers in the specified repository. - - The repository to lookup in. - All the defined loggers. - - - The root logger is not included in the returned array. - - - - - - Returns all the currently defined loggers in the specified assembly's repository. - - The assembly to use to lookup the repository. - All the defined loggers. - - - The root logger is not included in the returned array. - - - - - - Retrieves or creates a named logger. - - The repository to lookup in. - The name of the logger to retrieve. - The logger with the name specified. - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - - - - Retrieves or creates a named logger. - - The assembly to use to lookup the repository. - The name of the logger to retrieve. - The logger with the name specified. - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - - - - Shorthand for . - - The repository to lookup in. - The of which the fullname will be used as the name of the logger to retrieve. - The logger with the name specified. - - - Gets the logger for the fully qualified name of the type specified. - - - - - - Shorthand for . - - the assembly to use to lookup the repository - The of which the fullname will be used as the name of the logger to retrieve. - The logger with the name specified. - - - Gets the logger for the fully qualified name of the type specified. - - - - - - Shuts down the log4net system. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in all the - default repositories. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - The repository to shutdown. - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository for the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - The assembly to use to lookup the repository. - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository for the repository. The repository is looked up using - the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Resets all values contained in this repository instance to their defaults. - - The repository to reset. - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - - - - Resets all values contained in this repository instance to their defaults. - - The assembly to use to lookup the repository to reset. - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - - - - Creates a repository with the specified name. - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name. - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The name must be unique. Repositories cannot be redefined. - An Exception will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The name must be unique. Repositories cannot be redefined. - An Exception will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository for the specified assembly and repository type. - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - - - - Creates a repository for the specified assembly and repository type. - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - - - - Gets an array of all currently defined repositories. - - An array of all the known objects. - - - Gets an array of all currently defined repositories. - - - - - - Internal method to get pertinent version info. - - A string of version info. - - - - Called when the event fires - - the that is exiting - null - - - Called when the event fires. - - - When the event is triggered the log4net system is . - - - - - - Called when the event fires - - the that is exiting - null - - - Called when the event fires. - - - When the event is triggered the log4net system is . - - - - - - The fully qualified type of the LoggerManager class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Initialize the default repository selector - - - - - Gets or sets the repository selector used by the . - - - The repository selector used by the . - - - - The repository selector () is used by - the to create and select repositories - (). - - - The caller to supplies either a string name - or an assembly (if not supplied the assembly is inferred using - ). - - - This context is used by the selector to lookup a specific repository. - - - For the full .NET Framework, the default repository is DefaultRepositorySelector; - for the .NET Compact Framework CompactRepositorySelector is the default - repository. - - - - - - Implementation of the interface. - - - - This class should be used as the base for all wrapper implementations. - - - Nicko Cadell - Gert Driesen - - - - Constructs a new wrapper for the specified logger. - - The logger to wrap. - - - Constructs a new wrapper for the specified logger. - - - - - - The logger that this object is wrapping - - - - - Gets the implementation behind this wrapper object. - - - The object that this object is implementing. - - - - The Logger object may not be the same object as this object - because of logger decorators. - - - This gets the actual underlying objects that is used to process - the log events. - - - - - - Portable data structure used by - - - - Portable data structure used by - - - Nicko Cadell - - - - The logger name. - - - - The logger name. - - - - - - Level of logging event. - - - - Level of logging event. Level cannot be Serializable - because it is a flyweight. Due to its special serialization it - cannot be declared final either. - - - - - - The application supplied message. - - - - The application supplied message of logging event. - - - - - - The name of thread - - - - The name of thread in which this logging event was generated - - - - - - The time the event was logged - - - - The TimeStamp is stored in the local time zone for this computer. - - - - - - Location information for the caller. - - - - Location information for the caller. - - - - - - String representation of the user - - - - String representation of the user's windows name, - like DOMAIN\username - - - - - - String representation of the identity. - - - - String representation of the current thread's principal identity. - - - - - - The string representation of the exception - - - - The string representation of the exception - - - - - - String representation of the AppDomain. - - - - String representation of the AppDomain. - - - - - - Additional event specific properties - - - - A logger or an appender may attach additional - properties to specific events. These properties - have a string key and an object value. - - - - - - Flags passed to the property - - - - Flags passed to the property - - - Nicko Cadell - - - - Fix the MDC - - - - - Fix the NDC - - - - - Fix the rendered message - - - - - Fix the thread name - - - - - Fix the callers location information - - - CAUTION: Very slow to generate - - - - - Fix the callers windows user name - - - CAUTION: Slow to generate - - - - - Fix the domain friendly name - - - - - Fix the callers principal name - - - CAUTION: May be slow to generate - - - - - Fix the exception text - - - - - Fix the event properties. Active properties must implement in order to be eligible for fixing. - - - - - No fields fixed - - - - - All fields fixed - - - - - Partial fields fixed - - - - This set of partial fields gives good performance. The following fields are fixed: - - - - - - - - - - - - - The internal representation of logging events. - - - - When an affirmative decision is made to log then a - instance is created. This instance - is passed around to the different log4net components. - - - This class is of concern to those wishing to extend log4net. - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - for incurred by calling but it - is essential to maintaining data consistency. - - - Nicko Cadell - Gert Driesen - Douglas de la Torre - Daniel Cazzulino - - - - The key into the Properties map for the host name value. - - - - - The key into the Properties map for the thread identity value. - - - - - The key into the Properties map for the user name value. - - - - - Initializes a new instance of the class - from the supplied parameters. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - The name of the logger of this event. - The level of this event. - The message of this event. - The exception for this event. - - - Except , and , - all fields of LoggingEvent are filled when actually needed. Call - to cache all data locally - to prevent inconsistencies. - - This method is called by the log4net framework - to create a logging event. - - - - - - Initializes a new instance of the class - using specific data. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - Data used to initialize the logging event. - The fields in the struct that have already been fixed. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - The parameter should be used to specify which fields in the - struct have been preset. Fields not specified in the - will be captured from the environment if requested or fixed. - - - - - - Initializes a new instance of the class - using specific data. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - Data used to initialize the logging event. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - This constructor sets this objects flags to , - this assumes that all the data relating to this event is passed in via the - parameter and no other data should be captured from the environment. - - - - - - Initializes a new instance of the class - using specific data. - - Data used to initialize the logging event. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - This constructor sets this objects flags to , - this assumes that all the data relating to this event is passed in via the - parameter and no other data should be captured from the environment. - - - - - - Serialization constructor - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Ensure that the repository is set. - - the value for the repository - - - - Write the rendered message to a TextWriter - - the writer to write the message to - - - Unlike the property this method - does store the message data in the internal cache. Therefore - if called only once this method should be faster than the - property, however if the message is - to be accessed multiple times then the property will be more efficient. - - - - - - Serializes this object into the provided. - - The to populate with data. - The destination for this serialization. - - - The data in this event must be fixed before it can be serialized. - - - The method must be called during the - method call if this event - is to be used outside that method. - - - - - - Gets the portable data for this . - - The for this event. - - - A new can be constructed using a - instance. - - - Does a fix of the data - in the logging event before returning the event data. - - - - - - Gets the portable data for this . - - The set of data to ensure is fixed in the LoggingEventData - The for this event. - - - A new can be constructed using a - instance. - - - - - - Returns this event's exception's rendered using the - . - - - This event's exception's rendered using the . - - - - Obsolete. Use instead. - - - - - - Returns this event's exception's rendered using the - . - - - This event's exception's rendered using the . - - - - Returns this event's exception's rendered using the - . - - - - - - Fix instance fields that hold volatile data. - - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - incurred by calling but it - is essential to maintaining data consistency. - - - Calling is equivalent to - calling passing the parameter - false. - - - See for more - information. - - - - - - Fixes instance fields that hold volatile data. - - Set to true to not fix data that takes a long time to fix. - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - for incurred by calling but it - is essential to maintaining data consistency. - - - The param controls the data that - is fixed. Some of the data that can be fixed takes a long time to - generate, therefore if you do not require those settings to be fixed - they can be ignored by setting the param - to true. This setting will ignore the - and settings. - - - Set to false to ensure that all - settings are fixed. - - - - - - Fix the fields specified by the parameter - - the fields to fix - - - Only fields specified in the will be fixed. - Fields will not be fixed if they have previously been fixed. - It is not possible to 'unfix' a field. - - - - - - Lookup a composite property in this event - - the key for the property to lookup - the value for the property - - - This event has composite properties that combine together properties from - several different contexts in the following order: - - - this events properties - - This event has that can be set. These - properties are specific to this event only. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - - - Get all the composite properties in this event - - the containing all the properties - - - See for details of the composite properties - stored by the event. - - - This method returns a single containing all the - properties defined for this event. - - - - - - The internal logging event data. - - - - - The internal logging event data. - - - - - The internal logging event data. - - - - - The fully qualified Type of the calling - logger class in the stack frame (i.e. the declaring type of the method). - - - - - The application supplied message of logging event. - - - - - The exception that was thrown. - - - This is not serialized. The string representation - is serialized instead. - - - - - The repository that generated the logging event - - - This is not serialized. - - - - - The fix state for this event - - - These flags indicate which fields have been fixed. - Not serialized. - - - - - Indicated that the internal cache is updateable (ie not fixed) - - - This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler - changes in the caching strategy. - - - - - Gets the time when the current process started. - - - This is the time when this process started. - - - - The TimeStamp is stored in the local time zone for this computer. - - - Tries to get the start time for the current process. - Failing that it returns the time of the first call to - this property. - - - Note that AppDomains may be loaded and unloaded within the - same process without the process terminating and therefore - without the process start time being reset. - - - - - - Gets the of the logging event. - - - The of the logging event. - - - - Gets the of the logging event. - - - - - - Gets the time of the logging event. - - - The time of the logging event. - - - - The TimeStamp is stored in the local time zone for this computer. - - - - - - Gets the name of the logger that logged the event. - - - The name of the logger that logged the event. - - - - Gets the name of the logger that logged the event. - - - - - - Gets the location information for this logging event. - - - The location information for this logging event. - - - - The collected information is cached for future use. - - - See the class for more information on - supported frameworks and the different behavior in Debug and - Release builds. - - - - - - Gets the message object used to initialize this event. - - - The message object used to initialize this event. - - - - Gets the message object used to initialize this event. - Note that this event may not have a valid message object. - If the event is serialized the message object will not - be transferred. To get the text of the message the - property must be used - not this property. - - - If there is no defined message object for this event then - null will be returned. - - - - - - Gets the exception object used to initialize this event. - - - The exception object used to initialize this event. - - - - Gets the exception object used to initialize this event. - Note that this event may not have a valid exception object. - If the event is serialized the exception object will not - be transferred. To get the text of the exception the - method must be used - not this property. - - - If there is no defined exception object for this event then - null will be returned. - - - - - - The that this event was created in. - - - - The that this event was created in. - - - - - - Gets the message, rendered through the . - - - The message rendered through the . - - - - The collected information is cached for future use. - - - - - - Gets the name of the current thread. - - - The name of the current thread, or the thread ID when - the name is not available. - - - - The collected information is cached for future use. - - - - - - Gets the name of the current user. - - - The name of the current user, or NOT AVAILABLE when the - underlying runtime has no support for retrieving the name of the - current user. - - - - Calls WindowsIdentity.GetCurrent().Name to get the name of - the current windows user. - - - To improve performance, we could cache the string representation of - the name, and reuse that as long as the identity stayed constant. - Once the identity changed, we would need to re-assign and re-render - the string. - - - However, the WindowsIdentity.GetCurrent() call seems to - return different objects every time, so the current implementation - doesn't do this type of caching. - - - Timing for these operations: - - - - Method - Results - - - WindowsIdentity.GetCurrent() - 10000 loops, 00:00:00.2031250 seconds - - - WindowsIdentity.GetCurrent().Name - 10000 loops, 00:00:08.0468750 seconds - - - - This means we could speed things up almost 40 times by caching the - value of the WindowsIdentity.GetCurrent().Name property, since - this takes (8.04-0.20) = 7.84375 seconds. - - - - - - Gets the identity of the current thread principal. - - - The string name of the identity of the current thread principal. - - - - Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get - the name of the current thread principal. - - - - - - Gets the AppDomain friendly name. - - - The AppDomain friendly name. - - - - Gets the AppDomain friendly name. - - - - - - Additional event specific properties. - - - Additional event specific properties. - - - - A logger or an appender may attach additional - properties to specific events. These properties - have a string key and an object value. - - - This property is for events that have been added directly to - this event. The aggregate properties (which include these - event properties) can be retrieved using - and . - - - Once the properties have been fixed this property - returns the combined cached properties. This ensures that updates to - this property are always reflected in the underlying storage. When - returning the combined properties there may be more keys in the - Dictionary than expected. - - - - - - The fixed fields in this event - - - The set of fields that are fixed in this event - - - - Fields will not be fixed if they have previously been fixed. - It is not possible to 'unfix' a field. - - - - - - Implementation of wrapper interface. - - - - This implementation of the interface - forwards to the held by the base class. - - - This logger has methods to allow the caller to log at the following - levels: - - - - DEBUG - - The and methods log messages - at the DEBUG level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - INFO - - The and methods log messages - at the INFO level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - WARN - - The and methods log messages - at the WARN level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - ERROR - - The and methods log messages - at the ERROR level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - FATAL - - The and methods log messages - at the FATAL level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - - The values for these levels and their semantic meanings can be changed by - configuring the for the repository. - - - Nicko Cadell - Gert Driesen - - - - The ILog interface is use by application to log messages into - the log4net framework. - - - - Use the to obtain logger instances - that implement this interface. The - static method is used to get logger instances. - - - This class contains methods for logging at different levels and also - has properties for determining if those logging levels are - enabled in the current configuration. - - - This interface can be implemented in different ways. This documentation - specifies reasonable behavior that a caller can expect from the actual - implementation, however different implementations reserve the right to - do things differently. - - - Simple example of logging messages - - ILog log = LogManager.GetLogger("application-log"); - - log.Info("Application Start"); - log.Debug("This is a debug message"); - - if (log.IsDebugEnabled) - { - log.Debug("This is another debug message"); - } - - - - - Nicko Cadell - Gert Driesen - - - Log a message object with the level. - - Log a message object with the level. - - The message object to log. - - - This method first checks if this logger is DEBUG - enabled by comparing the level of this logger with the - level. If this logger is - DEBUG enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of - the additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Logs a message object with the level. - - - - This method first checks if this logger is INFO - enabled by comparing the level of this logger with the - level. If this logger is - INFO enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Logs a message object with the INFO level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Log a message object with the level. - - - - This method first checks if this logger is WARN - enabled by comparing the level of this logger with the - level. If this logger is - WARN enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Logs a message object with the level. - - The message object to log. - - - This method first checks if this logger is ERROR - enabled by comparing the level of this logger with the - level. If this logger is - ERROR enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Log a message object with the level. - - - - This method first checks if this logger is FATAL - enabled by comparing the level of this logger with the - level. If this logger is - FATAL enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - - This function is intended to lessen the computational cost of - disabled log debug statements. - - For some ILog interface log, when you write: - - log.Debug("This is entry number: " + i ); - - - You incur the cost constructing the message, string construction and concatenation in - this case, regardless of whether the message is logged or not. - - - If you are worried about speed (who isn't), then you should write: - - - if (log.IsDebugEnabled) - { - log.Debug("This is entry number: " + i ); - } - - - This way you will not incur the cost of parameter - construction if debugging is disabled for log. On - the other hand, if the log is debug enabled, you - will incur the cost of evaluating whether the logger is debug - enabled twice. Once in and once in - the . This is an insignificant overhead - since evaluating a logger takes about 1% of the time it - takes to actually log. This is the preferred style of logging. - - Alternatively if your logger is available statically then the is debug - enabled state can be stored in a static variable like this: - - - private static readonly bool isDebugEnabled = log.IsDebugEnabled; - - - Then when you come to log you can write: - - - if (isDebugEnabled) - { - log.Debug("This is entry number: " + i ); - } - - - This way the debug enabled state is only queried once - when the class is loaded. Using a private static readonly - variable is the most efficient because it is a run time constant - and can be heavily optimized by the JIT compiler. - - - Of course if you use a static readonly variable to - hold the enabled state of the logger then you cannot - change the enabled state at runtime to vary the logging - that is produced. You have to decide if you need absolute - speed or runtime flexibility. - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Construct a new wrapper for the specified logger. - - The logger to wrap. - - - Construct a new wrapper for the specified logger. - - - - - - Virtual method called when the configuration of the repository changes - - the repository holding the levels - - - Virtual method called when the configuration of the repository changes - - - - - - Logs a message object with the DEBUG level. - - The message object to log. - - - This method first checks if this logger is DEBUG - enabled by comparing the level of this logger with the - DEBUG level. If this logger is - DEBUG enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the DEBUG level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the DEBUG level including - the stack trace of the passed - as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the INFO level. - - The message object to log. - - - This method first checks if this logger is INFO - enabled by comparing the level of this logger with the - INFO level. If this logger is - INFO enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of - the additivity flag. - - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the INFO level. - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the INFO level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the WARN level. - - the message object to log - - - This method first checks if this logger is WARN - enabled by comparing the level of this logger with the - WARN level. If this logger is - WARN enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the WARN level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the WARN level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the ERROR level. - - The message object to log. - - - This method first checks if this logger is ERROR - enabled by comparing the level of this logger with the - ERROR level. If this logger is - ERROR enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the ERROR level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the ERROR level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the FATAL level. - - The message object to log. - - - This method first checks if this logger is FATAL - enabled by comparing the level of this logger with the - FATAL level. If this logger is - FATAL enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the FATAL level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the FATAL level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Event handler for the event - - the repository - Empty - - - - The fully qualified name of this declaring type not the type of any subclass. - - - - - Checks if this logger is enabled for the DEBUG - level. - - - true if this logger is enabled for DEBUG events, - false otherwise. - - - - This function is intended to lessen the computational cost of - disabled log debug statements. - - - For some log Logger object, when you write: - - - log.Debug("This is entry number: " + i ); - - - You incur the cost constructing the message, concatenation in - this case, regardless of whether the message is logged or not. - - - If you are worried about speed, then you should write: - - - if (log.IsDebugEnabled()) - { - log.Debug("This is entry number: " + i ); - } - - - This way you will not incur the cost of parameter - construction if debugging is disabled for log. On - the other hand, if the log is debug enabled, you - will incur the cost of evaluating whether the logger is debug - enabled twice. Once in IsDebugEnabled and once in - the Debug. This is an insignificant overhead - since evaluating a logger takes about 1% of the time it - takes to actually log. - - - - - - Checks if this logger is enabled for the INFO level. - - - true if this logger is enabled for INFO events, - false otherwise. - - - - See for more information and examples - of using this method. - - - - - - - Checks if this logger is enabled for the WARN level. - - - true if this logger is enabled for WARN events, - false otherwise. - - - - See for more information and examples - of using this method. - - - - - - - Checks if this logger is enabled for the ERROR level. - - - true if this logger is enabled for ERROR events, - false otherwise. - - - - See for more information and examples of using this method. - - - - - - - Checks if this logger is enabled for the FATAL level. - - - true if this logger is enabled for FATAL events, - false otherwise. - - - - See for more information and examples of using this method. - - - - - - - A SecurityContext used by log4net when interacting with protected resources - - - - A SecurityContext used by log4net when interacting with protected resources - for example with operating system services. This can be used to impersonate - a principal that has been granted privileges on the system resources. - - - Nicko Cadell - - - - Impersonate this SecurityContext - - State supplied by the caller - An instance that will - revoke the impersonation of this SecurityContext, or null - - - Impersonate this security context. Further calls on the current - thread should now be made in the security context provided - by this object. When the result - method is called the security - context of the thread should be reverted to the state it was in - before was called. - - - - - - The providers default instances. - - - - A configured component that interacts with potentially protected system - resources uses a to provide the elevated - privileges required. If the object has - been not been explicitly provided to the component then the component - will request one from this . - - - By default the is - an instance of which returns only - objects. This is a reasonable default - where the privileges required are not know by the system. - - - This default behavior can be overridden by subclassing the - and overriding the method to return - the desired objects. The default provider - can be replaced by programmatically setting the value of the - property. - - - An alternative is to use the log4net.Config.SecurityContextProviderAttribute - This attribute can be applied to an assembly in the same way as the - log4net.Config.XmlConfiguratorAttribute". The attribute takes - the type to use as the as an argument. - - - Nicko Cadell - - - - The default provider - - - - - Protected default constructor to allow subclassing - - - - Protected default constructor to allow subclassing - - - - - - Create a SecurityContext for a consumer - - The consumer requesting the SecurityContext - An impersonation context - - - The default implementation is to return a . - - - Subclasses should override this method to provide their own - behavior. - - - - - - Gets or sets the default SecurityContextProvider - - - The default SecurityContextProvider - - - - The default provider is used by configured components that - require a and have not had one - given to them. - - - By default this is an instance of - that returns objects. - - - The default provider can be set programmatically by setting - the value of this property to a sub class of - that has the desired behavior. - - - - - - An evaluator that triggers after specified number of seconds. - - - - This evaluator will trigger if the specified time period - has passed since last check. - - - Robert Sevcik - - - - The default time threshold for triggering in seconds. Zero means it won't trigger at all. - - - - - The time threshold for triggering in seconds. Zero means it won't trigger at all. - - - - - The time of last check. This gets updated when the object is created and when the evaluator triggers. - - - - - Create a new evaluator using the time threshold in seconds. - - - - Create a new evaluator using the time threshold in seconds. - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Create a new evaluator using the specified time threshold in seconds. - - - The time threshold in seconds to trigger after. - Zero means it won't trigger at all. - - - - Create a new evaluator using the specified time threshold in seconds. - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Is this the triggering event? - - The event to check - This method returns true, if the specified time period - has passed since last check.. - Otherwise it returns false - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - The time threshold in seconds to trigger after - - - The time threshold in seconds to trigger after. - Zero means it won't trigger at all. - - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Delegate used to handle creation of new wrappers. - - The logger to wrap in a wrapper. - - - Delegate used to handle creation of new wrappers. This delegate - is called from the - method to construct the wrapper for the specified logger. - - - The delegate to use is supplied to the - constructor. - - - - - - Maps between logger objects and wrapper objects. - - - - This class maintains a mapping between objects and - objects. Use the method to - lookup the for the specified . - - - New wrapper instances are created by the - method. The default behavior is for this method to delegate construction - of the wrapper to the delegate supplied - to the constructor. This allows specialization of the behavior without - requiring subclassing of this type. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the - - The handler to use to create the wrapper objects. - - - Initializes a new instance of the class with - the specified handler to create the wrapper objects. - - - - - - Gets the wrapper object for the specified logger. - - The wrapper object for the specified logger - - - If the logger is null then the corresponding wrapper is null. - - - Looks up the wrapper it it has previously been requested and - returns it. If the wrapper has never been requested before then - the virtual method is - called. - - - - - - Creates the wrapper object for the specified logger. - - The logger to wrap in a wrapper. - The wrapper object for the logger. - - - This implementation uses the - passed to the constructor to create the wrapper. This method - can be overridden in a subclass. - - - - - - Called when a monitored repository shutdown event is received. - - The that is shutting down - - - This method is called when a that this - is holding loggers for has signaled its shutdown - event . The default - behavior of this method is to release the references to the loggers - and their wrappers generated for this repository. - - - - - - Event handler for repository shutdown event. - - The sender of the event. - The event args. - - - - Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings - - - - - The handler to use to create the extension wrapper objects. - - - - - Internal reference to the delegate used to register for repository shutdown events. - - - - - Gets the map of logger repositories. - - - Map of logger repositories. - - - - Gets the hashtable that is keyed on . The - values are hashtables keyed on with the - value being the corresponding . - - - - - - Formats a as "HH:mm:ss,fff". - - - - Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". - - - Nicko Cadell - Gert Driesen - - - - Render a as a string. - - - - Interface to abstract the rendering of a - instance into a string. - - - The method is used to render the - date to a text writer. - - - Nicko Cadell - Gert Driesen - - - - Formats the specified date as a string. - - The date to format. - The writer to write to. - - - Format the as a string and write it - to the provided. - - - - - - String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. - - - - - String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. - - - - - String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. - - - - - Renders the date into a string. Format is "HH:mm:ss". - - The date to render into a string. - The string builder to write to. - - - Subclasses should override this method to render the date - into a string using a precision up to the second. This method - will be called at most once per second and the result will be - reused if it is needed again during the same second. - - - - - - Renders the date into a string. Format is "HH:mm:ss,fff". - - The date to render into a string. - The writer to write to. - - - Uses the method to generate the - time string up to the seconds and then appends the current - milliseconds. The results from are - cached and is called at most once - per second. - - - Sub classes should override - rather than . - - - - - - Last stored time with precision up to the second. - - - - - Last stored time with precision up to the second, formatted - as a string. - - - - - Last stored time with precision up to the second, formatted - as a string. - - - - - Formats a as "dd MMM yyyy HH:mm:ss,fff" - - - - Formats a in the format - "dd MMM yyyy HH:mm:ss,fff" for example, - "06 Nov 1994 15:49:37,459". - - - Nicko Cadell - Gert Driesen - Angelika Schnagl - - - - Default constructor. - - - - Initializes a new instance of the class. - - - - - - Formats the date without the milliseconds part - - The date to format. - The string builder to write to. - - - Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" - for example, "06 Nov 1994 15:49:37". - - - The base class will append the ",fff" milliseconds section. - This method will only be called at most once per second. - - - - - - The format info for the invariant culture. - - - - - Formats the as "yyyy-MM-dd HH:mm:ss,fff". - - - - Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Formats the date without the milliseconds part - - The date to format. - The string builder to write to. - - - Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". - - - The base class will append the ",fff" milliseconds section. - This method will only be called at most once per second. - - - - - - Formats the using the method. - - - - Formats the using the method. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The format string. - - - Initializes a new instance of the class - with the specified format string. - - - The format string must be compatible with the options - that can be supplied to . - - - - - - Formats the date using . - - The date to convert to a string. - The writer to write to. - - - Uses the date format string supplied to the constructor to call - the method to format the date. - - - - - - The format string used to format the . - - - - The format string must be compatible with the options - that can be supplied to . - - - - - - This filter drops all . - - - - You can add this filter to the end of a filter chain to - switch from the default "accept all unless instructed otherwise" - filtering behavior to a "deny all unless instructed otherwise" - behavior. - - - Nicko Cadell - Gert Driesen - - - - Subclass this type to implement customized logging event filtering - - - - Users should extend this class to implement customized logging - event filtering. Note that and - , the parent class of all standard - appenders, have built-in filtering rules. It is suggested that you - first use and understand the built-in rules before rushing to write - your own custom filters. - - - This abstract class assumes and also imposes that filters be - organized in a linear chain. The - method of each filter is called sequentially, in the order of their - addition to the chain. - - - The method must return one - of the integer constants , - or . - - - If the value is returned, then the log event is dropped - immediately without consulting with the remaining filters. - - - If the value is returned, then the next filter - in the chain is consulted. If there are no more filters in the - chain, then the log event is logged. Thus, in the presence of no - filters, the default behavior is to log all logging events. - - - If the value is returned, then the log - event is logged without consulting the remaining filters. - - - The philosophy of log4net filters is largely inspired from the - Linux ipchains. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface to provide customized logging event filtering - - - - Users should implement this interface to implement customized logging - event filtering. Note that and - , the parent class of all standard - appenders, have built-in filtering rules. It is suggested that you - first use and understand the built-in rules before rushing to write - your own custom filters. - - - This abstract class assumes and also imposes that filters be - organized in a linear chain. The - method of each filter is called sequentially, in the order of their - addition to the chain. - - - The method must return one - of the integer constants , - or . - - - If the value is returned, then the log event is dropped - immediately without consulting with the remaining filters. - - - If the value is returned, then the next filter - in the chain is consulted. If there are no more filters in the - chain, then the log event is logged. Thus, in the presence of no - filters, the default behavior is to log all logging events. - - - If the value is returned, then the log - event is logged without consulting the remaining filters. - - - The philosophy of log4net filters is largely inspired from the - Linux ipchains. - - - Nicko Cadell - Gert Driesen - - - - Decide if the logging event should be logged through an appender. - - The LoggingEvent to decide upon - The decision of the filter - - - If the decision is , then the event will be - dropped. If the decision is , then the next - filter, if any, will be invoked. If the decision is then - the event will be logged without consulting with other filters in - the chain. - - - - - - Property to get and set the next filter - - - The next filter in the chain - - - - Filters are typically composed into chains. This property allows the next filter in - the chain to be accessed. - - - - - - Points to the next filter in the filter chain. - - - - See for more information. - - - - - - Initialize the filter with the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Typically filter's options become active immediately on set, - however this method must still be called. - - - - - - Decide if the should be logged through an appender. - - The to decide upon - The decision of the filter - - - If the decision is , then the event will be - dropped. If the decision is , then the next - filter, if any, will be invoked. If the decision is then - the event will be logged without consulting with other filters in - the chain. - - - This method is marked abstract and must be implemented - in a subclass. - - - - - - Property to get and set the next filter - - - The next filter in the chain - - - - Filters are typically composed into chains. This property allows the next filter in - the chain to be accessed. - - - - - - Default constructor - - - - - Always returns the integer constant - - the LoggingEvent to filter - Always returns - - - Ignores the event being logged and just returns - . This can be used to change the default filter - chain behavior from to . This filter - should only be used as the last filter in the chain - as any further filters will be ignored! - - - - - - The return result from - - - - The return result from - - - - - - The log event must be dropped immediately without - consulting with the remaining filters, if any, in the chain. - - - - - This filter is neutral with respect to the log event. - The remaining filters, if any, should be consulted for a final decision. - - - - - The log event must be logged immediately without - consulting with the remaining filters, if any, in the chain. - - - - - This is a very simple filter based on matching. - - - - The filter admits two options and - . If there is an exact match between the value - of the option and the of the - , then the method returns in - case the option value is set - to true, if it is false then - is returned. If the does not match then - the result will be . - - - Nicko Cadell - Gert Driesen - - - - flag to indicate if the filter should on a match - - - - - the to match against - - - - - Default constructor - - - - - Tests if the of the logging event matches that of the filter - - the event to filter - see remarks - - - If the of the event matches the level of the - filter then the result of the function depends on the - value of . If it is true then - the function will return , it it is false then it - will return . If the does not match then - the result will be . - - - - - - when matching - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - The that the filter will match - - - - The level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - This is a simple filter based on matching. - - - - The filter admits three options and - that determine the range of priorities that are matched, and - . If there is a match between the range - of priorities and the of the , then the - method returns in case the - option value is set to true, if it is false - then is returned. If there is no match, is returned. - - - Nicko Cadell - Gert Driesen - - - - Flag to indicate the behavior when matching a - - - - - the minimum value to match - - - - - the maximum value to match - - - - - Default constructor - - - - - Check if the event should be logged. - - the logging event to check - see remarks - - - If the of the logging event is outside the range - matched by this filter then - is returned. If the is matched then the value of - is checked. If it is true then - is returned, otherwise - is returned. - - - - - - when matching and - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - Set the minimum matched - - - - The minimum level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - Sets the maximum matched - - - - The maximum level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - Simple filter to match a string in the event's logger name. - - - - The works very similar to the . It admits two - options and . If the - of the starts - with the value of the option, then the - method returns in - case the option value is set to true, - if it is false then is returned. - - - Daniel Cazzulino - - - - Flag to indicate the behavior when we have a match - - - - - The logger name string to substring match against the event - - - - - Default constructor - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The rendered message is matched against the . - If the equals the beginning of - the incoming () - then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - when matching - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - The that the filter will match - - - - This filter will attempt to match this value against logger name in - the following way. The match will be done against the beginning of the - logger name (using ). The match is - case sensitive. If a match is found then - the result depends on the value of . - - - - - - Simple filter to match a keyed string in the - - - - Simple filter to match a keyed string in the - - - As the MDC has been replaced with layered properties the - should be used instead. - - - Nicko Cadell - Gert Driesen - - - - Simple filter to match a string an event property - - - - Simple filter to match a string in the value for a - specific event property - - - Nicko Cadell - - - - Simple filter to match a string in the rendered message - - - - Simple filter to match a string in the rendered message - - - Nicko Cadell - Gert Driesen - - - - Flag to indicate the behavior when we have a match - - - - - The string to substring match against the message - - - - - A string regex to match - - - - - A regex object to match (generated from m_stringRegexToMatch) - - - - - Default constructor - - - - - Initialize and precompile the Regex if required - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The rendered message is matched against the . - If the occurs as a substring within - the message then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - when matching or - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - Sets the static string to match - - - - The string that will be substring matched against - the rendered message. If the message contains this - string then the filter will match. If a match is found then - the result depends on the value of . - - - One of or - must be specified. - - - - - - Sets the regular expression to match - - - - The regular expression pattern that will be matched against - the rendered message. If the message matches this - pattern then the filter will match. If a match is found then - the result depends on the value of . - - - One of or - must be specified. - - - - - - The key to use to lookup the string from the event properties - - - - - Default constructor - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The event property for the is matched against - the . - If the occurs as a substring within - the property value then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - The key to lookup in the event properties and then match against. - - - - The key name to use to lookup in the properties map of the - . The match will be performed against - the value of this property if it exists. - - - - - - Simple filter to match a string in the - - - - Simple filter to match a string in the - - - As the MDC has been replaced with named stacks stored in the - properties collections the should - be used instead. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Sets the to "NDC". - - - - - - Write the event appdomain name to the output - - - - Writes the to the output writer. - - - Daniel Cazzulino - Nicko Cadell - - - - Abstract class that provides the formatting functionality that - derived classes need. - - - Conversion specifiers in a conversion patterns are parsed to - individual PatternConverters. Each of which is responsible for - converting a logging event in a converter specific manner. - - Nicko Cadell - - - - Abstract class that provides the formatting functionality that - derived classes need. - - - - Conversion specifiers in a conversion patterns are parsed to - individual PatternConverters. Each of which is responsible for - converting a logging event in a converter specific manner. - - - Nicko Cadell - Gert Driesen - - - - Initial buffer size - - - - - Maximum buffer size before it is recycled - - - - - Protected constructor - - - - Initializes a new instance of the class. - - - - - - Evaluate this pattern converter and write the output to a writer. - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the appropriate way. - - - - - - Set the next pattern converter in the chains - - the pattern converter that should follow this converter in the chain - the next converter - - - The PatternConverter can merge with its neighbor during this method (or a sub class). - Therefore the return value may or may not be the value of the argument passed in. - - - - - - Write the pattern converter to the writer with appropriate formatting - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - This method calls to allow the subclass to perform - appropriate conversion of the pattern converter. If formatting options have - been specified via the then this method will - apply those formattings before writing the output. - - - - - - Fast space padding method. - - to which the spaces will be appended. - The number of spaces to be padded. - - - Fast space padding method. - - - - - - The option string to the converter - - - - - Write an dictionary to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the to a writer in the form: - - - {key1=value1, key2=value2, key3=value3} - - - If the specified - is not null then it is used to render the key and value to text, otherwise - the object's ToString method is called. - - - - - - Write an dictionary to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the to a writer in the form: - - - {key1=value1, key2=value2, key3=value3} - - - If the specified - is not null then it is used to render the key and value to text, otherwise - the object's ToString method is called. - - - - - - Write an object to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the Object to a writer. If the specified - is not null then it is used to render the object to text, otherwise - the object's ToString method is called. - - - - - - Get the next pattern converter in the chain - - - the next pattern converter in the chain - - - - Get the next pattern converter in the chain - - - - - - Gets or sets the formatting info for this converter - - - The formatting info for this converter - - - - Gets or sets the formatting info for this converter - - - - - - Gets or sets the option value for this converter - - - The option for this converter - - - - Gets or sets the option value for this converter - - - - - - - - - - - Initializes a new instance of the class. - - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The on which the pattern converter should be executed. - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - - Flag indicating if this converter handles exceptions - - - false if this converter handles exceptions - - - - - Flag indicating if this converter handles the logging event exception - - false if this converter handles the logging event exception - - - If this converter handles the exception object contained within - , then this property should be set to - false. Otherwise, if the layout ignores the exception - object, then the property should be set to true. - - - Set this value to override a this default setting. The default - value is true, this converter does not handle the exception. - - - - - - Write the event appdomain name to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output . - - - - - - Date pattern converter, uses a to format - the date of a . - - - - Render the to the writer as a string. - - - The value of the determines - the formatting of the date. The following values are allowed: - - - Option value - Output - - - ISO8601 - - Uses the formatter. - Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. - - - - DATE - - Uses the formatter. - Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". - - - - ABSOLUTE - - Uses the formatter. - Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". - - - - other - - Any other pattern string uses the formatter. - This formatter passes the pattern string to the - method. - For details on valid patterns see - DateTimeFormatInfo Class. - - - - - - The is in the local time zone and is rendered in that zone. - To output the time in Universal time see . - - - Nicko Cadell - - - - The used to render the date to a string - - - - The used to render the date to a string - - - - - - Initialize the converter pattern based on the property. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Convert the pattern into the rendered message - - that will receive the formatted result. - the event being logged - - - Pass the to the - for it to render it to the writer. - - - The passed is in the local time zone. - - - - - - The fully qualified type of the DatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the exception text to the output - - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - - - If there is no exception then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - Nicko Cadell - - - - Default constructor - - - - - Write the exception text to the output - - that will receive the formatted result. - the event being logged - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - - - If there is no exception or the exception property specified - by the Option value does not exist then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - Recognized values for the Option parameter are: - - - - Message - - - Source - - - StackTrace - - - TargetSite - - - HelpLink - - - - - - - Writes the caller location file name to the output - - - - Writes the value of the for - the event to the output writer. - - - Nicko Cadell - - - - Write the caller location file name to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the for - the to the output . - - - - - - Write the caller location info to the output - - - - Writes the to the output writer. - - - Nicko Cadell - - - - Write the caller location info to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output writer. - - - - - - Writes the event identity to the output - - - - Writes the value of the to - the output writer. - - - Daniel Cazzulino - Nicko Cadell - - - - Writes the event identity to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the - to - the output . - - - - - - Write the event level to the output - - - - Writes the display name of the event - to the writer. - - - Nicko Cadell - - - - Write the event level to the output - - that will receive the formatted result. - the event being logged - - - Writes the of the - to the . - - - - - - Write the caller location line number to the output - - - - Writes the value of the for - the event to the output writer. - - - Nicko Cadell - - - - Write the caller location line number to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the for - the to the output . - - - - - - Converter for logger name - - - - Outputs the of the event. - - - Nicko Cadell - - - - Converter to output and truncate '.' separated strings - - - - This abstract class supports truncating a '.' separated string - to show a specified number of elements from the right hand side. - This is used to truncate class names that are fully qualified. - - - Subclasses should override the method to - return the fully qualified string. - - - Nicko Cadell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Get the fully qualified string data - - the event being logged - the fully qualified name - - - Overridden by subclasses to get the fully qualified name before the - precision is applied to it. - - - Return the fully qualified '.' (dot/period) separated string. - - - - - - Convert the pattern to the rendered message - - that will receive the formatted result. - the event being logged - - Render the to the precision - specified by the property. - - - - - The fully qualified type of the NamedPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the fully qualified name of the logger - - the event being logged - The fully qualified logger name - - - Returns the of the . - - - - - - Writes the event message to the output - - - - Uses the method - to write out the event message. - - - Nicko Cadell - - - - Writes the event message to the output - - that will receive the formatted result. - the event being logged - - - Uses the method - to write out the event message. - - - - - - Write the method name to the output - - - - Writes the caller location to - the output. - - - Nicko Cadell - - - - Write the method name to the output - - that will receive the formatted result. - the event being logged - - - Writes the caller location to - the output. - - - - - - Converter to include event NDC - - - - Outputs the value of the event property named NDC. - - - The should be used instead. - - - Nicko Cadell - - - - Write the event NDC to the output - - that will receive the formatted result. - the event being logged - - - As the thread context stacks are now stored in named event properties - this converter simply looks up the value of the NDC property. - - - The should be used instead. - - - - - - Property pattern converter - - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - Nicko Cadell - - - - Write the property value to the output - - that will receive the formatted result. - the event being logged - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - - - - Converter to output the relative time of the event - - - - Converter to output the time of the event relative to the start of the program. - - - Nicko Cadell - - - - Write the relative time to the output - - that will receive the formatted result. - the event being logged - - - Writes out the relative time of the event in milliseconds. - That is the number of milliseconds between the event - and the . - - - - - - Helper method to get the time difference between two DateTime objects - - start time (in the current local time zone) - end time (in the current local time zone) - the time difference in milliseconds - - - - Write the caller stack frames to the output - - - - Writes the to the output writer, using format: - type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) - - - Adam Davies - - - - Write the caller stack frames to the output - - - - Writes the to the output writer, using format: - type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 - - - Michael Cromwell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the strack frames to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output writer. - - - - - - Returns the Name of the method - - - This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter - string - - - - The fully qualified type of the StackTracePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - The fully qualified type of the StackTraceDetailPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Converter to include event thread name - - - - Writes the to the output. - - - Nicko Cadell - - - - Write the ThreadName to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the . - - - - - - Pattern converter for the class name - - - - Outputs the of the event. - - - Nicko Cadell - - - - Gets the fully qualified name of the class - - the event being logged - The fully qualified type name for the caller location - - - Returns the of the . - - - - - - Converter to include event user name - - Douglas de la Torre - Nicko Cadell - - - - Convert the pattern to the rendered message - - that will receive the formatted result. - the event being logged - - - - Write the TimeStamp to the output - - - - Date pattern converter, uses a to format - the date of a . - - - Uses a to format the - in Universal time. - - - See the for details on the date pattern syntax. - - - - Nicko Cadell - - - - Write the TimeStamp to the output - - that will receive the formatted result. - the event being logged - - - Pass the to the - for it to render it to the writer. - - - The passed is in the local time zone, this is converted - to Universal time before it is rendered. - - - - - - - The fully qualified type of the UtcDatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - A Layout that renders only the Exception text from the logging event - - - - A Layout that renders only the Exception text from the logging event. - - - This Layout should only be used with appenders that utilize multiple - layouts (e.g. ). - - - Nicko Cadell - Gert Driesen - - - - Extend this abstract class to create your own log layout format. - - - - This is the base implementation of the - interface. Most layout objects should extend this class. - - - - - - Subclasses must implement the - method. - - - Subclasses should set the in their default - constructor. - - - - Nicko Cadell - Gert Driesen - - - - Interface implemented by layout objects - - - - An object is used to format a - as text. The method is called by an - appender to transform the into a string. - - - The layout can also supply and - text that is appender before any events and after all the events respectively. - - - Nicko Cadell - Gert Driesen - - - - Implement this method to create your own layout format. - - The TextWriter to write the formatted event to - The event to format - - - This method is called by an appender to format - the as text and output to a writer. - - - If the caller does not have a and prefers the - event to be formatted as a then the following - code can be used to format the event into a . - - - StringWriter writer = new StringWriter(); - Layout.Format(writer, loggingEvent); - string formattedEvent = writer.ToString(); - - - - - - The content type output by this layout. - - The content type - - - The content type output by this layout. - - - This is a MIME type e.g. "text/plain". - - - - - - The header for the layout format. - - the layout header - - - The Header text will be appended before any logging events - are formatted and appended. - - - - - - The footer for the layout format. - - the layout footer - - - The Footer text will be appended after all the logging events - have been formatted and appended. - - - - - - Flag indicating if this layout handle exceptions - - false if this layout handles exceptions - - - If this layout handles the exception object contained within - , then the layout should return - false. Otherwise, if the layout ignores the exception - object, then the layout should return true. - - - - - - The header text - - - - See for more information. - - - - - - The footer text - - - - See for more information. - - - - - - Flag indicating if this layout handles exceptions - - - - false if this layout handles exceptions - - - - - - Empty default constructor - - - - Empty default constructor - - - - - - Activate component options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - This method must be implemented by the subclass. - - - - - - Implement this method to create your own layout format. - - The TextWriter to write the formatted event to - The event to format - - - This method is called by an appender to format - the as text. - - - - - - Convenience method for easily formatting the logging event into a string variable. - - - - Creates a new StringWriter instance to store the formatted logging event. - - - - - The content type output by this layout. - - The content type is "text/plain" - - - The content type output by this layout. - - - This base class uses the value "text/plain". - To change this value a subclass must override this - property. - - - - - - The header for the layout format. - - the layout header - - - The Header text will be appended before any logging events - are formatted and appended. - - - - - - The footer for the layout format. - - the layout footer - - - The Footer text will be appended after all the logging events - have been formatted and appended. - - - - - - Flag indicating if this layout handles exceptions - - false if this layout handles exceptions - - - If this layout handles the exception object contained within - , then the layout should return - false. Otherwise, if the layout ignores the exception - object, then the layout should return true. - - - Set this value to override a this default setting. The default - value is true, this layout does not handle the exception. - - - - - - Default constructor - - - - Constructs a ExceptionLayout - - - - - - Activate component options - - - - Part of the component activation - framework. - - - This method does nothing as options become effective immediately. - - - - - - Gets the exception text from the logging event - - The TextWriter to write the formatted event to - the event being logged - - - Write the exception string to the . - The exception string is retrieved from . - - - - - - Interface for raw layout objects - - - - Interface used to format a - to an object. - - - This interface should not be confused with the - interface. This interface is used in - only certain specialized situations where a raw object is - required rather than a formatted string. The - is not generally useful than this interface. - - - Nicko Cadell - Gert Driesen - - - - Implement this method to create your own layout format. - - The event to format - returns the formatted event - - - Implement this method to create your own layout format. - - - - - - Adapts any to a - - - - Where an is required this adapter - allows a to be specified. - - - Nicko Cadell - Gert Driesen - - - - The layout to adapt - - - - - Construct a new adapter - - the layout to adapt - - - Create the adapter for the specified . - - - - - - Format the logging event as an object. - - The event to format - returns the formatted event - - - Format the logging event as an object. - - - Uses the object supplied to - the constructor to perform the formatting. - - - - - - A flexible layout configurable with pattern string. - - - - The goal of this class is to a - as a string. The results - depend on the conversion pattern. - - - The conversion pattern is closely related to the conversion - pattern of the printf function in C. A conversion pattern is - composed of literal text and format control expressions called - conversion specifiers. - - - You are free to insert any literal text within the conversion - pattern. - - - Each conversion specifier starts with a percent sign (%) and is - followed by optional format modifiers and a conversion - pattern name. The conversion pattern name specifies the type of - data, e.g. logger, level, date, thread name. The format - modifiers control such things as field width, padding, left and - right justification. The following is a simple example. - - - Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume - that the log4net environment was set to use a PatternLayout. Then the - statements - - - ILog log = LogManager.GetLogger(typeof(TestApp)); - log.Debug("Message 1"); - log.Warn("Message 2"); - - would yield the output - - DEBUG [main]: Message 1 - WARN [main]: Message 2 - - - Note that there is no explicit separator between text and - conversion specifiers. The pattern parser knows when it has reached - the end of a conversion specifier when it reads a conversion - character. In the example above the conversion specifier - %-5level means the level of the logging event should be left - justified to a width of five characters. - - - The recognized conversion pattern names are: - - - - Conversion Pattern Name - Effect - - - a - Equivalent to appdomain - - - appdomain - - Used to output the friendly name of the AppDomain where the - logging event was generated. - - - - aspnet-cache - - - Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-context - - - Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-request - - - Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-session - - - Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - c - Equivalent to logger - - - C - Equivalent to type - - - class - Equivalent to type - - - d - Equivalent to date - - - date - - - Used to output the date of the logging event in the local time zone. - To output the date in universal time use the %utcdate pattern. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %date{HH:mm:ss,fff} or - %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %date{ISO8601} or %date{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - exception - - - Used to output the exception passed in with the log message. - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - If there is no exception then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - - - F - Equivalent to file - - - file - - - Used to output the file name where the logging request was - issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - identity - - - Used to output the user name for the currently active user - (Principal.Identity.Name). - - - WARNING Generating caller information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - - - l - Equivalent to location - - - L - Equivalent to line - - - location - - - Used to output location information of the caller which generated - the logging event. - - - The location information depends on the CLI implementation but - usually consists of the fully qualified name of the calling - method followed by the callers source the file name and line - number between parentheses. - - - The location information can be very useful. However, its - generation is extremely slow. Its use should be avoided - unless execution speed is not an issue. - - - See the note below on the availability of caller location information. - - - - - level - - - Used to output the level of the logging event. - - - - - line - - - Used to output the line number from where the logging request - was issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - logger - - - Used to output the logger of the logging event. The - logger conversion specifier can be optionally followed by - precision specifier, that is a decimal constant in - brackets. - - - If a precision specifier is given, then only the corresponding - number of right most components of the logger name will be - printed. By default the logger name is printed in full. - - - For example, for the logger name "a.b.c" the pattern - %logger{2} will output "b.c". - - - - - m - Equivalent to message - - - M - Equivalent to method - - - message - - - Used to output the application supplied message associated with - the logging event. - - - - - mdc - - - The MDC (old name for the ThreadContext.Properties) is now part of the - combined event properties. This pattern is supported for compatibility - but is equivalent to property. - - - - - method - - - Used to output the method name where the logging request was - issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - n - Equivalent to newline - - - newline - - - Outputs the platform dependent line separator character or - characters. - - - This conversion pattern offers the same performance as using - non-portable line separator strings such as "\n", or "\r\n". - Thus, it is the preferred way of specifying a line separator. - - - - - ndc - - - Used to output the NDC (nested diagnostic context) associated - with the thread that generated the logging event. - - - - - p - Equivalent to level - - - P - Equivalent to property - - - properties - Equivalent to property - - - property - - - Used to output the an event specific property. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %property{user} would include the value - from the property that is keyed by the string 'user'. Each property value - that is to be included in the log must be specified separately. - Properties are added to events by loggers or appenders. By default - the log4net:HostName property is set to the name of machine on - which the event was originally logged. - - - If no key is specified, e.g. %property then all the keys and their - values are printed in a comma separated list. - - - The properties of an event are combined from a number of different - contexts. These are listed below in the order in which they are searched. - - - - the event properties - - The event has that can be set. These - properties are specific to this event only. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - - r - Equivalent to timestamp - - - stacktrace - - - Used to output the stack trace of the logging event - The stack trace level specifier may be enclosed - between braces. For example, %stacktrace{level}. - If no stack trace level specifier is given then 1 is assumed - - - Output uses the format: - type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 - - - This pattern is not available for Compact Framework assemblies. - - - - - stacktracedetail - - - Used to output the stack trace of the logging event - The stack trace level specifier may be enclosed - between braces. For example, %stacktracedetail{level}. - If no stack trace level specifier is given then 1 is assumed - - - Output uses the format: - type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) - - - This pattern is not available for Compact Framework assemblies. - - - - - t - Equivalent to thread - - - timestamp - - - Used to output the number of milliseconds elapsed since the start - of the application until the creation of the logging event. - - - - - thread - - - Used to output the name of the thread that generated the - logging event. Uses the thread number if no name is available. - - - - - type - - - Used to output the fully qualified type name of the caller - issuing the logging request. This conversion specifier - can be optionally followed by precision specifier, that - is a decimal constant in brackets. - - - If a precision specifier is given, then only the corresponding - number of right most components of the class name will be - printed. By default the class name is output in fully qualified form. - - - For example, for the class name "log4net.Layout.PatternLayout", the - pattern %type{1} will output "PatternLayout". - - - WARNING Generating the caller class information is - slow. Thus, its use should be avoided unless execution speed is - not an issue. - - - See the note below on the availability of caller location information. - - - - - u - Equivalent to identity - - - username - - - Used to output the WindowsIdentity for the currently - active user. - - - WARNING Generating caller WindowsIdentity information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - - - utcdate - - - Used to output the date of the logging event in universal time. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %utcdate{HH:mm:ss,fff} or - %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %utcdate{ISO8601} or %utcdate{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - w - Equivalent to username - - - x - Equivalent to ndc - - - X - Equivalent to mdc - - - % - - - The sequence %% outputs a single percent sign. - - - - - - The single letter patterns are deprecated in favor of the - longer more descriptive pattern names. - - - By default the relevant information is output as is. However, - with the aid of format modifiers it is possible to change the - minimum field width, the maximum field width and justification. - - - The optional format modifier is placed between the percent sign - and the conversion pattern name. - - - The first optional format modifier is the left justification - flag which is just the minus (-) character. Then comes the - optional minimum field width modifier. This is a decimal - constant that represents the minimum number of characters to - output. If the data item requires fewer characters, it is padded on - either the left or the right until the minimum width is - reached. The default is to pad on the left (right justify) but you - can specify right padding with the left justification flag. The - padding character is space. If the data item is larger than the - minimum field width, the field is expanded to accommodate the - data. The value is never truncated. - - - This behavior can be changed using the maximum field - width modifier which is designated by a period followed by a - decimal constant. If the data item is longer than the maximum - field, then the extra characters are removed from the - beginning of the data item and not from the end. For - example, it the maximum field width is eight and the data item is - ten characters long, then the first two characters of the data item - are dropped. This behavior deviates from the printf function in C - where truncation is done from the end. - - - Below are various format modifier examples for the logger - conversion specifier. - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Format modifierleft justifyminimum widthmaximum widthcomment
    %20loggerfalse20none - - Left pad with spaces if the logger name is less than 20 - characters long. - -
    %-20loggertrue20none - - Right pad with spaces if the logger - name is less than 20 characters long. - -
    %.30loggerNAnone30 - - Truncate from the beginning if the logger - name is longer than 30 characters. - -
    %20.30loggerfalse2030 - - Left pad with spaces if the logger name is shorter than 20 - characters. However, if logger name is longer than 30 characters, - then truncate from the beginning. - -
    %-20.30loggertrue2030 - - Right pad with spaces if the logger name is shorter than 20 - characters. However, if logger name is longer than 30 characters, - then truncate from the beginning. - -
    -
    - - Note about caller location information.
    - The following patterns %type %file %line %method %location %class %C %F %L %l %M - all generate caller location information. - Location information uses the System.Diagnostics.StackTrace class to generate - a call stack. The caller's information is then extracted from this stack. -
    - - - The System.Diagnostics.StackTrace class is not supported on the - .NET Compact Framework 1.0 therefore caller location information is not - available on that framework. - - - - - The System.Diagnostics.StackTrace class has this to say about Release builds: - - - "StackTrace information will be most informative with Debug build configurations. - By default, Debug builds include debug symbols, while Release builds do not. The - debug symbols contain most of the file, method name, line number, and column - information used in constructing StackFrame and StackTrace objects. StackTrace - might not report as many method calls as expected, due to code transformations - that occur during optimization." - - - This means that in a Release build the caller information may be incomplete or may - not exist at all! Therefore caller location information cannot be relied upon in a Release build. - - - - Additional pattern converters may be registered with a specific - instance using the method. - -
    - - This is a more detailed pattern. - %timestamp [%thread] %level %logger %ndc - %message%newline - - - A similar pattern except that the relative time is - right padded if less than 6 digits, thread name is right padded if - less than 15 characters and truncated if longer and the logger - name is left padded if shorter than 30 characters and truncated if - longer. - %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline - - Nicko Cadell - Gert Driesen - Douglas de la Torre - Daniel Cazzulino -
    - - - Default pattern string for log output. - - - - Default pattern string for log output. - Currently set to the string "%message%newline" - which just prints the application supplied message. - - - - - - A detailed conversion pattern - - - - A conversion pattern which includes Time, Thread, Logger, and Nested Context. - Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. - - - - - - Internal map of converter identifiers to converter types. - - - - This static map is overridden by the m_converterRegistry instance map - - - - - - the pattern - - - - - the head of the pattern converter chain - - - - - patterns defined on this PatternLayout only - - - - - Initialize the global registry - - - - Defines the builtin global rules. - - - - - - Constructs a PatternLayout using the DefaultConversionPattern - - - - The default pattern just produces the application supplied message. - - - Note to Inheritors: This constructor calls the virtual method - . If you override this method be - aware that it will be called before your is called constructor. - - - As per the contract the - method must be called after the properties on this object have been - configured. - - - - - - Constructs a PatternLayout using the supplied conversion pattern - - the pattern to use - - - Note to Inheritors: This constructor calls the virtual method - . If you override this method be - aware that it will be called before your is called constructor. - - - When using this constructor the method - need not be called. This may not be the case when using a subclass. - - - - - - Create the pattern parser instance - - the pattern to parse - The that will format the event - - - Creates the used to parse the conversion string. Sets the - global and instance rules on the . - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a formatted string as specified by the conversion pattern. - - the event being logged - The TextWriter to write the formatted event to - - - Parse the using the patter format - specified in the property. - - - - - - Add a converter to this PatternLayout - - the converter info - - - This version of the method is used by the configurator. - Programmatic users should use the alternative method. - - - - - - Add a converter to this PatternLayout - - the name of the conversion pattern for this converter - the type of the converter - - - Add a named pattern converter to this instance. This - converter will be used in the formatting of the event. - This method must be called before . - - - The specified must extend the - type. - - - - - - The pattern formatting string - - - - The ConversionPattern option. This is the string which - controls formatting and consists of a mix of literal content and - conversion specifiers. - - - - - - Type converter for the interface - - - - Used to convert objects to the interface. - Supports converting from the interface to - the interface using the . - - - Nicko Cadell - Gert Driesen - - - - Interface supported by type converters - - - - This interface supports conversion from arbitrary types - to a single target type. See . - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Test if the can be converted to the - type supported by this converter. - - - - - - Convert the source object to the type supported by this object - - the object to convert - the converted object - - - Converts the to the type supported - by this converter. - - - - - - Can the sourceType be converted to an - - the source to be to be converted - true if the source type can be converted to - - - Test if the can be converted to a - . Only is supported - as the . - - - - - - Convert the value to a object - - the value to convert - the object - - - Convert the object to a - object. If the object - is a then the - is used to adapt between the two interfaces, otherwise an - exception is thrown. - - - - - - Extract the value of a property from the - - - - Extract the value of a property from the - - - Nicko Cadell - - - - Constructs a RawPropertyLayout - - - - - Lookup the property for - - The event to format - returns property value - - - Looks up and returns the object value of the property - named . If there is no property defined - with than name then null will be returned. - - - - - - The name of the value to lookup in the LoggingEvent Properties collection. - - - Value to lookup in the LoggingEvent Properties collection - - - - String name of the property to lookup in the . - - - - - - Extract the date from the - - - - Extract the date from the - - - Nicko Cadell - Gert Driesen - - - - Constructs a RawTimeStampLayout - - - - - Gets the as a . - - The event to format - returns the time stamp - - - Gets the as a . - - - The time stamp is in local time. To format the time stamp - in universal time use . - - - - - - Extract the date from the - - - - Extract the date from the - - - Nicko Cadell - Gert Driesen - - - - Constructs a RawUtcTimeStampLayout - - - - - Gets the as a . - - The event to format - returns the time stamp - - - Gets the as a . - - - The time stamp is in universal time. To format the time stamp - in local time use . - - - - - - A very simple layout - - - - SimpleLayout consists of the level of the log statement, - followed by " - " and then the log message itself. For example, - - DEBUG - Hello world - - - - Nicko Cadell - Gert Driesen - - - - Constructs a SimpleLayout - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a simple formatted output. - - the event being logged - The TextWriter to write the formatted event to - - - Formats the event as the level of the even, - followed by " - " and then the log message itself. The - output is terminated by a newline. - - - - - - Layout that formats the log events as XML elements. - - - - The output of the consists of a series of - log4net:event elements. It does not output a complete well-formed XML - file. The output is designed to be included as an external entity - in a separate file to form a correct XML file. - - - For example, if abc is the name of the file where - the output goes, then a well-formed XML file would - be: - - - <?xml version="1.0" ?> - - <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> - - <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> - &data; - </log4net:events> - - - This approach enforces the independence of the - and the appender where it is embedded. - - - The version attribute helps components to correctly - interpret output generated by . The value of - this attribute should be "1.2" for release 1.2 and later. - - - Alternatively the Header and Footer properties can be - configured to output the correct XML header, open tag and close tag. - When setting the Header and Footer properties it is essential - that the underlying data store not be appendable otherwise the data - will become invalid XML. - - - Nicko Cadell - Gert Driesen - - - - Layout that formats the log events as XML elements. - - - - This is an abstract class that must be subclassed by an implementation - to conform to a specific schema. - - - Deriving classes must implement the method. - - - Nicko Cadell - Gert Driesen - - - - Protected constructor to support subclasses - - - - Initializes a new instance of the class - with no location info. - - - - - - Protected constructor to support subclasses - - - - The parameter determines whether - location information will be output by the layout. If - is set to true, then the - file name and line number of the statement at the origin of the log - statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a formatted string. - - The event being logged. - The TextWriter to write the formatted event to - - - Format the and write it to the . - - - This method creates an that writes to the - . The is passed - to the method. Subclasses should override the - method rather than this method. - - - - - - Does the actual writing of the XML. - - The writer to use to output the event to. - The event to write. - - - Subclasses should override this method to format - the as XML. - - - - - - Flag to indicate if location information should be included in - the XML events. - - - - - The string to replace invalid chars with - - - - - Gets a value indicating whether to include location information in - the XML events. - - - true if location information should be included in the XML - events; otherwise, false. - - - - If is set to true, then the file - name and line number of the statement at the origin of the log - statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - The string to replace characters that can not be expressed in XML with. - - - Not all characters may be expressed in XML. This property contains the - string to replace those that can not with. This defaults to a ?. Set it - to the empty string to simply remove offending characters. For more - details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets - Character replacement will occur in the log message, the property names - and the property values. - - - - - - - Gets the content type output by this layout. - - - As this is the XML layout, the value is always "text/xml". - - - - As this is the XML layout, the value is always "text/xml". - - - - - - Constructs an XmlLayout - - - - - Constructs an XmlLayout. - - - - The LocationInfo option takes a boolean value. By - default, it is set to false which means there will be no location - information output by this layout. If the the option is set to - true, then the file name and line number of the statement - at the origin of the log statement will be output. - - - If you are embedding this layout within an SmtpAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Builds a cache of the element names - - - - - - Does the actual writing of the XML. - - The writer to use to output the event to. - The event to write. - - - Override the base class method - to write the to the . - - - - - - The prefix to use for all generated element names - - - - - The prefix to use for all element names - - - - The default prefix is log4net. Set this property - to change the prefix. If the prefix is set to an empty string - then no prefix will be written. - - - - - - Set whether or not to base64 encode the message. - - - - By default the log message will be written as text to the xml - output. This can cause problems when the message contains binary - data. By setting this to true the contents of the message will be - base64 encoded. If this is set then invalid character replacement - (see ) will not be performed - on the log message. - - - - - - Set whether or not to base64 encode the property values. - - - - By default the properties will be written as text to the xml - output. This can cause problems when one or more properties contain - binary data. By setting this to true the values of the properties - will be base64 encoded. If this is set then invalid character replacement - (see ) will not be performed - on the property values. - - - - - - Layout that formats the log events as XML elements compatible with the log4j schema - - - - Formats the log events according to the http://logging.apache.org/log4j schema. - - - Nicko Cadell - - - - The 1st of January 1970 in UTC - - - - - Constructs an XMLLayoutSchemaLog4j - - - - - Constructs an XMLLayoutSchemaLog4j. - - - - The LocationInfo option takes a boolean value. By - default, it is set to false which means there will be no location - information output by this layout. If the the option is set to - true, then the file name and line number of the statement - at the origin of the log statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Actually do the writing of the xml - - the writer to use - the event to write - - - Generate XML that is compatible with the log4j schema. - - - - - - The version of the log4j schema to use. - - - - Only version 1.2 of the log4j schema is supported. - - - - - - The default object Renderer. - - - - The default renderer supports rendering objects and collections to strings. - - - See the method for details of the output. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface in order to render objects as strings - - - - Certain types require special case conversion to - string form. This conversion is done by an object renderer. - Object renderers implement the - interface. - - - Nicko Cadell - Gert Driesen - - - - Render the object to a string - - The map used to lookup renderers - The object to render - The writer to render to - - - Render the object to a - string. - - - The parameter is - provided to lookup and render other objects. This is - very useful where contains - nested objects of unknown type. The - method can be used to render these objects. - - - - - - Default constructor - - - - Default constructor - - - - - - Render the object to a string - - The map used to lookup renderers - The object to render - The writer to render to - - - Render the object to a string. - - - The parameter is - provided to lookup and render other objects. This is - very useful where contains - nested objects of unknown type. The - method can be used to render these objects. - - - The default renderer supports rendering objects to strings as follows: - - - - Value - Rendered String - - - null - - "(null)" - - - - - - - For a one dimensional array this is the - array type name, an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. - - - For example: int[] {1, 2, 3}. - - - If the array is not one dimensional the - Array.ToString() is returned. - - - - - , & - - - Rendered as an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. - - - For example: {a, b, c}. - - - All collection classes that implement its subclasses, - or generic equivalents all implement the interface. - - - - - - - - Rendered as the key, an equals sign ('='), and the value (using the appropriate - renderer). - - - For example: key=value. - - - - - other - - Object.ToString() - - - - - - - - Render the array argument into a string - - The map used to lookup renderers - the array to render - The writer to render to - - - For a one dimensional array this is the - array type name, an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. For example: - int[] {1, 2, 3}. - - - If the array is not one dimensional the - Array.ToString() is returned. - - - - - - Render the enumerator argument into a string - - The map used to lookup renderers - the enumerator to render - The writer to render to - - - Rendered as an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. For example: - {a, b, c}. - - - - - - Render the DictionaryEntry argument into a string - - The map used to lookup renderers - the DictionaryEntry to render - The writer to render to - - - Render the key, an equals sign ('='), and the value (using the appropriate - renderer). For example: key=value. - - - - - - Map class objects to an . - - - - Maintains a mapping between types that require special - rendering and the that - is used to render them. - - - The method is used to render an - object using the appropriate renderers defined in this map. - - - Nicko Cadell - Gert Driesen - - - - Default Constructor - - - - Default constructor. - - - - - - Render using the appropriate renderer. - - the object to render to a string - the object rendered as a string - - - This is a convenience method used to render an object to a string. - The alternative method - should be used when streaming output to a . - - - - - - Render using the appropriate renderer. - - the object to render to a string - The writer to render to - - - Find the appropriate renderer for the type of the - parameter. This is accomplished by calling the - method. Once a renderer is found, it is - applied on the object and the result is returned - as a . - - - - - - Gets the renderer for the specified object type - - the object to lookup the renderer for - the renderer for - - - Gets the renderer for the specified object type. - - - Syntactic sugar method that calls - with the type of the object parameter. - - - - - - Gets the renderer for the specified type - - the type to lookup the renderer for - the renderer for the specified type - - - Returns the renderer for the specified type. - If no specific renderer has been defined the - will be returned. - - - - - - Internal function to recursively search interfaces - - the type to lookup the renderer for - the renderer for the specified type - - - - Clear the map of renderers - - - - Clear the custom renderers defined by using - . The - cannot be removed. - - - - - - Register an for . - - the type that will be rendered by - the renderer for - - - Register an object renderer for a specific source type. - This renderer will be returned from a call to - specifying the same as an argument. - - - - - - Get the default renderer instance - - the default renderer - - - Get the default renderer - - - - - - Interface implemented by logger repository plugins. - - - - Plugins define additional behavior that can be associated - with a . - The held by the - property is used to store the plugins for a repository. - - - The log4net.Config.PluginAttribute can be used to - attach plugins to repositories created using configuration - attributes. - - - Nicko Cadell - Gert Driesen - - - - Attaches the plugin to the specified . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - This method is called to notify the plugin that - it should stop operating and should detach from - the repository. - - - - - - Gets the name of the plugin. - - - The name of the plugin. - - - - Plugins are stored in the - keyed by name. Each plugin instance attached to a - repository must be a unique name. - - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a PluginCollection instance. - - list to create a readonly wrapper arround - - A PluginCollection wrapper that is read-only. - - - - - Initializes a new instance of the PluginCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the PluginCollection class - that has the specified initial capacity. - - - The number of elements that the new PluginCollection is initially capable of storing. - - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified PluginCollection. - - The PluginCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - - Copies the entire PluginCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire PluginCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the PluginCollection. - - The to be added to the end of the PluginCollection. - The index at which the value has been added. - - - - Removes all elements from the PluginCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the PluginCollection. - - The to check for. - true if is found in the PluginCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the PluginCollection. - - The to locate in the PluginCollection. - - The zero-based index of the first occurrence of - in the entire PluginCollection, if found; otherwise, -1. - - - - - Inserts an element into the PluginCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the PluginCollection. - - The to remove from the PluginCollection. - - The specified was not found in the PluginCollection. - - - - - Removes the element at the specified index of the PluginCollection. - - The zero-based index of the element to remove. - - is less than zero. - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the PluginCollection. - - An for the entire PluginCollection. - - - - Adds the elements of another PluginCollection to the current PluginCollection. - - The PluginCollection whose elements should be added to the end of the current PluginCollection. - The new of the PluginCollection. - - - - Adds the elements of a array to the current PluginCollection. - - The array whose elements should be added to the end of the PluginCollection. - The new of the PluginCollection. - - - - Adds the elements of a collection to the current PluginCollection. - - The collection whose elements should be added to the end of the PluginCollection. - The new of the PluginCollection. - - - - Sets the capacity to the actual number of elements. - - - - - is less than zero. - -or- - is equal to or greater than . - - - - - is less than zero. - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the PluginCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - An object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - - The at the specified index. - - The zero-based index of the element to get or set. - - is less than zero. - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false. - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false. - - - - Gets or sets the number of elements the PluginCollection can contain. - - - The number of elements the PluginCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - - A value - - - - - Supports simple iteration over a . - - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - The current element in the collection. - - - - - - - - Map of repository plugins. - - - - This class is a name keyed map of the plugins that are - attached to a repository. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The repository that the plugins should be attached to. - - - Initialize a new instance of the class with a - repository that the plugins should be attached to. - - - - - - Adds a to the map. - - The to add to the map. - - - The will be attached to the repository when added. - - - If there already exists a plugin with the same name - attached to the repository then the old plugin will - be and replaced with - the new plugin. - - - - - - Removes a from the map. - - The to remove from the map. - - - Remove a specific plugin from this map. - - - - - - Gets a by name. - - The name of the to lookup. - - The from the map with the name specified, or - null if no plugin is found. - - - - Lookup a plugin by name. If the plugin is not found null - will be returned. - - - - - - Gets all possible plugins as a list of objects. - - All possible plugins as a list of objects. - - - Get a collection of all the plugins defined in this map. - - - - - - Base implementation of - - - - Default abstract implementation of the - interface. This base class can be used by implementors - of the interface. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - the name of the plugin - - Initializes a new Plugin with the specified name. - - - - - Attaches this plugin to a . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - This method is called to notify the plugin that - it should stop operating and should detach from - the repository. - - - - - - The name of this plugin. - - - - - The repository this plugin is attached to. - - - - - Gets or sets the name of the plugin. - - - The name of the plugin. - - - - Plugins are stored in the - keyed by name. Each plugin instance attached to a - repository must be a unique name. - - - The name of the plugin must not change one the - plugin has been attached to a repository. - - - - - - The repository for this plugin - - - The that this plugin is attached to. - - - - Gets or sets the that this plugin is - attached to. - - - - - - Plugin that listens for events from the - - - - This plugin publishes an instance of - on a specified . This listens for logging events delivered from - a remote . - - - When an event is received it is relogged within the attached repository - as if it had been raised locally. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Initializes a new instance of the class. - - - The property must be set. - - - - - - Construct with sink Uri. - - The name to publish the sink under in the remoting infrastructure. - See for more details. - - - Initializes a new instance of the class - with specified name. - - - - - - Attaches this plugin to a . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - When the plugin is shutdown the remote logging - sink is disconnected. - - - - - - The fully qualified type of the RemoteLoggingServerPlugin class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the URI of this sink. - - - The URI of this sink. - - - - This is the name under which the object is marshaled. - - - - - - - Delivers objects to a remote sink. - - - - Internal class used to listen for logging events - and deliver them to the local repository. - - - - - - Constructor - - The repository to log to. - - - Initializes a new instance of the for the - specified . - - - - - - Logs the events to the repository. - - The events to log. - - - The events passed are logged to the - - - - - - Obtains a lifetime service object to control the lifetime - policy for this instance. - - null to indicate that this instance should live forever. - - - Obtains a lifetime service object to control the lifetime - policy for this instance. This object should live forever - therefore this implementation returns null. - - - - - - The underlying that events should - be logged to. - - - - - Default implementation of - - - - This default implementation of the - interface is used to create the default subclass - of the object. - - - Nicko Cadell - Gert Driesen - - - - Interface abstracts creation of instances - - - - This interface is used by the to - create new objects. - - - The method is called - to create a named . - - - Implement this interface to create new subclasses of . - - - Nicko Cadell - Gert Driesen - - - - Create a new instance - - The that will own the . - The name of the . - The instance for the specified name. - - - Create a new instance with the - specified name. - - - Called by the to create - new named instances. - - - If the is null then the root logger - must be returned. - - - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Create a new instance - - The that will own the . - The name of the . - The instance for the specified name. - - - Create a new instance with the - specified name. - - - Called by the to create - new named instances. - - - If the is null then the root logger - must be returned. - - - - - - Default internal subclass of - - - - This subclass has no additional behavior over the - class but does allow instances - to be created. - - - - - - Implementation of used by - - - - Internal class used to provide implementation of - interface. Applications should use to get - logger instances. - - - This is one of the central classes in the log4net implementation. One of the - distinctive features of log4net are hierarchical loggers and their - evaluation. The organizes the - instances into a rooted tree hierarchy. - - - The class is abstract. Only concrete subclasses of - can be created. The - is used to create instances of this type for the . - - - Nicko Cadell - Gert Driesen - Aspi Havewala - Douglas de la Torre - - - - This constructor created a new instance and - sets its name. - - The name of the . - - - This constructor is protected and designed to be used by - a subclass that is not abstract. - - - Loggers are constructed by - objects. See for the default - logger creator. - - - - - - Add to the list of appenders of this - Logger instance. - - An appender to add to this logger - - - Add to the list of appenders of this - Logger instance. - - - If is already in the list of - appenders, then it won't be added again. - - - - - - Look for the appender named as name - - The name of the appender to lookup - The appender with the name specified, or null. - - - Returns the named appender, or null if the appender is not found. - - - - - - Remove all previously added appenders from this Logger instance. - - - - Remove all previously added appenders from this Logger instance. - - - This is useful when re-reading configuration information. - - - - - - Remove the appender passed as parameter form the list of appenders. - - The appender to remove - The appender removed from the list - - - Remove the appender passed as parameter form the list of appenders. - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Remove the appender passed as parameter form the list of appenders. - - The name of the appender to remove - The appender removed from the list - - - Remove the named appender passed as parameter form the list of appenders. - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - This generic form is intended to be used by wrappers. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generate a logging event for the specified using - the and . - - - This method must not throw any exception to the caller. - - - - - - This is the most generic printing method that is intended to be used - by wrappers. - - The event being logged. - - - Logs the specified logging event through this logger. - - - This method must not throw any exception to the caller. - - - - - - Checks if this logger is enabled for a given passed as parameter. - - The level to check. - - true if this logger is enabled for level, otherwise false. - - - - Test if this logger is going to log events of the specified . - - - This method must not throw any exception to the caller. - - - - - - Deliver the to the attached appenders. - - The event to log. - - - Call the appenders in the hierarchy starting at - this. If no appenders could be found, emit a - warning. - - - This method calls all the appenders inherited from the - hierarchy circumventing any evaluation of whether to log or not - to log the particular log request. - - - - - - Closes all attached appenders implementing the interface. - - - - Used to ensure that the appenders are correctly shutdown. - - - - - - This is the most generic printing method. This generic form is intended to be used by wrappers - - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generate a logging event for the specified using - the . - - - - - - Creates a new logging event and logs the event without further checks. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generates a logging event and delivers it to the attached - appenders. - - - - - - Creates a new logging event and logs the event without further checks. - - The event being logged. - - - Delivers the logging event to the attached appenders. - - - - - - The fully qualified type of the Logger class. - - - - - The name of this logger. - - - - - The assigned level of this logger. - - - - The level variable need not be - assigned a value in which case it is inherited - form the hierarchy. - - - - - - The parent of this logger. - - - - The parent of this logger. - All loggers have at least one ancestor which is the root logger. - - - - - - Loggers need to know what Hierarchy they are in. - - - - Loggers need to know what Hierarchy they are in. - The hierarchy that this logger is a member of is stored - here. - - - - - - Helper implementation of the interface - - - - - Flag indicating if child loggers inherit their parents appenders - - - - Additivity is set to true by default, that is children inherit - the appenders of their ancestors by default. If this variable is - set to false then the appenders found in the - ancestors of this logger are not used. However, the children - of this logger will inherit its appenders, unless the children - have their additivity flag set to false too. See - the user manual for more details. - - - - - - Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl - - - - - Gets or sets the parent logger in the hierarchy. - - - The parent logger in the hierarchy. - - - - Part of the Composite pattern that makes the hierarchy. - The hierarchy is parent linked rather than child linked. - - - - - - Gets or sets a value indicating if child loggers inherit their parent's appenders. - - - true if child loggers inherit their parent's appenders. - - - - Additivity is set to true by default, that is children inherit - the appenders of their ancestors by default. If this variable is - set to false then the appenders found in the - ancestors of this logger are not used. However, the children - of this logger will inherit its appenders, unless the children - have their additivity flag set to false too. See - the user manual for more details. - - - - - - Gets the effective level for this logger. - - The nearest level in the logger hierarchy. - - - Starting from this logger, searches the logger hierarchy for a - non-null level and returns it. Otherwise, returns the level of the - root logger. - - The Logger class is designed so that this method executes as - quickly as possible. - - - - - Gets or sets the where this - Logger instance is attached to. - - The hierarchy that this logger belongs to. - - - This logger must be attached to a single . - - - - - - Gets or sets the assigned , if any, for this Logger. - - - The of this logger. - - - - The assigned can be null. - - - - - - Get the appenders contained in this logger as an - . - - A collection of the appenders in this logger - - - Get the appenders contained in this logger as an - . If no appenders - can be found, then a is returned. - - - - - - Gets the logger name. - - - The name of the logger. - - - - The name of this logger - - - - - - Gets the where this - Logger instance is attached to. - - - The that this logger belongs to. - - - - Gets the where this - Logger instance is attached to. - - - - - - Construct a new Logger - - the name of the logger - - - Initializes a new instance of the class - with the specified name. - - - - - - Delegate used to handle logger creation event notifications. - - The in which the has been created. - The event args that hold the instance that has been created. - - - Delegate used to handle logger creation event notifications. - - - - - - Provides data for the event. - - - - A event is raised every time a - is created. - - - - - - The created - - - - - Constructor - - The that has been created. - - - Initializes a new instance of the event argument - class,with the specified . - - - - - - Gets the that has been created. - - - The that has been created. - - - - The that has been created. - - - - - - Hierarchical organization of loggers - - - - The casual user should not have to deal with this class - directly. - - - This class is specialized in retrieving loggers by name and - also maintaining the logger hierarchy. Implements the - interface. - - - The structure of the logger hierarchy is maintained by the - method. The hierarchy is such that children - link to their parent but parents do not have any references to their - children. Moreover, loggers can be instantiated in any order, in - particular descendant before ancestor. - - - In case a descendant is created before a particular ancestor, - then it creates a provision node for the ancestor and adds itself - to the provision node. Other descendants of the same ancestor add - themselves to the previously created provision node. - - - Nicko Cadell - Gert Driesen - - - - Base implementation of - - - - Default abstract implementation of the interface. - - - Skeleton implementation of the interface. - All types can extend this type. - - - Nicko Cadell - Gert Driesen - - - - Interface implemented by logger repositories. - - - - This interface is implemented by logger repositories. e.g. - . - - - This interface is used by the - to obtain interfaces. - - - Nicko Cadell - Gert Driesen - - - - Check if the named logger exists in the repository. If so return - its reference, otherwise returns null. - - The name of the logger to lookup - The Logger object with the name specified - - - If the names logger exists it is returned, otherwise - null is returned. - - - - - - Returns all the currently defined loggers as an Array. - - All the defined loggers - - - Returns all the currently defined loggers as an Array. - - - - - - Returns a named logger instance - - The name of the logger to retrieve - The logger object with the name specified - - - Returns a named logger instance. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - - - Shutdown the repository - - - Shutting down a repository will safely close and remove - all appenders in all loggers including the root logger. - - - Some appenders need to be closed before the - application exists. Otherwise, pending logging events might be - lost. - - - The method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Reset the repositories configuration to a default state - - - - Reset all values contained in this instance to their - default state. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the through this repository. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are configured as an Array. - - All the Appenders - - - Returns all the Appenders that are configured as an Array. - - - - - - The name of the repository - - - The name of the repository - - - - The name of the repository. - - - - - - RendererMap accesses the object renderer map for this repository. - - - RendererMap accesses the object renderer map for this repository. - - - - RendererMap accesses the object renderer map for this repository. - - - The RendererMap holds a mapping between types and - objects. - - - - - - The plugin map for this repository. - - - The plugin map for this repository. - - - - The plugin map holds the instances - that have been attached to this repository. - - - - - - Get the level map for the Repository. - - - - Get the level map for the Repository. - - - The level map defines the mappings between - level names and objects in - this repository. - - - - - - The threshold for all events in this repository - - - The threshold for all events in this repository - - - - The threshold for all events in this repository. - - - - - - Flag indicates if this repository has been configured. - - - Flag indicates if this repository has been configured. - - - - Flag indicates if this repository has been configured. - - - - - - Collection of internal messages captured during the most - recent configuration process. - - - - - Event to notify that the repository has been shutdown. - - - Event to notify that the repository has been shutdown. - - - - Event raised when the repository has been shutdown. - - - - - - Event to notify that the repository has had its configuration reset. - - - Event to notify that the repository has had its configuration reset. - - - - Event raised when the repository's configuration has been - reset to default. - - - - - - Event to notify that the repository has had its configuration changed. - - - Event to notify that the repository has had its configuration changed. - - - - Event raised when the repository's configuration has been changed. - - - - - - Repository specific properties - - - Repository specific properties - - - - These properties can be specified on a repository specific basis. - - - - - - Default Constructor - - - - Initializes the repository with default (empty) properties. - - - - - - Construct the repository using specific properties - - the properties to set for this repository - - - Initializes the repository with specified properties. - - - - - - Test if logger exists - - The name of the logger to lookup - The Logger object with the name specified - - - Check if the named logger exists in the repository. If so return - its reference, otherwise returns null. - - - - - - Returns all the currently defined loggers in the repository - - All the defined loggers - - - Returns all the currently defined loggers in the repository as an Array. - - - - - - Return a new logger instance - - The name of the logger to retrieve - The logger object with the name specified - - - Return a new logger instance. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - - - - Shutdown the repository - - - - Shutdown the repository. Can be overridden in a subclass. - This base class implementation notifies the - listeners and all attached plugins of the shutdown event. - - - - - - Reset the repositories configuration to a default state - - - - Reset all values contained in this instance to their - default state. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the logEvent through this repository. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are configured as an Array. - - All the Appenders - - - Returns all the Appenders that are configured as an Array. - - - - - - The fully qualified type of the LoggerRepositorySkeleton class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Adds an object renderer for a specific class. - - The type that will be rendered by the renderer supplied. - The object renderer used to render the object. - - - Adds an object renderer for a specific class. - - - - - - Notify the registered listeners that the repository is shutting down - - Empty EventArgs - - - Notify any listeners that this repository is shutting down. - - - - - - Notify the registered listeners that the repository has had its configuration reset - - Empty EventArgs - - - Notify any listeners that this repository's configuration has been reset. - - - - - - Notify the registered listeners that the repository has had its configuration changed - - Empty EventArgs - - - Notify any listeners that this repository's configuration has changed. - - - - - - Raise a configuration changed event on this repository - - EventArgs.Empty - - - Applications that programmatically change the configuration of the repository should - raise this event notification to notify listeners. - - - - - - The name of the repository - - - The string name of the repository - - - - The name of this repository. The name is - used to store and lookup the repositories - stored by the . - - - - - - The threshold for all events in this repository - - - The threshold for all events in this repository - - - - The threshold for all events in this repository - - - - - - RendererMap accesses the object renderer map for this repository. - - - RendererMap accesses the object renderer map for this repository. - - - - RendererMap accesses the object renderer map for this repository. - - - The RendererMap holds a mapping between types and - objects. - - - - - - The plugin map for this repository. - - - The plugin map for this repository. - - - - The plugin map holds the instances - that have been attached to this repository. - - - - - - Get the level map for the Repository. - - - - Get the level map for the Repository. - - - The level map defines the mappings between - level names and objects in - this repository. - - - - - - Flag indicates if this repository has been configured. - - - Flag indicates if this repository has been configured. - - - - Flag indicates if this repository has been configured. - - - - - - Contains a list of internal messages captures during the - last configuration. - - - - - Event to notify that the repository has been shutdown. - - - Event to notify that the repository has been shutdown. - - - - Event raised when the repository has been shutdown. - - - - - - Event to notify that the repository has had its configuration reset. - - - Event to notify that the repository has had its configuration reset. - - - - Event raised when the repository's configuration has been - reset to default. - - - - - - Event to notify that the repository has had its configuration changed. - - - Event to notify that the repository has had its configuration changed. - - - - Event raised when the repository's configuration has been changed. - - - - - - Repository specific properties - - - Repository specific properties - - - These properties can be specified on a repository specific basis - - - - - Basic Configurator interface for repositories - - - - Interface used by basic configurator to configure a - with a default . - - - A should implement this interface to support - configuration by the . - - - Nicko Cadell - Gert Driesen - - - - Initialize the repository using the specified appender - - the appender to use to log all logging events - - - Configure the repository to route all logging events to the - specified appender. - - - - - - Initialize the repository using the specified appenders - - the appenders to use to log all logging events - - - Configure the repository to route all logging events to the - specified appenders. - - - - - - Configure repository using XML - - - - Interface used by Xml configurator to configure a . - - - A should implement this interface to support - configuration by the . - - - Nicko Cadell - Gert Driesen - - - - Initialize the repository using the specified config - - the element containing the root of the config - - - The schema for the XML configuration data is defined by - the implementation. - - - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Construct with properties - - The properties to pass to this repository. - - - Initializes a new instance of the class. - - - - - - Construct with a logger factory - - The factory to use to create new logger instances. - - - Initializes a new instance of the class with - the specified . - - - - - - Construct with properties and a logger factory - - The properties to pass to this repository. - The factory to use to create new logger instances. - - - Initializes a new instance of the class with - the specified . - - - - - - Test if a logger exists - - The name of the logger to lookup - The Logger object with the name specified - - - Check if the named logger exists in the hierarchy. If so return - its reference, otherwise returns null. - - - - - - Returns all the currently defined loggers in the hierarchy as an Array - - All the defined loggers - - - Returns all the currently defined loggers in the hierarchy as an Array. - The root logger is not included in the returned - enumeration. - - - - - - Return a new logger instance named as the first parameter using - the default factory. - - - - Return a new logger instance named as the first parameter using - the default factory. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - The name of the logger to retrieve - The logger object with the name specified - - - - Shutting down a hierarchy will safely close and remove - all appenders in all loggers including the root logger. - - - - Shutting down a hierarchy will safely close and remove - all appenders in all loggers including the root logger. - - - Some appenders need to be closed before the - application exists. Otherwise, pending logging events might be - lost. - - - The Shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Reset all values contained in this hierarchy instance to their default. - - - - Reset all values contained in this hierarchy instance to their - default. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the logEvent through this hierarchy. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are currently configured - - An array containing all the currently configured appenders - - - Returns all the instances that are currently configured. - All the loggers are searched for appenders. The appenders may also be containers - for appenders and these are also searched for additional loggers. - - - The list returned is unordered but does not contain duplicates. - - - - - - Collect the appenders from an . - The appender may also be a container. - - - - - - - Collect the appenders from an container - - - - - - - Initialize the log4net system using the specified appender - - the appender to use to log all logging events - - - - Initialize the log4net system using the specified appenders - - the appenders to use to log all logging events - - - - Initialize the log4net system using the specified appenders - - the appenders to use to log all logging events - - - This method provides the same functionality as the - method implemented - on this object, but it is protected and therefore can be called by subclasses. - - - - - - Initialize the log4net system using the specified config - - the element containing the root of the config - - - - Initialize the log4net system using the specified config - - the element containing the root of the config - - - This method provides the same functionality as the - method implemented - on this object, but it is protected and therefore can be called by subclasses. - - - - - - Test if this hierarchy is disabled for the specified . - - The level to check against. - - true if the repository is disabled for the level argument, false otherwise. - - - - If this hierarchy has not been configured then this method will - always return true. - - - This method will return true if this repository is - disabled for level object passed as parameter and - false otherwise. - - - See also the property. - - - - - - Clear all logger definitions from the internal hashtable - - - - This call will clear all logger definitions from the internal - hashtable. Invoking this method will irrevocably mess up the - logger hierarchy. - - - You should really know what you are doing before - invoking this method. - - - - - - Return a new logger instance named as the first parameter using - . - - The name of the logger to retrieve - The factory that will make the new logger instance - The logger object with the name specified - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated by the - parameter and linked with its existing - ancestors as well as children. - - - - - - Sends a logger creation event to all registered listeners - - The newly created logger - - Raises the logger creation event. - - - - - Updates all the parents of the specified logger - - The logger to update the parents for - - - This method loops through all the potential parents of - . There 3 possible cases: - - - - No entry for the potential parent of exists - - We create a ProvisionNode for this potential - parent and insert in that provision node. - - - - The entry is of type Logger for the potential parent. - - The entry is 's nearest existing parent. We - update 's parent field with this entry. We also break from - he loop because updating our parent's parent is our parent's - responsibility. - - - - The entry is of type ProvisionNode for this potential parent. - - We add to the list of children for this - potential parent. - - - - - - - - Replace a with a in the hierarchy. - - - - - - We update the links for all the children that placed themselves - in the provision node 'pn'. The second argument 'log' is a - reference for the newly created Logger, parent of all the - children in 'pn'. - - - We loop on all the children 'c' in 'pn'. - - - If the child 'c' has been already linked to a child of - 'log' then there is no need to update 'c'. - - - Otherwise, we set log's parent field to c's parent and set - c's parent field to log. - - - - - - Define or redefine a Level using the values in the argument - - the level values - - - Define or redefine a Level using the values in the argument - - - Supports setting levels via the configuration file. - - - - - - Set a Property using the values in the argument - - the property value - - - Set a Property using the values in the argument. - - - Supports setting property values via the configuration file. - - - - - - The fully qualified type of the Hierarchy class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Event used to notify that a logger has been created. - - - - Event raised when a logger is created. - - - - - - Has no appender warning been emitted - - - - Flag to indicate if we have already issued a warning - about not having an appender warning. - - - - - - Get the root of this hierarchy - - - - Get the root of this hierarchy. - - - - - - Gets or sets the default instance. - - The default - - - The logger factory is used to create logger instances. - - - - - - A class to hold the value, name and display name for a level - - - - A class to hold the value, name and display name for a level - - - - - - Override Object.ToString to return sensible debug info - - string info about this object - - - - Value of the level - - - - If the value is not set (defaults to -1) the value will be looked - up for the current level with the same name. - - - - - - Name of the level - - - The name of the level - - - - The name of the level. - - - - - - Display name for the level - - - The display name of the level - - - - The display name of the level. - - - - - - Used internally to accelerate hash table searches. - - - - Internal class used to improve performance of - string keyed hashtables. - - - The hashcode of the string is cached for reuse. - The string is stored as an interned value. - When comparing two objects for equality - the reference equality of the interned strings is compared. - - - Nicko Cadell - Gert Driesen - - - - Construct key with string name - - - - Initializes a new instance of the class - with the specified name. - - - Stores the hashcode of the string and interns - the string key to optimize comparisons. - - - The Compact Framework 1.0 the - method does not work. On the Compact Framework - the string keys are not interned nor are they - compared by reference. - - - The name of the logger. - - - - Returns a hash code for the current instance. - - A hash code for the current instance. - - - Returns the cached hashcode. - - - - - - Determines whether two instances - are equal. - - The to compare with the current . - - true if the specified is equal to the current ; otherwise, false. - - - - Compares the references of the interned strings. - - - - - - Provision nodes are used where no logger instance has been specified - - - - instances are used in the - when there is no specified - for that node. - - - A provision node holds a list of child loggers on behalf of - a logger that does not exist. - - - Nicko Cadell - Gert Driesen - - - - Create a new provision node with child node - - A child logger to add to this node. - - - Initializes a new instance of the class - with the specified child logger. - - - - - - The sits at the root of the logger hierarchy tree. - - - - The is a regular except - that it provides several guarantees. - - - First, it cannot be assigned a null - level. Second, since the root logger cannot have a parent, the - property always returns the value of the - level field without walking the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Construct a - - The level to assign to the root logger. - - - Initializes a new instance of the class with - the specified logging level. - - - The root logger names itself as "root". However, the root - logger cannot be retrieved by name. - - - - - - The fully qualified type of the RootLogger class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the assigned level value without walking the logger hierarchy. - - The assigned level value without walking the logger hierarchy. - - - Because the root logger cannot have a parent and its level - must not be null this property just returns the - value of . - - - - - - Gets or sets the assigned for the root logger. - - - The of the root logger. - - - - Setting the level of the root logger to a null reference - may have catastrophic results. We prevent this here. - - - - - - Initializes the log4net environment using an XML DOM. - - - - Configures a using an XML DOM. - - - Nicko Cadell - Gert Driesen - - - - Construct the configurator for a hierarchy - - The hierarchy to build. - - - Initializes a new instance of the class - with the specified . - - - - - - Configure the hierarchy by parsing a DOM tree of XML elements. - - The root element to parse. - - - Configure the hierarchy by parsing a DOM tree of XML elements. - - - - - - Parse appenders by IDREF. - - The appender ref element. - The instance of the appender that the ref refers to. - - - Parse an XML element that represents an appender and return - the appender. - - - - - - Parses an appender element. - - The appender element. - The appender instance or null when parsing failed. - - - Parse an XML element that represents an appender and return - the appender instance. - - - - - - Parses a logger element. - - The logger element. - - - Parse an XML element that represents a logger. - - - - - - Parses the root logger element. - - The root element. - - - Parse an XML element that represents the root logger. - - - - - - Parses the children of a logger element. - - The category element. - The logger instance. - Flag to indicate if the logger is the root logger. - - - Parse the child elements of a <logger> element. - - - - - - Parses an object renderer. - - The renderer element. - - - Parse an XML element that represents a renderer. - - - - - - Parses a level element. - - The level element. - The logger object to set the level on. - Flag to indicate if the logger is the root logger. - - - Parse an XML element that represents a level. - - - - - - Sets a parameter on an object. - - The parameter element. - The object to set the parameter on. - - The parameter name must correspond to a writable property - on the object. The value of the parameter is a string, - therefore this function will attempt to set a string - property first. If unable to set a string property it - will inspect the property and its argument type. It will - attempt to call a static method called Parse on the - type of the property. This method will take a single - string argument and return a value that can be used to - set the property. - - - - - Test if an element has no attributes or child elements - - the element to inspect - true if the element has any attributes or child elements, false otherwise - - - - Test if a is constructible with Activator.CreateInstance. - - the type to inspect - true if the type is creatable using a default constructor, false otherwise - - - - Look for a method on the that matches the supplied - - the type that has the method - the name of the method - the method info found - - - The method must be a public instance method on the . - The method must be named or "Add" followed by . - The method must take a single parameter. - - - - - - Converts a string value to a target type. - - The type of object to convert the string to. - The string value to use as the value of the object. - - - An object of type with value or - null when the conversion could not be performed. - - - - - - Creates an object as specified in XML. - - The XML element that contains the definition of the object. - The object type to use if not explicitly specified. - The type that the returned object must be or must inherit from. - The object or null - - - Parse an XML element and create an object instance based on the configuration - data. - - - The type of the instance may be specified in the XML. If not - specified then the is used - as the type. However the type is specified it must support the - type. - - - - - - key: appenderName, value: appender. - - - - - The Hierarchy being configured. - - - - - The fully qualified type of the XmlHierarchyConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - - - - - - - - - - - - - - - - - Delegate used to handle logger repository shutdown event notifications - - The that is shutting down. - Empty event args - - - Delegate used to handle logger repository shutdown event notifications. - - - - - - Delegate used to handle logger repository configuration reset event notifications - - The that has had its configuration reset. - Empty event args - - - Delegate used to handle logger repository configuration reset event notifications. - - - - - - Delegate used to handle event notifications for logger repository configuration changes. - - The that has had its configuration changed. - Empty event arguments. - - - Delegate used to handle event notifications for logger repository configuration changes. - - - - - - Write the name of the current AppDomain to the output - - - - Write the name of the current AppDomain to the output writer - - - Nicko Cadell - - - - Write the name of the current AppDomain to the output - - the writer to write to - null, state is not set - - - Writes name of the current AppDomain to the output . - - - - - - Write the current date to the output - - - - Date pattern converter, uses a to format - the current date and time to the writer as a string. - - - The value of the determines - the formatting of the date. The following values are allowed: - - - Option value - Output - - - ISO8601 - - Uses the formatter. - Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. - - - - DATE - - Uses the formatter. - Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". - - - - ABSOLUTE - - Uses the formatter. - Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". - - - - other - - Any other pattern string uses the formatter. - This formatter passes the pattern string to the - method. - For details on valid patterns see - DateTimeFormatInfo Class. - - - - - - The date and time is in the local time zone and is rendered in that zone. - To output the time in Universal time see . - - - Nicko Cadell - - - - The used to render the date to a string - - - - The used to render the date to a string - - - - - - Initialize the converter options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the current date to the output - - that will receive the formatted result. - null, state is not set - - - Pass the current date and time to the - for it to render it to the writer. - - - The date and time passed is in the local time zone. - - - - - - The fully qualified type of the DatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write an folder path to the output - - - - Write an special path environment folder path to the output writer. - The value of the determines - the name of the variable to output. - should be a value in the enumeration. - - - Ron Grabowski - - - - Write an special path environment folder path to the output - - the writer to write to - null, state is not set - - - Writes the special path environment folder path to the output . - The name of the special path environment folder path to output must be set - using the - property. - - - - - - The fully qualified type of the EnvironmentFolderPathPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write an environment variable to the output - - - - Write an environment variable to the output writer. - The value of the determines - the name of the variable to output. - - - Nicko Cadell - - - - Write an environment variable to the output - - the writer to write to - null, state is not set - - - Writes the environment variable to the output . - The name of the environment variable to output must be set - using the - property. - - - - - - The fully qualified type of the EnvironmentPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the current thread identity to the output - - - - Write the current thread identity to the output writer - - - Nicko Cadell - - - - Write the current thread identity to the output - - the writer to write to - null, state is not set - - - Writes the current thread identity to the output . - - - - - - The fully qualified type of the IdentityPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Pattern converter for literal string instances in the pattern - - - - Writes the literal string value specified in the - property to - the output. - - - Nicko Cadell - - - - Set the next converter in the chain - - The next pattern converter in the chain - The next pattern converter - - - Special case the building of the pattern converter chain - for instances. Two adjacent - literals in the pattern can be represented by a single combined - pattern converter. This implementation detects when a - is added to the chain - after this converter and combines its value with this converter's - literal value. - - - - - - Write the literal to the output - - the writer to write to - null, not set - - - Override the formatting behavior to ignore the FormattingInfo - because we have a literal instead. - - - Writes the value of - to the output . - - - - - - Convert this pattern into the rendered message - - that will receive the formatted result. - null, not set - - - This method is not used. - - - - - - Writes a newline to the output - - - - Writes the system dependent line terminator to the output. - This behavior can be overridden by setting the : - - - - Option Value - Output - - - DOS - DOS or Windows line terminator "\r\n" - - - UNIX - UNIX line terminator "\n" - - - - Nicko Cadell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the current process ID to the output - - - - Write the current process ID to the output writer - - - Nicko Cadell - - - - Write the current process ID to the output - - the writer to write to - null, state is not set - - - Write the current process ID to the output . - - - - - - The fully qualified type of the ProcessIdPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Property pattern converter - - - - This pattern converter reads the thread and global properties. - The thread properties take priority over global properties. - See for details of the - thread properties. See for - details of the global properties. - - - If the is specified then that will be used to - lookup a single property. If no is specified - then all properties will be dumped as a list of key value pairs. - - - Nicko Cadell - - - - Write the property value to the output - - that will receive the formatted result. - null, state is not set - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - - - - A Pattern converter that generates a string of random characters - - - - The converter generates a string of random characters. By default - the string is length 4. This can be changed by setting the - to the string value of the length required. - - - The random characters in the string are limited to uppercase letters - and numbers only. - - - The random number generator used by this class is not cryptographically secure. - - - Nicko Cadell - - - - Shared random number generator - - - - - Length of random string to generate. Default length 4. - - - - - Initialize the converter options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write a randoim string to the output - - the writer to write to - null, state is not set - - - Write a randoim string to the output . - - - - - - The fully qualified type of the RandomStringPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the current threads username to the output - - - - Write the current threads username to the output writer - - - Nicko Cadell - - - - Write the current threads username to the output - - the writer to write to - null, state is not set - - - Write the current threads username to the output . - - - - - - The fully qualified type of the UserNamePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the UTC date time to the output - - - - Date pattern converter, uses a to format - the current date and time in Universal time. - - - See the for details on the date pattern syntax. - - - - Nicko Cadell - - - - Write the current date and time to the output - - that will receive the formatted result. - null, state is not set - - - Pass the current date and time to the - for it to render it to the writer. - - - The date is in Universal time when it is rendered. - - - - - - - The fully qualified type of the UtcDatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Type converter for Boolean. - - - - Supports conversion from string to bool type. - - - - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Convert the source object to the type supported by this object - - the object to convert - the converted object - - - Uses the method to convert the - argument to a . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Exception base type for conversion errors. - - - - This type extends . It - does not add any new functionality but does differentiate the - type of exception being thrown. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - A message to include with the exception. - - - Initializes a new instance of the class - with the specified message. - - - - - - Constructor - - A message to include with the exception. - A nested exception to include. - - - Initializes a new instance of the class - with the specified message and inner exception. - - - - - - Serialization constructor - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Creates a new instance of the class. - - The conversion destination type. - The value to convert. - An instance of the . - - - Creates a new instance of the class. - - - - - - Creates a new instance of the class. - - The conversion destination type. - The value to convert. - A nested exception to include. - An instance of the . - - - Creates a new instance of the class. - - - - - - Register of type converters for specific types. - - - - Maintains a registry of type converters used to convert between - types. - - - Use the and - methods to register new converters. - The and methods - lookup appropriate converters to use. - - - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - Initializes a new instance of the class. - - - - - Static constructor. - - - - This constructor defines the intrinsic type converters. - - - - - - Adds a converter for a specific type. - - The type being converted to. - The type converter to use to convert to the destination type. - - - Adds a converter instance for a specific type. - - - - - - Adds a converter for a specific type. - - The type being converted to. - The type of the type converter to use to convert to the destination type. - - - Adds a converter for a specific type. - - - - - - Gets the type converter to use to convert values to the destination type. - - The type being converted from. - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - Gets the type converter to use to convert values to the destination type. - - - - - - Gets the type converter to use to convert values to the destination type. - - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - Gets the type converter to use to convert values to the destination type. - - - - - - Lookups the type converter to use as specified by the attributes on the - destination type. - - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - - Creates the instance of the type converter. - - The type of the type converter. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - The type specified for the type converter must implement - the or interfaces - and must have a public default (no argument) constructor. - - - - - - The fully qualified type of the ConverterRegistry class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Mapping from to type converter. - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to an encoding - the encoding - - - Uses the method to - convert the argument to an . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Interface supported by type converters - - - - This interface supports conversion from a single type to arbitrary types. - See . - - - Nicko Cadell - - - - Returns whether this converter can convert the object to the specified type - - A Type that represents the type you want to convert to - true if the conversion is possible - - - Test if the type supported by this converter can be converted to the - . - - - - - - Converts the given value object to the specified type, using the arguments - - the object to convert - The Type to convert the value parameter to - the converted object - - - Converts the (which must be of the type supported - by this converter) to the specified.. - - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to an IPAddress - the IPAddress - - - Uses the method to convert the - argument to an . - If that fails then the string is resolved as a DNS hostname. - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - The string is used as the - of the . - - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a PatternLayout - the PatternLayout - - - Creates and returns a new using - the as the - . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Convert between string and - - - - Supports conversion from string to type, - and from a type to a string. - - - The string is used as the - of the . - - - - - - Nicko Cadell - - - - Can the target type be converted to the type supported by this object - - A that represents the type you want to convert to - true if the conversion is possible - - - Returns true if the is - assignable from a type. - - - - - - Converts the given value object to the specified type, using the arguments - - the object to convert - The Type to convert the value parameter to - the converted object - - - Uses the method to convert the - argument to a . - - - - The object cannot be converted to the - . To check for this condition use the - method. - - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a PatternString - the PatternString - - - Creates and returns a new using - the as the - . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a Type - the Type - - - Uses the method to convert the - argument to a . - Additional effort is made to locate partially specified types - by searching the loaded assemblies. - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Attribute used to associate a type converter - - - - Class and Interface level attribute that specifies a type converter - to use with the associated type. - - - To associate a type converter with a target type apply a - TypeConverterAttribute to the target type. Specify the - type of the type converter on the attribute. - - - Nicko Cadell - Gert Driesen - - - - The string type name of the type converter - - - - - Default constructor - - - - Default constructor - - - - - - Create a new type converter attribute for the specified type name - - The string type name of the type converter - - - The type specified must implement the - or the interfaces. - - - - - - Create a new type converter attribute for the specified type - - The type of the type converter - - - The type specified must implement the - or the interfaces. - - - - - - The string type name of the type converter - - - The string type name of the type converter - - - - The type specified must implement the - or the interfaces. - - - - - - A straightforward implementation of the interface. - - - - This is the default implementation of the - interface. Implementors of the interface - should aggregate an instance of this type. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Append on on all attached appenders. - - The event being logged. - The number of appenders called. - - - Calls the method on all - attached appenders. - - - - - - Append on on all attached appenders. - - The array of events being logged. - The number of appenders called. - - - Calls the method on all - attached appenders. - - - - - - Calls the DoAppende method on the with - the objects supplied. - - The appender - The events - - - If the supports the - interface then the will be passed - through using that interface. Otherwise the - objects in the array will be passed one at a time. - - - - - - Attaches an appender. - - The appender to add. - - - If the appender is already in the list it won't be added again. - - - - - - Gets an attached appender with the specified name. - - The name of the appender to get. - - The appender with the name specified, or null if no appender with the - specified name is found. - - - - Lookup an attached appender by name. - - - - - - Removes all attached appenders. - - - - Removes and closes all attached appenders - - - - - - Removes the specified appender from the list of attached appenders. - - The appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - List of appenders - - - - - Array of appenders, used to cache the m_appenderList - - - - - The fully qualified type of the AppenderAttachedImpl class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets all attached appenders. - - - A collection of attached appenders, or null if there - are no attached appenders. - - - - The read only collection of all currently attached appenders. - - - - - - This class aggregates several PropertiesDictionary collections together. - - - - Provides a dictionary style lookup over an ordered list of - collections. - - - Nicko Cadell - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Add a Properties Dictionary to this composite collection - - the properties to add - - - Properties dictionaries added first take precedence over dictionaries added - later. - - - - - - Flatten this composite collection into a single properties dictionary - - the flattened dictionary - - - Reduces the collection of ordered dictionaries to a single dictionary - containing the resultant values for the keys. - - - - - - Gets the value of a property - - - The value for the property with the specified key - - - - Looks up the value for the specified. - The collections are searched - in the order in which they were added to this collection. The value - returned is the value held by the first collection that contains - the specified key. - - - If none of the collections contain the specified key then - null is returned. - - - - - - Base class for Context Properties implementations - - - - This class defines a basic property get set accessor - - - Nicko Cadell - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Gets or sets the value of a property - - - - - - Wrapper class used to map converter names to converter types - - - - Pattern converter info class used during configuration by custom - PatternString and PatternLayer converters. - - - - - - default constructor - - - - - - - - - - - Gets or sets the name of the conversion pattern - - - - The name of the pattern in the format string - - - - - - Gets or sets the type of the converter - - - - The value specified must extend the - type. - - - - - - - - - - - Subclass of that maintains a count of - the number of bytes written. - - - - This writer counts the number of bytes written. - - - Nicko Cadell - Gert Driesen - - - - that does not leak exceptions - - - - does not throw exceptions when things go wrong. - Instead, it delegates error handling to its . - - - Nicko Cadell - Gert Driesen - - - - Adapter that extends and forwards all - messages to an instance of . - - - - Adapter that extends and forwards all - messages to an instance of . - - - Nicko Cadell - - - - The writer to forward messages to - - - - - Create an instance of that forwards all - messages to a . - - The to forward to - - - Create an instance of that forwards all - messages to a . - - - - - - Closes the writer and releases any system resources associated with the writer - - - - - - - - - Dispose this writer - - flag indicating if we are being disposed - - - Dispose this writer - - - - - - Flushes any buffered output - - - - Clears all buffers for the writer and causes any buffered data to be written - to the underlying device - - - - - - Writes a character to the wrapped TextWriter - - the value to write to the TextWriter - - - Writes a character to the wrapped TextWriter - - - - - - Writes a character buffer to the wrapped TextWriter - - the data buffer - the start index - the number of characters to write - - - Writes a character buffer to the wrapped TextWriter - - - - - - Writes a string to the wrapped TextWriter - - the value to write to the TextWriter - - - Writes a string to the wrapped TextWriter - - - - - - Gets or sets the underlying . - - - The underlying . - - - - Gets or sets the underlying . - - - - - - The Encoding in which the output is written - - - The - - - - The Encoding in which the output is written - - - - - - Gets an object that controls formatting - - - The format provider - - - - Gets an object that controls formatting - - - - - - Gets or sets the line terminator string used by the TextWriter - - - The line terminator to use - - - - Gets or sets the line terminator string used by the TextWriter - - - - - - Constructor - - the writer to actually write to - the error handler to report error to - - - Create a new QuietTextWriter using a writer and error handler - - - - - - Writes a character to the underlying writer - - the char to write - - - Writes a character to the underlying writer - - - - - - Writes a buffer to the underlying writer - - the buffer to write - the start index to write from - the number of characters to write - - - Writes a buffer to the underlying writer - - - - - - Writes a string to the output. - - The string data to write to the output. - - - Writes a string to the output. - - - - - - Closes the underlying output writer. - - - - Closes the underlying output writer. - - - - - - The error handler instance to pass all errors to - - - - - Flag to indicate if this writer is closed - - - - - Gets or sets the error handler that all errors are passed to. - - - The error handler that all errors are passed to. - - - - Gets or sets the error handler that all errors are passed to. - - - - - - Gets a value indicating whether this writer is closed. - - - true if this writer is closed, otherwise false. - - - - Gets a value indicating whether this writer is closed. - - - - - - Constructor - - The to actually write to. - The to report errors to. - - - Creates a new instance of the class - with the specified and . - - - - - - Writes a character to the underlying writer and counts the number of bytes written. - - the char to write - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Writes a buffer to the underlying writer and counts the number of bytes written. - - the buffer to write - the start index to write from - the number of characters to write - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Writes a string to the output and counts the number of bytes written. - - The string data to write to the output. - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Total number of bytes written. - - - - - Gets or sets the total number of bytes written. - - - The total number of bytes written. - - - - Gets or sets the total number of bytes written. - - - - - - A fixed size rolling buffer of logging events. - - - - An array backed fixed size leaky bucket. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The maximum number of logging events in the buffer. - - - Initializes a new instance of the class with - the specified maximum number of buffered logging events. - - - The argument is not a positive integer. - - - - Appends a to the buffer. - - The event to append to the buffer. - The event discarded from the buffer, if the buffer is full, otherwise null. - - - Append an event to the buffer. If the buffer still contains free space then - null is returned. If the buffer is full then an event will be dropped - to make space for the new event, the event dropped is returned. - - - - - - Get and remove the oldest event in the buffer. - - The oldest logging event in the buffer - - - Gets the oldest (first) logging event in the buffer and removes it - from the buffer. - - - - - - Pops all the logging events from the buffer into an array. - - An array of all the logging events in the buffer. - - - Get all the events in the buffer and clear the buffer. - - - - - - Clear the buffer - - - - Clear the buffer of all events. The events in the buffer are lost. - - - - - - Gets the th oldest event currently in the buffer. - - The th oldest event currently in the buffer. - - - If is outside the range 0 to the number of events - currently in the buffer, then null is returned. - - - - - - Gets the maximum size of the buffer. - - The maximum size of the buffer. - - - Gets the maximum size of the buffer - - - - - - Gets the number of logging events in the buffer. - - The number of logging events in the buffer. - - - This number is guaranteed to be in the range 0 to - (inclusive). - - - - - - An always empty . - - - - A singleton implementation of the - interface that always represents an empty collection. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Copies the elements of the to an - , starting at a particular Array index. - - The one-dimensional - that is the destination of the elements copied from - . The Array must have zero-based - indexing. - The zero-based index in array at which - copying begins. - - - As the collection is empty no values are copied into the array. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - The singleton instance of the empty collection. - - - - - Gets the singleton instance of the empty collection. - - The singleton instance of the empty collection. - - - Gets the singleton instance of the empty collection. - - - - - - Gets a value indicating if access to the is synchronized (thread-safe). - - - true if access to the is synchronized (thread-safe); otherwise, false. - - - - For the this property is always true. - - - - - - Gets the number of elements contained in the . - - - The number of elements contained in the . - - - - As the collection is empty the is always 0. - - - - - - Gets an object that can be used to synchronize access to the . - - - An object that can be used to synchronize access to the . - - - - As the collection is empty and thread safe and synchronized this instance is also - the object. - - - - - - An always empty . - - - - A singleton implementation of the - interface that always represents an empty collection. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Copies the elements of the to an - , starting at a particular Array index. - - The one-dimensional - that is the destination of the elements copied from - . The Array must have zero-based - indexing. - The zero-based index in array at which - copying begins. - - - As the collection is empty no values are copied into the array. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - Adds an element with the provided key and value to the - . - - The to use as the key of the element to add. - The to use as the value of the element to add. - - - As the collection is empty no new values can be added. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - Removes all elements from the . - - - - As the collection is empty no values can be removed. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - Determines whether the contains an element - with the specified key. - - The key to locate in the . - false - - - As the collection is empty the method always returns false. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - Removes the element with the specified key from the . - - The key of the element to remove. - - - As the collection is empty no values can be removed. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - The singleton instance of the empty dictionary. - - - - - Gets the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets a value indicating if access to the is synchronized (thread-safe). - - - true if access to the is synchronized (thread-safe); otherwise, false. - - - - For the this property is always true. - - - - - - Gets the number of elements contained in the - - - The number of elements contained in the . - - - - As the collection is empty the is always 0. - - - - - - Gets an object that can be used to synchronize access to the . - - - An object that can be used to synchronize access to the . - - - - As the collection is empty and thread safe and synchronized this instance is also - the object. - - - - - - Gets a value indicating whether the has a fixed size. - - true - - - As the collection is empty always returns true. - - - - - - Gets a value indicating whether the is read-only. - - true - - - As the collection is empty always returns true. - - - - - - Gets an containing the keys of the . - - An containing the keys of the . - - - As the collection is empty a is returned. - - - - - - Gets an containing the values of the . - - An containing the values of the . - - - As the collection is empty a is returned. - - - - - - Gets or sets the element with the specified key. - - The key of the element to get or set. - null - - - As the collection is empty no values can be looked up or stored. - If the index getter is called then null is returned. - A is thrown if the setter is called. - - - This dictionary is always empty and cannot be modified. - - - - Contain the information obtained when parsing formatting modifiers - in conversion modifiers. - - - - Holds the formatting information extracted from the format string by - the . This is used by the - objects when rendering the output. - - - Nicko Cadell - Gert Driesen - - - - Defaut Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - - - Initializes a new instance of the class - with the specified parameters. - - - - - - Gets or sets the minimum value. - - - The minimum value. - - - - Gets or sets the minimum value. - - - - - - Gets or sets the maximum value. - - - The maximum value. - - - - Gets or sets the maximum value. - - - - - - Gets or sets a flag indicating whether left align is enabled - or not. - - - A flag indicating whether left align is enabled or not. - - - - Gets or sets a flag indicating whether left align is enabled or not. - - - - - - Implementation of Properties collection for the - - - - This class implements a properties collection that is thread safe and supports both - storing properties and capturing a read only copy of the current propertied. - - - This class is optimized to the scenario where the properties are read frequently - and are modified infrequently. - - - Nicko Cadell - - - - The read only copy of the properties. - - - - This variable is declared volatile to prevent the compiler and JIT from - reordering reads and writes of this thread performed on different threads. - - - - - - Lock object used to synchronize updates within this instance - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property from the global context - - the key for the entry to remove - - - Removing an entry from the global context properties is relatively expensive compared - with reading a value. - - - - - - Clear the global context properties - - - - - Get a readonly immutable copy of the properties - - the current global context properties - - - This implementation is fast because the GlobalContextProperties class - stores a readonly copy of the properties. - - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Reading the value for a key is faster than setting the value. - When the value is written a new read only copy of - the properties is created. - - - - - - Manages a mapping from levels to - - - - Manages an ordered mapping from instances - to subclasses. - - - Nicko Cadell - - - - Default constructor - - - - Initialise a new instance of . - - - - - - Add a to this mapping - - the entry to add - - - If a has previously been added - for the same then that entry will be - overwritten. - - - - - - Lookup the mapping for the specified level - - the level to lookup - the for the level or null if no mapping found - - - Lookup the value for the specified level. Finds the nearest - mapping value for the level that is equal to or less than the - specified. - - - If no mapping could be found then null is returned. - - - - - - Initialize options - - - - Caches the sorted list of in an array - - - - - - Implementation of Properties collection for the - - - - Class implements a collection of properties that is specific to each thread. - The class is not synchronized as each thread has its own . - - - This class stores its properties in a slot on the named - log4net.Util.LogicalThreadContextProperties. - - - The requires a link time - for the - . - If the calling code does not have this permission then this context will be disabled. - It will not store any property values set on it. - - - Nicko Cadell - - - - Flag used to disable this context if we don't have permission to access the CallContext. - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property - - the key for the entry to remove - - - Remove the value for the specified from the context. - - - - - - Clear all the context properties - - - - Clear all the context properties - - - - - - Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. - - create the dictionary if it does not exist, otherwise return null if is does not exist - the properties for this thread - - - The collection returned is only to be used on the calling thread. If the - caller needs to share the collection between different threads then the - caller must clone the collection before doings so. - - - - - - Gets the call context get data. - - The peroperties dictionary stored in the call context - - The method has a - security link demand, therfore we must put the method call in a seperate method - that we can wrap in an exception handler. - - - - - Sets the call context data. - - The properties. - - The method has a - security link demand, therfore we must put the method call in a seperate method - that we can wrap in an exception handler. - - - - - The fully qualified type of the LogicalThreadContextProperties class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Get or set the property value for the specified. - - - - - - - - - - - - - Outputs log statements from within the log4net assembly. - - - - Log4net components cannot make log4net logging calls. However, it is - sometimes useful for the user to learn about what log4net is - doing. - - - All log4net internal debug calls go to the standard output stream - whereas internal error messages are sent to the standard error output - stream. - - - Nicko Cadell - Gert Driesen - - - - Formats Prefix, Source, and Message in the same format as the value - sent to Console.Out and Trace.Write. - - - - - - Initializes a new instance of the class. - - - - - - - - - Static constructor that initializes logging by reading - settings from the application configuration file. - - - - The log4net.Internal.Debug application setting - controls internal debugging. This setting should be set - to true to enable debugging. - - - The log4net.Internal.Quiet application setting - suppresses all internal logging including error messages. - This setting should be set to true to enable message - suppression. - - - - - - Raises the LogReceived event when an internal messages is received. - - - - - - - - - Writes log4net internal debug messages to the - standard output stream. - - - The message to log. - - - All internal debug messages are prepended with - the string "log4net: ". - - - - - - Writes log4net internal debug messages to the - standard output stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal debug messages are prepended with - the string "log4net: ". - - - - - - Writes log4net internal warning messages to the - standard error stream. - - The Type that generated this message. - The message to log. - - - All internal warning messages are prepended with - the string "log4net:WARN ". - - - - - - Writes log4net internal warning messages to the - standard error stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal warning messages are prepended with - the string "log4net:WARN ". - - - - - - Writes log4net internal error messages to the - standard error stream. - - The Type that generated this message. - The message to log. - - - All internal error messages are prepended with - the string "log4net:ERROR ". - - - - - - Writes log4net internal error messages to the - standard error stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal debug messages are prepended with - the string "log4net:ERROR ". - - - - - - Writes output to the standard output stream. - - The message to log. - - - Writes to both Console.Out and System.Diagnostics.Trace. - Note that the System.Diagnostics.Trace is not supported - on the Compact Framework. - - - If the AppDomain is not configured with a config file then - the call to System.Diagnostics.Trace may fail. This is only - an issue if you are programmatically creating your own AppDomains. - - - - - - Writes output to the standard error stream. - - The message to log. - - - Writes to both Console.Error and System.Diagnostics.Trace. - Note that the System.Diagnostics.Trace is not supported - on the Compact Framework. - - - If the AppDomain is not configured with a config file then - the call to System.Diagnostics.Trace may fail. This is only - an issue if you are programmatically creating your own AppDomains. - - - - - - Default debug level - - - - - In quietMode not even errors generate any output. - - - - - The event raised when an internal message has been received. - - - - - The Type that generated the internal message. - - - - - The DateTime stamp of when the internal message was received. - - - - - A string indicating the severity of the internal message. - - - "log4net: ", - "log4net:ERROR ", - "log4net:WARN " - - - - - The internal log message. - - - - - The Exception related to the message. - - - Optional. Will be null if no Exception was passed. - - - - - Gets or sets a value indicating whether log4net internal logging - is enabled or disabled. - - - true if log4net internal logging is enabled, otherwise - false. - - - - When set to true, internal debug level logging will be - displayed. - - - This value can be set by setting the application setting - log4net.Internal.Debug in the application configuration - file. - - - The default value is false, i.e. debugging is - disabled. - - - - - The following example enables internal debugging using the - application configuration file : - - - - - - - - - - - - - Gets or sets a value indicating whether log4net should generate no output - from internal logging, not even for errors. - - - true if log4net should generate no output at all from internal - logging, otherwise false. - - - - When set to true will cause internal logging at all levels to be - suppressed. This means that no warning or error reports will be logged. - This option overrides the setting and - disables all debug also. - - This value can be set by setting the application setting - log4net.Internal.Quiet in the application configuration file. - - - The default value is false, i.e. internal logging is not - disabled. - - - - The following example disables internal logging using the - application configuration file : - - - - - - - - - - - - - - - - - Test if LogLog.Debug is enabled for output. - - - true if Debug is enabled - - - - Test if LogLog.Debug is enabled for output. - - - - - - Test if LogLog.Warn is enabled for output. - - - true if Warn is enabled - - - - Test if LogLog.Warn is enabled for output. - - - - - - Test if LogLog.Error is enabled for output. - - - true if Error is enabled - - - - Test if LogLog.Error is enabled for output. - - - - - - Subscribes to the LogLog.LogReceived event and stores messages - to the supplied IList instance. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Represents a native error code and message. - - - - Represents a Win32 platform native error. - - - Nicko Cadell - Gert Driesen - - - - Create an instance of the class with the specified - error number and message. - - The number of the native error. - The message of the native error. - - - Create an instance of the class with the specified - error number and message. - - - - - - Create a new instance of the class for the last Windows error. - - - An instance of the class for the last windows error. - - - - The message for the error number is lookup up using the - native Win32 FormatMessage function. - - - - - - Create a new instance of the class. - - the error number for the native error - - An instance of the class for the specified - error number. - - - - The message for the specified error number is lookup up using the - native Win32 FormatMessage function. - - - - - - Retrieves the message corresponding with a Win32 message identifier. - - Message identifier for the requested message. - - The message corresponding with the specified message identifier. - - - - The message will be searched for in system message-table resource(s) - using the native FormatMessage function. - - - - - - Return error information string - - error information string - - - Return error information string - - - - - - Formats a message string. - - Formatting options, and how to interpret the parameter. - Location of the message definition. - Message identifier for the requested message. - Language identifier for the requested message. - If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . - If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. - Pointer to an array of values that are used as insert values in the formatted message. - - - The function requires a message definition as input. The message definition can come from a - buffer passed into the function. It can come from a message table resource in an - already-loaded module. Or the caller can ask the function to search the system's message - table resource(s) for the message definition. The function finds the message definition - in a message table resource based on a message identifier and a language identifier. - The function copies the formatted message text to an output buffer, processing any embedded - insert sequences if requested. - - - To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. - - - - - If the function succeeds, the return value is the number of TCHARs stored in the output - buffer, excluding the terminating null character. - - - If the function fails, the return value is zero. To get extended error information, - call . - - - - - - Gets the number of the native error. - - - The number of the native error. - - - - Gets the number of the native error. - - - - - - Gets the message of the native error. - - - The message of the native error. - - - - - Gets the message of the native error. - - - - - An always empty . - - - - A singleton implementation of the over a collection - that is empty and not modifiable. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Test if the enumerator can advance, if so advance. - - false as the cannot advance. - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will always return false. - - - - - - Resets the enumerator back to the start. - - - - As the enumerator is over an empty collection does nothing. - - - - - - The singleton instance of the . - - - - - Gets the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets the current object from the enumerator. - - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current key from the enumerator. - - - Throws an exception because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current value from the enumerator. - - The current value from the enumerator. - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current entry from the enumerator. - - - Throws an because the - never has a current entry. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - An always empty . - - - - A singleton implementation of the over a collection - that is empty and not modifiable. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Test if the enumerator can advance, if so advance - - false as the cannot advance. - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will always return false. - - - - - - Resets the enumerator back to the start. - - - - As the enumerator is over an empty collection does nothing. - - - - - - The singleton instance of the . - - - - - Get the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets the current object from the enumerator. - - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - A SecurityContext used when a SecurityContext is not required - - - - The is a no-op implementation of the - base class. It is used where a - is required but one has not been provided. - - - Nicko Cadell - - - - Singleton instance of - - - - Singleton instance of - - - - - - Private constructor - - - - Private constructor for singleton pattern. - - - - - - Impersonate this SecurityContext - - State supplied by the caller - null - - - No impersonation is done and null is always returned. - - - - - - Implements log4net's default error handling policy which consists - of emitting a message for the first error in an appender and - ignoring all subsequent errors. - - - - The error message is processed using the LogLog sub-system. - - - This policy aims at protecting an otherwise working application - from being flooded with error messages when logging fails. - - - Nicko Cadell - Gert Driesen - Ron Grabowski - - - - Default Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - The prefix to use for each message. - - - Initializes a new instance of the class - with the specified prefix. - - - - - - Reset the error handler back to its initial disabled state. - - - - - Log an Error - - The error message. - The exception. - The internal error code. - - - Sends the error information to 's Error method. - - - - - - Log an Error - - The error message. - The exception. - - - Prints the message and the stack trace of the exception on the standard - error output stream. - - - - - - Log an error - - The error message. - - - Print a the error message passed as parameter on the standard - error output stream. - - - - - - The date the error was recorded. - - - - - Flag to indicate if it is the first error - - - - - The message recorded during the first error. - - - - - The exception recorded during the first error. - - - - - The error code recorded during the first error. - - - - - String to prefix each message with - - - - - The fully qualified type of the OnlyOnceErrorHandler class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Is error logging enabled - - - - Is error logging enabled. Logging is only enabled for the - first error delivered to the . - - - - - - The date the first error that trigged this error handler occured. - - - - - The message from the first error that trigged this error handler. - - - - - The exception from the first error that trigged this error handler. - - - May be . - - - - - The error code from the first error that trigged this error handler. - - - Defaults to - - - - - A convenience class to convert property values to specific types. - - - - Utility functions for converting types and parsing values. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Converts a string to a value. - - String to convert. - The default value. - The value of . - - - If is "true", then true is returned. - If is "false", then false is returned. - Otherwise, is returned. - - - - - - Parses a file size into a number. - - String to parse. - The default value. - The value of . - - - Parses a file size of the form: number[KB|MB|GB] into a - long value. It is scaled with the appropriate multiplier. - - - is returned when - cannot be converted to a value. - - - - - - Converts a string to an object. - - The target type to convert to. - The string to convert to an object. - - The object converted from a string or null when the - conversion failed. - - - - Converts a string to an object. Uses the converter registry to try - to convert the string value into the specified target type. - - - - - - Checks if there is an appropriate type conversion from the source type to the target type. - - The type to convert from. - The type to convert to. - true if there is a conversion from the source type to the target type. - - Checks if there is an appropriate type conversion from the source type to the target type. - - - - - - - Converts an object to the target type. - - The object to convert to the target type. - The type to convert to. - The converted object. - - - Converts an object to the target type. - - - - - - Instantiates an object given a class name. - - The fully qualified class name of the object to instantiate. - The class to which the new object should belong. - The object to return in case of non-fulfillment. - - An instance of the or - if the object could not be instantiated. - - - - Checks that the is a subclass of - . If that test fails or the object could - not be instantiated, then is returned. - - - - - - Performs variable substitution in string from the - values of keys found in . - - The string on which variable substitution is performed. - The dictionary to use to lookup variables. - The result of the substitutions. - - - The variable substitution delimiters are ${ and }. - - - For example, if props contains key=value, then the call - - - - string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); - - - - will set the variable s to "Value of key is value.". - - - If no value could be found for the specified key, then substitution - defaults to an empty string. - - - For example, if system properties contains no value for the key - "nonExistentKey", then the call - - - - string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); - - - - will set s to "Value of nonExistentKey is []". - - - An Exception is thrown if contains a start - delimiter "${" which is not balanced by a stop delimiter "}". - - - - - - Converts the string representation of the name or numeric value of one or - more enumerated constants to an equivalent enumerated object. - - The type to convert to. - The enum string value. - If true, ignore case; otherwise, regard case. - An object of type whose value is represented by . - - - - The fully qualified type of the OptionConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Most of the work of the class - is delegated to the PatternParser class. - - - - The PatternParser processes a pattern string and - returns a chain of objects. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The pattern to parse. - - - Initializes a new instance of the class - with the specified pattern string. - - - - - - Parses the pattern into a chain of pattern converters. - - The head of a chain of pattern converters. - - - Parses the pattern into a chain of pattern converters. - - - - - - Build the unified cache of converters from the static and instance maps - - the list of all the converter names - - - Build the unified cache of converters from the static and instance maps - - - - - - Internal method to parse the specified pattern to find specified matches - - the pattern to parse - the converter names to match in the pattern - - - The matches param must be sorted such that longer strings come before shorter ones. - - - - - - Process a parsed literal - - the literal text - - - - Process a parsed converter pattern - - the name of the converter - the optional option for the converter - the formatting info for the converter - - - - Resets the internal state of the parser and adds the specified pattern converter - to the chain. - - The pattern converter to add. - - - - The first pattern converter in the chain - - - - - the last pattern converter in the chain - - - - - The pattern - - - - - Internal map of converter identifiers to converter types - - - - This map overrides the static s_globalRulesRegistry map. - - - - - - The fully qualified type of the PatternParser class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Get the converter registry used by this parser - - - The converter registry used by this parser - - - - Get the converter registry used by this parser - - - - - - Sort strings by length - - - - that orders strings by string length. - The longest strings are placed first - - - - - - This class implements a patterned string. - - - - This string has embedded patterns that are resolved and expanded - when the string is formatted. - - - This class functions similarly to the - in that it accepts a pattern and renders it to a string. Unlike the - however the PatternString - does not render the properties of a specific but - of the process in general. - - - The recognized conversion pattern names are: - - - - Conversion Pattern Name - Effect - - - appdomain - - - Used to output the friendly name of the current AppDomain. - - - - - date - - - Used to output the current date and time in the local time zone. - To output the date in universal time use the %utcdate pattern. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %date{HH:mm:ss,fff} or - %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %date{ISO8601} or %date{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - env - - - Used to output the a specific environment variable. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %env{COMPUTERNAME} would include the value - of the COMPUTERNAME environment variable. - - - The env pattern is not supported on the .NET Compact Framework. - - - - - identity - - - Used to output the user name for the currently active user - (Principal.Identity.Name). - - - - - newline - - - Outputs the platform dependent line separator character or - characters. - - - This conversion pattern name offers the same performance as using - non-portable line separator strings such as "\n", or "\r\n". - Thus, it is the preferred way of specifying a line separator. - - - - - processid - - - Used to output the system process ID for the current process. - - - - - property - - - Used to output a specific context property. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %property{user} would include the value - from the property that is keyed by the string 'user'. Each property value - that is to be included in the log must be specified separately. - Properties are stored in logging contexts. By default - the log4net:HostName property is set to the name of machine on - which the event was originally logged. - - - If no key is specified, e.g. %property then all the keys and their - values are printed in a comma separated list. - - - The properties of an event are combined from a number of different - contexts. These are listed below in the order in which they are searched. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - random - - - Used to output a random string of characters. The string is made up of - uppercase letters and numbers. By default the string is 4 characters long. - The length of the string can be specified within braces directly following the - pattern specifier, e.g. %random{8} would output an 8 character string. - - - - - username - - - Used to output the WindowsIdentity for the currently - active user. - - - - - utcdate - - - Used to output the date of the logging event in universal time. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %utcdate{HH:mm:ss,fff} or - %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %utcdate{ISO8601} or %utcdate{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - % - - - The sequence %% outputs a single percent sign. - - - - - - Additional pattern converters may be registered with a specific - instance using or - . - - - See the for details on the - format modifiers supported by the patterns. - - - Nicko Cadell - - - - Internal map of converter identifiers to converter types. - - - - - the pattern - - - - - the head of the pattern converter chain - - - - - patterns defined on this PatternString only - - - - - Initialize the global registry - - - - - Default constructor - - - - Initialize a new instance of - - - - - - Constructs a PatternString - - The pattern to use with this PatternString - - - Initialize a new instance of with the pattern specified. - - - - - - Initialize object options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Create the used to parse the pattern - - the pattern to parse - The - - - Returns PatternParser used to parse the conversion string. Subclasses - may override this to return a subclass of PatternParser which recognize - custom conversion pattern name. - - - - - - Produces a formatted string as specified by the conversion pattern. - - The TextWriter to write the formatted event to - - - Format the pattern to the . - - - - - - Format the pattern as a string - - the pattern formatted as a string - - - Format the pattern to a string. - - - - - - Add a converter to this PatternString - - the converter info - - - This version of the method is used by the configurator. - Programmatic users should use the alternative method. - - - - - - Add a converter to this PatternString - - the name of the conversion pattern for this converter - the type of the converter - - - Add a converter to this PatternString - - - - - - Gets or sets the pattern formatting string - - - The pattern formatting string - - - - The ConversionPattern option. This is the string which - controls formatting and consists of a mix of literal content and - conversion specifiers. - - - - - - String keyed object map. - - - - While this collection is serializable only member - objects that are serializable will - be serialized along with this collection. - - - Nicko Cadell - Gert Driesen - - - - String keyed object map that is read only. - - - - This collection is readonly and cannot be modified. - - - While this collection is serializable only member - objects that are serializable will - be serialized along with this collection. - - - Nicko Cadell - Gert Driesen - - - - The Hashtable used to store the properties data - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Copy Constructor - - properties to copy - - - Initializes a new instance of the class. - - - - - - Deserialization constructor - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Gets the key names. - - An array of all the keys. - - - Gets the key names. - - - - - - Test if the dictionary contains a specified key - - the key to look for - true if the dictionary contains the specified key - - - Test if the dictionary contains a specified key - - - - - - Serializes this object into the provided. - - The to populate with data. - The destination for this serialization. - - - Serializes this object into the provided. - - - - - - See - - - - - See - - - - - - See - - - - - - - Remove all properties from the properties collection - - - - - See - - - - - - - See - - - - - - - See - - - - - Gets or sets the value of the property with the specified key. - - - The value of the property with the specified key. - - The key of the property to get or set. - - - The property value will only be serialized if it is serializable. - If it cannot be serialized it will be silently ignored if - a serialization operation is performed. - - - - - - The hashtable used to store the properties - - - The internal collection used to store the properties - - - - The hashtable used to store the properties - - - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - The number of properties in this collection - - - - - See - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - properties to copy - - - Initializes a new instance of the class. - - - - - - Initializes a new instance of the class - with serialized data. - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Because this class is sealed the serialization constructor is private. - - - - - - Remove the entry with the specified key from this dictionary - - the key for the entry to remove - - - Remove the entry with the specified key from this dictionary - - - - - - See - - an enumerator - - - Returns a over the contest of this collection. - - - - - - See - - the key to remove - - - Remove the entry with the specified key from this dictionary - - - - - - See - - the key to lookup in the collection - true if the collection contains the specified key - - - Test if this collection contains a specified key. - - - - - - Remove all properties from the properties collection - - - - Remove all properties from the properties collection - - - - - - See - - the key - the value to store for the key - - - Store a value for the specified . - - - Thrown if the is not a string - - - - See - - - - - - - See - - - - - Gets or sets the value of the property with the specified key. - - - The value of the property with the specified key. - - The key of the property to get or set. - - - The property value will only be serialized if it is serializable. - If it cannot be serialized it will be silently ignored if - a serialization operation is performed. - - - - - - See - - - false - - - - This collection is modifiable. This property always - returns false. - - - - - - See - - - The value for the key specified. - - - - Get or set a value for the specified . - - - Thrown if the is not a string - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - A class to hold the key and data for a property set in the config file - - - - A class to hold the key and data for a property set in the config file - - - - - - Override Object.ToString to return sensible debug info - - string info about this object - - - - Property Key - - - Property Key - - - - Property Key. - - - - - - Property Value - - - Property Value - - - - Property Value. - - - - - - A that ignores the message - - - - This writer is used in special cases where it is necessary - to protect a writer from being closed by a client. - - - Nicko Cadell - - - - Constructor - - the writer to actually write to - - - Create a new ProtectCloseTextWriter using a writer - - - - - - Attach this instance to a different underlying - - the writer to attach to - - - Attach this instance to a different underlying - - - - - - Does not close the underlying output writer. - - - - Does not close the underlying output writer. - This method does nothing. - - - - - - Defines a lock that supports single writers and multiple readers - - - - ReaderWriterLock is used to synchronize access to a resource. - At any given time, it allows either concurrent read access for - multiple threads, or write access for a single thread. In a - situation where a resource is changed infrequently, a - ReaderWriterLock provides better throughput than a simple - one-at-a-time lock, such as . - - - If a platform does not support a System.Threading.ReaderWriterLock - implementation then all readers and writers are serialized. Therefore - the caller must not rely on multiple simultaneous readers. - - - Nicko Cadell - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Acquires a reader lock - - - - blocks if a different thread has the writer - lock, or if at least one thread is waiting for the writer lock. - - - - - - Decrements the lock count - - - - decrements the lock count. When the count - reaches zero, the lock is released. - - - - - - Acquires the writer lock - - - - This method blocks if another thread has a reader lock or writer lock. - - - - - - Decrements the lock count on the writer lock - - - - ReleaseWriterLock decrements the writer lock count. - When the count reaches zero, the writer lock is released. - - - - - - A that can be and reused - - - - A that can be and reused. - This uses a single buffer for string operations. - - - Nicko Cadell - - - - Create an instance of - - the format provider to use - - - Create an instance of - - - - - - Override Dispose to prevent closing of writer - - flag - - - Override Dispose to prevent closing of writer - - - - - - Reset this string writer so that it can be reused. - - the maximum buffer capacity before it is trimmed - the default size to make the buffer - - - Reset this string writer so that it can be reused. - The internal buffers are cleared and reset. - - - - - - Utility class for system specific information. - - - - Utility class of static methods for system specific information. - - - Nicko Cadell - Gert Driesen - Alexey Solofnenko - - - - Private constructor to prevent instances. - - - - Only static methods are exposed from this type. - - - - - - Initialize default values for private static fields. - - - - Only static methods are exposed from this type. - - - - - - Gets the assembly location path for the specified assembly. - - The assembly to get the location for. - The location of the assembly. - - - This method does not guarantee to return the correct path - to the assembly. If only tries to give an indication as to - where the assembly was loaded from. - - - - - - Gets the fully qualified name of the , including - the name of the assembly from which the was - loaded. - - The to get the fully qualified name for. - The fully qualified name for the . - - - This is equivalent to the Type.AssemblyQualifiedName property, - but this method works on the .NET Compact Framework 1.0 as well as - the full .NET runtime. - - - - - - Gets the short name of the . - - The to get the name for. - The short name of the . - - - The short name of the assembly is the - without the version, culture, or public key. i.e. it is just the - assembly's file name without the extension. - - - Use this rather than Assembly.GetName().Name because that - is not available on the Compact Framework. - - - Because of a FileIOPermission security demand we cannot do - the obvious Assembly.GetName().Name. We are allowed to get - the of the assembly so we - start from there and strip out just the assembly name. - - - - - - Gets the file name portion of the , including the extension. - - The to get the file name for. - The file name of the assembly. - - - Gets the file name portion of the , including the extension. - - - - - - Loads the type specified in the type string. - - A sibling type to use to load the type. - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified, it will be loaded from the assembly - containing the specified relative type. If the type is not found in the assembly - then all the loaded assemblies will be searched for the type. - - - - - - Loads the type specified in the type string. - - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified it will be loaded from the - assembly that is directly calling this method. If the type is not found - in the assembly then all the loaded assemblies will be searched for the type. - - - - - - Loads the type specified in the type string. - - An assembly to load the type from. - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified it will be loaded from the specified - assembly. If the type is not found in the assembly then all the loaded assemblies - will be searched for the type. - - - - - - Generate a new guid - - A new Guid - - - Generate a new guid - - - - - - Create an - - The name of the parameter that caused the exception - The value of the argument that causes this exception - The message that describes the error - the ArgumentOutOfRangeException object - - - Create a new instance of the class - with a specified error message, the parameter name, and the value - of the argument. - - - The Compact Framework does not support the 3 parameter constructor for the - type. This method provides an - implementation that works for all platforms. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Lookup an application setting - - the application settings key to lookup - the value for the key, or null - - - Configuration APIs are not supported under the Compact Framework - - - - - - Convert a path into a fully qualified local file path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - The path specified must be a local file path, a URI is not supported. - - - - - - Creates a new case-insensitive instance of the class with the default initial capacity. - - A new case-insensitive instance of the class with the default initial capacity - - - The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. - - - - - - Gets an empty array of types. - - - - The Type.EmptyTypes field is not available on - the .NET Compact Framework 1.0. - - - - - - The fully qualified type of the SystemInfo class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Cache the host name for the current machine - - - - - Cache the application friendly name - - - - - Text to output when a null is encountered. - - - - - Text to output when an unsupported feature is requested. - - - - - Start time for the current process. - - - - - Gets the system dependent line terminator. - - - The system dependent line terminator. - - - - Gets the system dependent line terminator. - - - - - - Gets the base directory for this . - - The base directory path for the current . - - - Gets the base directory for this . - - - The value returned may be either a local file path or a URI. - - - - - - Gets the path to the configuration file for the current . - - The path to the configuration file for the current . - - - The .NET Compact Framework 1.0 does not have a concept of a configuration - file. For this runtime, we use the entry assembly location as the root for - the configuration file name. - - - The value returned may be either a local file path or a URI. - - - - - - Gets the path to the file that first executed in the current . - - The path to the entry assembly. - - - Gets the path to the file that first executed in the current . - - - - - - Gets the ID of the current thread. - - The ID of the current thread. - - - On the .NET framework, the AppDomain.GetCurrentThreadId method - is used to obtain the thread ID for the current thread. This is the - operating system ID for the thread. - - - On the .NET Compact Framework 1.0 it is not possible to get the - operating system thread ID for the current thread. The native method - GetCurrentThreadId is implemented inline in a header file - and cannot be called. - - - On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this - gives a stable id unrelated to the operating system thread ID which may - change if the runtime is using fibers. - - - - - - Get the host name or machine name for the current machine - - - The hostname or machine name - - - - Get the host name or machine name for the current machine - - - The host name () or - the machine name (Environment.MachineName) for - the current machine, or if neither of these are available - then NOT AVAILABLE is returned. - - - - - - Get this application's friendly name - - - The friendly name of this application as a string - - - - If available the name of the application is retrieved from - the AppDomain using AppDomain.CurrentDomain.FriendlyName. - - - Otherwise the file name of the entry assembly is used. - - - - - - Get the start time for the current process. - - - - This is the time at which the log4net library was loaded into the - AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime - this is not the start time for the current process. - - - The log4net library should be loaded by an application early during its - startup, therefore this start time should be a good approximation for - the actual start time. - - - Note that AppDomains may be loaded and unloaded within the - same process without the process terminating, however this start time - will be set per AppDomain. - - - - - - Text to output when a null is encountered. - - - - Use this value to indicate a null has been encountered while - outputting a string representation of an item. - - - The default value is (null). This value can be overridden by specifying - a value for the log4net.NullText appSetting in the application's - .config file. - - - - - - Text to output when an unsupported feature is requested. - - - - Use this value when an unsupported feature is requested. - - - The default value is NOT AVAILABLE. This value can be overridden by specifying - a value for the log4net.NotAvailableText appSetting in the application's - .config file. - - - - - - Utility class that represents a format string. - - - - Utility class that represents a format string. - - - Nicko Cadell - - - - Initialise the - - An that supplies culture-specific formatting information. - A containing zero or more format items. - An array containing zero or more objects to format. - - - - Format the string and arguments - - the formatted string - - - - Replaces the format item in a specified with the text equivalent - of the value of a corresponding instance in a specified array. - A specified parameter supplies culture-specific formatting information. - - An that supplies culture-specific formatting information. - A containing zero or more format items. - An array containing zero or more objects to format. - - A copy of format in which the format items have been replaced by the - equivalent of the corresponding instances of in args. - - - - This method does not throw exceptions. If an exception thrown while formatting the result the - exception and arguments are returned in the result string. - - - - - - Process an error during StringFormat - - - - - Dump the contents of an array into a string builder - - - - - Dump an object to a string - - - - - The fully qualified type of the SystemStringFormat class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Implementation of Properties collection for the - - - - Class implements a collection of properties that is specific to each thread. - The class is not synchronized as each thread has its own . - - - Nicko Cadell - - - - The thread local data slot to use to store a PropertiesDictionary. - - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property - - the key for the entry to remove - - - Remove a property - - - - - - Clear all properties - - - - Clear all properties - - - - - - Get the PropertiesDictionary for this thread. - - create the dictionary if it does not exist, otherwise return null if is does not exist - the properties for this thread - - - The collection returned is only to be used on the calling thread. If the - caller needs to share the collection between different threads then the - caller must clone the collection before doing so. - - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Gets or sets the value of a property - - - - - - Implementation of Stack for the - - - - Implementation of Stack for the - - - Nicko Cadell - - - - The stack store. - - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - Clears all the contextual information held in this stack. - - - - Clears all the contextual information held in this stack. - Only call this if you think that this tread is being reused after - a previous call execution which may not have completed correctly. - You do not need to use this method if you always guarantee to call - the method of the - returned from even in exceptional circumstances, - for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) - syntax. - - - - - - Removes the top context from this stack. - - The message in the context that was removed from the top of this stack. - - - Remove the top context from this stack, and return - it to the caller. If this stack is empty then an - empty string (not ) is returned. - - - - - - Pushes a new context message into this stack. - - The new context message. - - An that can be used to clean up the context stack. - - - - Pushes a new context onto this stack. An - is returned that can be used to clean up this stack. This - can be easily combined with the using keyword to scope the - context. - - - Simple example of using the Push method with the using keyword. - - using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) - { - log.Warn("This should have an ThreadContext Stack message"); - } - - - - - - Gets the current context information for this stack. - - The current context information. - - - - Gets the current context information for this stack. - - Gets the current context information - - - Gets the current context information for this stack. - - - - - - Get a portable version of this object - - the portable instance of this object - - - Get a cross thread portable version of this object - - - - - - The number of messages in the stack - - - The current number of messages in the stack - - - - The current number of messages in the stack. That is - the number of times has been called - minus the number of times has been called. - - - - - - Gets and sets the internal stack used by this - - The internal storage stack - - - This property is provided only to support backward compatability - of the . Tytpically the internal stack should not - be modified. - - - - - - Inner class used to represent a single context frame in the stack. - - - - Inner class used to represent a single context frame in the stack. - - - - - - Constructor - - The message for this context. - The parent context in the chain. - - - Initializes a new instance of the class - with the specified message and parent context. - - - - - - Get the message. - - The message. - - - Get the message. - - - - - - Gets the full text of the context down to the root level. - - - The full text of the context down to the root level. - - - - Gets the full text of the context down to the root level. - - - - - - Struct returned from the method. - - - - This struct implements the and is designed to be used - with the pattern to remove the stack frame at the end of the scope. - - - - - - The ThreadContextStack internal stack - - - - - The depth to trim the stack to when this instance is disposed - - - - - Constructor - - The internal stack used by the ThreadContextStack. - The depth to return the stack to when this object is disposed. - - - Initializes a new instance of the class with - the specified stack and return depth. - - - - - - Returns the stack to the correct depth. - - - - Returns the stack to the correct depth. - - - - - - Implementation of Stacks collection for the - - - - Implementation of Stacks collection for the - - - Nicko Cadell - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - The fully qualified type of the ThreadContextStacks class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the named thread context stack - - - The named stack - - - - Gets the named thread context stack - - - - - - Utility class for transforming strings. - - - - Utility class for transforming strings. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Write a string to an - - the writer to write to - the string to write - The string to replace non XML compliant chars with - - - The test is escaped either using XML escape entities - or using CDATA sections. - - - - - - Replace invalid XML characters in text string - - the XML text input string - the string to use in place of invalid characters - A string that does not contain invalid XML characters. - - - Certain Unicode code points are not allowed in the XML InfoSet, for - details see: http://www.w3.org/TR/REC-xml/#charsets. - - - This method replaces any illegal characters in the input string - with the mask string specified. - - - - - - Count the number of times that the substring occurs in the text - - the text to search - the substring to find - the number of times the substring occurs in the text - - - The substring is assumed to be non repeating within itself. - - - - - - Characters illegal in XML 1.0 - - - - - Impersonate a Windows Account - - - - This impersonates a Windows account. - - - How the impersonation is done depends on the value of . - This allows the context to either impersonate a set of user credentials specified - using username, domain name and password or to revert to the process credentials. - - - - - - Default constructor - - - - Default constructor - - - - - - Initialize the SecurityContext based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The security context will try to Logon the specified user account and - capture a primary token for impersonation. - - - The required , - or properties were not specified. - - - - Impersonate the Windows account specified by the and properties. - - caller provided state - - An instance that will revoke the impersonation of this SecurityContext - - - - Depending on the property either - impersonate a user using credentials supplied or revert - to the process credentials. - - - - - - Create a given the userName, domainName and password. - - the user name - the domain name - the password - the for the account specified - - - Uses the Windows API call LogonUser to get a principal token for the account. This - token is used to initialize the WindowsIdentity. - - - - - - Gets or sets the impersonation mode for this security context - - - The impersonation mode for this security context - - - - Impersonate either a user with user credentials or - revert this thread to the credentials of the process. - The value is one of the - enum. - - - The default value is - - - When the mode is set to - the user's credentials are established using the - , and - values. - - - When the mode is set to - no other properties need to be set. If the calling thread is - impersonating then it will be reverted back to the process credentials. - - - - - - Gets or sets the Windows username for this security context - - - The Windows username for this security context - - - - This property must be set if - is set to (the default setting). - - - - - - Gets or sets the Windows domain name for this security context - - - The Windows domain name for this security context - - - - The default value for is the local machine name - taken from the property. - - - This property must be set if - is set to (the default setting). - - - - - - Sets the password for the Windows account specified by the and properties. - - - The password for the Windows account specified by the and properties. - - - - This property must be set if - is set to (the default setting). - - - - - - The impersonation modes for the - - - - See the property for - details. - - - - - - Impersonate a user using the credentials supplied - - - - - Revert this the thread to the credentials of the process - - - - - Adds to - - - - Helper class to expose the - through the interface. - - - - - - Constructor - - the impersonation context being wrapped - - - Constructor - - - - - - Revert the impersonation - - - - Revert the impersonation - - - - - - The log4net Global Context. - - - - The GlobalContext provides a location for global debugging - information to be stored. - - - The global context has a properties map and these properties can - be included in the output of log messages. The - supports selecting and outputing these properties. - - - By default the log4net:HostName property is set to the name of - the current machine. - - - - - GlobalContext.Properties["hostname"] = Environment.MachineName; - - - - Nicko Cadell - - - - Private Constructor. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - The global context properties instance - - - - - The global properties map. - - - The global properties map. - - - - The global properties map. - - - - - - Provides information about the environment the assembly has - been built for. - - - - Version of the assembly - - - Version of the framework targeted - - - Type of framework targeted - - - Does it target a client profile? - - - - Identifies the version and target for this assembly. - - - - - The log4net Logical Thread Context. - - - - The LogicalThreadContext provides a location for specific debugging - information to be stored. - The LogicalThreadContext properties override any or - properties with the same name. - - - The Logical Thread Context has a properties map and a stack. - The properties and stack can - be included in the output of log messages. The - supports selecting and outputting these properties. - - - The Logical Thread Context provides a diagnostic context for the current call context. - This is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The Logical Thread Context is managed on a per basis. - - - The requires a link time - for the - . - If the calling code does not have this permission then this context will be disabled. - It will not store any property values set on it. - - - Example of using the thread context properties to store a username. - - LogicalThreadContext.Properties["user"] = userName; - log.Info("This log message has a LogicalThreadContext Property called 'user'"); - - - Example of how to push a message into the context stack - - using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) - { - log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); - - } // at the end of the using block the message is automatically popped - - - - Nicko Cadell - - - - Private Constructor. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - The thread context properties instance - - - - - The thread context stacks instance - - - - - The thread properties map - - - The thread properties map - - - - The LogicalThreadContext properties override any - or properties with the same name. - - - - - - The thread stacks - - - stack map - - - - The logical thread stacks. - - - - - - This class is used by client applications to request logger instances. - - - - This class has static methods that are used by a client to request - a logger instance. The method is - used to retrieve a logger. - - - See the interface for more details. - - - Simple example of logging messages - - ILog log = LogManager.GetLogger("application-log"); - - log.Info("Application Start"); - log.Debug("This is a debug message"); - - if (log.IsDebugEnabled) - { - log.Debug("This is another debug message"); - } - - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - Returns the named logger if it exists. - - Returns the named logger if it exists. - - - - If the named logger exists (in the default repository) then it - returns a reference to the logger, otherwise it returns null. - - - The fully qualified logger name to look for. - The logger found, or null if no logger could be found. - - - - Returns the named logger if it exists. - - - - If the named logger exists (in the specified repository) then it - returns a reference to the logger, otherwise it returns - null. - - - The repository to lookup in. - The fully qualified logger name to look for. - - The logger found, or null if the logger doesn't exist in the specified - repository. - - - - - Returns the named logger if it exists. - - - - If the named logger exists (in the repository for the specified assembly) then it - returns a reference to the logger, otherwise it returns - null. - - - The assembly to use to lookup the repository. - The fully qualified logger name to look for. - - The logger, or null if the logger doesn't exist in the specified - assembly's repository. - - - - Get the currently defined loggers. - - Returns all the currently defined loggers in the default repository. - - - The root logger is not included in the returned array. - - All the defined loggers. - - - - Returns all the currently defined loggers in the specified repository. - - The repository to lookup in. - - The root logger is not included in the returned array. - - All the defined loggers. - - - - Returns all the currently defined loggers in the specified assembly's repository. - - The assembly to use to lookup the repository. - - The root logger is not included in the returned array. - - All the defined loggers. - - - Get or create a logger. - - Retrieves or creates a named logger. - - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The name of the logger to retrieve. - The logger with the name specified. - - - - Retrieves or creates a named logger. - - - - Retrieve a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The repository to lookup in. - The name of the logger to retrieve. - The logger with the name specified. - - - - Retrieves or creates a named logger. - - - - Retrieve a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The assembly to use to lookup the repository. - The name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Get the logger for the fully qualified name of the type specified. - - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Gets the logger for the fully qualified name of the type specified. - - The repository to lookup in. - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Gets the logger for the fully qualified name of the type specified. - - The assembly to use to lookup the repository. - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shuts down the log4net system. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in all the - default repositories. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - Shutdown a logger repository. - - Shuts down the default repository. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - default repository. - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - The repository to shutdown. - - - - Shuts down the repository specified. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository. The repository is looked up using - the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - The assembly to use to lookup the repository. - - - Reset the configuration of a repository - - Resets all values contained in this repository instance to their defaults. - - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - - - - Resets all values contained in this repository instance to their defaults. - - - - Reset all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - The repository to reset. - - - - Resets all values contained in this repository instance to their defaults. - - - - Reset all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - The assembly to use to lookup the repository to reset. - - - Get the logger repository. - - Returns the default instance. - - - - Gets the for the repository specified - by the callers assembly (). - - - The instance for the default repository. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The repository to lookup in. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The assembly to use to lookup the repository. - - - Get a logger repository. - - Returns the default instance. - - - - Gets the for the repository specified - by the callers assembly (). - - - The instance for the default repository. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The repository to lookup in. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The assembly to use to lookup the repository. - - - Create a domain - - Creates a repository with the specified repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to will return - the same repository instance. - - - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - Create a logger repository. - - Creates a repository with the specified repository type. - - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The created will be associated with the repository - specified such that a call to will return - the same repository instance. - - - - - - Creates a repository with the specified name. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name. - - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - The specified repository already exists. - - - - Creates a repository for the specified assembly and repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - - Creates a repository for the specified assembly and repository type. - - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - - Gets the list of currently defined repositories. - - - - Get an array of all the objects that have been created. - - - An array of all the known objects. - - - - Looks up the wrapper object for the logger specified. - - The logger to get the wrapper for. - The wrapper for the logger specified. - - - - Looks up the wrapper objects for the loggers specified. - - The loggers to get the wrappers for. - The wrapper objects for the loggers specified. - - - - Create the objects used by - this manager. - - The logger to wrap. - The wrapper for the logger specified. - - - - The wrapper map to use to hold the objects. - - - - - Implementation of Mapped Diagnostic Contexts. - - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - The MDC class is similar to the class except that it is - based on a map instead of a stack. It provides mapped - diagnostic contexts. A Mapped Diagnostic Context, or - MDC in short, is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The MDC is managed on a per thread basis. - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - Gets the context value identified by the parameter. - - The key to lookup in the MDC. - The string value held for the key, or a null reference if no corresponding value is found. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - If the parameter does not look up to a - previously defined context then null will be returned. - - - - - - Add an entry to the MDC - - The key to store the value under. - The value to store. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Puts a context value (the parameter) as identified - with the parameter into the current thread's - context map. - - - If a value is already defined for the - specified then the value will be replaced. If the - is specified as null then the key value mapping will be removed. - - - - - - Removes the key value mapping for the key specified. - - The key to remove. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Remove the specified entry from this thread's MDC - - - - - - Clear all entries in the MDC - - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Remove all the entries from this thread's MDC - - - - - - Implementation of Nested Diagnostic Contexts. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - A Nested Diagnostic Context, or NDC in short, is an instrument - to distinguish interleaved log output from different sources. Log - output is typically interleaved when a server handles multiple - clients near-simultaneously. - - - Interleaved log output can still be meaningful if each log entry - from different contexts had a distinctive stamp. This is where NDCs - come into play. - - - Note that NDCs are managed on a per thread basis. The NDC class - is made up of static methods that operate on the context of the - calling thread. - - - How to push a message into the context - - using(NDC.Push("my context message")) - { - ... all log calls will have 'my context message' included ... - - } // at the end of the using block the message is automatically removed - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - Clears all the contextual information held on the current thread. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Clears the stack of NDC data held on the current thread. - - - - - - Creates a clone of the stack of context information. - - A clone of the context info for this thread. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - The results of this method can be passed to the - method to allow child threads to inherit the context of their - parent thread. - - - - - - Inherits the contextual information from another thread. - - The context stack to inherit. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - This thread will use the context information from the stack - supplied. This can be used to initialize child threads with - the same contextual information as their parent threads. These - contexts will NOT be shared. Any further contexts that - are pushed onto the stack will not be visible to the other. - Call to obtain a stack to pass to - this method. - - - - - - Removes the top context from the stack. - - - The message in the context that was removed from the top - of the stack. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Remove the top context from the stack, and return - it to the caller. If the stack is empty then an - empty string (not null) is returned. - - - - - - Pushes a new context message. - - The new context message. - - An that can be used to clean up - the context stack. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Pushes a new context onto the context stack. An - is returned that can be used to clean up the context stack. This - can be easily combined with the using keyword to scope the - context. - - - Simple example of using the Push method with the using keyword. - - using(log4net.NDC.Push("NDC_Message")) - { - log.Warn("This should have an NDC message"); - } - - - - - - Removes the context information for this thread. It is - not required to call this method. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - This method is not implemented. - - - - - - Forces the stack depth to be at most . - - The maximum depth of the stack - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Forces the stack depth to be at most . - This may truncate the head of the stack. This only affects the - stack in the current thread. Also it does not prevent it from - growing, it only sets the maximum depth at the time of the - call. This can be used to return to a known context depth. - - - - - - Gets the current context depth. - - The current context depth. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - The number of context values pushed onto the context stack. - - - Used to record the current depth of the context. This can then - be restored using the method. - - - - - - - The log4net Thread Context. - - - - The ThreadContext provides a location for thread specific debugging - information to be stored. - The ThreadContext properties override any - properties with the same name. - - - The thread context has a properties map and a stack. - The properties and stack can - be included in the output of log messages. The - supports selecting and outputting these properties. - - - The Thread Context provides a diagnostic context for the current thread. - This is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The Thread Context is managed on a per thread basis. - - - Example of using the thread context properties to store a username. - - ThreadContext.Properties["user"] = userName; - log.Info("This log message has a ThreadContext Property called 'user'"); - - - Example of how to push a message into the context stack - - using(ThreadContext.Stacks["NDC"].Push("my context message")) - { - log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); - - } // at the end of the using block the message is automatically popped - - - - Nicko Cadell - - - - Private Constructor. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - The thread context properties instance - - - - - The thread context stacks instance - - - - - The thread properties map - - - The thread properties map - - - - The ThreadContext properties override any - properties with the same name. - - - - - - The thread stacks - - - stack map - - - - The thread local stacks. - - - - - diff --git a/source/packages/log4net.2.0.0/lib/net35-full/log4net.dll b/source/packages/log4net.2.0.0/lib/net35-full/log4net.dll deleted file mode 100644 index 06e778c66da2f126d4e319a59925d8a68e6bd52a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 299008 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%0A7xJarZ4qN%IYfqV=6F3h2DxjJ1e-f+S-h=$>a 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

    lx@wQ?**07sjLT(w1rU*n2aVnLrUL!KP4}1elbm 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 diff --git a/source/packages/log4net.2.0.0/lib/net35-full/log4net.xml b/source/packages/log4net.2.0.0/lib/net35-full/log4net.xml deleted file mode 100644 index de8317a..0000000 --- a/source/packages/log4net.2.0.0/lib/net35-full/log4net.xml +++ /dev/null @@ -1,30205 +0,0 @@ - - - - log4net - - - -

    - Appender that logs to a database. - - - - appends logging events to a table within a - database. The appender can be configured to specify the connection - string by setting the property. - The connection type (provider) can be specified by setting the - property. For more information on database connection strings for - your specific database see
    http://www.connectionstrings.com/. - - - Records are written into the database either using a prepared - statement or a stored procedure. The property - is set to (System.Data.CommandType.Text) to specify a prepared statement - or to (System.Data.CommandType.StoredProcedure) to specify a stored - procedure. - - - The prepared statement text or the name of the stored procedure - must be set in the property. - - - The prepared statement or stored procedure can take a number - of parameters. Parameters are added using the - method. This adds a single to the - ordered list of parameters. The - type may be subclassed if required to provide database specific - functionality. The specifies - the parameter name, database type, size, and how the value should - be generated using a . - - - - An example of a SQL Server table that could be logged to: - - CREATE TABLE [dbo].[Log] ( - [ID] [int] IDENTITY (1, 1) NOT NULL , - [Date] [datetime] NOT NULL , - [Thread] [varchar] (255) NOT NULL , - [Level] [varchar] (20) NOT NULL , - [Logger] [varchar] (255) NOT NULL , - [Message] [varchar] (4000) NOT NULL - ) ON [PRIMARY] - - - - An example configuration to log to the above table: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Julian Biddle - Nicko Cadell - Gert Driesen - Lance Nehring - - - - Abstract base class implementation of that - buffers events in a fixed size buffer. - - - - This base class should be used by appenders that need to buffer a - number of events before logging them. For example the - buffers events and then submits the entire contents of the buffer to - the underlying database in one go. - - - Subclasses should override the - method to deliver the buffered events. - - The BufferingAppenderSkeleton maintains a fixed size cyclic - buffer of events. The size of the buffer is set using - the property. - - A is used to inspect - each event as it arrives in the appender. If the - triggers, then the current buffer is sent immediately - (see ). Otherwise the event - is stored in the buffer. For example, an evaluator can be used to - deliver the events immediately when an ERROR event arrives. - - - The buffering appender can be configured in a mode. - By default the appender is NOT lossy. When the buffer is full all - the buffered events are sent with . - If the property is set to true then the - buffer will not be sent when it is full, and new events arriving - in the appender will overwrite the oldest event in the buffer. - In lossy mode the buffer will only be sent when the - triggers. This can be useful behavior when you need to know about - ERROR events but not about events with a lower level, configure an - evaluator that will trigger when an ERROR event arrives, the whole - buffer will be sent which gives a history of events leading up to - the ERROR event. - - - Nicko Cadell - Gert Driesen - - - - Abstract base class implementation of . - - - - This class provides the code for common functionality, such - as support for threshold filtering and support for general filters. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface for your own strategies for printing log statements. - - - - Implementors should consider extending the - class which provides a default implementation of this interface. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Log the logging event in Appender specific way. - - The event to log - - - This method is called to log a message into this appender. - - - - - - Gets or sets the name of this appender. - - The name of the appender. - - The name uniquely identifies the appender. - - - - - Interface for appenders that support bulk logging. - - - - This interface extends the interface to - support bulk logging of objects. Appenders - should only implement this interface if they can bulk log efficiently. - - - Nicko Cadell - - - - Log the array of logging events in Appender specific way. - - The events to log - - - This method is called to log an array of events into this appender. - - - - - - Interface used to delay activate a configured object. - - - - This allows an object to defer activation of its options until all - options have been set. This is required for components which have - related options that remain ambiguous until all are set. - - - If a component implements this interface then the method - must be called by the container after its all the configured properties have been set - and before the component can be used. - - - Nicko Cadell - - - - Activate the options that were previously set with calls to properties. - - - - This allows an object to defer activation of its options until all - options have been set. This is required for components which have - related options that remain ambiguous until all are set. - - - If a component implements this interface then this method must be called - after its properties have been set before the component can be used. - - - - - - Initial buffer size - - - - - Maximum buffer size before it is recycled - - - - - Default constructor - - - Empty default constructor - - - - - Finalizes this appender by calling the implementation's - method. - - - - If this appender has not been closed then the Finalize method - will call . - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Closes the appender and release resources. - - - - Release any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - This method cannot be overridden by subclasses. This method - delegates the closing of the appender to the - method which must be overridden in the subclass. - - - - - - Performs threshold checks and invokes filters before - delegating actual logging to the subclasses specific - method. - - The event to log. - - - This method cannot be overridden by derived classes. A - derived class should override the method - which is called by this method. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - Calls and checks that - it returns true. - - - - - If all of the above steps succeed then the - will be passed to the abstract method. - - - - - - Performs threshold checks and invokes filters before - delegating actual logging to the subclasses specific - method. - - The array of events to log. - - - This method cannot be overridden by derived classes. A - derived class should override the method - which is called by this method. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - Calls and checks that - it returns true. - - - - - If all of the above steps succeed then the - will be passed to the method. - - - - - - Test if the logging event should we output by this appender - - the event to test - true if the event should be output, false if the event should be ignored - - - This method checks the logging event against the threshold level set - on this appender and also against the filters specified on this - appender. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - - - - - Adds a filter to the end of the filter chain. - - the filter to add to this appender - - - The Filters are organized in a linked list. - - - Setting this property causes the new filter to be pushed onto the - back of the filter chain. - - - - - - Clears the filter list for this appender. - - - - Clears the filter list for this appender. - - - - - - Checks if the message level is below this appender's threshold. - - to test against. - - - If there is no threshold set, then the return value is always true. - - - - true if the meets the - requirements of this appender. - - - - - Is called when the appender is closed. Derived classes should override - this method if resources need to be released. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Subclasses of should implement this method - to perform actual logging. - - The event to append. - - - A subclass must implement this method to perform - logging of the . - - This method will be called by - if all the conditions listed for that method are met. - - - To restrict the logging of events in the appender - override the method. - - - - - - Append a bulk array of logging events. - - the array of logging events - - - This base class implementation calls the - method for each element in the bulk array. - - - A sub class that can better process a bulk array of events should - override this method in addition to . - - - - - - Called before as a precondition. - - - - This method is called by - before the call to the abstract method. - - - This method can be overridden in a subclass to extend the checks - made before the event is passed to the method. - - - A subclass should ensure that they delegate this call to - this base class if it is overridden. - - - true if the call to should proceed. - - - - Renders the to a string. - - The event to render. - The event rendered as a string. - - - Helper method to render a to - a string. This appender must have a - set to render the to - a string. - - If there is exception data in the logging event and - the layout does not process the exception, this method - will append the exception text to the rendered string. - - - Where possible use the alternative version of this method - . - That method streams the rendering onto an existing Writer - which can give better performance if the caller already has - a open and ready for writing. - - - - - - Renders the to a string. - - The event to render. - The TextWriter to write the formatted event to - - - Helper method to render a to - a string. This appender must have a - set to render the to - a string. - - If there is exception data in the logging event and - the layout does not process the exception, this method - will append the exception text to the rendered string. - - - Use this method in preference to - where possible. If, however, the caller needs to render the event - to a string then does - provide an efficient mechanism for doing so. - - - - - - The layout of this appender. - - - See for more information. - - - - - The name of this appender. - - - See for more information. - - - - - The level threshold of this appender. - - - - There is no level threshold filtering by default. - - - See for more information. - - - - - - It is assumed and enforced that errorHandler is never null. - - - - It is assumed and enforced that errorHandler is never null. - - - See for more information. - - - - - - The first filter in the filter chain. - - - - Set to null initially. - - - See for more information. - - - - - - The last filter in the filter chain. - - - See for more information. - - - - - Flag indicating if this appender is closed. - - - See for more information. - - - - - The guard prevents an appender from repeatedly calling its own DoAppend method - - - - - StringWriter used to render events - - - - - The fully qualified type of the AppenderSkeleton class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the threshold of this appender. - - - The threshold of the appender. - - - - All log events with lower level than the threshold level are ignored - by the appender. - - - In configuration files this option is specified by setting the - value of the option to a level - string, such as "DEBUG", "INFO" and so on. - - - - - - Gets or sets the for this appender. - - The of the appender - - - The provides a default - implementation for the property. - - - - - - The filter chain. - - The head of the filter chain filter chain. - - - Returns the head Filter. The Filters are organized in a linked list - and so all Filters on this Appender are available through the result. - - - - - - Gets or sets the for this appender. - - The layout of the appender. - - - See for more information. - - - - - - - Gets or sets the name of this appender. - - The name of the appender. - - - The name uniquely identifies the appender. - - - - - - Tests if this appender requires a to be set. - - - - In the rather exceptional case, where the appender - implementation admits a layout but can also work without it, - then the appender should return true. - - - This default implementation always returns false. - - - - true if the appender requires a layout object, otherwise false. - - - - - The default buffer size. - - - The default size of the cyclic buffer used to store events. - This is set to 512 by default. - - - - - Initializes a new instance of the class. - - - - Protected default constructor to allow subclassing. - - - - - - Initializes a new instance of the class. - - the events passed through this appender must be - fixed by the time that they arrive in the derived class' SendBuffer method. - - - Protected constructor to allow subclassing. - - - The should be set if the subclass - expects the events delivered to be fixed even if the - is set to zero, i.e. when no buffering occurs. - - - - - - Flush the currently buffered events - - - - Flushes any events that have been buffered. - - - If the appender is buffering in mode then the contents - of the buffer will NOT be flushed to the appender. - - - - - - Flush the currently buffered events - - set to true to flush the buffer of lossy events - - - Flushes events that have been buffered. If is - false then events will only be flushed if this buffer is non-lossy mode. - - - If the appender is buffering in mode then the contents - of the buffer will only be flushed if is true. - In this case the contents of the buffer will be tested against the - and if triggering will be output. All other buffered - events will be discarded. - - - If is true then the buffer will always - be emptied by calling this method. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Close this appender instance. - - - - Close this appender instance. If this appender is marked - as not then the remaining events in - the buffer must be sent when the appender is closed. - - - - - - This method is called by the method. - - the event to log - - - Stores the in the cyclic buffer. - - - The buffer will be sent (i.e. passed to the - method) if one of the following conditions is met: - - - - The cyclic buffer is full and this appender is - marked as not lossy (see ) - - - An is set and - it is triggered for the - specified. - - - - Before the event is stored in the buffer it is fixed - (see ) to ensure that - any data referenced by the event will be valid when the buffer - is processed. - - - - - - Sends the contents of the buffer. - - The first logging event. - The buffer containing the events that need to be send. - - - The subclass must override . - - - - - - Sends the events. - - The events that need to be send. - - - The subclass must override this method to process the buffered events. - - - - - - The size of the cyclic buffer used to hold the logging events. - - - Set to by default. - - - - - The cyclic buffer used to store the logging events. - - - - - The triggering event evaluator that causes the buffer to be sent immediately. - - - The object that is used to determine if an event causes the entire - buffer to be sent immediately. This field can be null, which - indicates that event triggering is not to be done. The evaluator - can be set using the property. If this appender - has the ( property) set to - true then an must be set. - - - - - Indicates if the appender should overwrite events in the cyclic buffer - when it becomes full, or if the buffer should be flushed when the - buffer is full. - - - If this field is set to true then an must - be set. - - - - - The triggering event evaluator filters discarded events. - - - The object that is used to determine if an event that is discarded should - really be discarded or if it should be sent to the appenders. - This field can be null, which indicates that all discarded events will - be discarded. - - - - - Value indicating which fields in the event should be fixed - - - By default all fields are fixed - - - - - The events delivered to the subclass must be fixed. - - - - - Gets or sets a value that indicates whether the appender is lossy. - - - true if the appender is lossy, otherwise false. The default is false. - - - - This appender uses a buffer to store logging events before - delivering them. A triggering event causes the whole buffer - to be send to the remote sink. If the buffer overruns before - a triggering event then logging events could be lost. Set - to false to prevent logging events - from being lost. - - If is set to true then an - must be specified. - - - - - Gets or sets the size of the cyclic buffer used to hold the - logging events. - - - The size of the cyclic buffer used to hold the logging events. - - - - The option takes a positive integer - representing the maximum number of logging events to collect in - a cyclic buffer. When the is reached, - oldest events are deleted as new events are added to the - buffer. By default the size of the cyclic buffer is 512 events. - - - If the is set to a value less than - or equal to 1 then no buffering will occur. The logging event - will be delivered synchronously (depending on the - and properties). Otherwise the event will - be buffered. - - - - - - Gets or sets the that causes the - buffer to be sent immediately. - - - The that causes the buffer to be - sent immediately. - - - - The evaluator will be called for each event that is appended to this - appender. If the evaluator triggers then the current buffer will - immediately be sent (see ). - - If is set to true then an - must be specified. - - - - - Gets or sets the value of the to use. - - - The value of the to use. - - - - The evaluator will be called for each event that is discarded from this - appender. If the evaluator triggers then the current buffer will immediately - be sent (see ). - - - - - - Gets or sets a value indicating if only part of the logging event data - should be fixed. - - - true if the appender should only fix part of the logging event - data, otherwise false. The default is false. - - - - Setting this property to true will cause only part of the - event data to be fixed and serialized. This will improve performance. - - - See for more information. - - - - - - Gets or sets a the fields that will be fixed in the event - - - The event fields that will be fixed before the event is buffered - - - - The logging event needs to have certain thread specific values - captured before it can be buffered. See - for details. - - - - - - - Initializes a new instance of the class. - - - Public default constructor to initialize a new instance of this class. - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Override the parent method to close the database - - - - Closes the database command and database connection. - - - - - - Inserts the events into the database. - - The events to insert into the database. - - - Insert all the events specified in the - array into the database. - - - - - - Adds a parameter to the command. - - The parameter to add to the command. - - - Adds a parameter to the ordered list of command parameters. - - - - - - Writes the events to the database using the transaction specified. - - The transaction that the events will be executed under. - The array of events to insert into the database. - - - The transaction argument can be null if the appender has been - configured not to use transactions. See - property for more information. - - - - - - Formats the log message into database statement text. - - The event being logged. - - This method can be overridden by subclasses to provide - more control over the format of the database statement. - - - Text that can be passed to a . - - - - - Creates an instance used to connect to the database. - - - This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). - - The of the object. - The connectionString output from the ResolveConnectionString method. - An instance with a valid connection string. - - - - Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey - property. - - - ConnectiongStringName is only supported on .NET 2.0 and higher. - - Additional information describing the connection string. - A connection string used to connect to the database. - - - - Retrieves the class type of the ADO.NET provider. - - - - Gets the Type of the ADO.NET provider to use to connect to the - database. This method resolves the type specified in the - property. - - - Subclasses can override this method to return a different type - if necessary. - - - The of the ADO.NET provider - - - - Prepares the database command and initialize the parameters. - - - - - Connects to the database. - - - - - Cleanup the existing command. - - - If true, a message will be written using LogLog.Warn if an exception is encountered when calling Dispose. - - - - - Cleanup the existing connection. - - - Calls the IDbConnection's method. - - - - - Flag to indicate if we are using a command object - - - - Set to true when the appender is to use a prepared - statement or stored procedure to insert into the database. - - - - - - The list of objects. - - - - The list of objects. - - - - - - The security context to use for privileged calls - - - - - The that will be used - to insert logging events into a database. - - - - - The database command. - - - - - Database connection string. - - - - - The appSettings key from App.Config that contains the connection string. - - - - - The connectionStrings key from App.Config that contains the connection string. - - - - - String type name of the type name. - - - - - The text of the command. - - - - - The command type. - - - - - Indicates whether to use transactions when writing to the database. - - - - - Indicates whether to use transactions when writing to the database. - - - - - The fully qualified type of the AdoNetAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the database connection string that is used to connect to - the database. - - - The database connection string used to connect to the database. - - - - The connections string is specific to the connection type. - See for more information. - - - Connection string for MS Access via ODBC: - "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" - - Another connection string for MS Access via ODBC: - "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" - - Connection string for MS Access via OLE DB: - "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" - - - - - The appSettings key from App.Config that contains the connection string. - - - - - The connectionStrings key from App.Config that contains the connection string. - - - This property requires at least .NET 2.0. - - - - - Gets or sets the type name of the connection - that should be created. - - - The type name of the connection. - - - - The type name of the ADO.NET provider to use. - - - The default is to use the OLE DB provider. - - - Use the OLE DB Provider. This is the default value. - System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Use the MS SQL Server Provider. - System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Use the ODBC Provider. - Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral - This is an optional package that you can download from - http://msdn.microsoft.com/downloads - search for ODBC .NET Data Provider. - - Use the Oracle Provider. - System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - This is an optional package that you can download from - http://msdn.microsoft.com/downloads - search for .NET Managed Provider for Oracle. - - - - - Gets or sets the command text that is used to insert logging events - into the database. - - - The command text used to insert logging events into the database. - - - - Either the text of the prepared statement or the - name of the stored procedure to execute to write into - the database. - - - The property determines if - this text is a prepared statement or a stored procedure. - - - - - - Gets or sets the command type to execute. - - - The command type to execute. - - - - This value may be either (System.Data.CommandType.Text) to specify - that the is a prepared statement to execute, - or (System.Data.CommandType.StoredProcedure) to specify that the - property is the name of a stored procedure - to execute. - - - The default value is (System.Data.CommandType.Text). - - - - - - Should transactions be used to insert logging events in the database. - - - true if transactions should be used to insert logging events in - the database, otherwise false. The default value is true. - - - - Gets or sets a value that indicates whether transactions should be used - to insert logging events in the database. - - - When set a single transaction will be used to insert the buffered events - into the database. Otherwise each event will be inserted without using - an explicit transaction. - - - - - - Gets or sets the used to call the NetSend method. - - - The used to call the NetSend method. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Should this appender try to reconnect to the database on error. - - - true if the appender should try to reconnect to the database after an - error has occurred, otherwise false. The default value is false, - i.e. not to try to reconnect. - - - - The default behaviour is for the appender not to try to reconnect to the - database if an error occurs. Subsequent logging events are discarded. - - - To force the appender to attempt to reconnect to the database set this - property to true. - - - When the appender attempts to connect to the database there may be a - delay of up to the connection timeout specified in the connection string. - This delay will block the calling application's thread. - Until the connection can be reestablished this potential delay may occur multiple times. - - - - - - Gets or sets the underlying . - - - The underlying . - - - creates a to insert - logging events into a database. Classes deriving from - can use this property to get or set this . Use the - underlying returned from if - you require access beyond that which provides. - - - - - Parameter type used by the . - - - - This class provides the basic database parameter properties - as defined by the interface. - - This type can be subclassed to provide database specific - functionality. The two methods that are called externally are - and . - - - - - - Initializes a new instance of the class. - - - Default constructor for the AdoNetAppenderParameter class. - - - - - Prepare the specified database command object. - - The command to prepare. - - - Prepares the database command object by adding - this parameter to its collection of parameters. - - - - - - Renders the logging event and set the parameter value in the command. - - The command containing the parameter. - The event to be rendered. - - - Renders the logging event using this parameters layout - object. Sets the value of the parameter on the command object. - - - - - - The name of this parameter. - - - - - The database type for this parameter. - - - - - Flag to infer type rather than use the DbType - - - - - The precision for this parameter. - - - - - The scale for this parameter. - - - - - The size for this parameter. - - - - - The to use to render the - logging event into an object for this parameter. - - - - - Gets or sets the name of this parameter. - - - The name of this parameter. - - - - The name of this parameter. The parameter name - must match up to a named parameter to the SQL stored procedure - or prepared statement. - - - - - - Gets or sets the database type for this parameter. - - - The database type for this parameter. - - - - The database type for this parameter. This property should - be set to the database type from the - enumeration. See . - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the type from the value. - - - - - - - Gets or sets the precision for this parameter. - - - The precision for this parameter. - - - - The maximum number of digits used to represent the Value. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the precision from the value. - - - - - - - Gets or sets the scale for this parameter. - - - The scale for this parameter. - - - - The number of decimal places to which Value is resolved. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the scale from the value. - - - - - - - Gets or sets the size for this parameter. - - - The size for this parameter. - - - - The maximum size, in bytes, of the data within the column. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the size from the value. - - - - - - - Gets or sets the to use to - render the logging event into an object for this - parameter. - - - The used to render the - logging event into an object for this parameter. - - - - The that renders the value for this - parameter. - - - The can be used to adapt - any into a - for use in the property. - - - - - - Appends logging events to the terminal using ANSI color escape sequences. - - - - AnsiColorTerminalAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. It also allows the color of a specific level of message to be set. - - - This appender expects the terminal to understand the VT100 control set - in order to interpret the color codes. If the terminal or console does not - understand the control codes the behavior is not defined. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes each message to the System.Console.Out or - System.Console.Error that is set at the time the event is appended. - Therefore it is possible to programmatically redirect the output of this appender - (for example NUnit does this to capture program output). While this is the desired - behavior of this appender it may have security implications in your application. - - - When configuring the ANSI colored terminal appender, a mapping should be - specified to map a logging level to a color. For example: - - - - - - - - - - - - - - - The Level is the standard log4net logging level and ForeColor and BackColor can be any - of the following values: - - Blue - Green - Red - White - Yellow - Purple - Cyan - - These color values cannot be combined together to make new colors. - - - The attributes can be any combination of the following: - - Brightforeground is brighter - Dimforeground is dimmer - Underscoremessage is underlined - Blinkforeground is blinking (does not work on all terminals) - Reverseforeground and background are reversed - Hiddenoutput is hidden - Strikethroughmessage has a line through it - - While any of these attributes may be combined together not all combinations - work well together, for example setting both Bright and Dim attributes makes - no sense. - - - Patrick Wagstrom - Nicko Cadell - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Ansi code to reset terminal - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Add a mapping of level to color - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the foreground and background colours - for a level. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to color mappings set on this appender. - - - - - - Flag to write output to the error stream rather than the standard output stream - - - - - Mapping from level object to color value - - - - - Target is the value of the console output stream. - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The enum of possible display attributes - - - - The following flags can be combined together to - form the ANSI color attributes. - - - - - - - text is bright - - - - - text is dim - - - - - text is underlined - - - - - text is blinking - - - Not all terminals support this attribute - - - - - text and background colors are reversed - - - - - text is hidden - - - - - text is displayed with a strikethrough - - - - - The enum of possible foreground or background color values for - use with the color mapping method - - - - The output can be in one for the following ANSI colors. - - - - - - - color is black - - - - - color is red - - - - - color is green - - - - - color is yellow - - - - - color is blue - - - - - color is magenta - - - - - color is cyan - - - - - color is white - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and the color it should be displayed in. - - - - - - An entry in the - - - - This is an abstract base class for types that are stored in the - object. - - - Nicko Cadell - - - - Default protected constructor - - - - Default protected constructor - - - - - - Initialize any options defined on this entry - - - - Should be overridden by any classes that need to initialise based on their options - - - - - - The level that is the key for this mapping - - - The that is the key for this mapping - - - - Get or set the that is the key for this - mapping subclass. - - - - - - Initialize the options for the object - - - - Combine the and together - and append the attributes. - - - - - - The mapped foreground color for the specified level - - - - Required property. - The mapped foreground color for the specified level - - - - - - The mapped background color for the specified level - - - - Required property. - The mapped background color for the specified level - - - - - - The color attributes for the specified level - - - - Required property. - The color attributes for the specified level - - - - - - The combined , and - suitable for setting the ansi terminal color. - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a AppenderCollection instance. - - list to create a readonly wrapper arround - - An AppenderCollection wrapper that is read-only. - - - - - An empty readonly static AppenderCollection - - - - - Initializes a new instance of the AppenderCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the AppenderCollection class - that has the specified initial capacity. - - - The number of elements that the new AppenderCollection is initially capable of storing. - - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified AppenderCollection. - - The AppenderCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - - Copies the entire AppenderCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire AppenderCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the AppenderCollection. - - The to be added to the end of the AppenderCollection. - The index at which the value has been added. - - - - Removes all elements from the AppenderCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the AppenderCollection. - - The to check for. - true if is found in the AppenderCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the AppenderCollection. - - The to locate in the AppenderCollection. - - The zero-based index of the first occurrence of - in the entire AppenderCollection, if found; otherwise, -1. - - - - - Inserts an element into the AppenderCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the AppenderCollection. - - The to remove from the AppenderCollection. - - The specified was not found in the AppenderCollection. - - - - - Removes the element at the specified index of the AppenderCollection. - - The zero-based index of the element to remove. - - is less than zero - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the AppenderCollection. - - An for the entire AppenderCollection. - - - - Adds the elements of another AppenderCollection to the current AppenderCollection. - - The AppenderCollection whose elements should be added to the end of the current AppenderCollection. - The new of the AppenderCollection. - - - - Adds the elements of a array to the current AppenderCollection. - - The array whose elements should be added to the end of the AppenderCollection. - The new of the AppenderCollection. - - - - Adds the elements of a collection to the current AppenderCollection. - - The collection whose elements should be added to the end of the AppenderCollection. - The new of the AppenderCollection. - - - - Sets the capacity to the actual number of elements. - - - - - Return the collection elements as an array - - the array - - - - is less than zero - -or- - is equal to or greater than . - - - - - is less than zero - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the AppenderCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - The zero-based index of the element to get or set. - - is less than zero - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false - - - - Gets or sets the number of elements the AppenderCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - - A value - - - - - Supports simple iteration over a . - - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - - - - - Appends log events to the ASP.NET system. - - - - - Diagnostic information and tracing messages that you specify are appended to the output - of the page that is sent to the requesting browser. Optionally, you can view this information - from a separate trace viewer (Trace.axd) that displays trace information for every page in a - given application. - - - Trace statements are processed and displayed only when tracing is enabled. You can control - whether tracing is displayed to a page, to the trace viewer, or both. - - - The logging event is passed to the or - method depending on the level of the logging event. - The event's logger name is the default value for the category parameter of the Write/Warn method. - - - Nicko Cadell - Gert Driesen - Ron Grabowski - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Write the logging event to the ASP.NET trace - - the event to log - - - Write the logging event to the ASP.NET trace - HttpContext.Current.Trace - (). - - - - - - Defaults to %logger - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The category parameter sent to the Trace method. - - - - Defaults to %logger which will use the logger name of the current - as the category parameter. - - - - - - - - Buffers events and then forwards them to attached appenders. - - - - The events are buffered in this appender until conditions are - met to allow the appender to deliver the events to the attached - appenders. See for the - conditions that cause the buffer to be sent. - - The forwarding appender can be used to specify different - thresholds and filters for the same appender at different locations - within the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Interface for attaching appenders to objects. - - - - Interface for attaching, removing and retrieving appenders. - - - Nicko Cadell - Gert Driesen - - - - Attaches an appender. - - The appender to add. - - - Add the specified appender. The implementation may - choose to allow or deny duplicate appenders. - - - - - - Gets an attached appender with the specified name. - - The name of the appender to get. - - The appender with the name specified, or null if no appender with the - specified name is found. - - - - Returns an attached appender with the specified. - If no appender with the specified name is found null will be - returned. - - - - - - Removes all attached appenders. - - - - Removes and closes all attached appenders - - - - - - Removes the specified appender from the list of attached appenders. - - The appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Gets all attached appenders. - - - A collection of attached appenders. - - - - Gets a collection of attached appenders. - If there are no attached appenders the - implementation should return an empty - collection rather than null. - - - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Send the events. - - The events that need to be send. - - - Forwards the events to the attached appenders. - - - - - - Adds an to the list of appenders of this - instance. - - The to add to this appender. - - - If the specified is already in the list of - appenders, then it won't be added again. - - - - - - Looks for the appender with the specified name. - - The name of the appender to lookup. - - The appender with the specified name, or null. - - - - Get the named appender attached to this buffering appender. - - - - - - Removes all previously added appenders from this appender. - - - - This is useful when re-reading configuration information. - - - - - - Removes the specified appender from the list of appenders. - - The appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Implementation of the interface - - - - - Gets the appenders contained in this appender as an - . - - - If no appenders can be found, then an - is returned. - - - A collection of the appenders in this appender. - - - - - Appends logging events to the console. - - - - ColoredConsoleAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. It also allows the color of a specific type of message to be set. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes directly to the application's attached console - not to the System.Console.Out or System.Console.Error TextWriter. - The System.Console.Out and System.Console.Error streams can be - programmatically redirected (for example NUnit does this to capture program output). - This appender will ignore these redirections because it needs to use Win32 - API calls to colorize the output. To respect these redirections the - must be used. - - - When configuring the colored console appender, mapping should be - specified to map a logging level to a color. For example: - - - - - - - - - - - - - - The Level is the standard log4net logging level and ForeColor and BackColor can be any - combination of the following values: - - Blue - Green - Red - White - Yellow - Purple - Cyan - HighIntensity - - - - Rick Hobbs - Nicko Cadell - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - flag set to true to write to the console error stream - - When is set to true, output is written to - the standard error output stream. Otherwise, output is written to the standard - output stream. - - - - - Add a mapping of level to color - done by the config file - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the foreground and background colors - for a level. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to color mappings set on this appender. - - - - - - Flag to write output to the error stream rather than the standard output stream - - - - - Mapping from level object to color value - - - - - The console output stream writer to write to - - - - This writer is not thread safe. - - - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The enum of possible color values for use with the color mapping method - - - - The following flags can be combined together to - form the colors. - - - - - - - color is blue - - - - - color is green - - - - - color is red - - - - - color is white - - - - - color is yellow - - - - - color is purple - - - - - color is cyan - - - - - color is intensified - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and the color it should be displayed in. - - - - - - Initialize the options for the object - - - - Combine the and together. - - - - - - The mapped foreground color for the specified level - - - - Required property. - The mapped foreground color for the specified level. - - - - - - The mapped background color for the specified level - - - - Required property. - The mapped background color for the specified level. - - - - - - The combined and suitable for - setting the console color. - - - - - Appends logging events to the console. - - - - ConsoleAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes each message to the System.Console.Out or - System.Console.Error that is set at the time the event is appended. - Therefore it is possible to programmatically redirect the output of this appender - (for example NUnit does this to capture program output). While this is the desired - behavior of this appender it may have security implications in your application. - - - Nicko Cadell - Gert Driesen - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - flag set to true to write to the console error stream - - When is set to true, output is written to - the standard error output stream. Otherwise, output is written to the standard - output stream. - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appends log events to the system. - - - - The application configuration file can be used to control what listeners - are actually used. See the MSDN documentation for the - class for details on configuring the - debug system. - - - Events are written using the - method. The event's logger name is passed as the value for the category name to the Write method. - - - Nicko Cadell - - - - Initializes a new instance of the . - - - - Default constructor. - - - - - - Initializes a new instance of the - with a specified layout. - - The layout to use with this appender. - - - Obsolete constructor. - - - - - - Writes the logging event to the system. - - The event to log. - - - Writes the logging event to the system. - If is true then the - is called. - - - - - - Immediate flush means that the underlying writer or output stream - will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logs events are not actually written to persistent media if and - when the application crashes. - - - The default value is true. - - - - - Gets or sets a value that indicates whether the appender will - flush at the end of each write. - - - The default behavior is to flush at the end of each - write. If the option is set tofalse, then the underlying - stream can defer writing to physical medium to a later time. - - - Avoiding the flush operation at the end of each append results - in a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Writes events to the system event log. - - - - The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. - See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog - - - The EventID of the event log entry can be - set using the EventID property () - on the . - - - The Category of the event log entry can be - set using the Category property () - on the . - - - There is a limit of 32K characters for an event log message - - - When configuring the EventLogAppender a mapping can be - specified to map a logging level to an event log entry type. For example: - - - <mapping> - <level value="ERROR" /> - <eventLogEntryType value="Error" /> - </mapping> - <mapping> - <level value="DEBUG" /> - <eventLogEntryType value="Information" /> - </mapping> - - - The Level is the standard log4net logging level and eventLogEntryType can be any value - from the enum, i.e.: - - Erroran error event - Warninga warning event - Informationan informational event - - - - Aspi Havewala - Douglas de la Torre - Nicko Cadell - Gert Driesen - Thomas Voss - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initializes a new instance of the class - with the specified . - - The to use with this appender. - - - Obsolete constructor. - - - - - - Add a mapping of level to - done by the config file - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the event log entry type for a level. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Create an event log source - - - Uses different API calls under NET_2_0 - - - - - This method is called by the - method. - - the event to log - - Writes the event to the system event log using the - . - - If the event has an EventID property (see ) - set then this integer will be used as the event log event id. - - - There is a limit of 32K characters for an event log message - - - - - - Get the equivalent for a - - the Level to convert to an EventLogEntryType - The equivalent for a - - Because there are fewer applicable - values to use in logging levels than there are in the - this is a one way mapping. There is - a loss of information during the conversion. - - - - - The log name is the section in the event logs where the messages - are stored. - - - - - Name of the application to use when logging. This appears in the - application column of the event log named by . - - - - - The name of the machine which holds the event log. This is - currently only allowed to be '.' i.e. the current machine. - - - - - Mapping from level object to EventLogEntryType - - - - - The security context to use for privileged calls - - - - - The event ID to use unless one is explicitly specified via the LoggingEvent's properties. - - - - - The event category to use unless one is explicitly specified via the LoggingEvent's properties. - - - - - The fully qualified type of the EventLogAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - The name of the log where messages will be stored. - - - The string name of the log where messages will be stored. - - - This is the name of the log as it appears in the Event Viewer - tree. The default value is to log into the Application - log, this is where most applications write their events. However - if you need a separate log for your application (or applications) - then you should set the appropriately. - This should not be used to distinguish your event log messages - from those of other applications, the - property should be used to distinguish events. This property should be - used to group together events into a single log. - - - - - - Property used to set the Application name. This appears in the - event logs when logging. - - - The string used to distinguish events from different sources. - - - Sets the event log source property. - - - - - This property is used to return the name of the computer to use - when accessing the event logs. Currently, this is the current - computer, denoted by a dot "." - - - The string name of the machine holding the event log that - will be logged into. - - - This property cannot be changed. It is currently set to '.' - i.e. the local machine. This may be changed in future. - - - - - Gets or sets the used to write to the EventLog. - - - The used to write to the EventLog. - - - - The system security context used to write to the EventLog. - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. - - - - The EventID of the event log entry will normally be - set using the EventID property () - on the . - This property provides the fallback value which defaults to 0. - - - - - - Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. - - - - The Category of the event log entry will normally be - set using the Category property () - on the . - This property provides the fallback value which defaults to 0. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and its event log entry type. - - - - - - The for this entry - - - - Required property. - The for this entry - - - - - - Appends logging events to a file. - - - - Logging events are sent to the file specified by - the property. - - - The file can be opened in either append or overwrite mode - by specifying the property. - If the file path is relative it is taken as relative from - the application base directory. The file encoding can be - specified by setting the property. - - - The layout's and - values will be written each time the file is opened and closed - respectively. If the property is - then the file may contain multiple copies of the header and footer. - - - This appender will first try to open the file for writing when - is called. This will typically be during configuration. - If the file cannot be opened for writing the appender will attempt - to open the file again each time a message is logged to the appender. - If the file cannot be opened for writing when a message is logged then - the message will be discarded by this appender. - - - The supports pluggable file locking models via - the property. - The default behavior, implemented by - is to obtain an exclusive write lock on the file until this appender is closed. - The alternative models only hold a - write lock while the appender is writing a logging event () - or synchronize by using a named system wide Mutex (). - - - All locking strategies have issues and you should seriously consider using a different strategy that - avoids having multiple processes logging to the same file. - - - Nicko Cadell - Gert Driesen - Rodrigo B. de Oliveira - Douglas de la Torre - Niall Daley - - - - Sends logging events to a . - - - - An Appender that writes to a . - - - This appender may be used stand alone if initialized with an appropriate - writer, however it is typically used as a base class for an appender that - can open a to write to. - - - Nicko Cadell - Gert Driesen - Douglas de la Torre - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initializes a new instance of the class and - sets the output destination to a new initialized - with the specified . - - The layout to use with this appender. - The to output to. - - - Obsolete constructor. - - - - - - Initializes a new instance of the class and sets - the output destination to the specified . - - The layout to use with this appender - The to output to - - The must have been previously opened. - - - - Obsolete constructor. - - - - - - This method determines if there is a sense in attempting to append. - - - - This method checks if an output target has been set and if a - layout has been set. - - - false if any of the preconditions fail. - - - - This method is called by the - method. - - The event to log. - - - Writes a log statement to the output stream if the output stream exists - and is writable. - - - The format of the output will depend on the appender's layout. - - - - - - This method is called by the - method. - - The array of events to log. - - - This method writes all the bulk logged events to the output writer - before flushing the stream. - - - - - - Close this appender instance. The underlying stream or writer is also closed. - - - Closed appenders cannot be reused. - - - - - Writes the footer and closes the underlying . - - - - Writes the footer and closes the underlying . - - - - - - Closes the underlying . - - - - Closes the underlying . - - - - - - Clears internal references to the underlying - and other variables. - - - - Subclasses can override this method for an alternate closing behavior. - - - - - - Writes a footer as produced by the embedded layout's property. - - - - Writes a footer as produced by the embedded layout's property. - - - - - - Writes a header produced by the embedded layout's property. - - - - Writes a header produced by the embedded layout's property. - - - - - - Called to allow a subclass to lazily initialize the writer - - - - This method is called when an event is logged and the or - have not been set. This allows a subclass to - attempt to initialize the writer multiple times. - - - - - - This is the where logging events - will be written to. - - - - - Immediate flush means that the underlying - or output stream will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logging events are not actually persisted if and when the application - crashes. - - - The default value is true. - - - - - - The fully qualified type of the TextWriterAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or set whether the appender will flush at the end - of each append operation. - - - - The default behavior is to flush at the end of each - append operation. - - - If this option is set to false, then the underlying - stream can defer persisting the logging event to a later - time. - - - - Avoiding the flush operation at the end of each append results in - a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - Sets the where the log output will go. - - - - The specified must be open and writable. - - - The will be closed when the appender - instance is closed. - - - Note: Logging to an unopened will fail. - - - - - - Gets or set the and the underlying - , if any, for this appender. - - - The for this appender. - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Gets or sets the where logging events - will be written to. - - - The where logging events are written. - - - - This is the where logging events - will be written to. - - - - - - Default constructor - - - - Default constructor - - - - - - Construct a new appender using the layout, file and append mode. - - the layout to use with this appender - the full path to the file to write to - flag to indicate if the file should be appended to - - - Obsolete constructor. - - - - - - Construct a new appender using the layout and file specified. - The file will be appended to. - - the layout to use with this appender - the full path to the file to write to - - - Obsolete constructor. - - - - - - Activate the options on the file appender. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - This will cause the file to be opened. - - - - - - Closes any previously opened file and calls the parent's . - - - - Resets the filename and the file stream. - - - - - - Called to initialize the file writer - - - - Will be called for each logged message until the file is - successfully opened. - - - - - - This method is called by the - method. - - The event to log. - - - Writes a log statement to the output stream if the output stream exists - and is writable. - - - The format of the output will depend on the appender's layout. - - - - - - This method is called by the - method. - - The array of events to log. - - - Acquires the output file locks once before writing all the events to - the stream. - - - - - - Writes a footer as produced by the embedded layout's property. - - - - Writes a footer as produced by the embedded layout's property. - - - - - - Writes a header produced by the embedded layout's property. - - - - Writes a header produced by the embedded layout's property. - - - - - - Closes the underlying . - - - - Closes the underlying . - - - - - - Closes the previously opened file. - - - - Writes the to the file and then - closes the file. - - - - - - Sets and opens the file where the log output will go. The specified file must be writable. - - The path to the log file. Must be a fully qualified path. - If true will append to fileName. Otherwise will truncate fileName - - - Calls but guarantees not to throw an exception. - Errors are passed to the . - - - - - - Sets and opens the file where the log output will go. The specified file must be writable. - - The path to the log file. Must be a fully qualified path. - If true will append to fileName. Otherwise will truncate fileName - - - If there was already an opened file, then the previous file - is closed first. - - - This method will ensure that the directory structure - for the specified exists. - - - - - - Sets the quiet writer used for file output - - the file stream that has been opened for writing - - - This implementation of creates a - over the and passes it to the - method. - - - This method can be overridden by sub classes that want to wrap the - in some way, for example to encrypt the output - data using a System.Security.Cryptography.CryptoStream. - - - - - - Sets the quiet writer being used. - - the writer over the file stream that has been opened for writing - - - This method can be overridden by sub classes that want to - wrap the in some way. - - - - - - Convert a path into a fully qualified path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - - - - Flag to indicate if we should append to the file - or overwrite the file. The default is to append. - - - - - The name of the log file. - - - - - The encoding to use for the file stream. - - - - - The security context to use for privileged calls - - - - - The stream to log to. Has added locking semantics - - - - - The locking model to use - - - - - The fully qualified type of the FileAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the path to the file that logging will be written to. - - - The path to the file that logging will be written to. - - - - If the path is relative it is taken as relative from - the application base directory. - - - - - - Gets or sets a flag that indicates whether the file should be - appended to or overwritten. - - - Indicates whether the file should be appended to or overwritten. - - - - If the value is set to false then the file will be overwritten, if - it is set to true then the file will be appended to. - - The default value is true. - - - - - Gets or sets used to write to the file. - - - The used to write to the file. - - - - The default encoding set is - which is the encoding for the system's current ANSI code page. - - - - - - Gets or sets the used to write to the file. - - - The used to write to the file. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Gets or sets the used to handle locking of the file. - - - The used to lock the file. - - - - Gets or sets the used to handle locking of the file. - - - There are three built in locking models, , and . - The first locks the file from the start of logging to the end, the - second locks only for the minimal amount of time when logging each message - and the last synchronizes processes using a named system wide Mutex. - - - The default locking model is the . - - - - - - Write only that uses the - to manage access to an underlying resource. - - - - - True asynchronous writes are not supported, the implementation forces a synchronous write. - - - - - Exception base type for log4net. - - - - This type extends . It - does not add any new functionality but does differentiate the - type of exception being thrown. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - A message to include with the exception. - - - Initializes a new instance of the class with - the specified message. - - - - - - Constructor - - A message to include with the exception. - A nested exception to include. - - - Initializes a new instance of the class - with the specified message and inner exception. - - - - - - Serialization constructor - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Locking model base class - - - - Base class for the locking models available to the derived loggers. - - - - - - Open the output file - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Acquire the lock on the file in preparation for writing to it. - Return a stream pointing to the file. - must be called to release the lock on the output file. - - - - - - Release the lock on the file - - - - Release the lock on the file. No further writes will be made to the - stream until is called again. - - - - - - Helper method that creates a FileStream under CurrentAppender's SecurityContext. - - - - Typically called during OpenFile or AcquireLock. - - - If the directory portion of the does not exist, it is created - via Directory.CreateDirecctory. - - - - - - - - - - Helper method to close under CurrentAppender's SecurityContext. - - - Does not set to null. - - - - - - Gets or sets the for this LockingModel - - - The for this LockingModel - - - - The file appender this locking model is attached to and working on - behalf of. - - - The file appender is used to locate the security context and the error handler to use. - - - The value of this property will be set before is - called. - - - - - - Hold an exclusive lock on the output file - - - - Open the file once for writing and hold it open until is called. - Maintains an exclusive lock on the file during this time. - - - - - - Open the file specified and prepare for logging. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Does nothing. The lock is already taken - - - - - - Release the lock on the file - - - - Does nothing. The lock will be released when the file is closed. - - - - - - Acquires the file lock for each write - - - - Opens the file once for each / cycle, - thus holding the lock for the minimal amount of time. This method of locking - is considerably slower than but allows - other processes to move/delete the log file whilst logging continues. - - - - - - Prepares to open the file when the first message is logged. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Acquire the lock on the file in preparation for writing to it. - Return a stream pointing to the file. - must be called to release the lock on the output file. - - - - - - Release the lock on the file - - - - Release the lock on the file. No further writes will be made to the - stream until is called again. - - - - - - Provides cross-process file locking. - - Ron Grabowski - Steve Wranovsky - - - - Open the file specified and prepare for logging. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Does nothing. The lock is already taken - - - - - - - - - - - This appender forwards logging events to attached appenders. - - - - The forwarding appender can be used to specify different thresholds - and filters for the same appender at different locations within the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Forward the logging event to the attached appenders - - The event to log. - - - Delivers the logging event to all the attached appenders. - - - - - - Forward the logging events to the attached appenders - - The array of events to log. - - - Delivers the logging events to all the attached appenders. - - - - - - Adds an to the list of appenders of this - instance. - - The to add to this appender. - - - If the specified is already in the list of - appenders, then it won't be added again. - - - - - - Looks for the appender with the specified name. - - The name of the appender to lookup. - - The appender with the specified name, or null. - - - - Get the named appender attached to this appender. - - - - - - Removes all previously added appenders from this appender. - - - - This is useful when re-reading configuration information. - - - - - - Removes the specified appender from the list of appenders. - - The appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Implementation of the interface - - - - - Gets the appenders contained in this appender as an - . - - - If no appenders can be found, then an - is returned. - - - A collection of the appenders in this appender. - - - - - Logs events to a local syslog service. - - - - This appender uses the POSIX libc library functions openlog, syslog, and closelog. - If these functions are not available on the local system then this appender will not work! - - - The functions openlog, syslog, and closelog are specified in SUSv2 and - POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. - - - This appender talks to a local syslog service. If you need to log to a remote syslog - daemon and you cannot configure your local syslog service to do this you may be - able to use the to log via UDP. - - - Syslog messages must have a facility and and a severity. The severity - is derived from the Level of the logging event. - The facility must be chosen from the set of defined syslog - values. The facilities list is predefined - and cannot be extended. - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - Rob Lyon - Nicko Cadell - - - - Initializes a new instance of the class. - - - This instance of the class is set up to write - to a local syslog service. - - - - - Add a mapping of level to severity - - The mapping to add - - - Adds a to this appender. - - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to a remote syslog daemon. - - - The format of the output will depend on the appender's layout. - - - - - - Close the syslog when the appender is closed - - - - Close the syslog when the appender is closed - - - - - - Translates a log4net level to a syslog severity. - - A log4net level. - A syslog severity. - - - Translates a log4net level to a syslog severity. - - - - - - Generate a syslog priority. - - The syslog facility. - The syslog severity. - A syslog priority. - - - - The facility. The default facility is . - - - - - The message identity - - - - - Marshaled handle to the identity string. We have to hold on to the - string as the openlog and syslog APIs just hold the - pointer to the ident and dereference it for each log message. - - - - - Mapping from level object to syslog severity - - - - - Open connection to system logger. - - - - - Generate a log message. - - - - The libc syslog method takes a format string and a variable argument list similar - to the classic printf function. As this type of vararg list is not supported - by C# we need to specify the arguments explicitly. Here we have specified the - format string with a single message argument. The caller must set the format - string to "%s". - - - - - - Close descriptor used to write to system logger. - - - - - Message identity - - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - - - - Syslog facility - - - Set to one of the values. The list of - facilities is predefined and cannot be extended. The default value - is . - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - syslog severities - - - - The log4net Level maps to a syslog severity using the - method and the - class. The severity is set on . - - - - - - system is unusable - - - - - action must be taken immediately - - - - - critical conditions - - - - - error conditions - - - - - warning conditions - - - - - normal but significant condition - - - - - informational - - - - - debug-level messages - - - - - syslog facilities - - - - The syslog facility defines which subsystem the logging comes from. - This is set on the property. - - - - - - kernel messages - - - - - random user-level messages - - - - - mail system - - - - - system daemons - - - - - security/authorization messages - - - - - messages generated internally by syslogd - - - - - line printer subsystem - - - - - network news subsystem - - - - - UUCP subsystem - - - - - clock (cron/at) daemon - - - - - security/authorization messages (private) - - - - - ftp daemon - - - - - NTP subsystem - - - - - log audit - - - - - log alert - - - - - clock daemon - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - - - The mapped syslog severity for the specified level - - - - Required property. - The mapped syslog severity for the specified level - - - - - - Stores logging events in an array. - - - - The memory appender stores all the logging events - that are appended in an in-memory array. - - - Use the method to get - the current list of events that have been appended. - - - Use the method to clear the - current list of events. - - - Julian Biddle - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Gets the events that have been logged. - - The events that have been logged - - - Gets the events that have been logged. - - - - - - This method is called by the method. - - the event to log - - Stores the in the events list. - - - - - Clear the list of events - - - Clear the list of events - - - - - The list of events that have been appended. - - - - - Value indicating which fields in the event should be fixed - - - By default all fields are fixed - - - - - Gets or sets a value indicating whether only part of the logging event - data should be fixed. - - - true if the appender should only fix part of the logging event - data, otherwise false. The default is false. - - - - Setting this property to true will cause only part of the event - data to be fixed and stored in the appender, hereby improving performance. - - - See for more information. - - - - - - Gets or sets the fields that will be fixed in the event - - - - The logging event needs to have certain thread specific values - captured before it can be buffered. See - for details. - - - - - - Logs entries by sending network messages using the - native function. - - - - You can send messages only to names that are active - on the network. If you send the message to a user name, - that user must be logged on and running the Messenger - service to receive the message. - - - The receiver will get a top most window displaying the - messages one at a time, therefore this appender should - not be used to deliver a high volume of messages. - - - The following table lists some possible uses for this appender : - - - - - Action - Property Value(s) - - - Send a message to a user account on the local machine - - - = <name of the local machine> - - - = <user name> - - - - - Send a message to a user account on a remote machine - - - = <name of the remote machine> - - - = <user name> - - - - - Send a message to a domain user account - - - = <name of a domain controller | uninitialized> - - - = <user name> - - - - - Send a message to all the names in a workgroup or domain - - - = <workgroup name | domain name>* - - - - - Send a message from the local machine to a remote machine - - - = <name of the local machine | uninitialized> - - - = <name of the remote machine> - - - - - - - Note : security restrictions apply for sending - network messages, see - for more information. - - - - - An example configuration section to log information - using this appender from the local machine, named - LOCAL_PC, to machine OPERATOR_PC : - - - - - - - - - - Nicko Cadell - Gert Driesen - - - - The DNS or NetBIOS name of the server on which the function is to execute. - - - - - The sender of the network message. - - - - - The message alias to which the message should be sent. - - - - - The security context to use for privileged calls - - - - - Initializes the appender. - - - The default constructor initializes all fields to their default values. - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The appender will be ignored if no was specified. - - - The required property was not specified. - - - - This method is called by the method. - - The event to log. - - - Sends the event using a network message. - - - - - - Sends a buffer of information to a registered message alias. - - The DNS or NetBIOS name of the server on which the function is to execute. - The message alias to which the message buffer should be sent - The originator of the message. - The message text. - The length, in bytes, of the message text. - - - The following restrictions apply for sending network messages: - - - - - Platform - Requirements - - - Windows NT - - - No special group membership is required to send a network message. - - - Admin, Accounts, Print, or Server Operator group membership is required to - successfully send a network message on a remote server. - - - - - Windows 2000 or later - - - If you send a message on a domain controller that is running Active Directory, - access is allowed or denied based on the access control list (ACL) for the securable - object. The default ACL permits only Domain Admins and Account Operators to send a network message. - - - On a member server or workstation, only Administrators and Server Operators can send a network message. - - - - - - - For more information see Security Requirements for the Network Management Functions. - - - - - If the function succeeds, the return value is zero. - - - - - - Gets or sets the sender of the message. - - - The sender of the message. - - - If this property is not specified, the message is sent from the local computer. - - - - - Gets or sets the message alias to which the message should be sent. - - - The recipient of the message. - - - This property should always be specified in order to send a message. - - - - - Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. - - - DNS or NetBIOS name of the remote server on which the function is to execute. - - - - For Windows NT 4.0 and earlier, the string should begin with \\. - - - If this property is not specified, the local computer is used. - - - - - - Gets or sets the used to call the NetSend method. - - - The used to call the NetSend method. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appends log events to the OutputDebugString system. - - - - OutputDebugStringAppender appends log events to the - OutputDebugString system. - - - The string is passed to the native OutputDebugString - function. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Write the logging event to the output debug string API - - the event to log - - - Write the logging event to the output debug string API - - - - - - Stub for OutputDebugString native method - - the string to output - - - Stub for OutputDebugString native method - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Logs events to a remote syslog daemon. - - - - The BSD syslog protocol is used to remotely log to - a syslog daemon. The syslogd listens for for messages - on UDP port 514. - - - The syslog UDP protocol is not authenticated. Most syslog daemons - do not accept remote log messages because of the security implications. - You may be able to use the LocalSyslogAppender to talk to a local - syslog service. - - - There is an RFC 3164 that claims to document the BSD Syslog Protocol. - This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. - This appender generates what the RFC calls an "Original Device Message", - i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation - this format of message will be accepted by all current syslog daemon - implementations. The daemon will attach the current time and the source - hostname or IP address to any messages received. - - - Syslog messages must have a facility and and a severity. The severity - is derived from the Level of the logging event. - The facility must be chosen from the set of defined syslog - values. The facilities list is predefined - and cannot be extended. - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - Rob Lyon - Nicko Cadell - - - - Sends logging events as connectionless UDP datagrams to a remote host or a - multicast group using an . - - - - UDP guarantees neither that messages arrive, nor that they arrive in the correct order. - - - To view the logging results, a custom application can be developed that listens for logging - events. - - - When decoding events send via this appender remember to use the same encoding - to decode the events as was used to send the events. See the - property to specify the encoding to use. - - - - This example shows how to log receive logging events that are sent - on IP address 244.0.0.1 and port 8080 to the console. The event is - encoded in the packet as a unicode string and it is decoded as such. - - IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); - UdpClient udpClient; - byte[] buffer; - string loggingEvent; - - try - { - udpClient = new UdpClient(8080); - - while(true) - { - buffer = udpClient.Receive(ref remoteEndPoint); - loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); - Console.WriteLine(loggingEvent); - } - } - catch(Exception e) - { - Console.WriteLine(e.ToString()); - } - - - Dim remoteEndPoint as IPEndPoint - Dim udpClient as UdpClient - Dim buffer as Byte() - Dim loggingEvent as String - - Try - remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) - udpClient = new UdpClient(8080) - - While True - buffer = udpClient.Receive(ByRef remoteEndPoint) - loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) - Console.WriteLine(loggingEvent) - Wend - Catch e As Exception - Console.WriteLine(e.ToString()) - End Try - - - An example configuration section to log information using this appender to the - IP 224.0.0.1 on port 8080: - - - - - - - - - - Gert Driesen - Nicko Cadell - - - - Initializes a new instance of the class. - - - The default constructor initializes all fields to their default values. - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The appender will be ignored if no was specified or - an invalid remote or local TCP port number was specified. - - - The required property was not specified. - The TCP port number assigned to or is less than or greater than . - - - - This method is called by the method. - - The event to log. - - - Sends the event using an UDP datagram. - - - Exceptions are passed to the . - - - - - - Closes the UDP connection and releases all resources associated with - this instance. - - - - Disables the underlying and releases all managed - and unmanaged resources associated with the . - - - - - - Initializes the underlying connection. - - - - The underlying is initialized and binds to the - port number from which you intend to communicate. - - - Exceptions are passed to the . - - - - - - The IP address of the remote host or multicast group to which - the logging event will be sent. - - - - - The TCP port number of the remote host or multicast group to - which the logging event will be sent. - - - - - The cached remote endpoint to which the logging events will be sent. - - - - - The TCP port number from which the will communicate. - - - - - The instance that will be used for sending the - logging events. - - - - - The encoding to use for the packet. - - - - - Gets or sets the IP address of the remote host or multicast group to which - the underlying should sent the logging event. - - - The IP address of the remote host or multicast group to which the logging event - will be sent. - - - - Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to - 239.255.255.255). Multicast packets can pass across different networks through routers, so - it is possible to use multicasts in an Internet scenario as long as your network provider - supports multicasting. - - - Hosts that want to receive particular multicast messages must register their interest by joining - the multicast group. Multicast messages are not sent to networks where no host has joined - the multicast group. Class D IP addresses are used for multicast groups, to differentiate - them from normal host addresses, allowing nodes to easily detect if a message is of interest. - - - Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: - - - - - IP Address - Description - - - 224.0.0.1 - - - Sends a message to all system on the subnet. - - - - - 224.0.0.2 - - - Sends a message to all routers on the subnet. - - - - - 224.0.0.12 - - - The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. - - - - - - - A complete list of actually reserved multicast addresses and their owners in the ranges - defined by RFC 3171 can be found at the IANA web site. - - - The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative - addresses. These addresses can be reused with other local groups. Routers are typically - configured with filters to prevent multicast traffic in this range from flowing outside - of the local network. - - - - - - Gets or sets the TCP port number of the remote host or multicast group to which - the underlying should sent the logging event. - - - An integer value in the range to - indicating the TCP port number of the remote host or multicast group to which the logging event - will be sent. - - - The underlying will send messages to this TCP port number - on the remote host or multicast group. - - The value specified is less than or greater than . - - - - Gets or sets the TCP port number from which the underlying will communicate. - - - An integer value in the range to - indicating the TCP port number from which the underlying will communicate. - - - - The underlying will bind to this port for sending messages. - - - Setting the value to 0 (the default) will cause the udp client not to bind to - a local port. - - - The value specified is less than or greater than . - - - - Gets or sets used to write the packets. - - - The used to write the packets. - - - - The used to write the packets. - - - - - - Gets or sets the underlying . - - - The underlying . - - - creates a to send logging events - over a network. Classes deriving from can use this - property to get or set this . Use the underlying - returned from if you require access beyond that which - provides. - - - - - Gets or sets the cached remote endpoint to which the logging events should be sent. - - - The cached remote endpoint to which the logging events will be sent. - - - The method will initialize the remote endpoint - with the values of the and - properties. - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Syslog port 514 - - - - - Initializes a new instance of the class. - - - This instance of the class is set up to write - to a remote syslog daemon. - - - - - Add a mapping of level to severity - - The mapping to add - - - Add a mapping to this appender. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to a remote syslog daemon. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to syslog severity mappings set on this appender. - - - - - - Translates a log4net level to a syslog severity. - - A log4net level. - A syslog severity. - - - Translates a log4net level to a syslog severity. - - - - - - Generate a syslog priority. - - The syslog facility. - The syslog severity. - A syslog priority. - - - Generate a syslog priority. - - - - - - The facility. The default facility is . - - - - - The message identity - - - - - Mapping from level object to syslog severity - - - - - Message identity - - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - - - - Syslog facility - - - Set to one of the values. The list of - facilities is predefined and cannot be extended. The default value - is . - - - - - syslog severities - - - - The syslog severities. - - - - - - system is unusable - - - - - action must be taken immediately - - - - - critical conditions - - - - - error conditions - - - - - warning conditions - - - - - normal but significant condition - - - - - informational - - - - - debug-level messages - - - - - syslog facilities - - - - The syslog facilities - - - - - - kernel messages - - - - - random user-level messages - - - - - mail system - - - - - system daemons - - - - - security/authorization messages - - - - - messages generated internally by syslogd - - - - - line printer subsystem - - - - - network news subsystem - - - - - UUCP subsystem - - - - - clock (cron/at) daemon - - - - - security/authorization messages (private) - - - - - ftp daemon - - - - - NTP subsystem - - - - - log audit - - - - - log alert - - - - - clock daemon - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - - - The mapped syslog severity for the specified level - - - - Required property. - The mapped syslog severity for the specified level - - - - - - Delivers logging events to a remote logging sink. - - - - This Appender is designed to deliver events to a remote sink. - That is any object that implements the - interface. It delivers the events using .NET remoting. The - object to deliver events to is specified by setting the - appenders property. - - The RemotingAppender buffers events before sending them. This allows it to - make more efficient use of the remoting infrastructure. - - Once the buffer is full the events are still not sent immediately. - They are scheduled to be sent using a pool thread. The effect is that - the send occurs asynchronously. This is very important for a - number of non obvious reasons. The remoting infrastructure will - flow thread local variables (stored in the ), - if they are marked as , across the - remoting boundary. If the server is not contactable then - the remoting infrastructure will clear the - objects from the . To prevent a logging failure from - having side effects on the calling application the remoting call must be made - from a separate thread to the one used by the application. A - thread is used for this. If no thread is available then - the events will block in the thread pool manager until a thread is available. - - Because the events are sent asynchronously using pool threads it is possible to close - this appender before all the queued events have been sent. - When closing the appender attempts to wait until all the queued events have been sent, but - this will timeout after 30 seconds regardless. - - If this appender is being closed because the - event has fired it may not be possible to send all the queued events. During process - exit the runtime limits the time that a - event handler is allowed to run for. If the runtime terminates the threads before - the queued events have been sent then they will be lost. To ensure that all events - are sent the appender must be closed before the application exits. See - for details on how to shutdown - log4net programmatically. - - - Nicko Cadell - Gert Driesen - Daniel Cazzulino - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Send the contents of the buffer to the remote sink. - - - The events are not sent immediately. They are scheduled to be sent - using a pool thread. The effect is that the send occurs asynchronously. - This is very important for a number of non obvious reasons. The remoting - infrastructure will flow thread local variables (stored in the ), - if they are marked as , across the - remoting boundary. If the server is not contactable then - the remoting infrastructure will clear the - objects from the . To prevent a logging failure from - having side effects on the calling application the remoting call must be made - from a separate thread to the one used by the application. A - thread is used for this. If no thread is available then - the events will block in the thread pool manager until a thread is available. - - The events to send. - - - - Override base class close. - - - - This method waits while there are queued work items. The events are - sent asynchronously using work items. These items - will be sent once a thread pool thread is available to send them, therefore - it is possible to close the appender before all the queued events have been - sent. - - This method attempts to wait until all the queued events have been sent, but this - method will timeout after 30 seconds regardless. - - If the appender is being closed because the - event has fired it may not be possible to send all the queued events. During process - exit the runtime limits the time that a - event handler is allowed to run for. - - - - - A work item is being queued into the thread pool - - - - - A work item from the thread pool has completed - - - - - Send the contents of the buffer to the remote sink. - - - This method is designed to be used with the . - This method expects to be passed an array of - objects in the state param. - - the logging events to send - - - - The URL of the remote sink. - - - - - The local proxy (.NET remoting) for the remote logging sink. - - - - - The number of queued callbacks currently waiting or executing - - - - - Event used to signal when there are no queued work items - - - This event is set when there are no queued work items. In this - state it is safe to close the appender. - - - - - Gets or sets the URL of the well-known object that will accept - the logging events. - - - The well-known URL of the remote sink. - - - - The URL of the remoting sink that will accept logging events. - The sink must implement the - interface. - - - - - - Interface used to deliver objects to a remote sink. - - - This interface must be implemented by a remoting sink - if the is to be used - to deliver logging events to the sink. - - - - - Delivers logging events to the remote sink - - Array of events to log. - - - Delivers logging events to the remote sink - - - - - - Appender that rolls log files based on size or date or both. - - - - RollingFileAppender can roll log files based on size or date or both - depending on the setting of the property. - When set to the log file will be rolled - once its size exceeds the . - When set to the log file will be rolled - once the date boundary specified in the property - is crossed. - When set to the log file will be - rolled once the date boundary specified in the property - is crossed, but within a date boundary the file will also be rolled - once its size exceeds the . - When set to the log file will be rolled when - the appender is configured. This effectively means that the log file can be - rolled once per program execution. - - - A of few additional optional features have been added: - - Attach date pattern for current log file - Backup number increments for newer files - Infinite number of backups by file size - - - - - - For large or infinite numbers of backup files a - greater than zero is highly recommended, otherwise all the backup files need - to be renamed each time a new backup is created. - - - When Date/Time based rolling is used setting - to will reduce the number of file renamings to few or none. - - - - - - Changing or without clearing - the log file directory of backup files will cause unexpected and unwanted side effects. - - - - - If Date/Time based rolling is enabled this appender will attempt to roll existing files - in the directory without a Date/Time tag based on the last write date of the base log file. - The appender only rolls the log file when a message is logged. If Date/Time based rolling - is enabled then the appender will not roll the log file at the Date/Time boundary but - at the point when the next message is logged after the boundary has been crossed. - - - - The extends the and - has the same behavior when opening the log file. - The appender will first try to open the file for writing when - is called. This will typically be during configuration. - If the file cannot be opened for writing the appender will attempt - to open the file again each time a message is logged to the appender. - If the file cannot be opened for writing when a message is logged then - the message will be discarded by this appender. - - - When rolling a backup file necessitates deleting an older backup file the - file to be deleted is moved to a temporary name before being deleted. - - - - - A maximum number of backup files when rolling on date/time boundaries is not supported. - - - - Nicko Cadell - Gert Driesen - Aspi Havewala - Douglas de la Torre - Edward Smit - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - The fully qualified type of the RollingFileAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Sets the quiet writer being used. - - - This method can be overridden by sub classes. - - the writer to set - - - - Write out a logging event. - - the event to write to file. - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Write out an array of logging events. - - the events to write to file. - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Performs any required rolling before outputting the next event - - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Creates and opens the file for logging. If - is false then the fully qualified name is determined and used. - - the name of the file to open - true to append to existing file - - This method will ensure that the directory structure - for the specified exists. - - - - - Get the current output file name - - the base file name - the output file name - - The output file name is based on the base fileName specified. - If is set then the output - file name is the same as the base file passed in. Otherwise - the output file depends on the date pattern, on the count - direction or both. - - - - - Determines curSizeRollBackups (only within the current roll point) - - - - - Generates a wildcard pattern that can be used to find all files - that are similar to the base file name. - - - - - - - Builds a list of filenames for all files matching the base filename plus a file - pattern. - - - - - - - Initiates a roll over if needed for crossing a date boundary since the last run. - - - - - Initializes based on existing conditions at time of . - - - - Initializes based on existing conditions at time of . - The following is done - - determine curSizeRollBackups (only within the current roll point) - initiates a roll over if needed for crossing a date boundary since the last run. - - - - - - - Does the work of bumping the 'current' file counter higher - to the highest count when an incremental file name is seen. - The highest count is either the first file (when count direction - is greater than 0) or the last file (when count direction less than 0). - In either case, we want to know the highest count that is present. - - - - - - - Attempts to extract a number from the end of the file name that indicates - the number of the times the file has been rolled over. - - - Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. - - - - - - - Takes a list of files and a base file name, and looks for - 'incremented' versions of the base file. Bumps the max - count up to the highest count seen. - - - - - - - Calculates the RollPoint for the datePattern supplied. - - the date pattern to calculate the check period for - The RollPoint that is most accurate for the date pattern supplied - - Essentially the date pattern is examined to determine what the - most suitable roll point is. The roll point chosen is the roll point - with the smallest period that can be detected using the date pattern - supplied. i.e. if the date pattern only outputs the year, month, day - and hour then the smallest roll point that can be detected would be - and hourly roll point as minutes could not be detected. - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Sets initial conditions including date/time roll over information, first check, - scheduledFilename, and calls to initialize - the current number of backups. - - - - - - - - - .1, .2, .3, etc. - - - - - Rollover the file(s) to date/time tagged file(s). - - set to true if the file to be rolled is currently open - - - Rollover the file(s) to date/time tagged file(s). - Resets curSizeRollBackups. - If fileIsOpen is set then the new file is opened (through SafeOpenFile). - - - - - - Renames file to file . - - Name of existing file to roll. - New name for file. - - - Renames file to file . It - also checks for existence of target file and deletes if it does. - - - - - - Test if a file exists at a specified path - - the path to the file - true if the file exists - - - Test if a file exists at a specified path - - - - - - Deletes the specified file if it exists. - - The file to delete. - - - Delete a file if is exists. - The file is first moved to a new filename then deleted. - This allows the file to be removed even when it cannot - be deleted, but it still can be moved. - - - - - - Implements file roll base on file size. - - - - If the maximum number of size based backups is reached - (curSizeRollBackups == maxSizeRollBackups) then the oldest - file is deleted -- its index determined by the sign of countDirection. - If countDirection < 0, then files - {File.1, ..., File.curSizeRollBackups -1} - are renamed to {File.2, ..., - File.curSizeRollBackups}. Moreover, File is - renamed File.1 and closed. - - - A new file is created to receive further log output. - - - If maxSizeRollBackups is equal to zero, then the - File is truncated with no backup files created. - - - If maxSizeRollBackups < 0, then File is - renamed if needed and no files are deleted. - - - - - - Implements file roll. - - the base name to rename - - - If the maximum number of size based backups is reached - (curSizeRollBackups == maxSizeRollBackups) then the oldest - file is deleted -- its index determined by the sign of countDirection. - If countDirection < 0, then files - {File.1, ..., File.curSizeRollBackups -1} - are renamed to {File.2, ..., - File.curSizeRollBackups}. - - - If maxSizeRollBackups is equal to zero, then the - File is truncated with no backup files created. - - - If maxSizeRollBackups < 0, then File is - renamed if needed and no files are deleted. - - - This is called by to rename the files. - - - - - - Get the start time of the next window for the current rollpoint - - the current date - the type of roll point we are working with - the start time for the next roll point an interval after the currentDateTime date - - - Returns the date of the next roll point after the currentDateTime date passed to the method. - - - The basic strategy is to subtract the time parts that are less significant - than the rollpoint from the current time. This should roll the time back to - the start of the time window for the current rollpoint. Then we add 1 window - worth of time and get the start time of the next window for the rollpoint. - - - - - - This object supplies the current date/time. Allows test code to plug in - a method to control this class when testing date/time based rolling. The default - implementation uses the underlying value of DateTime.Now. - - - - - The date pattern. By default, the pattern is set to ".yyyy-MM-dd" - meaning daily rollover. - - - - - The actual formatted filename that is currently being written to - or will be the file transferred to on roll over - (based on staticLogFileName). - - - - - The timestamp when we shall next recompute the filename. - - - - - Holds date of last roll over - - - - - The type of rolling done - - - - - The default maximum file size is 10MB - - - - - There is zero backup files by default - - - - - How many sized based backups have been made so far - - - - - The rolling file count direction. - - - - - The rolling mode used in this appender. - - - - - Cache flag set if we are rolling by date. - - - - - Cache flag set if we are rolling by size. - - - - - Value indicating whether to always log to the same file. - - - - - Value indicating whether to preserve the file name extension when rolling. - - - - - FileName provided in configuration. Used for rolling properly - - - - - The 1st of January 1970 in UTC - - - - - Gets or sets the strategy for determining the current date and time. The default - implementation is to use LocalDateTime which internally calls through to DateTime.Now. - DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying - . - - - An implementation of the interface which returns the current date and time. - - - - Gets or sets the used to return the current date and time. - - - There are two built strategies for determining the current date and time, - - and . - - - The default strategy is . - - - - - - Gets or sets the date pattern to be used for generating file names - when rolling over on date. - - - The date pattern to be used for generating file names when rolling - over on date. - - - - Takes a string in the same format as expected by - . - - - This property determines the rollover schedule when rolling over - on date. - - - - - - Gets or sets the maximum number of backup files that are kept before - the oldest is erased. - - - The maximum number of backup files that are kept before the oldest is - erased. - - - - If set to zero, then there will be no backup files and the log file - will be truncated when it reaches . - - - If a negative number is supplied then no deletions will be made. Note - that this could result in very slow performance as a large number of - files are rolled over unless is used. - - - The maximum applies to each time based group of files and - not the total. - - - - - - Gets or sets the maximum size that the output file is allowed to reach - before being rolled over to backup files. - - - The maximum size in bytes that the output file is allowed to reach before being - rolled over to backup files. - - - - This property is equivalent to except - that it is required for differentiating the setter taking a - argument from the setter taking a - argument. - - - The default maximum file size is 10MB (10*1024*1024). - - - - - - Gets or sets the maximum size that the output file is allowed to reach - before being rolled over to backup files. - - - The maximum size that the output file is allowed to reach before being - rolled over to backup files. - - - - This property allows you to specify the maximum size with the - suffixes "KB", "MB" or "GB" so that the size is interpreted being - expressed respectively in kilobytes, megabytes or gigabytes. - - - For example, the value "10KB" will be interpreted as 10240 bytes. - - - The default maximum file size is 10MB. - - - If you have the option to set the maximum file size programmatically - consider using the property instead as this - allows you to set the size in bytes as a . - - - - - - Gets or sets the rolling file count direction. - - - The rolling file count direction. - - - - Indicates if the current file is the lowest numbered file or the - highest numbered file. - - - By default newer files have lower numbers ( < 0), - i.e. log.1 is most recent, log.5 is the 5th backup, etc... - - - >= 0 does the opposite i.e. - log.1 is the first backup made, log.5 is the 5th backup made, etc. - For infinite backups use >= 0 to reduce - rollover costs. - - The default file count direction is -1. - - - - - Gets or sets the rolling style. - - The rolling style. - - - The default rolling style is . - - - When set to this appender's - property is set to false, otherwise - the appender would append to a single file rather than rolling - the file each time it is opened. - - - - - - Gets or sets a value indicating whether to preserve the file name extension when rolling. - - - true if the file name extension should be preserved. - - - - By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. - However, under Windows the new file name will loose any program associations as the - extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or - file.curSizeRollBackup.log to maintain any program associations. - - - - - - Gets or sets a value indicating whether to always log to - the same file. - - - true if always should be logged to the same file, otherwise false. - - - - By default file.log is always the current file. Optionally - file.log.yyyy-mm-dd for current formatted datePattern can by the currently - logging file (or file.log.curSizeRollBackup or even - file.log.yyyy-mm-dd.curSizeRollBackup). - - - This will make time based rollovers with a large number of backups - much faster as the appender it won't have to rename all the backups! - - - - - - Style of rolling to use - - - - Style of rolling to use - - - - - - Roll files once per program execution - - - - Roll files once per program execution. - Well really once each time this appender is - configured. - - - Setting this option also sets AppendToFile to - false on the RollingFileAppender, otherwise - this appender would just be a normal file appender. - - - - - - Roll files based only on the size of the file - - - - - Roll files based only on the date - - - - - Roll files based on both the size and date of the file - - - - - The code assumes that the following 'time' constants are in a increasing sequence. - - - - The code assumes that the following 'time' constants are in a increasing sequence. - - - - - - Roll the log not based on the date - - - - - Roll the log for each minute - - - - - Roll the log for each hour - - - - - Roll the log twice a day (midday and midnight) - - - - - Roll the log each day (midnight) - - - - - Roll the log each week - - - - - Roll the log each month - - - - - This interface is used to supply Date/Time information to the . - - - This interface is used to supply Date/Time information to the . - Used primarily to allow test classes to plug themselves in so they can - supply test date/times. - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Default implementation of that returns the current time. - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Implementation of that returns the current time as the coordinated universal time (UTC). - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Send an e-mail when a specific logging event occurs, typically on errors - or fatal errors. - - - - The number of logging events delivered in this e-mail depend on - the value of option. The - keeps only the last - logging events in its - cyclic buffer. This keeps memory requirements at a reasonable level while - still delivering useful application context. - - - Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. - For these features to be enabled you need to ensure that you are using a version of - the log4net assembly that is built against the MS .NET 1.1 framework and that you are - running the your application on the MS .NET 1.1 runtime. On all other platforms only sending - unauthenticated messages to a server listening on port 25 (the default) is supported. - - - Authentication is supported by setting the property to - either or . - If using authentication then the - and properties must also be set. - - - To set the SMTP server port use the property. The default port is 25. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Default constructor - - - - - - Sends the contents of the cyclic buffer as an e-mail message. - - The logging events to send. - - - - Send the email message - - the body text to include in the mail - - - - Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - - Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses - that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - - Gets or sets a semicolon-delimited list of recipient e-mail addresses - that will be blind carbon copied. - - - A semicolon-delimited list of e-mail addresses. - - - - A semicolon-delimited list of recipient e-mail addresses. - - - - - - Gets or sets the e-mail address of the sender. - - - The e-mail address of the sender. - - - - The e-mail address of the sender. - - - - - - Gets or sets the subject line of the e-mail message. - - - The subject line of the e-mail message. - - - - The subject line of the e-mail message. - - - - - - Gets or sets the name of the SMTP relay mail server to use to send - the e-mail messages. - - - The name of the e-mail relay server. If SmtpServer is not set, the - name of the local SMTP server is used. - - - - The name of the e-mail relay server. If SmtpServer is not set, the - name of the local SMTP server is used. - - - - - - Obsolete - - - Use the BufferingAppenderSkeleton Fix methods instead - - - - Obsolete property. - - - - - - The mode to use to authentication with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - Valid Authentication mode values are: , - , and . - The default value is . When using - you must specify the - and to use to authenticate. - When using the Windows credentials for the current - thread, if impersonating, or the process will be used to authenticate. - - - - - - The username to use to authenticate with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - A and must be specified when - is set to , - otherwise the username will be ignored. - - - - - - The password to use to authenticate with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - A and must be specified when - is set to , - otherwise the password will be ignored. - - - - - - The port on which the SMTP server is listening - - - Server Port is only available on the MS .NET 1.1 runtime. - - The port on which the SMTP server is listening. The default - port is 25. The Port can only be changed when running on - the MS .NET 1.1 runtime. - - - - - - Gets or sets the priority of the e-mail message - - - One of the values. - - - - Sets the priority of the e-mails generated by this - appender. The default priority is . - - - If you are using this appender to report errors then - you may want to set the priority to . - - - - - - Enable or disable use of SSL when sending e-mail message - - - This is available on MS .NET 2.0 runtime and higher - - - - - Gets or sets the reply-to e-mail address. - - - This is available on MS .NET 2.0 runtime and higher - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Values for the property. - - - - SMTP authentication modes. - - - - - - No authentication - - - - - Basic authentication. - - - Requires a username and password to be supplied - - - - - Integrated authentication - - - Uses the Windows credentials from the current thread or process to authenticate. - - - - - Send an email when a specific logging event occurs, typically on errors - or fatal errors. Rather than sending via smtp it writes a file into the - directory specified by . This allows services such - as the IIS SMTP agent to manage sending the messages. - - - - The configuration for this appender is identical to that of the SMTPAppender, - except that instead of specifying the SMTPAppender.SMTPHost you specify - . - - - The number of logging events delivered in this e-mail depend on - the value of option. The - keeps only the last - logging events in its - cyclic buffer. This keeps memory requirements at a reasonable level while - still delivering useful application context. - - - Niall Daley - Nicko Cadell - - - - Default constructor - - - - Default constructor - - - - - - Sends the contents of the cyclic buffer as an e-mail message. - - The logging events to send. - - - Sends the contents of the cyclic buffer as an e-mail message. - - - - - - Activate the options on this appender. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Convert a path into a fully qualified path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - - - - The security context to use for privileged calls - - - - - Gets or sets a semicolon-delimited list of recipient e-mail addresses. - - - A semicolon-delimited list of e-mail addresses. - - - - A semicolon-delimited list of e-mail addresses. - - - - - - Gets or sets the e-mail address of the sender. - - - The e-mail address of the sender. - - - - The e-mail address of the sender. - - - - - - Gets or sets the subject line of the e-mail message. - - - The subject line of the e-mail message. - - - - The subject line of the e-mail message. - - - - - - Gets or sets the path to write the messages to. - - - - Gets or sets the path to write the messages to. This should be the same - as that used by the agent sending the messages. - - - - - - Gets or sets the used to write to the pickup directory. - - - The used to write to the pickup directory. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appender that allows clients to connect via Telnet to receive log messages - - - - The TelnetAppender accepts socket connections and streams logging messages - back to the client. - The output is provided in a telnet-friendly way so that a log can be monitored - over a TCP/IP socket. - This allows simple remote monitoring of application logging. - - - The default is 23 (the telnet port). - - - Keith Long - Nicko Cadell - - - - Default constructor - - - - Default constructor - - - - - - The fully qualified type of the TelnetAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Overrides the parent method to close the socket handler - - - - Closes all the outstanding connections. - - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Create the socket handler and wait for connections - - - - - - Writes the logging event to each connected client. - - The event to log. - - - Writes the logging event to each connected client. - - - - - - Gets or sets the TCP port number on which this will listen for connections. - - - An integer value in the range to - indicating the TCP port number on which this will listen for connections. - - - - The default value is 23 (the telnet port). - - - The value specified is less than - or greater than . - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Helper class to manage connected clients - - - - The SocketHandler class is used to accept connections from - clients. It is threaded so that clients can connect/disconnect - asynchronously. - - - - - - Opens a new server port on - - the local port to listen on for connections - - - Creates a socket handler on the specified local server port. - - - - - - Sends a string message to each of the connected clients - - the text to send - - - Sends a string message to each of the connected clients - - - - - - Add a client to the internal clients list - - client to add - - - - Remove a client from the internal clients list - - client to remove - - - - Callback used to accept a connection on the server socket - - The result of the asynchronous operation - - - On connection adds to the list of connections - if there are two many open connections you will be disconnected - - - - - - Close all network connections - - - - Make sure we close all network connections - - - - - - Test if this handler has active connections - - - true if this handler has active connections - - - - This property will be true while this handler has - active connections, that is at least one connection that - the handler will attempt to send a message to. - - - - - - Class that represents a client connected to this handler - - - - Class that represents a client connected to this handler - - - - - - Create this for the specified - - the client's socket - - - Opens a stream writer on the socket. - - - - - - Write a string to the client - - string to send - - - Write a string to the client - - - - - - Cleanup the clients connection - - - - Close the socket connection. - - - - - - Appends log events to the system. - - - - The application configuration file can be used to control what listeners - are actually used. See the MSDN documentation for the - class for details on configuring the - trace system. - - - Events are written using the System.Diagnostics.Trace.Write(string,string) - method. The event's logger name is the default value for the category parameter - of the Write method. - - - Compact Framework
    - The Compact Framework does not support the - class for any operation except Assert. When using the Compact Framework this - appender will write to the system rather than - the Trace system. This appender will therefore behave like the . -
    -
    - Douglas de la Torre - Nicko Cadell - Gert Driesen - Ron Grabowski -
    - - - Initializes a new instance of the . - - - - Default constructor. - - - - - - Initializes a new instance of the - with a specified layout. - - The layout to use with this appender. - - - Obsolete constructor. - - - - - - Writes the logging event to the system. - - The event to log. - - - Writes the logging event to the system. - - - - - - Immediate flush means that the underlying writer or output stream - will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logs events are not actually written to persistent media if and - when the application crashes. - - - The default value is true. - - - - - Defaults to %logger - - - - - Gets or sets a value that indicates whether the appender will - flush at the end of each write. - - - The default behavior is to flush at the end of each - write. If the option is set tofalse, then the underlying - stream can defer writing to physical medium to a later time. - - - Avoiding the flush operation at the end of each append results - in a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - - The category parameter sent to the Trace method. - - - - Defaults to %logger which will use the logger name of the current - as the category parameter. - - - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Assembly level attribute that specifies a domain to alias to this assembly's repository. - - - - AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. - - - An assembly's logger repository is defined by its , - however this can be overridden by an assembly loaded before the target assembly. - - - An assembly can alias another assembly's domain to its repository by - specifying this attribute with the name of the target domain. - - - This attribute can only be specified on the assembly and may be used - as many times as necessary to alias all the required domains. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute that specifies a repository to alias to this assembly's repository. - - - - An assembly's logger repository is defined by its , - however this can be overridden by an assembly loaded before the target assembly. - - - An assembly can alias another assembly's repository to its repository by - specifying this attribute with the name of the target repository. - - - This attribute can only be specified on the assembly and may be used - as many times as necessary to alias all the required repositories. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class with - the specified repository to alias to this assembly's repository. - - The repository to alias to this assemby's repository. - - - Initializes a new instance of the class with - the specified repository to alias to this assembly's repository. - - - - - - Gets or sets the repository to alias to this assemby's repository. - - - The repository to alias to this assemby's repository. - - - - The name of the repository to alias to this assemby's repository. - - - - - - Initializes a new instance of the class with - the specified domain to alias to this assembly's repository. - - The domain to alias to this assemby's repository. - - - Obsolete. Use instead of . - - - - - - Use this class to quickly configure a . - - - - Allows very simple programmatic configuration of log4net. - - - Only one appender can be configured using this configurator. - The appender is set at the root of the hierarchy and all logging - events will be delivered to that appender. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - The fully qualified type of the BasicConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Initializes the log4net system with a default configuration. - - - - Initializes the log4net logging system using a - that will write to Console.Out. The log messages are - formatted using the layout object - with the - layout style. - - - - - - Initializes the log4net system using the specified appender. - - The appender to use to log all logging events. - - - Initializes the log4net system using the specified appender. - - - - - - Initializes the log4net system using the specified appenders. - - The appenders to use to log all logging events. - - - Initializes the log4net system using the specified appenders. - - - - - - Initializes the with a default configuration. - - The repository to configure. - - - Initializes the specified repository using a - that will write to Console.Out. The log messages are - formatted using the layout object - with the - layout style. - - - - - - Initializes the using the specified appender. - - The repository to configure. - The appender to use to log all logging events. - - - Initializes the using the specified appender. - - - - - - Initializes the using the specified appenders. - - The repository to configure. - The appenders to use to log all logging events. - - - Initializes the using the specified appender. - - - - - - Base class for all log4net configuration attributes. - - - This is an abstract class that must be extended by - specific configurators. This attribute allows the - configurator to be parameterized by an assembly level - attribute. - - Nicko Cadell - Gert Driesen - - - - Constructor used by subclasses. - - the ordering priority for this configurator - - - The is used to order the configurator - attributes before they are invoked. Higher priority configurators are executed - before lower priority ones. - - - - - - Configures the for the specified assembly. - - The assembly that this attribute was defined on. - The repository to configure. - - - Abstract method implemented by a subclass. When this method is called - the subclass should configure the . - - - - - - Compare this instance to another ConfiguratorAttribute - - the object to compare to - see - - - Compares the priorities of the two instances. - Sorts by priority in descending order. Objects with the same priority are - randomly ordered. - - - - - - Assembly level attribute that specifies the logging domain for the assembly. - - - - DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - Assemblies are mapped to logging domains. Each domain has its own - logging repository. This attribute specified on the assembly controls - the configuration of the domain. The property specifies the name - of the domain that this assembly is a part of. The - specifies the type of the repository objects to create for the domain. If - this attribute is not specified and a is not specified - then the assembly will be part of the default shared logging domain. - - - This attribute can only be specified on the assembly and may only be used - once per assembly. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute that specifies the logging repository for the assembly. - - - - Assemblies are mapped to logging repository. This attribute specified - on the assembly controls - the configuration of the repository. The property specifies the name - of the repository that this assembly is a part of. The - specifies the type of the object - to create for the assembly. If this attribute is not specified or a - is not specified then the assembly will be part of the default shared logging repository. - - - This attribute can only be specified on the assembly and may only be used - once per assembly. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initialize a new instance of the class - with the name of the repository. - - The name of the repository. - - - Initialize the attribute with the name for the assembly's repository. - - - - - - Gets or sets the name of the logging repository. - - - The string name to use as the name of the repository associated with this - assembly. - - - - This value does not have to be unique. Several assemblies can share the - same repository. They will share the logging configuration of the repository. - - - - - - Gets or sets the type of repository to create for this assembly. - - - The type of repository to create for this assembly. - - - - The type of the repository to create for the assembly. - The type must implement the - interface. - - - This will be the type of repository created when - the repository is created. If multiple assemblies reference the - same repository then the repository is only created once using the - of the first assembly to call into the - repository. - - - - - - Initializes a new instance of the class. - - - - Obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - - - - Initialize a new instance of the class - with the name of the domain. - - The name of the domain. - - - Obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - - - - Use this class to initialize the log4net environment using an Xml tree. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - Configures a using an Xml tree. - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - - - Automatically configures the log4net system based on the - application's configuration settings. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - 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 - log4net that contains the configuration data. - - - - - Automatically configures the using settings - stored in the application's configuration file. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - 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 - log4net that contains the configuration data. - - The repository to configure. - - - - Configures log4net using a log4net element - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - Loads the log4net configuration from the XML element - supplied as . - - The element to parse. - - - - Configures the using the specified XML - element. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - Loads the log4net configuration from the XML element - supplied as . - - The repository to configure. - The element to parse. - - - - Configures log4net using the specified configuration file. - - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures log4net using the specified configuration file. - - A stream to load the XML configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The stream to load the XML configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures log4net using the file specified, monitors the file for changes - and reloads the configuration if a change is detected. - - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the using the file specified, - monitors the file for changes and reloads the configuration if a change - is detected. - - The repository to configure. - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Assembly level attribute to configure the . - - - - AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute to configure the . - - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - If neither of the or - properties are set the configuration is loaded from the application's .config file. - If set the property takes priority over the - property. The property - specifies a path to a file to load the config from. The path is relative to the - application's base directory; . - The property is used as a postfix to the assembly file name. - The config file must be located in the application's base directory; . - For example in a console application setting the to - config has the same effect as not specifying the or - properties. - - - The property can be set to cause the - to watch the configuration file for changes. - - - - Log4net will only look for assembly level configuration attributes once. - When using the log4net assembly level attributes to control the configuration - of log4net you must ensure that the first call to any of the - methods is made from the assembly with the configuration - attributes. - - - If you cannot guarantee the order in which log4net calls will be made from - different assemblies you must use programmatic configuration instead, i.e. - call the method directly. - - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Default constructor - - - - - - Configures the for the specified assembly. - - The assembly that this attribute was defined on. - The repository to configure. - - - Configure the repository using the . - The specified must extend the - class otherwise the will not be able to - configure it. - - - The does not extend . - - - - Attempt to load configuration from the local file system - - The assembly that this attribute was defined on. - The repository to configure. - - - - Configure the specified repository using a - - The repository to configure. - the FileInfo pointing to the config file - - - - Attempt to load configuration from a URI - - The assembly that this attribute was defined on. - The repository to configure. - - - - The fully qualified type of the XmlConfiguratorAttribute class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the filename of the configuration file. - - - The filename of the configuration file. - - - - If specified, this is the name of the configuration file to use with - the . This file path is relative to the - application base directory (). - - - The takes priority over the . - - - - - - Gets or sets the extension of the configuration file. - - - The extension of the configuration file. - - - - If specified this is the extension for the configuration file. - The path to the config file is built by using the application - base directory (), - the assembly file name and the config file extension. - - - If the is set to MyExt then - possible config file names would be: MyConsoleApp.exe.MyExt or - MyClassLibrary.dll.MyExt. - - - The takes priority over the . - - - - - - Gets or sets a value indicating whether to watch the configuration file. - - - true if the configuration should be watched, false otherwise. - - - - If this flag is specified and set to true then the framework - will watch the configuration file and will reload the config each time - the file is modified. - - - The config file can only be watched if it is loaded from local disk. - In a No-Touch (Smart Client) deployment where the application is downloaded - from a web server the config file may not reside on the local disk - and therefore it may not be able to watch it. - - - Watching configuration is not supported on the SSCLI. - - - - - - Class to register for the log4net section of the configuration file - - - The log4net section of the configuration file needs to have a section - handler registered. This is the section handler used. It simply returns - the XML element that is the root of the section. - - - Example of registering the log4net section handler : - - - -
    - - - log4net configuration XML goes here - - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Parses the configuration section. - - The configuration settings in a corresponding parent configuration section. - The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. - The for the log4net section. - The for the log4net section. - - - Returns the containing the configuration data, - - - - - - Assembly level attribute that specifies a plugin to attach to - the repository. - - - - Specifies the type of a plugin to create and attach to the - assembly's repository. The plugin type must implement the - interface. - - - Nicko Cadell - Gert Driesen - - - - Interface used to create plugins. - - - - Interface used to create a plugin. - - - Nicko Cadell - Gert Driesen - - - - Creates the plugin object. - - the new plugin instance - - - Create and return a new plugin instance. - - - - - - Initializes a new instance of the class - with the specified type. - - The type name of plugin to create. - - - Create the attribute with the plugin type specified. - - - Where possible use the constructor that takes a . - - - - - - Initializes a new instance of the class - with the specified type. - - The type of plugin to create. - - - Create the attribute with the plugin type specified. - - - - - - Creates the plugin object defined by this attribute. - - - - Creates the instance of the object as - specified by this attribute. - - - The plugin object. - - - - Returns a representation of the properties of this object. - - - - Overrides base class method to - return a representation of the properties of this object. - - - A representation of the properties of this object - - - - Gets or sets the type for the plugin. - - - The type for the plugin. - - - - The type for the plugin. - - - - - - Gets or sets the type name for the plugin. - - - The type name for the plugin. - - - - The type name for the plugin. - - - Where possible use the property instead. - - - - - - Assembly level attribute to configure the . - - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - Nicko Cadell - - - - Construct provider attribute with type specified - - the type of the provider to use - - - The provider specified must subclass the - class. - - - - - - Configures the SecurityContextProvider - - The assembly that this attribute was defined on. - The repository to configure. - - - Creates a provider instance from the specified. - Sets this as the default security context provider . - - - - - - The fully qualified type of the SecurityContextProviderAttribute class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the type of the provider to use. - - - the type of the provider to use. - - - - The provider specified must subclass the - class. - - - - - - Use this class to initialize the log4net environment using an Xml tree. - - - - Configures a using an Xml tree. - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - - - Automatically configures the log4net system based on the - application's configuration settings. - - - - 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 - log4net that contains the configuration data. - - - To use this method to configure log4net you must specify - the section - handler for the log4net configuration section. See the - for an example. - - - - - - - Automatically configures the using settings - stored in the application's configuration file. - - - - 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 - log4net that contains the configuration data. - - - To use this method to configure log4net you must specify - the section - handler for the log4net configuration section. See the - for an example. - - - The repository to configure. - - - - Configures log4net using a log4net element - - - - Loads the log4net configuration from the XML element - supplied as . - - - The element to parse. - - - - Configures the using the specified XML - element. - - - Loads the log4net configuration from the XML element - supplied as . - - The repository to configure. - The element to parse. - - - - Configures log4net using the specified configuration file. - - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The first element matching <configuration> will be read as the - configuration. If this file is also a .NET .config file then you must specify - a configuration section for the log4net element otherwise .NET will - complain. Set the type for the section handler to , for example: - - -
    - - - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures log4net using the specified configuration URI. - - A URI to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The must support the URI scheme specified. - - - - - - Configures log4net using the specified configuration data stream. - - A stream to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The first element matching <configuration> will be read as the - configuration. If this file is also a .NET .config file then you must specify - a configuration section for the log4net element otherwise .NET will - complain. Set the type for the section handler to , for example: - - -
    - - - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures the using the specified configuration - URI. - - The repository to configure. - A URI to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The must support the URI scheme specified. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The stream to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures log4net using the file specified, monitors the file for changes - and reloads the configuration if a change is detected. - - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the using the file specified, - monitors the file for changes and reloads the configuration if a change - is detected. - - The repository to configure. - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the specified repository using a log4net element. - - The hierarchy to configure. - The element to parse. - - - Loads the log4net configuration from the XML element - supplied as . - - - This method is ultimately called by one of the Configure methods - to load the configuration from an . - - - - - - Maps repository names to ConfigAndWatchHandler instances to allow a particular - ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is - reconfigured. - - - - - The fully qualified type of the XmlConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Class used to watch config files. - - - - Uses the to monitor - changes to a specified file. Because multiple change notifications - may be raised when the file is modified, a timer is used to - compress the notifications into a single event. The timer - waits for time before delivering - the event notification. If any further - change notifications arrive while the timer is waiting it - is reset and waits again for to - elapse. - - - - - - The default amount of time to wait after receiving notification - before reloading the config file. - - - - - Holds the FileInfo used to configure the XmlConfigurator - - - - - Holds the repository being configured. - - - - - The timer used to compress the notification events. - - - - - Watches file for changes. This object should be disposed when no longer - needed to free system handles on the watched resources. - - - - - Initializes a new instance of the class to - watch a specified config file used to configure a repository. - - The repository to configure. - The configuration file to watch. - - - Initializes a new instance of the class. - - - - - - Event handler used by . - - The firing the event. - The argument indicates the file that caused the event to be fired. - - - This handler reloads the configuration from the file when the event is fired. - - - - - - Event handler used by . - - The firing the event. - The argument indicates the file that caused the event to be fired. - - - This handler reloads the configuration from the file when the event is fired. - - - - - - Called by the timer when the configuration has been updated. - - null - - - - Release the handles held by the watcher and timer. - - - - - The implementation of the interface suitable - for use with the compact framework - - - - This implementation is a simple - mapping between repository name and - object. - - - The .NET Compact Framework 1.0 does not support retrieving assembly - level attributes therefore unlike the DefaultRepositorySelector - this selector does not examine the calling assembly for attributes. - - - Nicko Cadell - - - - Interface used by the to select the . - - - - The uses a - to specify the policy for selecting the correct - to return to the caller. - - - Nicko Cadell - Gert Driesen - - - - Gets the for the specified assembly. - - The assembly to use to lookup to the - The for the assembly. - - - Gets the for the specified assembly. - - - How the association between and - is made is not defined. The implementation may choose any method for - this association. The results of this method must be repeatable, i.e. - when called again with the same arguments the result must be the - save value. - - - - - - Gets the named . - - The name to use to lookup to the . - The named - - Lookup a named . This is the repository created by - calling . - - - - - Creates a new repository for the assembly specified. - - The assembly to use to create the domain to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the domain - specified such that a call to with the - same assembly specified will return the same repository instance. - - - How the association between and - is made is not defined. The implementation may choose any method for - this association. - - - - - - Creates a new repository with the name specified. - - The name to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the name - specified such that a call to with the - same name will return the same repository instance. - - - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets an array of all currently defined repositories. - - - An array of the instances created by - this . - - - Gets an array of all of the repositories created by this selector. - - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - Create a new repository selector - - the type of the repositories to create, must implement - - - Create an new compact repository selector. - The default type for repositories must be specified, - an appropriate value would be . - - - throw if is null - throw if does not implement - - - - Get the for the specified assembly - - not used - The default - - - The argument is not used. This selector does not create a - separate repository for each assembly. - - - As a named repository is not specified the default repository is - returned. The default repository is named log4net-default-repository. - - - - - - Get the named - - the name of the repository to lookup - The named - - - Get the named . The default - repository is log4net-default-repository. Other repositories - must be created using the . - If the named repository does not exist an exception is thrown. - - - throw if is null - throw if the does not exist - - - - Create a new repository for the assembly specified - - not used - the type of repository to create, must implement - the repository created - - - The argument is not used. This selector does not create a - separate repository for each assembly. - - - If the is null then the - default repository type specified to the constructor is used. - - - As a named repository is not specified the default repository is - returned. The default repository is named log4net-default-repository. - - - - - - Create a new repository for the repository specified - - the repository to associate with the - the type of repository to create, must implement . - If this param is null then the default repository type is used. - the repository created - - - The created will be associated with the repository - specified such that a call to with the - same repository specified will return the same repository instance. - - - If the named repository already exists an exception will be thrown. - - - If is null then the default - repository type specified to the constructor is used. - - - throw if is null - throw if the already exists - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets a list of objects - - an array of all known objects - - - Gets an array of all of the repositories created by this selector. - - - - - - The fully qualified type of the CompactRepositorySelector class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Notify the registered listeners that the repository has been created - - The repository that has been created - - - Raises the LoggerRepositoryCreatedEvent - event. - - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - The default implementation of the interface. - - - - Uses attributes defined on the calling assembly to determine how to - configure the hierarchy for the repository. - - - Nicko Cadell - Gert Driesen - - - - Creates a new repository selector. - - The type of the repositories to create, must implement - - - Create an new repository selector. - The default type for repositories must be specified, - an appropriate value would be . - - - is . - does not implement . - - - - Gets the for the specified assembly. - - The assembly use to lookup the . - - - The type of the created and the repository - to create can be overridden by specifying the - attribute on the . - - - The default values are to use the - implementation of the interface and to use the - as the name of the repository. - - - The created will be automatically configured using - any attributes defined on - the . - - - The for the assembly - is . - - - - Gets the for the specified repository. - - The repository to use to lookup the . - The for the specified repository. - - - Returns the named repository. If is null - a is thrown. If the repository - does not exist a is thrown. - - - Use to create a repository. - - - is . - does not exist. - - - - Create a new repository for the assembly specified - - the assembly to use to create the repository to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The type of the created and - the repository to create can be overridden by specifying the - attribute on the - . The default values are to use the - implementation of the - interface and to use the - as the name of the repository. - - - The created will be automatically - configured using any - attributes defined on the . - - - If a repository for the already exists - that repository will be returned. An error will not be raised and that - repository may be of a different type to that specified in . - Also the attribute on the - assembly may be used to override the repository type specified in - . - - - is . - - - - Creates a new repository for the assembly specified. - - the assembly to use to create the repository to associate with the . - The type of repository to create, must implement . - The name to assign to the created repository - Set to true to read and apply the assembly attributes - The repository created. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The type of the created and - the repository to create can be overridden by specifying the - attribute on the - . The default values are to use the - implementation of the - interface and to use the - as the name of the repository. - - - The created will be automatically - configured using any - attributes defined on the . - - - If a repository for the already exists - that repository will be returned. An error will not be raised and that - repository may be of a different type to that specified in . - Also the attribute on the - assembly may be used to override the repository type specified in - . - - - is . - - - - Creates a new repository for the specified repository. - - The repository to associate with the . - The type of repository to create, must implement . - If this param is then the default repository type is used. - The new repository. - - - The created will be associated with the repository - specified such that a call to with the - same repository specified will return the same repository instance. - - - is . - already exists. - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets a list of objects - - an array of all known objects - - - Gets an array of all of the repositories created by this selector. - - - - - - Aliases a repository to an existing repository. - - The repository to alias. - The repository that the repository is aliased to. - - - The repository specified will be aliased to the repository when created. - The repository must not already exist. - - - When the repository is created it must utilize the same repository type as - the repository it is aliased to, otherwise the aliasing will fail. - - - - is . - -or- - is . - - - - - Notifies the registered listeners that the repository has been created. - - The repository that has been created. - - - Raises the event. - - - - - - Gets the repository name and repository type for the specified assembly. - - The assembly that has a . - in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. - in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. - is . - - - - Configures the repository using information from the assembly. - - The assembly containing - attributes which define the configuration for the repository. - The repository to configure. - - is . - -or- - is . - - - - - Loads the attribute defined plugins on the assembly. - - The assembly that contains the attributes. - The repository to add the plugins to. - - is . - -or- - is . - - - - - Loads the attribute defined aliases on the assembly. - - The assembly that contains the attributes. - The repository to alias to. - - is . - -or- - is . - - - - - The fully qualified type of the DefaultRepositorySelector class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - Defined error codes that can be passed to the method. - - - - Values passed to the method. - - - Nicko Cadell - - - - A general error - - - - - Error while writing output - - - - - Failed to flush file - - - - - Failed to close file - - - - - Unable to open output file - - - - - No layout specified - - - - - Failed to parse address - - - - - An evaluator that triggers on an Exception type - - - - This evaluator will trigger if the type of the Exception - passed to - is equal to a Type in . /// - - - Drew Schaeffer - - - - Test if an triggers an action - - - - Implementations of this interface allow certain appenders to decide - when to perform an appender specific action. - - - The action or behavior triggered is defined by the implementation. - - - Nicko Cadell - - - - Test if this event triggers the action - - The event to check - true if this event triggers the action, otherwise false - - - Return true if this event triggers the action - - - - - - The type that causes the trigger to fire. - - - - - Causes subclasses of to cause the trigger to fire. - - - - - Default ctor to allow dynamic creation through a configurator. - - - - - Constructs an evaluator and initializes to trigger on - - the type that triggers this evaluator. - If true, this evaluator will trigger on subclasses of . - - - - Is this the triggering event? - - The event to check - This method returns true, if the logging event Exception - Type is . - Otherwise it returns false - - - This evaluator will trigger if the Exception Type of the event - passed to - is . - - - - - - The type that triggers this evaluator. - - - - - If true, this evaluator will trigger on subclasses of . - - - - - Appenders may delegate their error handling to an . - - - - Error handling is a particularly tedious to get right because by - definition errors are hard to predict and to reproduce. - - - Nicko Cadell - Gert Driesen - - - - Handles the error and information about the error condition is passed as - a parameter. - - The message associated with the error. - The that was thrown when the error occurred. - The error code associated with the error. - - - Handles the error and information about the error condition is passed as - a parameter. - - - - - - Prints the error message passed as a parameter. - - The message associated with the error. - The that was thrown when the error occurred. - - - See . - - - - - - Prints the error message passed as a parameter. - - The message associated with the error. - - - See . - - - - - - Interface for objects that require fixing. - - - - Interface that indicates that the object requires fixing before it - can be taken outside the context of the appender's - method. - - - When objects that implement this interface are stored - in the context properties maps - and - are fixed - (see ) the - method will be called. - - - Nicko Cadell - - - - Get a portable version of this object - - the portable instance of this object - - - Get a portable instance object that represents the current - state of this object. The portable object can be stored - and logged from any thread with identical results. - - - - - - Interface that all loggers implement - - - - This interface supports logging events and testing if a level - is enabled for logging. - - - These methods will not throw exceptions. Note to implementor, ensure - that the implementation of these methods cannot allow an exception - to be thrown to the caller. - - - Nicko Cadell - Gert Driesen - - - - This generic form is intended to be used by wrappers. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - the exception to log, including its stack trace. Pass null to not log an exception. - - - Generates a logging event for the specified using - the and . - - - - - - This is the most generic printing method that is intended to be used - by wrappers. - - The event being logged. - - - Logs the specified logging event through this logger. - - - - - - Checks if this logger is enabled for a given passed as parameter. - - The level to check. - - true if this logger is enabled for level, otherwise false. - - - - Test if this logger is going to log events of the specified . - - - - - - Gets the name of the logger. - - - The name of the logger. - - - - The name of this logger - - - - - - Gets the where this - Logger instance is attached to. - - - The that this logger belongs to. - - - - Gets the where this - Logger instance is attached to. - - - - - - Base interface for all wrappers - - - - Base interface for all wrappers. - - - All wrappers must implement this interface. - - - Nicko Cadell - - - - Get the implementation behind this wrapper object. - - - The object that in implementing this object. - - - - The object that in implementing this - object. The Logger object may not - be the same object as this object because of logger decorators. - This gets the actual underlying objects that is used to process - the log events. - - - - - - Delegate used to handle logger repository creation event notifications - - The which created the repository. - The event args - that holds the instance that has been created. - - - Delegate used to handle logger repository creation event notifications. - - - - - - Provides data for the event. - - - - A - event is raised every time a is created. - - - - - - The created - - - - - Construct instance using specified - - the that has been created - - - Construct instance using specified - - - - - - The that has been created - - - The that has been created - - - - The that has been created - - - - - - Defines the default set of levels recognized by the system. - - - - Each has an associated . - - - Levels have a numeric that defines the relative - ordering between levels. Two Levels with the same - are deemed to be equivalent. - - - The levels that are recognized by log4net are set for each - and each repository can have different levels defined. The levels are stored - in the on the repository. Levels are - looked up by name from the . - - - When logging at level INFO the actual level used is not but - the value of LoggerRepository.LevelMap["INFO"]. The default value for this is - , but this can be changed by reconfiguring the level map. - - - Each level has a in addition to its . The - is the string that is written into the output log. By default - the display name is the same as the level name, but this can be used to alias levels - or to localize the log output. - - - Some of the predefined levels recognized by the system are: - - - - . - - - . - - - . - - - . - - - . - - - . - - - . - - - - Nicko Cadell - Gert Driesen - - - - Constructor - - Integer value for this level, higher values represent more severe levels. - The string name of this level. - The display name for this level. This may be localized or otherwise different from the name - - - Initializes a new instance of the class with - the specified level name and value. - - - - - - Constructor - - Integer value for this level, higher values represent more severe levels. - The string name of this level. - - - Initializes a new instance of the class with - the specified level name and value. - - - - - - Returns the representation of the current - . - - - A representation of the current . - - - - Returns the level . - - - - - - Compares levels. - - The object to compare against. - true if the objects are equal. - - - Compares the levels of instances, and - defers to base class if the target object is not a - instance. - - - - - - Returns a hash code - - A hash code for the current . - - - Returns a hash code suitable for use in hashing algorithms and data - structures like a hash table. - - - Returns the hash code of the level . - - - - - - Compares this instance to a specified object and returns an - indication of their relative values. - - A instance or to compare with this instance. - - A 32-bit signed integer that indicates the relative order of the - values compared. The return value has these meanings: - - - Value - Meaning - - - Less than zero - This instance is less than . - - - Zero - This instance is equal to . - - - Greater than zero - - This instance is greater than . - -or- - is . - - - - - - - must be an instance of - or ; otherwise, an exception is thrown. - - - is not a . - - - - Returns a value indicating whether a specified - is greater than another specified . - - A - A - - true if is greater than - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is less than another specified . - - A - A - - true if is less than - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is greater than or equal to another specified . - - A - A - - true if is greater than or equal to - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is less than or equal to another specified . - - A - A - - true if is less than or equal to - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether two specified - objects have the same value. - - A or . - A or . - - true if the value of is the same as the - value of ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether two specified - objects have different values. - - A or . - A or . - - true if the value of is different from - the value of ; otherwise, false. - - - - Compares two levels. - - - - - - Compares two specified instances. - - The first to compare. - The second to compare. - - A 32-bit signed integer that indicates the relative order of the - two values compared. The return value has these meanings: - - - Value - Meaning - - - Less than zero - is less than . - - - Zero - is equal to . - - - Greater than zero - is greater than . - - - - - - Compares two levels. - - - - - - The level designates a higher level than all the rest. - - - - - The level designates very severe error events. - System unusable, emergencies. - - - - - The level designates very severe error events. - System unusable, emergencies. - - - - - The level designates very severe error events - that will presumably lead the application to abort. - - - - - The level designates very severe error events. - Take immediate action, alerts. - - - - - The level designates very severe error events. - Critical condition, critical. - - - - - The level designates very severe error events. - - - - - The level designates error events that might - still allow the application to continue running. - - - - - The level designates potentially harmful - situations. - - - - - The level designates informational messages - that highlight the progress of the application at the highest level. - - - - - The level designates informational messages that - highlight the progress of the application at coarse-grained level. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates the lowest level possible. - - - - - Gets the name of this level. - - - The name of this level. - - - - Gets the name of this level. - - - - - - Gets the value of this level. - - - The value of this level. - - - - Gets the value of this level. - - - - - - Gets the display name of this level. - - - The display name of this level. - - - - Gets the display name of this level. - - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a LevelCollection instance. - - list to create a readonly wrapper arround - - A LevelCollection wrapper that is read-only. - - - - - Initializes a new instance of the LevelCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the LevelCollection class - that has the specified initial capacity. - - - The number of elements that the new LevelCollection is initially capable of storing. - - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified LevelCollection. - - The LevelCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - Copies the entire LevelCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire LevelCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the LevelCollection. - - The to be added to the end of the LevelCollection. - The index at which the value has been added. - - - - Removes all elements from the LevelCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the LevelCollection. - - The to check for. - true if is found in the LevelCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the LevelCollection. - - The to locate in the LevelCollection. - - The zero-based index of the first occurrence of - in the entire LevelCollection, if found; otherwise, -1. - - - - - Inserts an element into the LevelCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the LevelCollection. - - The to remove from the LevelCollection. - - The specified was not found in the LevelCollection. - - - - - Removes the element at the specified index of the LevelCollection. - - The zero-based index of the element to remove. - - is less than zero - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the LevelCollection. - - An for the entire LevelCollection. - - - - Adds the elements of another LevelCollection to the current LevelCollection. - - The LevelCollection whose elements should be added to the end of the current LevelCollection. - The new of the LevelCollection. - - - - Adds the elements of a array to the current LevelCollection. - - The array whose elements should be added to the end of the LevelCollection. - The new of the LevelCollection. - - - - Adds the elements of a collection to the current LevelCollection. - - The collection whose elements should be added to the end of the LevelCollection. - The new of the LevelCollection. - - - - Sets the capacity to the actual number of elements. - - - - - is less than zero - -or- - is equal to or greater than . - - - - - is less than zero - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the LevelCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - The zero-based index of the element to get or set. - - is less than zero - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false - - - - Gets or sets the number of elements the LevelCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - A value - - - - - Supports simple iteration over a . - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - An evaluator that triggers at a threshold level - - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - Nicko Cadell - - - - The threshold for triggering - - - - - Create a new evaluator using the threshold. - - - - Create a new evaluator using the threshold. - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Create a new evaluator using the specified threshold. - - the threshold to trigger at - - - Create a new evaluator using the specified threshold. - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Is this the triggering event? - - The event to check - This method returns true, if the event level - is equal or higher than the . - Otherwise it returns false - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - the threshold to trigger at - - - The that will cause this evaluator to trigger - - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Mapping between string name and Level object - - - - Mapping between string name and object. - This mapping is held separately for each . - The level name is case insensitive. - - - Nicko Cadell - - - - Mapping from level name to Level object. The - level name is case insensitive - - - - - Construct the level map - - - - Construct the level map. - - - - - - Clear the internal maps of all levels - - - - Clear the internal maps of all levels - - - - - - Create a new Level and add it to the map - - the string to display for the Level - the level value to give to the Level - - - Create a new Level and add it to the map - - - - - - - Create a new Level and add it to the map - - the string to display for the Level - the level value to give to the Level - the display name to give to the Level - - - Create a new Level and add it to the map - - - - - - Add a Level to the map - - the Level to add - - - Add a Level to the map - - - - - - Lookup a named level from the map - - the name of the level to lookup is taken from this level. - If the level is not set on the map then this level is added - the level in the map with the name specified - - - Lookup a named level from the map. The name of the level to lookup is taken - from the property of the - argument. - - - If no level with the specified name is found then the - argument is added to the level map - and returned. - - - - - - Lookup a by name - - The name of the Level to lookup - a Level from the map with the name specified - - - Returns the from the - map with the name specified. If the no level is - found then null is returned. - - - - - - Return all possible levels as a list of Level objects. - - all possible levels as a list of Level objects - - - Return all possible levels as a list of Level objects. - - - - - - The internal representation of caller location information. - - - - This class uses the System.Diagnostics.StackTrace class to generate - a call stack. The caller's information is then extracted from this stack. - - - The System.Diagnostics.StackTrace class is not supported on the - .NET Compact Framework 1.0 therefore caller location information is not - available on that framework. - - - The System.Diagnostics.StackTrace class has this to say about Release builds: - - - "StackTrace information will be most informative with Debug build configurations. - By default, Debug builds include debug symbols, while Release builds do not. The - debug symbols contain most of the file, method name, line number, and column - information used in constructing StackFrame and StackTrace objects. StackTrace - might not report as many method calls as expected, due to code transformations - that occur during optimization." - - - This means that in a Release build the caller information may be incomplete or may - not exist at all! Therefore caller location information cannot be relied upon in a Release build. - - - Nicko Cadell - Gert Driesen - - - - When location information is not available the constant - NA is returned. Current value of this string - constant is ?. - - - - - Constructor - - The declaring type of the method that is - the stack boundary into the logging system for this call. - - - Initializes a new instance of the - class based on the current thread. - - - - - - Constructor - - The fully qualified class name. - The method name. - The file name. - The line number of the method within the file. - - - Initializes a new instance of the - class with the specified data. - - - - - - The fully qualified type of the LocationInfo class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the fully qualified class name of the caller making the logging - request. - - - The fully qualified class name of the caller making the logging - request. - - - - Gets the fully qualified class name of the caller making the logging - request. - - - - - - Gets the file name of the caller. - - - The file name of the caller. - - - - Gets the file name of the caller. - - - - - - Gets the line number of the caller. - - - The line number of the caller. - - - - Gets the line number of the caller. - - - - - - Gets the method name of the caller. - - - The method name of the caller. - - - - Gets the method name of the caller. - - - - - - Gets all available caller information - - - All available caller information, in the format - fully.qualified.classname.of.caller.methodName(Filename:line) - - - - Gets all available caller information, in the format - fully.qualified.classname.of.caller.methodName(Filename:line) - - - - - - Gets the stack frames from the stack trace of the caller making the log request - - - - - Static manager that controls the creation of repositories - - - - Static manager that controls the creation of repositories - - - This class is used by the wrapper managers (e.g. ) - to provide access to the objects. - - - This manager also holds the that is used to - lookup and create repositories. The selector can be set either programmatically using - the property, or by setting the log4net.RepositorySelector - AppSetting in the applications config file to the fully qualified type name of the - selector to use. - - - Nicko Cadell - Gert Driesen - - - - Private constructor to prevent instances. Only static methods should be used. - - - - Private constructor to prevent instances. Only static methods should be used. - - - - - - Hook the shutdown event - - - - On the full .NET runtime, the static constructor hooks up the - AppDomain.ProcessExit and AppDomain.DomainUnload> events. - These are used to shutdown the log4net system as the application exits. - - - - - - Register for ProcessExit and DomainUnload events on the AppDomain - - - - This needs to be in a separate method because the events make - a LinkDemand for the ControlAppDomain SecurityPermission. Because - this is a LinkDemand it is demanded at JIT time. Therefore we cannot - catch the exception in the method itself, we have to catch it in the - caller. - - - - - - Return the default instance. - - the repository to lookup in - Return the default instance - - - Gets the for the repository specified - by the argument. - - - - - - Returns the default instance. - - The assembly to use to lookup the repository. - The default instance. - - - - Return the default instance. - - the repository to lookup in - Return the default instance - - - Gets the for the repository specified - by the argument. - - - - - - Returns the default instance. - - The assembly to use to lookup the repository. - The default instance. - - - Returns the default instance. - - - - - - Returns the named logger if it exists. - - The repository to lookup in. - The fully qualified logger name to look for. - - The logger found, or null if the named logger does not exist in the - specified repository. - - - - If the named logger exists (in the specified repository) then it - returns a reference to the logger, otherwise it returns - null. - - - - - - Returns the named logger if it exists. - - The assembly to use to lookup the repository. - The fully qualified logger name to look for. - - The logger found, or null if the named logger does not exist in the - specified assembly's repository. - - - - If the named logger exists (in the specified assembly's repository) then it - returns a reference to the logger, otherwise it returns - null. - - - - - - Returns all the currently defined loggers in the specified repository. - - The repository to lookup in. - All the defined loggers. - - - The root logger is not included in the returned array. - - - - - - Returns all the currently defined loggers in the specified assembly's repository. - - The assembly to use to lookup the repository. - All the defined loggers. - - - The root logger is not included in the returned array. - - - - - - Retrieves or creates a named logger. - - The repository to lookup in. - The name of the logger to retrieve. - The logger with the name specified. - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - - - - Retrieves or creates a named logger. - - The assembly to use to lookup the repository. - The name of the logger to retrieve. - The logger with the name specified. - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - - - - Shorthand for . - - The repository to lookup in. - The of which the fullname will be used as the name of the logger to retrieve. - The logger with the name specified. - - - Gets the logger for the fully qualified name of the type specified. - - - - - - Shorthand for . - - the assembly to use to lookup the repository - The of which the fullname will be used as the name of the logger to retrieve. - The logger with the name specified. - - - Gets the logger for the fully qualified name of the type specified. - - - - - - Shuts down the log4net system. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in all the - default repositories. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - The repository to shutdown. - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository for the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - The assembly to use to lookup the repository. - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository for the repository. The repository is looked up using - the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Resets all values contained in this repository instance to their defaults. - - The repository to reset. - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - - - - Resets all values contained in this repository instance to their defaults. - - The assembly to use to lookup the repository to reset. - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - - - - Creates a repository with the specified name. - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name. - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The name must be unique. Repositories cannot be redefined. - An Exception will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The name must be unique. Repositories cannot be redefined. - An Exception will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository for the specified assembly and repository type. - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - - - - Creates a repository for the specified assembly and repository type. - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - - - - Gets an array of all currently defined repositories. - - An array of all the known objects. - - - Gets an array of all currently defined repositories. - - - - - - Internal method to get pertinent version info. - - A string of version info. - - - - Called when the event fires - - the that is exiting - null - - - Called when the event fires. - - - When the event is triggered the log4net system is . - - - - - - Called when the event fires - - the that is exiting - null - - - Called when the event fires. - - - When the event is triggered the log4net system is . - - - - - - The fully qualified type of the LoggerManager class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Initialize the default repository selector - - - - - Gets or sets the repository selector used by the . - - - The repository selector used by the . - - - - The repository selector () is used by - the to create and select repositories - (). - - - The caller to supplies either a string name - or an assembly (if not supplied the assembly is inferred using - ). - - - This context is used by the selector to lookup a specific repository. - - - For the full .NET Framework, the default repository is DefaultRepositorySelector; - for the .NET Compact Framework CompactRepositorySelector is the default - repository. - - - - - - Implementation of the interface. - - - - This class should be used as the base for all wrapper implementations. - - - Nicko Cadell - Gert Driesen - - - - Constructs a new wrapper for the specified logger. - - The logger to wrap. - - - Constructs a new wrapper for the specified logger. - - - - - - The logger that this object is wrapping - - - - - Gets the implementation behind this wrapper object. - - - The object that this object is implementing. - - - - The Logger object may not be the same object as this object - because of logger decorators. - - - This gets the actual underlying objects that is used to process - the log events. - - - - - - Portable data structure used by - - - - Portable data structure used by - - - Nicko Cadell - - - - The logger name. - - - - The logger name. - - - - - - Level of logging event. - - - - Level of logging event. Level cannot be Serializable - because it is a flyweight. Due to its special serialization it - cannot be declared final either. - - - - - - The application supplied message. - - - - The application supplied message of logging event. - - - - - - The name of thread - - - - The name of thread in which this logging event was generated - - - - - - The time the event was logged - - - - The TimeStamp is stored in the local time zone for this computer. - - - - - - Location information for the caller. - - - - Location information for the caller. - - - - - - String representation of the user - - - - String representation of the user's windows name, - like DOMAIN\username - - - - - - String representation of the identity. - - - - String representation of the current thread's principal identity. - - - - - - The string representation of the exception - - - - The string representation of the exception - - - - - - String representation of the AppDomain. - - - - String representation of the AppDomain. - - - - - - Additional event specific properties - - - - A logger or an appender may attach additional - properties to specific events. These properties - have a string key and an object value. - - - - - - Flags passed to the property - - - - Flags passed to the property - - - Nicko Cadell - - - - Fix the MDC - - - - - Fix the NDC - - - - - Fix the rendered message - - - - - Fix the thread name - - - - - Fix the callers location information - - - CAUTION: Very slow to generate - - - - - Fix the callers windows user name - - - CAUTION: Slow to generate - - - - - Fix the domain friendly name - - - - - Fix the callers principal name - - - CAUTION: May be slow to generate - - - - - Fix the exception text - - - - - Fix the event properties. Active properties must implement in order to be eligible for fixing. - - - - - No fields fixed - - - - - All fields fixed - - - - - Partial fields fixed - - - - This set of partial fields gives good performance. The following fields are fixed: - - - - - - - - - - - - - The internal representation of logging events. - - - - When an affirmative decision is made to log then a - instance is created. This instance - is passed around to the different log4net components. - - - This class is of concern to those wishing to extend log4net. - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - for incurred by calling but it - is essential to maintaining data consistency. - - - Nicko Cadell - Gert Driesen - Douglas de la Torre - Daniel Cazzulino - - - - The key into the Properties map for the host name value. - - - - - The key into the Properties map for the thread identity value. - - - - - The key into the Properties map for the user name value. - - - - - Initializes a new instance of the class - from the supplied parameters. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - The name of the logger of this event. - The level of this event. - The message of this event. - The exception for this event. - - - Except , and , - all fields of LoggingEvent are filled when actually needed. Call - to cache all data locally - to prevent inconsistencies. - - This method is called by the log4net framework - to create a logging event. - - - - - - Initializes a new instance of the class - using specific data. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - Data used to initialize the logging event. - The fields in the struct that have already been fixed. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - The parameter should be used to specify which fields in the - struct have been preset. Fields not specified in the - will be captured from the environment if requested or fixed. - - - - - - Initializes a new instance of the class - using specific data. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - Data used to initialize the logging event. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - This constructor sets this objects flags to , - this assumes that all the data relating to this event is passed in via the - parameter and no other data should be captured from the environment. - - - - - - Initializes a new instance of the class - using specific data. - - Data used to initialize the logging event. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - This constructor sets this objects flags to , - this assumes that all the data relating to this event is passed in via the - parameter and no other data should be captured from the environment. - - - - - - Serialization constructor - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Ensure that the repository is set. - - the value for the repository - - - - Write the rendered message to a TextWriter - - the writer to write the message to - - - Unlike the property this method - does store the message data in the internal cache. Therefore - if called only once this method should be faster than the - property, however if the message is - to be accessed multiple times then the property will be more efficient. - - - - - - Serializes this object into the provided. - - The to populate with data. - The destination for this serialization. - - - The data in this event must be fixed before it can be serialized. - - - The method must be called during the - method call if this event - is to be used outside that method. - - - - - - Gets the portable data for this . - - The for this event. - - - A new can be constructed using a - instance. - - - Does a fix of the data - in the logging event before returning the event data. - - - - - - Gets the portable data for this . - - The set of data to ensure is fixed in the LoggingEventData - The for this event. - - - A new can be constructed using a - instance. - - - - - - Returns this event's exception's rendered using the - . - - - This event's exception's rendered using the . - - - - Obsolete. Use instead. - - - - - - Returns this event's exception's rendered using the - . - - - This event's exception's rendered using the . - - - - Returns this event's exception's rendered using the - . - - - - - - Fix instance fields that hold volatile data. - - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - incurred by calling but it - is essential to maintaining data consistency. - - - Calling is equivalent to - calling passing the parameter - false. - - - See for more - information. - - - - - - Fixes instance fields that hold volatile data. - - Set to true to not fix data that takes a long time to fix. - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - for incurred by calling but it - is essential to maintaining data consistency. - - - The param controls the data that - is fixed. Some of the data that can be fixed takes a long time to - generate, therefore if you do not require those settings to be fixed - they can be ignored by setting the param - to true. This setting will ignore the - and settings. - - - Set to false to ensure that all - settings are fixed. - - - - - - Fix the fields specified by the parameter - - the fields to fix - - - Only fields specified in the will be fixed. - Fields will not be fixed if they have previously been fixed. - It is not possible to 'unfix' a field. - - - - - - Lookup a composite property in this event - - the key for the property to lookup - the value for the property - - - This event has composite properties that combine together properties from - several different contexts in the following order: - - - this events properties - - This event has that can be set. These - properties are specific to this event only. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - - - Get all the composite properties in this event - - the containing all the properties - - - See for details of the composite properties - stored by the event. - - - This method returns a single containing all the - properties defined for this event. - - - - - - The internal logging event data. - - - - - The internal logging event data. - - - - - The internal logging event data. - - - - - The fully qualified Type of the calling - logger class in the stack frame (i.e. the declaring type of the method). - - - - - The application supplied message of logging event. - - - - - The exception that was thrown. - - - This is not serialized. The string representation - is serialized instead. - - - - - The repository that generated the logging event - - - This is not serialized. - - - - - The fix state for this event - - - These flags indicate which fields have been fixed. - Not serialized. - - - - - Indicated that the internal cache is updateable (ie not fixed) - - - This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler - changes in the caching strategy. - - - - - Gets the time when the current process started. - - - This is the time when this process started. - - - - The TimeStamp is stored in the local time zone for this computer. - - - Tries to get the start time for the current process. - Failing that it returns the time of the first call to - this property. - - - Note that AppDomains may be loaded and unloaded within the - same process without the process terminating and therefore - without the process start time being reset. - - - - - - Gets the of the logging event. - - - The of the logging event. - - - - Gets the of the logging event. - - - - - - Gets the time of the logging event. - - - The time of the logging event. - - - - The TimeStamp is stored in the local time zone for this computer. - - - - - - Gets the name of the logger that logged the event. - - - The name of the logger that logged the event. - - - - Gets the name of the logger that logged the event. - - - - - - Gets the location information for this logging event. - - - The location information for this logging event. - - - - The collected information is cached for future use. - - - See the class for more information on - supported frameworks and the different behavior in Debug and - Release builds. - - - - - - Gets the message object used to initialize this event. - - - The message object used to initialize this event. - - - - Gets the message object used to initialize this event. - Note that this event may not have a valid message object. - If the event is serialized the message object will not - be transferred. To get the text of the message the - property must be used - not this property. - - - If there is no defined message object for this event then - null will be returned. - - - - - - Gets the exception object used to initialize this event. - - - The exception object used to initialize this event. - - - - Gets the exception object used to initialize this event. - Note that this event may not have a valid exception object. - If the event is serialized the exception object will not - be transferred. To get the text of the exception the - method must be used - not this property. - - - If there is no defined exception object for this event then - null will be returned. - - - - - - The that this event was created in. - - - - The that this event was created in. - - - - - - Gets the message, rendered through the . - - - The message rendered through the . - - - - The collected information is cached for future use. - - - - - - Gets the name of the current thread. - - - The name of the current thread, or the thread ID when - the name is not available. - - - - The collected information is cached for future use. - - - - - - Gets the name of the current user. - - - The name of the current user, or NOT AVAILABLE when the - underlying runtime has no support for retrieving the name of the - current user. - - - - Calls WindowsIdentity.GetCurrent().Name to get the name of - the current windows user. - - - To improve performance, we could cache the string representation of - the name, and reuse that as long as the identity stayed constant. - Once the identity changed, we would need to re-assign and re-render - the string. - - - However, the WindowsIdentity.GetCurrent() call seems to - return different objects every time, so the current implementation - doesn't do this type of caching. - - - Timing for these operations: - - - - Method - Results - - - WindowsIdentity.GetCurrent() - 10000 loops, 00:00:00.2031250 seconds - - - WindowsIdentity.GetCurrent().Name - 10000 loops, 00:00:08.0468750 seconds - - - - This means we could speed things up almost 40 times by caching the - value of the WindowsIdentity.GetCurrent().Name property, since - this takes (8.04-0.20) = 7.84375 seconds. - - - - - - Gets the identity of the current thread principal. - - - The string name of the identity of the current thread principal. - - - - Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get - the name of the current thread principal. - - - - - - Gets the AppDomain friendly name. - - - The AppDomain friendly name. - - - - Gets the AppDomain friendly name. - - - - - - Additional event specific properties. - - - Additional event specific properties. - - - - A logger or an appender may attach additional - properties to specific events. These properties - have a string key and an object value. - - - This property is for events that have been added directly to - this event. The aggregate properties (which include these - event properties) can be retrieved using - and . - - - Once the properties have been fixed this property - returns the combined cached properties. This ensures that updates to - this property are always reflected in the underlying storage. When - returning the combined properties there may be more keys in the - Dictionary than expected. - - - - - - The fixed fields in this event - - - The set of fields that are fixed in this event - - - - Fields will not be fixed if they have previously been fixed. - It is not possible to 'unfix' a field. - - - - - - Implementation of wrapper interface. - - - - This implementation of the interface - forwards to the held by the base class. - - - This logger has methods to allow the caller to log at the following - levels: - - - - DEBUG - - The and methods log messages - at the DEBUG level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - INFO - - The and methods log messages - at the INFO level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - WARN - - The and methods log messages - at the WARN level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - ERROR - - The and methods log messages - at the ERROR level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - FATAL - - The and methods log messages - at the FATAL level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - - The values for these levels and their semantic meanings can be changed by - configuring the for the repository. - - - Nicko Cadell - Gert Driesen - - - - The ILog interface is use by application to log messages into - the log4net framework. - - - - Use the to obtain logger instances - that implement this interface. The - static method is used to get logger instances. - - - This class contains methods for logging at different levels and also - has properties for determining if those logging levels are - enabled in the current configuration. - - - This interface can be implemented in different ways. This documentation - specifies reasonable behavior that a caller can expect from the actual - implementation, however different implementations reserve the right to - do things differently. - - - Simple example of logging messages - - ILog log = LogManager.GetLogger("application-log"); - - log.Info("Application Start"); - log.Debug("This is a debug message"); - - if (log.IsDebugEnabled) - { - log.Debug("This is another debug message"); - } - - - - - Nicko Cadell - Gert Driesen - - - Log a message object with the level. - - Log a message object with the level. - - The message object to log. - - - This method first checks if this logger is DEBUG - enabled by comparing the level of this logger with the - level. If this logger is - DEBUG enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of - the additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Logs a message object with the level. - - - - This method first checks if this logger is INFO - enabled by comparing the level of this logger with the - level. If this logger is - INFO enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Logs a message object with the INFO level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Log a message object with the level. - - - - This method first checks if this logger is WARN - enabled by comparing the level of this logger with the - level. If this logger is - WARN enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Logs a message object with the level. - - The message object to log. - - - This method first checks if this logger is ERROR - enabled by comparing the level of this logger with the - level. If this logger is - ERROR enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Log a message object with the level. - - - - This method first checks if this logger is FATAL - enabled by comparing the level of this logger with the - level. If this logger is - FATAL enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - - This function is intended to lessen the computational cost of - disabled log debug statements. - - For some ILog interface log, when you write: - - log.Debug("This is entry number: " + i ); - - - You incur the cost constructing the message, string construction and concatenation in - this case, regardless of whether the message is logged or not. - - - If you are worried about speed (who isn't), then you should write: - - - if (log.IsDebugEnabled) - { - log.Debug("This is entry number: " + i ); - } - - - This way you will not incur the cost of parameter - construction if debugging is disabled for log. On - the other hand, if the log is debug enabled, you - will incur the cost of evaluating whether the logger is debug - enabled twice. Once in and once in - the . This is an insignificant overhead - since evaluating a logger takes about 1% of the time it - takes to actually log. This is the preferred style of logging. - - Alternatively if your logger is available statically then the is debug - enabled state can be stored in a static variable like this: - - - private static readonly bool isDebugEnabled = log.IsDebugEnabled; - - - Then when you come to log you can write: - - - if (isDebugEnabled) - { - log.Debug("This is entry number: " + i ); - } - - - This way the debug enabled state is only queried once - when the class is loaded. Using a private static readonly - variable is the most efficient because it is a run time constant - and can be heavily optimized by the JIT compiler. - - - Of course if you use a static readonly variable to - hold the enabled state of the logger then you cannot - change the enabled state at runtime to vary the logging - that is produced. You have to decide if you need absolute - speed or runtime flexibility. - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Construct a new wrapper for the specified logger. - - The logger to wrap. - - - Construct a new wrapper for the specified logger. - - - - - - Virtual method called when the configuration of the repository changes - - the repository holding the levels - - - Virtual method called when the configuration of the repository changes - - - - - - Logs a message object with the DEBUG level. - - The message object to log. - - - This method first checks if this logger is DEBUG - enabled by comparing the level of this logger with the - DEBUG level. If this logger is - DEBUG enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the DEBUG level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the DEBUG level including - the stack trace of the passed - as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the INFO level. - - The message object to log. - - - This method first checks if this logger is INFO - enabled by comparing the level of this logger with the - INFO level. If this logger is - INFO enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of - the additivity flag. - - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the INFO level. - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the INFO level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the WARN level. - - the message object to log - - - This method first checks if this logger is WARN - enabled by comparing the level of this logger with the - WARN level. If this logger is - WARN enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the WARN level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the WARN level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the ERROR level. - - The message object to log. - - - This method first checks if this logger is ERROR - enabled by comparing the level of this logger with the - ERROR level. If this logger is - ERROR enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the ERROR level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the ERROR level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the FATAL level. - - The message object to log. - - - This method first checks if this logger is FATAL - enabled by comparing the level of this logger with the - FATAL level. If this logger is - FATAL enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the FATAL level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the FATAL level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Event handler for the event - - the repository - Empty - - - - The fully qualified name of this declaring type not the type of any subclass. - - - - - Checks if this logger is enabled for the DEBUG - level. - - - true if this logger is enabled for DEBUG events, - false otherwise. - - - - This function is intended to lessen the computational cost of - disabled log debug statements. - - - For some log Logger object, when you write: - - - log.Debug("This is entry number: " + i ); - - - You incur the cost constructing the message, concatenation in - this case, regardless of whether the message is logged or not. - - - If you are worried about speed, then you should write: - - - if (log.IsDebugEnabled()) - { - log.Debug("This is entry number: " + i ); - } - - - This way you will not incur the cost of parameter - construction if debugging is disabled for log. On - the other hand, if the log is debug enabled, you - will incur the cost of evaluating whether the logger is debug - enabled twice. Once in IsDebugEnabled and once in - the Debug. This is an insignificant overhead - since evaluating a logger takes about 1% of the time it - takes to actually log. - - - - - - Checks if this logger is enabled for the INFO level. - - - true if this logger is enabled for INFO events, - false otherwise. - - - - See for more information and examples - of using this method. - - - - - - - Checks if this logger is enabled for the WARN level. - - - true if this logger is enabled for WARN events, - false otherwise. - - - - See for more information and examples - of using this method. - - - - - - - Checks if this logger is enabled for the ERROR level. - - - true if this logger is enabled for ERROR events, - false otherwise. - - - - See for more information and examples of using this method. - - - - - - - Checks if this logger is enabled for the FATAL level. - - - true if this logger is enabled for FATAL events, - false otherwise. - - - - See for more information and examples of using this method. - - - - - - - A SecurityContext used by log4net when interacting with protected resources - - - - A SecurityContext used by log4net when interacting with protected resources - for example with operating system services. This can be used to impersonate - a principal that has been granted privileges on the system resources. - - - Nicko Cadell - - - - Impersonate this SecurityContext - - State supplied by the caller - An instance that will - revoke the impersonation of this SecurityContext, or null - - - Impersonate this security context. Further calls on the current - thread should now be made in the security context provided - by this object. When the result - method is called the security - context of the thread should be reverted to the state it was in - before was called. - - - - - - The providers default instances. - - - - A configured component that interacts with potentially protected system - resources uses a to provide the elevated - privileges required. If the object has - been not been explicitly provided to the component then the component - will request one from this . - - - By default the is - an instance of which returns only - objects. This is a reasonable default - where the privileges required are not know by the system. - - - This default behavior can be overridden by subclassing the - and overriding the method to return - the desired objects. The default provider - can be replaced by programmatically setting the value of the - property. - - - An alternative is to use the log4net.Config.SecurityContextProviderAttribute - This attribute can be applied to an assembly in the same way as the - log4net.Config.XmlConfiguratorAttribute". The attribute takes - the type to use as the as an argument. - - - Nicko Cadell - - - - The default provider - - - - - Protected default constructor to allow subclassing - - - - Protected default constructor to allow subclassing - - - - - - Create a SecurityContext for a consumer - - The consumer requesting the SecurityContext - An impersonation context - - - The default implementation is to return a . - - - Subclasses should override this method to provide their own - behavior. - - - - - - Gets or sets the default SecurityContextProvider - - - The default SecurityContextProvider - - - - The default provider is used by configured components that - require a and have not had one - given to them. - - - By default this is an instance of - that returns objects. - - - The default provider can be set programmatically by setting - the value of this property to a sub class of - that has the desired behavior. - - - - - - An evaluator that triggers after specified number of seconds. - - - - This evaluator will trigger if the specified time period - has passed since last check. - - - Robert Sevcik - - - - The default time threshold for triggering in seconds. Zero means it won't trigger at all. - - - - - The time threshold for triggering in seconds. Zero means it won't trigger at all. - - - - - The time of last check. This gets updated when the object is created and when the evaluator triggers. - - - - - Create a new evaluator using the time threshold in seconds. - - - - Create a new evaluator using the time threshold in seconds. - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Create a new evaluator using the specified time threshold in seconds. - - - The time threshold in seconds to trigger after. - Zero means it won't trigger at all. - - - - Create a new evaluator using the specified time threshold in seconds. - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Is this the triggering event? - - The event to check - This method returns true, if the specified time period - has passed since last check.. - Otherwise it returns false - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - The time threshold in seconds to trigger after - - - The time threshold in seconds to trigger after. - Zero means it won't trigger at all. - - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Delegate used to handle creation of new wrappers. - - The logger to wrap in a wrapper. - - - Delegate used to handle creation of new wrappers. This delegate - is called from the - method to construct the wrapper for the specified logger. - - - The delegate to use is supplied to the - constructor. - - - - - - Maps between logger objects and wrapper objects. - - - - This class maintains a mapping between objects and - objects. Use the method to - lookup the for the specified . - - - New wrapper instances are created by the - method. The default behavior is for this method to delegate construction - of the wrapper to the delegate supplied - to the constructor. This allows specialization of the behavior without - requiring subclassing of this type. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the - - The handler to use to create the wrapper objects. - - - Initializes a new instance of the class with - the specified handler to create the wrapper objects. - - - - - - Gets the wrapper object for the specified logger. - - The wrapper object for the specified logger - - - If the logger is null then the corresponding wrapper is null. - - - Looks up the wrapper it it has previously been requested and - returns it. If the wrapper has never been requested before then - the virtual method is - called. - - - - - - Creates the wrapper object for the specified logger. - - The logger to wrap in a wrapper. - The wrapper object for the logger. - - - This implementation uses the - passed to the constructor to create the wrapper. This method - can be overridden in a subclass. - - - - - - Called when a monitored repository shutdown event is received. - - The that is shutting down - - - This method is called when a that this - is holding loggers for has signaled its shutdown - event . The default - behavior of this method is to release the references to the loggers - and their wrappers generated for this repository. - - - - - - Event handler for repository shutdown event. - - The sender of the event. - The event args. - - - - Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings - - - - - The handler to use to create the extension wrapper objects. - - - - - Internal reference to the delegate used to register for repository shutdown events. - - - - - Gets the map of logger repositories. - - - Map of logger repositories. - - - - Gets the hashtable that is keyed on . The - values are hashtables keyed on with the - value being the corresponding . - - - - - - Formats a as "HH:mm:ss,fff". - - - - Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". - - - Nicko Cadell - Gert Driesen - - - - Render a as a string. - - - - Interface to abstract the rendering of a - instance into a string. - - - The method is used to render the - date to a text writer. - - - Nicko Cadell - Gert Driesen - - - - Formats the specified date as a string. - - The date to format. - The writer to write to. - - - Format the as a string and write it - to the provided. - - - - - - String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. - - - - - String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. - - - - - String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. - - - - - Renders the date into a string. Format is "HH:mm:ss". - - The date to render into a string. - The string builder to write to. - - - Subclasses should override this method to render the date - into a string using a precision up to the second. This method - will be called at most once per second and the result will be - reused if it is needed again during the same second. - - - - - - Renders the date into a string. Format is "HH:mm:ss,fff". - - The date to render into a string. - The writer to write to. - - - Uses the method to generate the - time string up to the seconds and then appends the current - milliseconds. The results from are - cached and is called at most once - per second. - - - Sub classes should override - rather than . - - - - - - Last stored time with precision up to the second. - - - - - Last stored time with precision up to the second, formatted - as a string. - - - - - Last stored time with precision up to the second, formatted - as a string. - - - - - Formats a as "dd MMM yyyy HH:mm:ss,fff" - - - - Formats a in the format - "dd MMM yyyy HH:mm:ss,fff" for example, - "06 Nov 1994 15:49:37,459". - - - Nicko Cadell - Gert Driesen - Angelika Schnagl - - - - Default constructor. - - - - Initializes a new instance of the class. - - - - - - Formats the date without the milliseconds part - - The date to format. - The string builder to write to. - - - Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" - for example, "06 Nov 1994 15:49:37". - - - The base class will append the ",fff" milliseconds section. - This method will only be called at most once per second. - - - - - - The format info for the invariant culture. - - - - - Formats the as "yyyy-MM-dd HH:mm:ss,fff". - - - - Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Formats the date without the milliseconds part - - The date to format. - The string builder to write to. - - - Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". - - - The base class will append the ",fff" milliseconds section. - This method will only be called at most once per second. - - - - - - Formats the using the method. - - - - Formats the using the method. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The format string. - - - Initializes a new instance of the class - with the specified format string. - - - The format string must be compatible with the options - that can be supplied to . - - - - - - Formats the date using . - - The date to convert to a string. - The writer to write to. - - - Uses the date format string supplied to the constructor to call - the method to format the date. - - - - - - The format string used to format the . - - - - The format string must be compatible with the options - that can be supplied to . - - - - - - This filter drops all . - - - - You can add this filter to the end of a filter chain to - switch from the default "accept all unless instructed otherwise" - filtering behavior to a "deny all unless instructed otherwise" - behavior. - - - Nicko Cadell - Gert Driesen - - - - Subclass this type to implement customized logging event filtering - - - - Users should extend this class to implement customized logging - event filtering. Note that and - , the parent class of all standard - appenders, have built-in filtering rules. It is suggested that you - first use and understand the built-in rules before rushing to write - your own custom filters. - - - This abstract class assumes and also imposes that filters be - organized in a linear chain. The - method of each filter is called sequentially, in the order of their - addition to the chain. - - - The method must return one - of the integer constants , - or . - - - If the value is returned, then the log event is dropped - immediately without consulting with the remaining filters. - - - If the value is returned, then the next filter - in the chain is consulted. If there are no more filters in the - chain, then the log event is logged. Thus, in the presence of no - filters, the default behavior is to log all logging events. - - - If the value is returned, then the log - event is logged without consulting the remaining filters. - - - The philosophy of log4net filters is largely inspired from the - Linux ipchains. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface to provide customized logging event filtering - - - - Users should implement this interface to implement customized logging - event filtering. Note that and - , the parent class of all standard - appenders, have built-in filtering rules. It is suggested that you - first use and understand the built-in rules before rushing to write - your own custom filters. - - - This abstract class assumes and also imposes that filters be - organized in a linear chain. The - method of each filter is called sequentially, in the order of their - addition to the chain. - - - The method must return one - of the integer constants , - or . - - - If the value is returned, then the log event is dropped - immediately without consulting with the remaining filters. - - - If the value is returned, then the next filter - in the chain is consulted. If there are no more filters in the - chain, then the log event is logged. Thus, in the presence of no - filters, the default behavior is to log all logging events. - - - If the value is returned, then the log - event is logged without consulting the remaining filters. - - - The philosophy of log4net filters is largely inspired from the - Linux ipchains. - - - Nicko Cadell - Gert Driesen - - - - Decide if the logging event should be logged through an appender. - - The LoggingEvent to decide upon - The decision of the filter - - - If the decision is , then the event will be - dropped. If the decision is , then the next - filter, if any, will be invoked. If the decision is then - the event will be logged without consulting with other filters in - the chain. - - - - - - Property to get and set the next filter - - - The next filter in the chain - - - - Filters are typically composed into chains. This property allows the next filter in - the chain to be accessed. - - - - - - Points to the next filter in the filter chain. - - - - See for more information. - - - - - - Initialize the filter with the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Typically filter's options become active immediately on set, - however this method must still be called. - - - - - - Decide if the should be logged through an appender. - - The to decide upon - The decision of the filter - - - If the decision is , then the event will be - dropped. If the decision is , then the next - filter, if any, will be invoked. If the decision is then - the event will be logged without consulting with other filters in - the chain. - - - This method is marked abstract and must be implemented - in a subclass. - - - - - - Property to get and set the next filter - - - The next filter in the chain - - - - Filters are typically composed into chains. This property allows the next filter in - the chain to be accessed. - - - - - - Default constructor - - - - - Always returns the integer constant - - the LoggingEvent to filter - Always returns - - - Ignores the event being logged and just returns - . This can be used to change the default filter - chain behavior from to . This filter - should only be used as the last filter in the chain - as any further filters will be ignored! - - - - - - The return result from - - - - The return result from - - - - - - The log event must be dropped immediately without - consulting with the remaining filters, if any, in the chain. - - - - - This filter is neutral with respect to the log event. - The remaining filters, if any, should be consulted for a final decision. - - - - - The log event must be logged immediately without - consulting with the remaining filters, if any, in the chain. - - - - - This is a very simple filter based on matching. - - - - The filter admits two options and - . If there is an exact match between the value - of the option and the of the - , then the method returns in - case the option value is set - to true, if it is false then - is returned. If the does not match then - the result will be . - - - Nicko Cadell - Gert Driesen - - - - flag to indicate if the filter should on a match - - - - - the to match against - - - - - Default constructor - - - - - Tests if the of the logging event matches that of the filter - - the event to filter - see remarks - - - If the of the event matches the level of the - filter then the result of the function depends on the - value of . If it is true then - the function will return , it it is false then it - will return . If the does not match then - the result will be . - - - - - - when matching - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - The that the filter will match - - - - The level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - This is a simple filter based on matching. - - - - The filter admits three options and - that determine the range of priorities that are matched, and - . If there is a match between the range - of priorities and the of the , then the - method returns in case the - option value is set to true, if it is false - then is returned. If there is no match, is returned. - - - Nicko Cadell - Gert Driesen - - - - Flag to indicate the behavior when matching a - - - - - the minimum value to match - - - - - the maximum value to match - - - - - Default constructor - - - - - Check if the event should be logged. - - the logging event to check - see remarks - - - If the of the logging event is outside the range - matched by this filter then - is returned. If the is matched then the value of - is checked. If it is true then - is returned, otherwise - is returned. - - - - - - when matching and - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - Set the minimum matched - - - - The minimum level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - Sets the maximum matched - - - - The maximum level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - Simple filter to match a string in the event's logger name. - - - - The works very similar to the . It admits two - options and . If the - of the starts - with the value of the option, then the - method returns in - case the option value is set to true, - if it is false then is returned. - - - Daniel Cazzulino - - - - Flag to indicate the behavior when we have a match - - - - - The logger name string to substring match against the event - - - - - Default constructor - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The rendered message is matched against the . - If the equals the beginning of - the incoming () - then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - when matching - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - The that the filter will match - - - - This filter will attempt to match this value against logger name in - the following way. The match will be done against the beginning of the - logger name (using ). The match is - case sensitive. If a match is found then - the result depends on the value of . - - - - - - Simple filter to match a keyed string in the - - - - Simple filter to match a keyed string in the - - - As the MDC has been replaced with layered properties the - should be used instead. - - - Nicko Cadell - Gert Driesen - - - - Simple filter to match a string an event property - - - - Simple filter to match a string in the value for a - specific event property - - - Nicko Cadell - - - - Simple filter to match a string in the rendered message - - - - Simple filter to match a string in the rendered message - - - Nicko Cadell - Gert Driesen - - - - Flag to indicate the behavior when we have a match - - - - - The string to substring match against the message - - - - - A string regex to match - - - - - A regex object to match (generated from m_stringRegexToMatch) - - - - - Default constructor - - - - - Initialize and precompile the Regex if required - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The rendered message is matched against the . - If the occurs as a substring within - the message then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - when matching or - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - Sets the static string to match - - - - The string that will be substring matched against - the rendered message. If the message contains this - string then the filter will match. If a match is found then - the result depends on the value of . - - - One of or - must be specified. - - - - - - Sets the regular expression to match - - - - The regular expression pattern that will be matched against - the rendered message. If the message matches this - pattern then the filter will match. If a match is found then - the result depends on the value of . - - - One of or - must be specified. - - - - - - The key to use to lookup the string from the event properties - - - - - Default constructor - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The event property for the is matched against - the . - If the occurs as a substring within - the property value then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - The key to lookup in the event properties and then match against. - - - - The key name to use to lookup in the properties map of the - . The match will be performed against - the value of this property if it exists. - - - - - - Simple filter to match a string in the - - - - Simple filter to match a string in the - - - As the MDC has been replaced with named stacks stored in the - properties collections the should - be used instead. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Sets the to "NDC". - - - - - - Write the event appdomain name to the output - - - - Writes the to the output writer. - - - Daniel Cazzulino - Nicko Cadell - - - - Abstract class that provides the formatting functionality that - derived classes need. - - - Conversion specifiers in a conversion patterns are parsed to - individual PatternConverters. Each of which is responsible for - converting a logging event in a converter specific manner. - - Nicko Cadell - - - - Abstract class that provides the formatting functionality that - derived classes need. - - - - Conversion specifiers in a conversion patterns are parsed to - individual PatternConverters. Each of which is responsible for - converting a logging event in a converter specific manner. - - - Nicko Cadell - Gert Driesen - - - - Initial buffer size - - - - - Maximum buffer size before it is recycled - - - - - Protected constructor - - - - Initializes a new instance of the class. - - - - - - Evaluate this pattern converter and write the output to a writer. - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the appropriate way. - - - - - - Set the next pattern converter in the chains - - the pattern converter that should follow this converter in the chain - the next converter - - - The PatternConverter can merge with its neighbor during this method (or a sub class). - Therefore the return value may or may not be the value of the argument passed in. - - - - - - Write the pattern converter to the writer with appropriate formatting - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - This method calls to allow the subclass to perform - appropriate conversion of the pattern converter. If formatting options have - been specified via the then this method will - apply those formattings before writing the output. - - - - - - Fast space padding method. - - to which the spaces will be appended. - The number of spaces to be padded. - - - Fast space padding method. - - - - - - The option string to the converter - - - - - Write an dictionary to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the to a writer in the form: - - - {key1=value1, key2=value2, key3=value3} - - - If the specified - is not null then it is used to render the key and value to text, otherwise - the object's ToString method is called. - - - - - - Write an dictionary to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the to a writer in the form: - - - {key1=value1, key2=value2, key3=value3} - - - If the specified - is not null then it is used to render the key and value to text, otherwise - the object's ToString method is called. - - - - - - Write an object to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the Object to a writer. If the specified - is not null then it is used to render the object to text, otherwise - the object's ToString method is called. - - - - - - Get the next pattern converter in the chain - - - the next pattern converter in the chain - - - - Get the next pattern converter in the chain - - - - - - Gets or sets the formatting info for this converter - - - The formatting info for this converter - - - - Gets or sets the formatting info for this converter - - - - - - Gets or sets the option value for this converter - - - The option for this converter - - - - Gets or sets the option value for this converter - - - - - - - - - - - Initializes a new instance of the class. - - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The on which the pattern converter should be executed. - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - - Flag indicating if this converter handles exceptions - - - false if this converter handles exceptions - - - - - Flag indicating if this converter handles the logging event exception - - false if this converter handles the logging event exception - - - If this converter handles the exception object contained within - , then this property should be set to - false. Otherwise, if the layout ignores the exception - object, then the property should be set to true. - - - Set this value to override a this default setting. The default - value is true, this converter does not handle the exception. - - - - - - Write the event appdomain name to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output . - - - - - - Converter for items in the ASP.Net Cache. - - - - Outputs an item from the . - - - Ron Grabowski - - - - Abstract class that provides access to the current HttpContext () that - derived classes need. - - - This class handles the case when HttpContext.Current is null by writing - to the writer. - - Ron Grabowski - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - - Write the ASP.Net Cache item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. If no property has been set, all key value pairs from the Cache will - be written to the output. - - - - - - Converter for items in the . - - - - Outputs an item from the . - - - Ron Grabowski - - - - Write the ASP.Net HttpContext item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. - - - - - - Converter for items in the ASP.Net Cache. - - - - Outputs an item from the . - - - Ron Grabowski - - - - Write the ASP.Net Cache item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. - - - - - - Converter for items in the ASP.Net Cache. - - - - Outputs an item from the . - - - Ron Grabowski - - - - Write the ASP.Net Cache item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. If no property has been set, all key value pairs from the Session will - be written to the output. - - - - - - Date pattern converter, uses a to format - the date of a . - - - - Render the to the writer as a string. - - - The value of the determines - the formatting of the date. The following values are allowed: - - - Option value - Output - - - ISO8601 - - Uses the formatter. - Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. - - - - DATE - - Uses the formatter. - Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". - - - - ABSOLUTE - - Uses the formatter. - Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". - - - - other - - Any other pattern string uses the formatter. - This formatter passes the pattern string to the - method. - For details on valid patterns see - DateTimeFormatInfo Class. - - - - - - The is in the local time zone and is rendered in that zone. - To output the time in Universal time see . - - - Nicko Cadell - - - - The used to render the date to a string - - - - The used to render the date to a string - - - - - - Initialize the converter pattern based on the property. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Convert the pattern into the rendered message - - that will receive the formatted result. - the event being logged - - - Pass the to the - for it to render it to the writer. - - - The passed is in the local time zone. - - - - - - The fully qualified type of the DatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the exception text to the output - - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - - - If there is no exception then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - Nicko Cadell - - - - Default constructor - - - - - Write the exception text to the output - - that will receive the formatted result. - the event being logged - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - - - If there is no exception or the exception property specified - by the Option value does not exist then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - Recognized values for the Option parameter are: - - - - Message - - - Source - - - StackTrace - - - TargetSite - - - HelpLink - - - - - - - Writes the caller location file name to the output - - - - Writes the value of the for - the event to the output writer. - - - Nicko Cadell - - - - Write the caller location file name to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the for - the to the output . - - - - - - Write the caller location info to the output - - - - Writes the to the output writer. - - - Nicko Cadell - - - - Write the caller location info to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output writer. - - - - - - Writes the event identity to the output - - - - Writes the value of the to - the output writer. - - - Daniel Cazzulino - Nicko Cadell - - - - Writes the event identity to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the - to - the output . - - - - - - Write the event level to the output - - - - Writes the display name of the event - to the writer. - - - Nicko Cadell - - - - Write the event level to the output - - that will receive the formatted result. - the event being logged - - - Writes the of the - to the . - - - - - - Write the caller location line number to the output - - - - Writes the value of the for - the event to the output writer. - - - Nicko Cadell - - - - Write the caller location line number to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the for - the to the output . - - - - - - Converter for logger name - - - - Outputs the of the event. - - - Nicko Cadell - - - - Converter to output and truncate '.' separated strings - - - - This abstract class supports truncating a '.' separated string - to show a specified number of elements from the right hand side. - This is used to truncate class names that are fully qualified. - - - Subclasses should override the method to - return the fully qualified string. - - - Nicko Cadell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Get the fully qualified string data - - the event being logged - the fully qualified name - - - Overridden by subclasses to get the fully qualified name before the - precision is applied to it. - - - Return the fully qualified '.' (dot/period) separated string. - - - - - - Convert the pattern to the rendered message - - that will receive the formatted result. - the event being logged - - Render the to the precision - specified by the property. - - - - - The fully qualified type of the NamedPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the fully qualified name of the logger - - the event being logged - The fully qualified logger name - - - Returns the of the . - - - - - - Writes the event message to the output - - - - Uses the method - to write out the event message. - - - Nicko Cadell - - - - Writes the event message to the output - - that will receive the formatted result. - the event being logged - - - Uses the method - to write out the event message. - - - - - - Write the method name to the output - - - - Writes the caller location to - the output. - - - Nicko Cadell - - - - Write the method name to the output - - that will receive the formatted result. - the event being logged - - - Writes the caller location to - the output. - - - - - - Converter to include event NDC - - - - Outputs the value of the event property named NDC. - - - The should be used instead. - - - Nicko Cadell - - - - Write the event NDC to the output - - that will receive the formatted result. - the event being logged - - - As the thread context stacks are now stored in named event properties - this converter simply looks up the value of the NDC property. - - - The should be used instead. - - - - - - Property pattern converter - - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - Nicko Cadell - - - - Write the property value to the output - - that will receive the formatted result. - the event being logged - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - - - - Converter to output the relative time of the event - - - - Converter to output the time of the event relative to the start of the program. - - - Nicko Cadell - - - - Write the relative time to the output - - that will receive the formatted result. - the event being logged - - - Writes out the relative time of the event in milliseconds. - That is the number of milliseconds between the event - and the . - - - - - - Helper method to get the time difference between two DateTime objects - - start time (in the current local time zone) - end time (in the current local time zone) - the time difference in milliseconds - - - - Write the caller stack frames to the output - - - - Writes the to the output writer, using format: - type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) - - - Adam Davies - - - - Write the caller stack frames to the output - - - - Writes the to the output writer, using format: - type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 - - - Michael Cromwell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the strack frames to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output writer. - - - - - - Returns the Name of the method - - - This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter - string - - - - The fully qualified type of the StackTracePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - The fully qualified type of the StackTraceDetailPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Converter to include event thread name - - - - Writes the to the output. - - - Nicko Cadell - - - - Write the ThreadName to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the . - - - - - - Pattern converter for the class name - - - - Outputs the of the event. - - - Nicko Cadell - - - - Gets the fully qualified name of the class - - the event being logged - The fully qualified type name for the caller location - - - Returns the of the . - - - - - - Converter to include event user name - - Douglas de la Torre - Nicko Cadell - - - - Convert the pattern to the rendered message - - that will receive the formatted result. - the event being logged - - - - Write the TimeStamp to the output - - - - Date pattern converter, uses a to format - the date of a . - - - Uses a to format the - in Universal time. - - - See the for details on the date pattern syntax. - - - - Nicko Cadell - - - - Write the TimeStamp to the output - - that will receive the formatted result. - the event being logged - - - Pass the to the - for it to render it to the writer. - - - The passed is in the local time zone, this is converted - to Universal time before it is rendered. - - - - - - - The fully qualified type of the UtcDatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - A Layout that renders only the Exception text from the logging event - - - - A Layout that renders only the Exception text from the logging event. - - - This Layout should only be used with appenders that utilize multiple - layouts (e.g. ). - - - Nicko Cadell - Gert Driesen - - - - Extend this abstract class to create your own log layout format. - - - - This is the base implementation of the - interface. Most layout objects should extend this class. - - - - - - Subclasses must implement the - method. - - - Subclasses should set the in their default - constructor. - - - - Nicko Cadell - Gert Driesen - - - - Interface implemented by layout objects - - - - An object is used to format a - as text. The method is called by an - appender to transform the into a string. - - - The layout can also supply and - text that is appender before any events and after all the events respectively. - - - Nicko Cadell - Gert Driesen - - - - Implement this method to create your own layout format. - - The TextWriter to write the formatted event to - The event to format - - - This method is called by an appender to format - the as text and output to a writer. - - - If the caller does not have a and prefers the - event to be formatted as a then the following - code can be used to format the event into a . - - - StringWriter writer = new StringWriter(); - Layout.Format(writer, loggingEvent); - string formattedEvent = writer.ToString(); - - - - - - The content type output by this layout. - - The content type - - - The content type output by this layout. - - - This is a MIME type e.g. "text/plain". - - - - - - The header for the layout format. - - the layout header - - - The Header text will be appended before any logging events - are formatted and appended. - - - - - - The footer for the layout format. - - the layout footer - - - The Footer text will be appended after all the logging events - have been formatted and appended. - - - - - - Flag indicating if this layout handle exceptions - - false if this layout handles exceptions - - - If this layout handles the exception object contained within - , then the layout should return - false. Otherwise, if the layout ignores the exception - object, then the layout should return true. - - - - - - The header text - - - - See for more information. - - - - - - The footer text - - - - See for more information. - - - - - - Flag indicating if this layout handles exceptions - - - - false if this layout handles exceptions - - - - - - Empty default constructor - - - - Empty default constructor - - - - - - Activate component options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - This method must be implemented by the subclass. - - - - - - Implement this method to create your own layout format. - - The TextWriter to write the formatted event to - The event to format - - - This method is called by an appender to format - the as text. - - - - - - Convenience method for easily formatting the logging event into a string variable. - - - - Creates a new StringWriter instance to store the formatted logging event. - - - - - The content type output by this layout. - - The content type is "text/plain" - - - The content type output by this layout. - - - This base class uses the value "text/plain". - To change this value a subclass must override this - property. - - - - - - The header for the layout format. - - the layout header - - - The Header text will be appended before any logging events - are formatted and appended. - - - - - - The footer for the layout format. - - the layout footer - - - The Footer text will be appended after all the logging events - have been formatted and appended. - - - - - - Flag indicating if this layout handles exceptions - - false if this layout handles exceptions - - - If this layout handles the exception object contained within - , then the layout should return - false. Otherwise, if the layout ignores the exception - object, then the layout should return true. - - - Set this value to override a this default setting. The default - value is true, this layout does not handle the exception. - - - - - - Default constructor - - - - Constructs a ExceptionLayout - - - - - - Activate component options - - - - Part of the component activation - framework. - - - This method does nothing as options become effective immediately. - - - - - - Gets the exception text from the logging event - - The TextWriter to write the formatted event to - the event being logged - - - Write the exception string to the . - The exception string is retrieved from . - - - - - - Interface for raw layout objects - - - - Interface used to format a - to an object. - - - This interface should not be confused with the - interface. This interface is used in - only certain specialized situations where a raw object is - required rather than a formatted string. The - is not generally useful than this interface. - - - Nicko Cadell - Gert Driesen - - - - Implement this method to create your own layout format. - - The event to format - returns the formatted event - - - Implement this method to create your own layout format. - - - - - - Adapts any to a - - - - Where an is required this adapter - allows a to be specified. - - - Nicko Cadell - Gert Driesen - - - - The layout to adapt - - - - - Construct a new adapter - - the layout to adapt - - - Create the adapter for the specified . - - - - - - Format the logging event as an object. - - The event to format - returns the formatted event - - - Format the logging event as an object. - - - Uses the object supplied to - the constructor to perform the formatting. - - - - - - A flexible layout configurable with pattern string. - - - - The goal of this class is to a - as a string. The results - depend on the conversion pattern. - - - The conversion pattern is closely related to the conversion - pattern of the printf function in C. A conversion pattern is - composed of literal text and format control expressions called - conversion specifiers. - - - You are free to insert any literal text within the conversion - pattern. - - - Each conversion specifier starts with a percent sign (%) and is - followed by optional format modifiers and a conversion - pattern name. The conversion pattern name specifies the type of - data, e.g. logger, level, date, thread name. The format - modifiers control such things as field width, padding, left and - right justification. The following is a simple example. - - - Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume - that the log4net environment was set to use a PatternLayout. Then the - statements - - - ILog log = LogManager.GetLogger(typeof(TestApp)); - log.Debug("Message 1"); - log.Warn("Message 2"); - - would yield the output - - DEBUG [main]: Message 1 - WARN [main]: Message 2 - - - Note that there is no explicit separator between text and - conversion specifiers. The pattern parser knows when it has reached - the end of a conversion specifier when it reads a conversion - character. In the example above the conversion specifier - %-5level means the level of the logging event should be left - justified to a width of five characters. - - - The recognized conversion pattern names are: - - - - Conversion Pattern Name - Effect - - - a - Equivalent to appdomain - - - appdomain - - Used to output the friendly name of the AppDomain where the - logging event was generated. - - - - aspnet-cache - - - Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-context - - - Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-request - - - Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-session - - - Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - c - Equivalent to logger - - - C - Equivalent to type - - - class - Equivalent to type - - - d - Equivalent to date - - - date - - - Used to output the date of the logging event in the local time zone. - To output the date in universal time use the %utcdate pattern. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %date{HH:mm:ss,fff} or - %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %date{ISO8601} or %date{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - exception - - - Used to output the exception passed in with the log message. - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - If there is no exception then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - - - F - Equivalent to file - - - file - - - Used to output the file name where the logging request was - issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - identity - - - Used to output the user name for the currently active user - (Principal.Identity.Name). - - - WARNING Generating caller information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - - - l - Equivalent to location - - - L - Equivalent to line - - - location - - - Used to output location information of the caller which generated - the logging event. - - - The location information depends on the CLI implementation but - usually consists of the fully qualified name of the calling - method followed by the callers source the file name and line - number between parentheses. - - - The location information can be very useful. However, its - generation is extremely slow. Its use should be avoided - unless execution speed is not an issue. - - - See the note below on the availability of caller location information. - - - - - level - - - Used to output the level of the logging event. - - - - - line - - - Used to output the line number from where the logging request - was issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - logger - - - Used to output the logger of the logging event. The - logger conversion specifier can be optionally followed by - precision specifier, that is a decimal constant in - brackets. - - - If a precision specifier is given, then only the corresponding - number of right most components of the logger name will be - printed. By default the logger name is printed in full. - - - For example, for the logger name "a.b.c" the pattern - %logger{2} will output "b.c". - - - - - m - Equivalent to message - - - M - Equivalent to method - - - message - - - Used to output the application supplied message associated with - the logging event. - - - - - mdc - - - The MDC (old name for the ThreadContext.Properties) is now part of the - combined event properties. This pattern is supported for compatibility - but is equivalent to property. - - - - - method - - - Used to output the method name where the logging request was - issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - n - Equivalent to newline - - - newline - - - Outputs the platform dependent line separator character or - characters. - - - This conversion pattern offers the same performance as using - non-portable line separator strings such as "\n", or "\r\n". - Thus, it is the preferred way of specifying a line separator. - - - - - ndc - - - Used to output the NDC (nested diagnostic context) associated - with the thread that generated the logging event. - - - - - p - Equivalent to level - - - P - Equivalent to property - - - properties - Equivalent to property - - - property - - - Used to output the an event specific property. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %property{user} would include the value - from the property that is keyed by the string 'user'. Each property value - that is to be included in the log must be specified separately. - Properties are added to events by loggers or appenders. By default - the log4net:HostName property is set to the name of machine on - which the event was originally logged. - - - If no key is specified, e.g. %property then all the keys and their - values are printed in a comma separated list. - - - The properties of an event are combined from a number of different - contexts. These are listed below in the order in which they are searched. - - - - the event properties - - The event has that can be set. These - properties are specific to this event only. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - - r - Equivalent to timestamp - - - stacktrace - - - Used to output the stack trace of the logging event - The stack trace level specifier may be enclosed - between braces. For example, %stacktrace{level}. - If no stack trace level specifier is given then 1 is assumed - - - Output uses the format: - type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 - - - This pattern is not available for Compact Framework assemblies. - - - - - stacktracedetail - - - Used to output the stack trace of the logging event - The stack trace level specifier may be enclosed - between braces. For example, %stacktracedetail{level}. - If no stack trace level specifier is given then 1 is assumed - - - Output uses the format: - type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) - - - This pattern is not available for Compact Framework assemblies. - - - - - t - Equivalent to thread - - - timestamp - - - Used to output the number of milliseconds elapsed since the start - of the application until the creation of the logging event. - - - - - thread - - - Used to output the name of the thread that generated the - logging event. Uses the thread number if no name is available. - - - - - type - - - Used to output the fully qualified type name of the caller - issuing the logging request. This conversion specifier - can be optionally followed by precision specifier, that - is a decimal constant in brackets. - - - If a precision specifier is given, then only the corresponding - number of right most components of the class name will be - printed. By default the class name is output in fully qualified form. - - - For example, for the class name "log4net.Layout.PatternLayout", the - pattern %type{1} will output "PatternLayout". - - - WARNING Generating the caller class information is - slow. Thus, its use should be avoided unless execution speed is - not an issue. - - - See the note below on the availability of caller location information. - - - - - u - Equivalent to identity - - - username - - - Used to output the WindowsIdentity for the currently - active user. - - - WARNING Generating caller WindowsIdentity information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - - - utcdate - - - Used to output the date of the logging event in universal time. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %utcdate{HH:mm:ss,fff} or - %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %utcdate{ISO8601} or %utcdate{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - w - Equivalent to username - - - x - Equivalent to ndc - - - X - Equivalent to mdc - - - % - - - The sequence %% outputs a single percent sign. - - - - - - The single letter patterns are deprecated in favor of the - longer more descriptive pattern names. - - - By default the relevant information is output as is. However, - with the aid of format modifiers it is possible to change the - minimum field width, the maximum field width and justification. - - - The optional format modifier is placed between the percent sign - and the conversion pattern name. - - - The first optional format modifier is the left justification - flag which is just the minus (-) character. Then comes the - optional minimum field width modifier. This is a decimal - constant that represents the minimum number of characters to - output. If the data item requires fewer characters, it is padded on - either the left or the right until the minimum width is - reached. The default is to pad on the left (right justify) but you - can specify right padding with the left justification flag. The - padding character is space. If the data item is larger than the - minimum field width, the field is expanded to accommodate the - data. The value is never truncated. - - - This behavior can be changed using the maximum field - width modifier which is designated by a period followed by a - decimal constant. If the data item is longer than the maximum - field, then the extra characters are removed from the - beginning of the data item and not from the end. For - example, it the maximum field width is eight and the data item is - ten characters long, then the first two characters of the data item - are dropped. This behavior deviates from the printf function in C - where truncation is done from the end. - - - Below are various format modifier examples for the logger - conversion specifier. - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Format modifierleft justifyminimum widthmaximum widthcomment
    %20loggerfalse20none - - Left pad with spaces if the logger name is less than 20 - characters long. - -
    %-20loggertrue20none - - Right pad with spaces if the logger - name is less than 20 characters long. - -
    %.30loggerNAnone30 - - Truncate from the beginning if the logger - name is longer than 30 characters. - -
    %20.30loggerfalse2030 - - Left pad with spaces if the logger name is shorter than 20 - characters. However, if logger name is longer than 30 characters, - then truncate from the beginning. - -
    %-20.30loggertrue2030 - - Right pad with spaces if the logger name is shorter than 20 - characters. However, if logger name is longer than 30 characters, - then truncate from the beginning. - -
    -
    - - Note about caller location information.
    - The following patterns %type %file %line %method %location %class %C %F %L %l %M - all generate caller location information. - Location information uses the System.Diagnostics.StackTrace class to generate - a call stack. The caller's information is then extracted from this stack. -
    - - - The System.Diagnostics.StackTrace class is not supported on the - .NET Compact Framework 1.0 therefore caller location information is not - available on that framework. - - - - - The System.Diagnostics.StackTrace class has this to say about Release builds: - - - "StackTrace information will be most informative with Debug build configurations. - By default, Debug builds include debug symbols, while Release builds do not. The - debug symbols contain most of the file, method name, line number, and column - information used in constructing StackFrame and StackTrace objects. StackTrace - might not report as many method calls as expected, due to code transformations - that occur during optimization." - - - This means that in a Release build the caller information may be incomplete or may - not exist at all! Therefore caller location information cannot be relied upon in a Release build. - - - - Additional pattern converters may be registered with a specific - instance using the method. - -
    - - This is a more detailed pattern. - %timestamp [%thread] %level %logger %ndc - %message%newline - - - A similar pattern except that the relative time is - right padded if less than 6 digits, thread name is right padded if - less than 15 characters and truncated if longer and the logger - name is left padded if shorter than 30 characters and truncated if - longer. - %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline - - Nicko Cadell - Gert Driesen - Douglas de la Torre - Daniel Cazzulino -
    - - - Default pattern string for log output. - - - - Default pattern string for log output. - Currently set to the string "%message%newline" - which just prints the application supplied message. - - - - - - A detailed conversion pattern - - - - A conversion pattern which includes Time, Thread, Logger, and Nested Context. - Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. - - - - - - Internal map of converter identifiers to converter types. - - - - This static map is overridden by the m_converterRegistry instance map - - - - - - the pattern - - - - - the head of the pattern converter chain - - - - - patterns defined on this PatternLayout only - - - - - Initialize the global registry - - - - Defines the builtin global rules. - - - - - - Constructs a PatternLayout using the DefaultConversionPattern - - - - The default pattern just produces the application supplied message. - - - Note to Inheritors: This constructor calls the virtual method - . If you override this method be - aware that it will be called before your is called constructor. - - - As per the contract the - method must be called after the properties on this object have been - configured. - - - - - - Constructs a PatternLayout using the supplied conversion pattern - - the pattern to use - - - Note to Inheritors: This constructor calls the virtual method - . If you override this method be - aware that it will be called before your is called constructor. - - - When using this constructor the method - need not be called. This may not be the case when using a subclass. - - - - - - Create the pattern parser instance - - the pattern to parse - The that will format the event - - - Creates the used to parse the conversion string. Sets the - global and instance rules on the . - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a formatted string as specified by the conversion pattern. - - the event being logged - The TextWriter to write the formatted event to - - - Parse the using the patter format - specified in the property. - - - - - - Add a converter to this PatternLayout - - the converter info - - - This version of the method is used by the configurator. - Programmatic users should use the alternative method. - - - - - - Add a converter to this PatternLayout - - the name of the conversion pattern for this converter - the type of the converter - - - Add a named pattern converter to this instance. This - converter will be used in the formatting of the event. - This method must be called before . - - - The specified must extend the - type. - - - - - - The pattern formatting string - - - - The ConversionPattern option. This is the string which - controls formatting and consists of a mix of literal content and - conversion specifiers. - - - - - - Type converter for the interface - - - - Used to convert objects to the interface. - Supports converting from the interface to - the interface using the . - - - Nicko Cadell - Gert Driesen - - - - Interface supported by type converters - - - - This interface supports conversion from arbitrary types - to a single target type. See . - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Test if the can be converted to the - type supported by this converter. - - - - - - Convert the source object to the type supported by this object - - the object to convert - the converted object - - - Converts the to the type supported - by this converter. - - - - - - Can the sourceType be converted to an - - the source to be to be converted - true if the source type can be converted to - - - Test if the can be converted to a - . Only is supported - as the . - - - - - - Convert the value to a object - - the value to convert - the object - - - Convert the object to a - object. If the object - is a then the - is used to adapt between the two interfaces, otherwise an - exception is thrown. - - - - - - Extract the value of a property from the - - - - Extract the value of a property from the - - - Nicko Cadell - - - - Constructs a RawPropertyLayout - - - - - Lookup the property for - - The event to format - returns property value - - - Looks up and returns the object value of the property - named . If there is no property defined - with than name then null will be returned. - - - - - - The name of the value to lookup in the LoggingEvent Properties collection. - - - Value to lookup in the LoggingEvent Properties collection - - - - String name of the property to lookup in the . - - - - - - Extract the date from the - - - - Extract the date from the - - - Nicko Cadell - Gert Driesen - - - - Constructs a RawTimeStampLayout - - - - - Gets the as a . - - The event to format - returns the time stamp - - - Gets the as a . - - - The time stamp is in local time. To format the time stamp - in universal time use . - - - - - - Extract the date from the - - - - Extract the date from the - - - Nicko Cadell - Gert Driesen - - - - Constructs a RawUtcTimeStampLayout - - - - - Gets the as a . - - The event to format - returns the time stamp - - - Gets the as a . - - - The time stamp is in universal time. To format the time stamp - in local time use . - - - - - - A very simple layout - - - - SimpleLayout consists of the level of the log statement, - followed by " - " and then the log message itself. For example, - - DEBUG - Hello world - - - - Nicko Cadell - Gert Driesen - - - - Constructs a SimpleLayout - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a simple formatted output. - - the event being logged - The TextWriter to write the formatted event to - - - Formats the event as the level of the even, - followed by " - " and then the log message itself. The - output is terminated by a newline. - - - - - - Layout that formats the log events as XML elements. - - - - The output of the consists of a series of - log4net:event elements. It does not output a complete well-formed XML - file. The output is designed to be included as an external entity - in a separate file to form a correct XML file. - - - For example, if abc is the name of the file where - the output goes, then a well-formed XML file would - be: - - - <?xml version="1.0" ?> - - <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> - - <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> - &data; - </log4net:events> - - - This approach enforces the independence of the - and the appender where it is embedded. - - - The version attribute helps components to correctly - interpret output generated by . The value of - this attribute should be "1.2" for release 1.2 and later. - - - Alternatively the Header and Footer properties can be - configured to output the correct XML header, open tag and close tag. - When setting the Header and Footer properties it is essential - that the underlying data store not be appendable otherwise the data - will become invalid XML. - - - Nicko Cadell - Gert Driesen - - - - Layout that formats the log events as XML elements. - - - - This is an abstract class that must be subclassed by an implementation - to conform to a specific schema. - - - Deriving classes must implement the method. - - - Nicko Cadell - Gert Driesen - - - - Protected constructor to support subclasses - - - - Initializes a new instance of the class - with no location info. - - - - - - Protected constructor to support subclasses - - - - The parameter determines whether - location information will be output by the layout. If - is set to true, then the - file name and line number of the statement at the origin of the log - statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a formatted string. - - The event being logged. - The TextWriter to write the formatted event to - - - Format the and write it to the . - - - This method creates an that writes to the - . The is passed - to the method. Subclasses should override the - method rather than this method. - - - - - - Does the actual writing of the XML. - - The writer to use to output the event to. - The event to write. - - - Subclasses should override this method to format - the as XML. - - - - - - Flag to indicate if location information should be included in - the XML events. - - - - - The string to replace invalid chars with - - - - - Gets a value indicating whether to include location information in - the XML events. - - - true if location information should be included in the XML - events; otherwise, false. - - - - If is set to true, then the file - name and line number of the statement at the origin of the log - statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - The string to replace characters that can not be expressed in XML with. - - - Not all characters may be expressed in XML. This property contains the - string to replace those that can not with. This defaults to a ?. Set it - to the empty string to simply remove offending characters. For more - details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets - Character replacement will occur in the log message, the property names - and the property values. - - - - - - - Gets the content type output by this layout. - - - As this is the XML layout, the value is always "text/xml". - - - - As this is the XML layout, the value is always "text/xml". - - - - - - Constructs an XmlLayout - - - - - Constructs an XmlLayout. - - - - The LocationInfo option takes a boolean value. By - default, it is set to false which means there will be no location - information output by this layout. If the the option is set to - true, then the file name and line number of the statement - at the origin of the log statement will be output. - - - If you are embedding this layout within an SmtpAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Builds a cache of the element names - - - - - - Does the actual writing of the XML. - - The writer to use to output the event to. - The event to write. - - - Override the base class method - to write the to the . - - - - - - The prefix to use for all generated element names - - - - - The prefix to use for all element names - - - - The default prefix is log4net. Set this property - to change the prefix. If the prefix is set to an empty string - then no prefix will be written. - - - - - - Set whether or not to base64 encode the message. - - - - By default the log message will be written as text to the xml - output. This can cause problems when the message contains binary - data. By setting this to true the contents of the message will be - base64 encoded. If this is set then invalid character replacement - (see ) will not be performed - on the log message. - - - - - - Set whether or not to base64 encode the property values. - - - - By default the properties will be written as text to the xml - output. This can cause problems when one or more properties contain - binary data. By setting this to true the values of the properties - will be base64 encoded. If this is set then invalid character replacement - (see ) will not be performed - on the property values. - - - - - - Layout that formats the log events as XML elements compatible with the log4j schema - - - - Formats the log events according to the http://logging.apache.org/log4j schema. - - - Nicko Cadell - - - - The 1st of January 1970 in UTC - - - - - Constructs an XMLLayoutSchemaLog4j - - - - - Constructs an XMLLayoutSchemaLog4j. - - - - The LocationInfo option takes a boolean value. By - default, it is set to false which means there will be no location - information output by this layout. If the the option is set to - true, then the file name and line number of the statement - at the origin of the log statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Actually do the writing of the xml - - the writer to use - the event to write - - - Generate XML that is compatible with the log4j schema. - - - - - - The version of the log4j schema to use. - - - - Only version 1.2 of the log4j schema is supported. - - - - - - The default object Renderer. - - - - The default renderer supports rendering objects and collections to strings. - - - See the method for details of the output. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface in order to render objects as strings - - - - Certain types require special case conversion to - string form. This conversion is done by an object renderer. - Object renderers implement the - interface. - - - Nicko Cadell - Gert Driesen - - - - Render the object to a string - - The map used to lookup renderers - The object to render - The writer to render to - - - Render the object to a - string. - - - The parameter is - provided to lookup and render other objects. This is - very useful where contains - nested objects of unknown type. The - method can be used to render these objects. - - - - - - Default constructor - - - - Default constructor - - - - - - Render the object to a string - - The map used to lookup renderers - The object to render - The writer to render to - - - Render the object to a string. - - - The parameter is - provided to lookup and render other objects. This is - very useful where contains - nested objects of unknown type. The - method can be used to render these objects. - - - The default renderer supports rendering objects to strings as follows: - - - - Value - Rendered String - - - null - - "(null)" - - - - - - - For a one dimensional array this is the - array type name, an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. - - - For example: int[] {1, 2, 3}. - - - If the array is not one dimensional the - Array.ToString() is returned. - - - - - , & - - - Rendered as an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. - - - For example: {a, b, c}. - - - All collection classes that implement its subclasses, - or generic equivalents all implement the interface. - - - - - - - - Rendered as the key, an equals sign ('='), and the value (using the appropriate - renderer). - - - For example: key=value. - - - - - other - - Object.ToString() - - - - - - - - Render the array argument into a string - - The map used to lookup renderers - the array to render - The writer to render to - - - For a one dimensional array this is the - array type name, an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. For example: - int[] {1, 2, 3}. - - - If the array is not one dimensional the - Array.ToString() is returned. - - - - - - Render the enumerator argument into a string - - The map used to lookup renderers - the enumerator to render - The writer to render to - - - Rendered as an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. For example: - {a, b, c}. - - - - - - Render the DictionaryEntry argument into a string - - The map used to lookup renderers - the DictionaryEntry to render - The writer to render to - - - Render the key, an equals sign ('='), and the value (using the appropriate - renderer). For example: key=value. - - - - - - Map class objects to an . - - - - Maintains a mapping between types that require special - rendering and the that - is used to render them. - - - The method is used to render an - object using the appropriate renderers defined in this map. - - - Nicko Cadell - Gert Driesen - - - - Default Constructor - - - - Default constructor. - - - - - - Render using the appropriate renderer. - - the object to render to a string - the object rendered as a string - - - This is a convenience method used to render an object to a string. - The alternative method - should be used when streaming output to a . - - - - - - Render using the appropriate renderer. - - the object to render to a string - The writer to render to - - - Find the appropriate renderer for the type of the - parameter. This is accomplished by calling the - method. Once a renderer is found, it is - applied on the object and the result is returned - as a . - - - - - - Gets the renderer for the specified object type - - the object to lookup the renderer for - the renderer for - - - Gets the renderer for the specified object type. - - - Syntactic sugar method that calls - with the type of the object parameter. - - - - - - Gets the renderer for the specified type - - the type to lookup the renderer for - the renderer for the specified type - - - Returns the renderer for the specified type. - If no specific renderer has been defined the - will be returned. - - - - - - Internal function to recursively search interfaces - - the type to lookup the renderer for - the renderer for the specified type - - - - Clear the map of renderers - - - - Clear the custom renderers defined by using - . The - cannot be removed. - - - - - - Register an for . - - the type that will be rendered by - the renderer for - - - Register an object renderer for a specific source type. - This renderer will be returned from a call to - specifying the same as an argument. - - - - - - Get the default renderer instance - - the default renderer - - - Get the default renderer - - - - - - Interface implemented by logger repository plugins. - - - - Plugins define additional behavior that can be associated - with a . - The held by the - property is used to store the plugins for a repository. - - - The log4net.Config.PluginAttribute can be used to - attach plugins to repositories created using configuration - attributes. - - - Nicko Cadell - Gert Driesen - - - - Attaches the plugin to the specified . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - This method is called to notify the plugin that - it should stop operating and should detach from - the repository. - - - - - - Gets the name of the plugin. - - - The name of the plugin. - - - - Plugins are stored in the - keyed by name. Each plugin instance attached to a - repository must be a unique name. - - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a PluginCollection instance. - - list to create a readonly wrapper arround - - A PluginCollection wrapper that is read-only. - - - - - Initializes a new instance of the PluginCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the PluginCollection class - that has the specified initial capacity. - - - The number of elements that the new PluginCollection is initially capable of storing. - - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified PluginCollection. - - The PluginCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - - Copies the entire PluginCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire PluginCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the PluginCollection. - - The to be added to the end of the PluginCollection. - The index at which the value has been added. - - - - Removes all elements from the PluginCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the PluginCollection. - - The to check for. - true if is found in the PluginCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the PluginCollection. - - The to locate in the PluginCollection. - - The zero-based index of the first occurrence of - in the entire PluginCollection, if found; otherwise, -1. - - - - - Inserts an element into the PluginCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the PluginCollection. - - The to remove from the PluginCollection. - - The specified was not found in the PluginCollection. - - - - - Removes the element at the specified index of the PluginCollection. - - The zero-based index of the element to remove. - - is less than zero. - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the PluginCollection. - - An for the entire PluginCollection. - - - - Adds the elements of another PluginCollection to the current PluginCollection. - - The PluginCollection whose elements should be added to the end of the current PluginCollection. - The new of the PluginCollection. - - - - Adds the elements of a array to the current PluginCollection. - - The array whose elements should be added to the end of the PluginCollection. - The new of the PluginCollection. - - - - Adds the elements of a collection to the current PluginCollection. - - The collection whose elements should be added to the end of the PluginCollection. - The new of the PluginCollection. - - - - Sets the capacity to the actual number of elements. - - - - - is less than zero. - -or- - is equal to or greater than . - - - - - is less than zero. - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the PluginCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - An object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - - The at the specified index. - - The zero-based index of the element to get or set. - - is less than zero. - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false. - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false. - - - - Gets or sets the number of elements the PluginCollection can contain. - - - The number of elements the PluginCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - - A value - - - - - Supports simple iteration over a . - - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - The current element in the collection. - - - - - - - - Map of repository plugins. - - - - This class is a name keyed map of the plugins that are - attached to a repository. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The repository that the plugins should be attached to. - - - Initialize a new instance of the class with a - repository that the plugins should be attached to. - - - - - - Adds a to the map. - - The to add to the map. - - - The will be attached to the repository when added. - - - If there already exists a plugin with the same name - attached to the repository then the old plugin will - be and replaced with - the new plugin. - - - - - - Removes a from the map. - - The to remove from the map. - - - Remove a specific plugin from this map. - - - - - - Gets a by name. - - The name of the to lookup. - - The from the map with the name specified, or - null if no plugin is found. - - - - Lookup a plugin by name. If the plugin is not found null - will be returned. - - - - - - Gets all possible plugins as a list of objects. - - All possible plugins as a list of objects. - - - Get a collection of all the plugins defined in this map. - - - - - - Base implementation of - - - - Default abstract implementation of the - interface. This base class can be used by implementors - of the interface. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - the name of the plugin - - Initializes a new Plugin with the specified name. - - - - - Attaches this plugin to a . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - This method is called to notify the plugin that - it should stop operating and should detach from - the repository. - - - - - - The name of this plugin. - - - - - The repository this plugin is attached to. - - - - - Gets or sets the name of the plugin. - - - The name of the plugin. - - - - Plugins are stored in the - keyed by name. Each plugin instance attached to a - repository must be a unique name. - - - The name of the plugin must not change one the - plugin has been attached to a repository. - - - - - - The repository for this plugin - - - The that this plugin is attached to. - - - - Gets or sets the that this plugin is - attached to. - - - - - - Plugin that listens for events from the - - - - This plugin publishes an instance of - on a specified . This listens for logging events delivered from - a remote . - - - When an event is received it is relogged within the attached repository - as if it had been raised locally. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Initializes a new instance of the class. - - - The property must be set. - - - - - - Construct with sink Uri. - - The name to publish the sink under in the remoting infrastructure. - See for more details. - - - Initializes a new instance of the class - with specified name. - - - - - - Attaches this plugin to a . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - When the plugin is shutdown the remote logging - sink is disconnected. - - - - - - The fully qualified type of the RemoteLoggingServerPlugin class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the URI of this sink. - - - The URI of this sink. - - - - This is the name under which the object is marshaled. - - - - - - - Delivers objects to a remote sink. - - - - Internal class used to listen for logging events - and deliver them to the local repository. - - - - - - Constructor - - The repository to log to. - - - Initializes a new instance of the for the - specified . - - - - - - Logs the events to the repository. - - The events to log. - - - The events passed are logged to the - - - - - - Obtains a lifetime service object to control the lifetime - policy for this instance. - - null to indicate that this instance should live forever. - - - Obtains a lifetime service object to control the lifetime - policy for this instance. This object should live forever - therefore this implementation returns null. - - - - - - The underlying that events should - be logged to. - - - - - Default implementation of - - - - This default implementation of the - interface is used to create the default subclass - of the object. - - - Nicko Cadell - Gert Driesen - - - - Interface abstracts creation of instances - - - - This interface is used by the to - create new objects. - - - The method is called - to create a named . - - - Implement this interface to create new subclasses of . - - - Nicko Cadell - Gert Driesen - - - - Create a new instance - - The that will own the . - The name of the . - The instance for the specified name. - - - Create a new instance with the - specified name. - - - Called by the to create - new named instances. - - - If the is null then the root logger - must be returned. - - - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Create a new instance - - The that will own the . - The name of the . - The instance for the specified name. - - - Create a new instance with the - specified name. - - - Called by the to create - new named instances. - - - If the is null then the root logger - must be returned. - - - - - - Default internal subclass of - - - - This subclass has no additional behavior over the - class but does allow instances - to be created. - - - - - - Implementation of used by - - - - Internal class used to provide implementation of - interface. Applications should use to get - logger instances. - - - This is one of the central classes in the log4net implementation. One of the - distinctive features of log4net are hierarchical loggers and their - evaluation. The organizes the - instances into a rooted tree hierarchy. - - - The class is abstract. Only concrete subclasses of - can be created. The - is used to create instances of this type for the . - - - Nicko Cadell - Gert Driesen - Aspi Havewala - Douglas de la Torre - - - - This constructor created a new instance and - sets its name. - - The name of the . - - - This constructor is protected and designed to be used by - a subclass that is not abstract. - - - Loggers are constructed by - objects. See for the default - logger creator. - - - - - - Add to the list of appenders of this - Logger instance. - - An appender to add to this logger - - - Add to the list of appenders of this - Logger instance. - - - If is already in the list of - appenders, then it won't be added again. - - - - - - Look for the appender named as name - - The name of the appender to lookup - The appender with the name specified, or null. - - - Returns the named appender, or null if the appender is not found. - - - - - - Remove all previously added appenders from this Logger instance. - - - - Remove all previously added appenders from this Logger instance. - - - This is useful when re-reading configuration information. - - - - - - Remove the appender passed as parameter form the list of appenders. - - The appender to remove - The appender removed from the list - - - Remove the appender passed as parameter form the list of appenders. - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Remove the appender passed as parameter form the list of appenders. - - The name of the appender to remove - The appender removed from the list - - - Remove the named appender passed as parameter form the list of appenders. - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - This generic form is intended to be used by wrappers. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generate a logging event for the specified using - the and . - - - This method must not throw any exception to the caller. - - - - - - This is the most generic printing method that is intended to be used - by wrappers. - - The event being logged. - - - Logs the specified logging event through this logger. - - - This method must not throw any exception to the caller. - - - - - - Checks if this logger is enabled for a given passed as parameter. - - The level to check. - - true if this logger is enabled for level, otherwise false. - - - - Test if this logger is going to log events of the specified . - - - This method must not throw any exception to the caller. - - - - - - Deliver the to the attached appenders. - - The event to log. - - - Call the appenders in the hierarchy starting at - this. If no appenders could be found, emit a - warning. - - - This method calls all the appenders inherited from the - hierarchy circumventing any evaluation of whether to log or not - to log the particular log request. - - - - - - Closes all attached appenders implementing the interface. - - - - Used to ensure that the appenders are correctly shutdown. - - - - - - This is the most generic printing method. This generic form is intended to be used by wrappers - - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generate a logging event for the specified using - the . - - - - - - Creates a new logging event and logs the event without further checks. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generates a logging event and delivers it to the attached - appenders. - - - - - - Creates a new logging event and logs the event without further checks. - - The event being logged. - - - Delivers the logging event to the attached appenders. - - - - - - The fully qualified type of the Logger class. - - - - - The name of this logger. - - - - - The assigned level of this logger. - - - - The level variable need not be - assigned a value in which case it is inherited - form the hierarchy. - - - - - - The parent of this logger. - - - - The parent of this logger. - All loggers have at least one ancestor which is the root logger. - - - - - - Loggers need to know what Hierarchy they are in. - - - - Loggers need to know what Hierarchy they are in. - The hierarchy that this logger is a member of is stored - here. - - - - - - Helper implementation of the interface - - - - - Flag indicating if child loggers inherit their parents appenders - - - - Additivity is set to true by default, that is children inherit - the appenders of their ancestors by default. If this variable is - set to false then the appenders found in the - ancestors of this logger are not used. However, the children - of this logger will inherit its appenders, unless the children - have their additivity flag set to false too. See - the user manual for more details. - - - - - - Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl - - - - - Gets or sets the parent logger in the hierarchy. - - - The parent logger in the hierarchy. - - - - Part of the Composite pattern that makes the hierarchy. - The hierarchy is parent linked rather than child linked. - - - - - - Gets or sets a value indicating if child loggers inherit their parent's appenders. - - - true if child loggers inherit their parent's appenders. - - - - Additivity is set to true by default, that is children inherit - the appenders of their ancestors by default. If this variable is - set to false then the appenders found in the - ancestors of this logger are not used. However, the children - of this logger will inherit its appenders, unless the children - have their additivity flag set to false too. See - the user manual for more details. - - - - - - Gets the effective level for this logger. - - The nearest level in the logger hierarchy. - - - Starting from this logger, searches the logger hierarchy for a - non-null level and returns it. Otherwise, returns the level of the - root logger. - - The Logger class is designed so that this method executes as - quickly as possible. - - - - - Gets or sets the where this - Logger instance is attached to. - - The hierarchy that this logger belongs to. - - - This logger must be attached to a single . - - - - - - Gets or sets the assigned , if any, for this Logger. - - - The of this logger. - - - - The assigned can be null. - - - - - - Get the appenders contained in this logger as an - . - - A collection of the appenders in this logger - - - Get the appenders contained in this logger as an - . If no appenders - can be found, then a is returned. - - - - - - Gets the logger name. - - - The name of the logger. - - - - The name of this logger - - - - - - Gets the where this - Logger instance is attached to. - - - The that this logger belongs to. - - - - Gets the where this - Logger instance is attached to. - - - - - - Construct a new Logger - - the name of the logger - - - Initializes a new instance of the class - with the specified name. - - - - - - Delegate used to handle logger creation event notifications. - - The in which the has been created. - The event args that hold the instance that has been created. - - - Delegate used to handle logger creation event notifications. - - - - - - Provides data for the event. - - - - A event is raised every time a - is created. - - - - - - The created - - - - - Constructor - - The that has been created. - - - Initializes a new instance of the event argument - class,with the specified . - - - - - - Gets the that has been created. - - - The that has been created. - - - - The that has been created. - - - - - - Hierarchical organization of loggers - - - - The casual user should not have to deal with this class - directly. - - - This class is specialized in retrieving loggers by name and - also maintaining the logger hierarchy. Implements the - interface. - - - The structure of the logger hierarchy is maintained by the - method. The hierarchy is such that children - link to their parent but parents do not have any references to their - children. Moreover, loggers can be instantiated in any order, in - particular descendant before ancestor. - - - In case a descendant is created before a particular ancestor, - then it creates a provision node for the ancestor and adds itself - to the provision node. Other descendants of the same ancestor add - themselves to the previously created provision node. - - - Nicko Cadell - Gert Driesen - - - - Base implementation of - - - - Default abstract implementation of the interface. - - - Skeleton implementation of the interface. - All types can extend this type. - - - Nicko Cadell - Gert Driesen - - - - Interface implemented by logger repositories. - - - - This interface is implemented by logger repositories. e.g. - . - - - This interface is used by the - to obtain interfaces. - - - Nicko Cadell - Gert Driesen - - - - Check if the named logger exists in the repository. If so return - its reference, otherwise returns null. - - The name of the logger to lookup - The Logger object with the name specified - - - If the names logger exists it is returned, otherwise - null is returned. - - - - - - Returns all the currently defined loggers as an Array. - - All the defined loggers - - - Returns all the currently defined loggers as an Array. - - - - - - Returns a named logger instance - - The name of the logger to retrieve - The logger object with the name specified - - - Returns a named logger instance. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - - - Shutdown the repository - - - Shutting down a repository will safely close and remove - all appenders in all loggers including the root logger. - - - Some appenders need to be closed before the - application exists. Otherwise, pending logging events might be - lost. - - - The method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Reset the repositories configuration to a default state - - - - Reset all values contained in this instance to their - default state. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the through this repository. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are configured as an Array. - - All the Appenders - - - Returns all the Appenders that are configured as an Array. - - - - - - The name of the repository - - - The name of the repository - - - - The name of the repository. - - - - - - RendererMap accesses the object renderer map for this repository. - - - RendererMap accesses the object renderer map for this repository. - - - - RendererMap accesses the object renderer map for this repository. - - - The RendererMap holds a mapping between types and - objects. - - - - - - The plugin map for this repository. - - - The plugin map for this repository. - - - - The plugin map holds the instances - that have been attached to this repository. - - - - - - Get the level map for the Repository. - - - - Get the level map for the Repository. - - - The level map defines the mappings between - level names and objects in - this repository. - - - - - - The threshold for all events in this repository - - - The threshold for all events in this repository - - - - The threshold for all events in this repository. - - - - - - Flag indicates if this repository has been configured. - - - Flag indicates if this repository has been configured. - - - - Flag indicates if this repository has been configured. - - - - - - Collection of internal messages captured during the most - recent configuration process. - - - - - Event to notify that the repository has been shutdown. - - - Event to notify that the repository has been shutdown. - - - - Event raised when the repository has been shutdown. - - - - - - Event to notify that the repository has had its configuration reset. - - - Event to notify that the repository has had its configuration reset. - - - - Event raised when the repository's configuration has been - reset to default. - - - - - - Event to notify that the repository has had its configuration changed. - - - Event to notify that the repository has had its configuration changed. - - - - Event raised when the repository's configuration has been changed. - - - - - - Repository specific properties - - - Repository specific properties - - - - These properties can be specified on a repository specific basis. - - - - - - Default Constructor - - - - Initializes the repository with default (empty) properties. - - - - - - Construct the repository using specific properties - - the properties to set for this repository - - - Initializes the repository with specified properties. - - - - - - Test if logger exists - - The name of the logger to lookup - The Logger object with the name specified - - - Check if the named logger exists in the repository. If so return - its reference, otherwise returns null. - - - - - - Returns all the currently defined loggers in the repository - - All the defined loggers - - - Returns all the currently defined loggers in the repository as an Array. - - - - - - Return a new logger instance - - The name of the logger to retrieve - The logger object with the name specified - - - Return a new logger instance. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - - - - Shutdown the repository - - - - Shutdown the repository. Can be overridden in a subclass. - This base class implementation notifies the - listeners and all attached plugins of the shutdown event. - - - - - - Reset the repositories configuration to a default state - - - - Reset all values contained in this instance to their - default state. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the logEvent through this repository. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are configured as an Array. - - All the Appenders - - - Returns all the Appenders that are configured as an Array. - - - - - - The fully qualified type of the LoggerRepositorySkeleton class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Adds an object renderer for a specific class. - - The type that will be rendered by the renderer supplied. - The object renderer used to render the object. - - - Adds an object renderer for a specific class. - - - - - - Notify the registered listeners that the repository is shutting down - - Empty EventArgs - - - Notify any listeners that this repository is shutting down. - - - - - - Notify the registered listeners that the repository has had its configuration reset - - Empty EventArgs - - - Notify any listeners that this repository's configuration has been reset. - - - - - - Notify the registered listeners that the repository has had its configuration changed - - Empty EventArgs - - - Notify any listeners that this repository's configuration has changed. - - - - - - Raise a configuration changed event on this repository - - EventArgs.Empty - - - Applications that programmatically change the configuration of the repository should - raise this event notification to notify listeners. - - - - - - The name of the repository - - - The string name of the repository - - - - The name of this repository. The name is - used to store and lookup the repositories - stored by the . - - - - - - The threshold for all events in this repository - - - The threshold for all events in this repository - - - - The threshold for all events in this repository - - - - - - RendererMap accesses the object renderer map for this repository. - - - RendererMap accesses the object renderer map for this repository. - - - - RendererMap accesses the object renderer map for this repository. - - - The RendererMap holds a mapping between types and - objects. - - - - - - The plugin map for this repository. - - - The plugin map for this repository. - - - - The plugin map holds the instances - that have been attached to this repository. - - - - - - Get the level map for the Repository. - - - - Get the level map for the Repository. - - - The level map defines the mappings between - level names and objects in - this repository. - - - - - - Flag indicates if this repository has been configured. - - - Flag indicates if this repository has been configured. - - - - Flag indicates if this repository has been configured. - - - - - - Contains a list of internal messages captures during the - last configuration. - - - - - Event to notify that the repository has been shutdown. - - - Event to notify that the repository has been shutdown. - - - - Event raised when the repository has been shutdown. - - - - - - Event to notify that the repository has had its configuration reset. - - - Event to notify that the repository has had its configuration reset. - - - - Event raised when the repository's configuration has been - reset to default. - - - - - - Event to notify that the repository has had its configuration changed. - - - Event to notify that the repository has had its configuration changed. - - - - Event raised when the repository's configuration has been changed. - - - - - - Repository specific properties - - - Repository specific properties - - - These properties can be specified on a repository specific basis - - - - - Basic Configurator interface for repositories - - - - Interface used by basic configurator to configure a - with a default . - - - A should implement this interface to support - configuration by the . - - - Nicko Cadell - Gert Driesen - - - - Initialize the repository using the specified appender - - the appender to use to log all logging events - - - Configure the repository to route all logging events to the - specified appender. - - - - - - Initialize the repository using the specified appenders - - the appenders to use to log all logging events - - - Configure the repository to route all logging events to the - specified appenders. - - - - - - Configure repository using XML - - - - Interface used by Xml configurator to configure a . - - - A should implement this interface to support - configuration by the . - - - Nicko Cadell - Gert Driesen - - - - Initialize the repository using the specified config - - the element containing the root of the config - - - The schema for the XML configuration data is defined by - the implementation. - - - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Construct with properties - - The properties to pass to this repository. - - - Initializes a new instance of the class. - - - - - - Construct with a logger factory - - The factory to use to create new logger instances. - - - Initializes a new instance of the class with - the specified . - - - - - - Construct with properties and a logger factory - - The properties to pass to this repository. - The factory to use to create new logger instances. - - - Initializes a new instance of the class with - the specified . - - - - - - Test if a logger exists - - The name of the logger to lookup - The Logger object with the name specified - - - Check if the named logger exists in the hierarchy. If so return - its reference, otherwise returns null. - - - - - - Returns all the currently defined loggers in the hierarchy as an Array - - All the defined loggers - - - Returns all the currently defined loggers in the hierarchy as an Array. - The root logger is not included in the returned - enumeration. - - - - - - Return a new logger instance named as the first parameter using - the default factory. - - - - Return a new logger instance named as the first parameter using - the default factory. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - The name of the logger to retrieve - The logger object with the name specified - - - - Shutting down a hierarchy will safely close and remove - all appenders in all loggers including the root logger. - - - - Shutting down a hierarchy will safely close and remove - all appenders in all loggers including the root logger. - - - Some appenders need to be closed before the - application exists. Otherwise, pending logging events might be - lost. - - - The Shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Reset all values contained in this hierarchy instance to their default. - - - - Reset all values contained in this hierarchy instance to their - default. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the logEvent through this hierarchy. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are currently configured - - An array containing all the currently configured appenders - - - Returns all the instances that are currently configured. - All the loggers are searched for appenders. The appenders may also be containers - for appenders and these are also searched for additional loggers. - - - The list returned is unordered but does not contain duplicates. - - - - - - Collect the appenders from an . - The appender may also be a container. - - - - - - - Collect the appenders from an container - - - - - - - Initialize the log4net system using the specified appender - - the appender to use to log all logging events - - - - Initialize the log4net system using the specified appenders - - the appenders to use to log all logging events - - - - Initialize the log4net system using the specified appenders - - the appenders to use to log all logging events - - - This method provides the same functionality as the - method implemented - on this object, but it is protected and therefore can be called by subclasses. - - - - - - Initialize the log4net system using the specified config - - the element containing the root of the config - - - - Initialize the log4net system using the specified config - - the element containing the root of the config - - - This method provides the same functionality as the - method implemented - on this object, but it is protected and therefore can be called by subclasses. - - - - - - Test if this hierarchy is disabled for the specified . - - The level to check against. - - true if the repository is disabled for the level argument, false otherwise. - - - - If this hierarchy has not been configured then this method will - always return true. - - - This method will return true if this repository is - disabled for level object passed as parameter and - false otherwise. - - - See also the property. - - - - - - Clear all logger definitions from the internal hashtable - - - - This call will clear all logger definitions from the internal - hashtable. Invoking this method will irrevocably mess up the - logger hierarchy. - - - You should really know what you are doing before - invoking this method. - - - - - - Return a new logger instance named as the first parameter using - . - - The name of the logger to retrieve - The factory that will make the new logger instance - The logger object with the name specified - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated by the - parameter and linked with its existing - ancestors as well as children. - - - - - - Sends a logger creation event to all registered listeners - - The newly created logger - - Raises the logger creation event. - - - - - Updates all the parents of the specified logger - - The logger to update the parents for - - - This method loops through all the potential parents of - . There 3 possible cases: - - - - No entry for the potential parent of exists - - We create a ProvisionNode for this potential - parent and insert in that provision node. - - - - The entry is of type Logger for the potential parent. - - The entry is 's nearest existing parent. We - update 's parent field with this entry. We also break from - he loop because updating our parent's parent is our parent's - responsibility. - - - - The entry is of type ProvisionNode for this potential parent. - - We add to the list of children for this - potential parent. - - - - - - - - Replace a with a in the hierarchy. - - - - - - We update the links for all the children that placed themselves - in the provision node 'pn'. The second argument 'log' is a - reference for the newly created Logger, parent of all the - children in 'pn'. - - - We loop on all the children 'c' in 'pn'. - - - If the child 'c' has been already linked to a child of - 'log' then there is no need to update 'c'. - - - Otherwise, we set log's parent field to c's parent and set - c's parent field to log. - - - - - - Define or redefine a Level using the values in the argument - - the level values - - - Define or redefine a Level using the values in the argument - - - Supports setting levels via the configuration file. - - - - - - Set a Property using the values in the argument - - the property value - - - Set a Property using the values in the argument. - - - Supports setting property values via the configuration file. - - - - - - The fully qualified type of the Hierarchy class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Event used to notify that a logger has been created. - - - - Event raised when a logger is created. - - - - - - Has no appender warning been emitted - - - - Flag to indicate if we have already issued a warning - about not having an appender warning. - - - - - - Get the root of this hierarchy - - - - Get the root of this hierarchy. - - - - - - Gets or sets the default instance. - - The default - - - The logger factory is used to create logger instances. - - - - - - A class to hold the value, name and display name for a level - - - - A class to hold the value, name and display name for a level - - - - - - Override Object.ToString to return sensible debug info - - string info about this object - - - - Value of the level - - - - If the value is not set (defaults to -1) the value will be looked - up for the current level with the same name. - - - - - - Name of the level - - - The name of the level - - - - The name of the level. - - - - - - Display name for the level - - - The display name of the level - - - - The display name of the level. - - - - - - Used internally to accelerate hash table searches. - - - - Internal class used to improve performance of - string keyed hashtables. - - - The hashcode of the string is cached for reuse. - The string is stored as an interned value. - When comparing two objects for equality - the reference equality of the interned strings is compared. - - - Nicko Cadell - Gert Driesen - - - - Construct key with string name - - - - Initializes a new instance of the class - with the specified name. - - - Stores the hashcode of the string and interns - the string key to optimize comparisons. - - - The Compact Framework 1.0 the - method does not work. On the Compact Framework - the string keys are not interned nor are they - compared by reference. - - - The name of the logger. - - - - Returns a hash code for the current instance. - - A hash code for the current instance. - - - Returns the cached hashcode. - - - - - - Determines whether two instances - are equal. - - The to compare with the current . - - true if the specified is equal to the current ; otherwise, false. - - - - Compares the references of the interned strings. - - - - - - Provision nodes are used where no logger instance has been specified - - - - instances are used in the - when there is no specified - for that node. - - - A provision node holds a list of child loggers on behalf of - a logger that does not exist. - - - Nicko Cadell - Gert Driesen - - - - Create a new provision node with child node - - A child logger to add to this node. - - - Initializes a new instance of the class - with the specified child logger. - - - - - - The sits at the root of the logger hierarchy tree. - - - - The is a regular except - that it provides several guarantees. - - - First, it cannot be assigned a null - level. Second, since the root logger cannot have a parent, the - property always returns the value of the - level field without walking the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Construct a - - The level to assign to the root logger. - - - Initializes a new instance of the class with - the specified logging level. - - - The root logger names itself as "root". However, the root - logger cannot be retrieved by name. - - - - - - The fully qualified type of the RootLogger class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the assigned level value without walking the logger hierarchy. - - The assigned level value without walking the logger hierarchy. - - - Because the root logger cannot have a parent and its level - must not be null this property just returns the - value of . - - - - - - Gets or sets the assigned for the root logger. - - - The of the root logger. - - - - Setting the level of the root logger to a null reference - may have catastrophic results. We prevent this here. - - - - - - Initializes the log4net environment using an XML DOM. - - - - Configures a using an XML DOM. - - - Nicko Cadell - Gert Driesen - - - - Construct the configurator for a hierarchy - - The hierarchy to build. - - - Initializes a new instance of the class - with the specified . - - - - - - Configure the hierarchy by parsing a DOM tree of XML elements. - - The root element to parse. - - - Configure the hierarchy by parsing a DOM tree of XML elements. - - - - - - Parse appenders by IDREF. - - The appender ref element. - The instance of the appender that the ref refers to. - - - Parse an XML element that represents an appender and return - the appender. - - - - - - Parses an appender element. - - The appender element. - The appender instance or null when parsing failed. - - - Parse an XML element that represents an appender and return - the appender instance. - - - - - - Parses a logger element. - - The logger element. - - - Parse an XML element that represents a logger. - - - - - - Parses the root logger element. - - The root element. - - - Parse an XML element that represents the root logger. - - - - - - Parses the children of a logger element. - - The category element. - The logger instance. - Flag to indicate if the logger is the root logger. - - - Parse the child elements of a <logger> element. - - - - - - Parses an object renderer. - - The renderer element. - - - Parse an XML element that represents a renderer. - - - - - - Parses a level element. - - The level element. - The logger object to set the level on. - Flag to indicate if the logger is the root logger. - - - Parse an XML element that represents a level. - - - - - - Sets a parameter on an object. - - The parameter element. - The object to set the parameter on. - - The parameter name must correspond to a writable property - on the object. The value of the parameter is a string, - therefore this function will attempt to set a string - property first. If unable to set a string property it - will inspect the property and its argument type. It will - attempt to call a static method called Parse on the - type of the property. This method will take a single - string argument and return a value that can be used to - set the property. - - - - - Test if an element has no attributes or child elements - - the element to inspect - true if the element has any attributes or child elements, false otherwise - - - - Test if a is constructible with Activator.CreateInstance. - - the type to inspect - true if the type is creatable using a default constructor, false otherwise - - - - Look for a method on the that matches the supplied - - the type that has the method - the name of the method - the method info found - - - The method must be a public instance method on the . - The method must be named or "Add" followed by . - The method must take a single parameter. - - - - - - Converts a string value to a target type. - - The type of object to convert the string to. - The string value to use as the value of the object. - - - An object of type with value or - null when the conversion could not be performed. - - - - - - Creates an object as specified in XML. - - The XML element that contains the definition of the object. - The object type to use if not explicitly specified. - The type that the returned object must be or must inherit from. - The object or null - - - Parse an XML element and create an object instance based on the configuration - data. - - - The type of the instance may be specified in the XML. If not - specified then the is used - as the type. However the type is specified it must support the - type. - - - - - - key: appenderName, value: appender. - - - - - The Hierarchy being configured. - - - - - The fully qualified type of the XmlHierarchyConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - - - - - - - - - - - - - - - - - Delegate used to handle logger repository shutdown event notifications - - The that is shutting down. - Empty event args - - - Delegate used to handle logger repository shutdown event notifications. - - - - - - Delegate used to handle logger repository configuration reset event notifications - - The that has had its configuration reset. - Empty event args - - - Delegate used to handle logger repository configuration reset event notifications. - - - - - - Delegate used to handle event notifications for logger repository configuration changes. - - The that has had its configuration changed. - Empty event arguments. - - - Delegate used to handle event notifications for logger repository configuration changes. - - - - - - Write the name of the current AppDomain to the output - - - - Write the name of the current AppDomain to the output writer - - - Nicko Cadell - - - - Write the name of the current AppDomain to the output - - the writer to write to - null, state is not set - - - Writes name of the current AppDomain to the output . - - - - - - Write the current date to the output - - - - Date pattern converter, uses a to format - the current date and time to the writer as a string. - - - The value of the determines - the formatting of the date. The following values are allowed: - - - Option value - Output - - - ISO8601 - - Uses the formatter. - Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. - - - - DATE - - Uses the formatter. - Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". - - - - ABSOLUTE - - Uses the formatter. - Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". - - - - other - - Any other pattern string uses the formatter. - This formatter passes the pattern string to the - method. - For details on valid patterns see - DateTimeFormatInfo Class. - - - - - - The date and time is in the local time zone and is rendered in that zone. - To output the time in Universal time see . - - - Nicko Cadell - - - - The used to render the date to a string - - - - The used to render the date to a string - - - - - - Initialize the converter options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the current date to the output - - that will receive the formatted result. - null, state is not set - - - Pass the current date and time to the - for it to render it to the writer. - - - The date and time passed is in the local time zone. - - - - - - The fully qualified type of the DatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write an folder path to the output - - - - Write an special path environment folder path to the output writer. - The value of the determines - the name of the variable to output. - should be a value in the enumeration. - - - Ron Grabowski - - - - Write an special path environment folder path to the output - - the writer to write to - null, state is not set - - - Writes the special path environment folder path to the output . - The name of the special path environment folder path to output must be set - using the - property. - - - - - - The fully qualified type of the EnvironmentFolderPathPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write an environment variable to the output - - - - Write an environment variable to the output writer. - The value of the determines - the name of the variable to output. - - - Nicko Cadell - - - - Write an environment variable to the output - - the writer to write to - null, state is not set - - - Writes the environment variable to the output . - The name of the environment variable to output must be set - using the - property. - - - - - - The fully qualified type of the EnvironmentPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the current thread identity to the output - - - - Write the current thread identity to the output writer - - - Nicko Cadell - - - - Write the current thread identity to the output - - the writer to write to - null, state is not set - - - Writes the current thread identity to the output . - - - - - - The fully qualified type of the IdentityPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Pattern converter for literal string instances in the pattern - - - - Writes the literal string value specified in the - property to - the output. - - - Nicko Cadell - - - - Set the next converter in the chain - - The next pattern converter in the chain - The next pattern converter - - - Special case the building of the pattern converter chain - for instances. Two adjacent - literals in the pattern can be represented by a single combined - pattern converter. This implementation detects when a - is added to the chain - after this converter and combines its value with this converter's - literal value. - - - - - - Write the literal to the output - - the writer to write to - null, not set - - - Override the formatting behavior to ignore the FormattingInfo - because we have a literal instead. - - - Writes the value of - to the output . - - - - - - Convert this pattern into the rendered message - - that will receive the formatted result. - null, not set - - - This method is not used. - - - - - - Writes a newline to the output - - - - Writes the system dependent line terminator to the output. - This behavior can be overridden by setting the : - - - - Option Value - Output - - - DOS - DOS or Windows line terminator "\r\n" - - - UNIX - UNIX line terminator "\n" - - - - Nicko Cadell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the current process ID to the output - - - - Write the current process ID to the output writer - - - Nicko Cadell - - - - Write the current process ID to the output - - the writer to write to - null, state is not set - - - Write the current process ID to the output . - - - - - - The fully qualified type of the ProcessIdPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Property pattern converter - - - - This pattern converter reads the thread and global properties. - The thread properties take priority over global properties. - See for details of the - thread properties. See for - details of the global properties. - - - If the is specified then that will be used to - lookup a single property. If no is specified - then all properties will be dumped as a list of key value pairs. - - - Nicko Cadell - - - - Write the property value to the output - - that will receive the formatted result. - null, state is not set - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - - - - A Pattern converter that generates a string of random characters - - - - The converter generates a string of random characters. By default - the string is length 4. This can be changed by setting the - to the string value of the length required. - - - The random characters in the string are limited to uppercase letters - and numbers only. - - - The random number generator used by this class is not cryptographically secure. - - - Nicko Cadell - - - - Shared random number generator - - - - - Length of random string to generate. Default length 4. - - - - - Initialize the converter options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write a randoim string to the output - - the writer to write to - null, state is not set - - - Write a randoim string to the output . - - - - - - The fully qualified type of the RandomStringPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the current threads username to the output - - - - Write the current threads username to the output writer - - - Nicko Cadell - - - - Write the current threads username to the output - - the writer to write to - null, state is not set - - - Write the current threads username to the output . - - - - - - The fully qualified type of the UserNamePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the UTC date time to the output - - - - Date pattern converter, uses a to format - the current date and time in Universal time. - - - See the for details on the date pattern syntax. - - - - Nicko Cadell - - - - Write the current date and time to the output - - that will receive the formatted result. - null, state is not set - - - Pass the current date and time to the - for it to render it to the writer. - - - The date is in Universal time when it is rendered. - - - - - - - The fully qualified type of the UtcDatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Type converter for Boolean. - - - - Supports conversion from string to bool type. - - - - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Convert the source object to the type supported by this object - - the object to convert - the converted object - - - Uses the method to convert the - argument to a . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Exception base type for conversion errors. - - - - This type extends . It - does not add any new functionality but does differentiate the - type of exception being thrown. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - A message to include with the exception. - - - Initializes a new instance of the class - with the specified message. - - - - - - Constructor - - A message to include with the exception. - A nested exception to include. - - - Initializes a new instance of the class - with the specified message and inner exception. - - - - - - Serialization constructor - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Creates a new instance of the class. - - The conversion destination type. - The value to convert. - An instance of the . - - - Creates a new instance of the class. - - - - - - Creates a new instance of the class. - - The conversion destination type. - The value to convert. - A nested exception to include. - An instance of the . - - - Creates a new instance of the class. - - - - - - Register of type converters for specific types. - - - - Maintains a registry of type converters used to convert between - types. - - - Use the and - methods to register new converters. - The and methods - lookup appropriate converters to use. - - - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - Initializes a new instance of the class. - - - - - Static constructor. - - - - This constructor defines the intrinsic type converters. - - - - - - Adds a converter for a specific type. - - The type being converted to. - The type converter to use to convert to the destination type. - - - Adds a converter instance for a specific type. - - - - - - Adds a converter for a specific type. - - The type being converted to. - The type of the type converter to use to convert to the destination type. - - - Adds a converter for a specific type. - - - - - - Gets the type converter to use to convert values to the destination type. - - The type being converted from. - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - Gets the type converter to use to convert values to the destination type. - - - - - - Gets the type converter to use to convert values to the destination type. - - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - Gets the type converter to use to convert values to the destination type. - - - - - - Lookups the type converter to use as specified by the attributes on the - destination type. - - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - - Creates the instance of the type converter. - - The type of the type converter. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - The type specified for the type converter must implement - the or interfaces - and must have a public default (no argument) constructor. - - - - - - The fully qualified type of the ConverterRegistry class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Mapping from to type converter. - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to an encoding - the encoding - - - Uses the method to - convert the argument to an . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Interface supported by type converters - - - - This interface supports conversion from a single type to arbitrary types. - See . - - - Nicko Cadell - - - - Returns whether this converter can convert the object to the specified type - - A Type that represents the type you want to convert to - true if the conversion is possible - - - Test if the type supported by this converter can be converted to the - . - - - - - - Converts the given value object to the specified type, using the arguments - - the object to convert - The Type to convert the value parameter to - the converted object - - - Converts the (which must be of the type supported - by this converter) to the specified.. - - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to an IPAddress - the IPAddress - - - Uses the method to convert the - argument to an . - If that fails then the string is resolved as a DNS hostname. - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - The string is used as the - of the . - - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a PatternLayout - the PatternLayout - - - Creates and returns a new using - the as the - . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Convert between string and - - - - Supports conversion from string to type, - and from a type to a string. - - - The string is used as the - of the . - - - - - - Nicko Cadell - - - - Can the target type be converted to the type supported by this object - - A that represents the type you want to convert to - true if the conversion is possible - - - Returns true if the is - assignable from a type. - - - - - - Converts the given value object to the specified type, using the arguments - - the object to convert - The Type to convert the value parameter to - the converted object - - - Uses the method to convert the - argument to a . - - - - The object cannot be converted to the - . To check for this condition use the - method. - - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a PatternString - the PatternString - - - Creates and returns a new using - the as the - . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a Type - the Type - - - Uses the method to convert the - argument to a . - Additional effort is made to locate partially specified types - by searching the loaded assemblies. - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Attribute used to associate a type converter - - - - Class and Interface level attribute that specifies a type converter - to use with the associated type. - - - To associate a type converter with a target type apply a - TypeConverterAttribute to the target type. Specify the - type of the type converter on the attribute. - - - Nicko Cadell - Gert Driesen - - - - The string type name of the type converter - - - - - Default constructor - - - - Default constructor - - - - - - Create a new type converter attribute for the specified type name - - The string type name of the type converter - - - The type specified must implement the - or the interfaces. - - - - - - Create a new type converter attribute for the specified type - - The type of the type converter - - - The type specified must implement the - or the interfaces. - - - - - - The string type name of the type converter - - - The string type name of the type converter - - - - The type specified must implement the - or the interfaces. - - - - - - A straightforward implementation of the interface. - - - - This is the default implementation of the - interface. Implementors of the interface - should aggregate an instance of this type. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Append on on all attached appenders. - - The event being logged. - The number of appenders called. - - - Calls the method on all - attached appenders. - - - - - - Append on on all attached appenders. - - The array of events being logged. - The number of appenders called. - - - Calls the method on all - attached appenders. - - - - - - Calls the DoAppende method on the with - the objects supplied. - - The appender - The events - - - If the supports the - interface then the will be passed - through using that interface. Otherwise the - objects in the array will be passed one at a time. - - - - - - Attaches an appender. - - The appender to add. - - - If the appender is already in the list it won't be added again. - - - - - - Gets an attached appender with the specified name. - - The name of the appender to get. - - The appender with the name specified, or null if no appender with the - specified name is found. - - - - Lookup an attached appender by name. - - - - - - Removes all attached appenders. - - - - Removes and closes all attached appenders - - - - - - Removes the specified appender from the list of attached appenders. - - The appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - List of appenders - - - - - Array of appenders, used to cache the m_appenderList - - - - - The fully qualified type of the AppenderAttachedImpl class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets all attached appenders. - - - A collection of attached appenders, or null if there - are no attached appenders. - - - - The read only collection of all currently attached appenders. - - - - - - This class aggregates several PropertiesDictionary collections together. - - - - Provides a dictionary style lookup over an ordered list of - collections. - - - Nicko Cadell - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Add a Properties Dictionary to this composite collection - - the properties to add - - - Properties dictionaries added first take precedence over dictionaries added - later. - - - - - - Flatten this composite collection into a single properties dictionary - - the flattened dictionary - - - Reduces the collection of ordered dictionaries to a single dictionary - containing the resultant values for the keys. - - - - - - Gets the value of a property - - - The value for the property with the specified key - - - - Looks up the value for the specified. - The collections are searched - in the order in which they were added to this collection. The value - returned is the value held by the first collection that contains - the specified key. - - - If none of the collections contain the specified key then - null is returned. - - - - - - Base class for Context Properties implementations - - - - This class defines a basic property get set accessor - - - Nicko Cadell - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Gets or sets the value of a property - - - - - - Wrapper class used to map converter names to converter types - - - - Pattern converter info class used during configuration by custom - PatternString and PatternLayer converters. - - - - - - default constructor - - - - - - - - - - - Gets or sets the name of the conversion pattern - - - - The name of the pattern in the format string - - - - - - Gets or sets the type of the converter - - - - The value specified must extend the - type. - - - - - - - - - - - Subclass of that maintains a count of - the number of bytes written. - - - - This writer counts the number of bytes written. - - - Nicko Cadell - Gert Driesen - - - - that does not leak exceptions - - - - does not throw exceptions when things go wrong. - Instead, it delegates error handling to its . - - - Nicko Cadell - Gert Driesen - - - - Adapter that extends and forwards all - messages to an instance of . - - - - Adapter that extends and forwards all - messages to an instance of . - - - Nicko Cadell - - - - The writer to forward messages to - - - - - Create an instance of that forwards all - messages to a . - - The to forward to - - - Create an instance of that forwards all - messages to a . - - - - - - Closes the writer and releases any system resources associated with the writer - - - - - - - - - Dispose this writer - - flag indicating if we are being disposed - - - Dispose this writer - - - - - - Flushes any buffered output - - - - Clears all buffers for the writer and causes any buffered data to be written - to the underlying device - - - - - - Writes a character to the wrapped TextWriter - - the value to write to the TextWriter - - - Writes a character to the wrapped TextWriter - - - - - - Writes a character buffer to the wrapped TextWriter - - the data buffer - the start index - the number of characters to write - - - Writes a character buffer to the wrapped TextWriter - - - - - - Writes a string to the wrapped TextWriter - - the value to write to the TextWriter - - - Writes a string to the wrapped TextWriter - - - - - - Gets or sets the underlying . - - - The underlying . - - - - Gets or sets the underlying . - - - - - - The Encoding in which the output is written - - - The - - - - The Encoding in which the output is written - - - - - - Gets an object that controls formatting - - - The format provider - - - - Gets an object that controls formatting - - - - - - Gets or sets the line terminator string used by the TextWriter - - - The line terminator to use - - - - Gets or sets the line terminator string used by the TextWriter - - - - - - Constructor - - the writer to actually write to - the error handler to report error to - - - Create a new QuietTextWriter using a writer and error handler - - - - - - Writes a character to the underlying writer - - the char to write - - - Writes a character to the underlying writer - - - - - - Writes a buffer to the underlying writer - - the buffer to write - the start index to write from - the number of characters to write - - - Writes a buffer to the underlying writer - - - - - - Writes a string to the output. - - The string data to write to the output. - - - Writes a string to the output. - - - - - - Closes the underlying output writer. - - - - Closes the underlying output writer. - - - - - - The error handler instance to pass all errors to - - - - - Flag to indicate if this writer is closed - - - - - Gets or sets the error handler that all errors are passed to. - - - The error handler that all errors are passed to. - - - - Gets or sets the error handler that all errors are passed to. - - - - - - Gets a value indicating whether this writer is closed. - - - true if this writer is closed, otherwise false. - - - - Gets a value indicating whether this writer is closed. - - - - - - Constructor - - The to actually write to. - The to report errors to. - - - Creates a new instance of the class - with the specified and . - - - - - - Writes a character to the underlying writer and counts the number of bytes written. - - the char to write - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Writes a buffer to the underlying writer and counts the number of bytes written. - - the buffer to write - the start index to write from - the number of characters to write - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Writes a string to the output and counts the number of bytes written. - - The string data to write to the output. - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Total number of bytes written. - - - - - Gets or sets the total number of bytes written. - - - The total number of bytes written. - - - - Gets or sets the total number of bytes written. - - - - - - A fixed size rolling buffer of logging events. - - - - An array backed fixed size leaky bucket. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The maximum number of logging events in the buffer. - - - Initializes a new instance of the class with - the specified maximum number of buffered logging events. - - - The argument is not a positive integer. - - - - Appends a to the buffer. - - The event to append to the buffer. - The event discarded from the buffer, if the buffer is full, otherwise null. - - - Append an event to the buffer. If the buffer still contains free space then - null is returned. If the buffer is full then an event will be dropped - to make space for the new event, the event dropped is returned. - - - - - - Get and remove the oldest event in the buffer. - - The oldest logging event in the buffer - - - Gets the oldest (first) logging event in the buffer and removes it - from the buffer. - - - - - - Pops all the logging events from the buffer into an array. - - An array of all the logging events in the buffer. - - - Get all the events in the buffer and clear the buffer. - - - - - - Clear the buffer - - - - Clear the buffer of all events. The events in the buffer are lost. - - - - - - Gets the th oldest event currently in the buffer. - - The th oldest event currently in the buffer. - - - If is outside the range 0 to the number of events - currently in the buffer, then null is returned. - - - - - - Gets the maximum size of the buffer. - - The maximum size of the buffer. - - - Gets the maximum size of the buffer - - - - - - Gets the number of logging events in the buffer. - - The number of logging events in the buffer. - - - This number is guaranteed to be in the range 0 to - (inclusive). - - - - - - An always empty . - - - - A singleton implementation of the - interface that always represents an empty collection. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Copies the elements of the to an - , starting at a particular Array index. - - The one-dimensional - that is the destination of the elements copied from - . The Array must have zero-based - indexing. - The zero-based index in array at which - copying begins. - - - As the collection is empty no values are copied into the array. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - The singleton instance of the empty collection. - - - - - Gets the singleton instance of the empty collection. - - The singleton instance of the empty collection. - - - Gets the singleton instance of the empty collection. - - - - - - Gets a value indicating if access to the is synchronized (thread-safe). - - - true if access to the is synchronized (thread-safe); otherwise, false. - - - - For the this property is always true. - - - - - - Gets the number of elements contained in the . - - - The number of elements contained in the . - - - - As the collection is empty the is always 0. - - - - - - Gets an object that can be used to synchronize access to the . - - - An object that can be used to synchronize access to the . - - - - As the collection is empty and thread safe and synchronized this instance is also - the object. - - - - - - An always empty . - - - - A singleton implementation of the - interface that always represents an empty collection. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Copies the elements of the to an - , starting at a particular Array index. - - The one-dimensional - that is the destination of the elements copied from - . The Array must have zero-based - indexing. - The zero-based index in array at which - copying begins. - - - As the collection is empty no values are copied into the array. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - Adds an element with the provided key and value to the - . - - The to use as the key of the element to add. - The to use as the value of the element to add. - - - As the collection is empty no new values can be added. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - Removes all elements from the . - - - - As the collection is empty no values can be removed. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - Determines whether the contains an element - with the specified key. - - The key to locate in the . - false - - - As the collection is empty the method always returns false. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - Removes the element with the specified key from the . - - The key of the element to remove. - - - As the collection is empty no values can be removed. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - The singleton instance of the empty dictionary. - - - - - Gets the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets a value indicating if access to the is synchronized (thread-safe). - - - true if access to the is synchronized (thread-safe); otherwise, false. - - - - For the this property is always true. - - - - - - Gets the number of elements contained in the - - - The number of elements contained in the . - - - - As the collection is empty the is always 0. - - - - - - Gets an object that can be used to synchronize access to the . - - - An object that can be used to synchronize access to the . - - - - As the collection is empty and thread safe and synchronized this instance is also - the object. - - - - - - Gets a value indicating whether the has a fixed size. - - true - - - As the collection is empty always returns true. - - - - - - Gets a value indicating whether the is read-only. - - true - - - As the collection is empty always returns true. - - - - - - Gets an containing the keys of the . - - An containing the keys of the . - - - As the collection is empty a is returned. - - - - - - Gets an containing the values of the . - - An containing the values of the . - - - As the collection is empty a is returned. - - - - - - Gets or sets the element with the specified key. - - The key of the element to get or set. - null - - - As the collection is empty no values can be looked up or stored. - If the index getter is called then null is returned. - A is thrown if the setter is called. - - - This dictionary is always empty and cannot be modified. - - - - Contain the information obtained when parsing formatting modifiers - in conversion modifiers. - - - - Holds the formatting information extracted from the format string by - the . This is used by the - objects when rendering the output. - - - Nicko Cadell - Gert Driesen - - - - Defaut Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - - - Initializes a new instance of the class - with the specified parameters. - - - - - - Gets or sets the minimum value. - - - The minimum value. - - - - Gets or sets the minimum value. - - - - - - Gets or sets the maximum value. - - - The maximum value. - - - - Gets or sets the maximum value. - - - - - - Gets or sets a flag indicating whether left align is enabled - or not. - - - A flag indicating whether left align is enabled or not. - - - - Gets or sets a flag indicating whether left align is enabled or not. - - - - - - Implementation of Properties collection for the - - - - This class implements a properties collection that is thread safe and supports both - storing properties and capturing a read only copy of the current propertied. - - - This class is optimized to the scenario where the properties are read frequently - and are modified infrequently. - - - Nicko Cadell - - - - The read only copy of the properties. - - - - This variable is declared volatile to prevent the compiler and JIT from - reordering reads and writes of this thread performed on different threads. - - - - - - Lock object used to synchronize updates within this instance - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property from the global context - - the key for the entry to remove - - - Removing an entry from the global context properties is relatively expensive compared - with reading a value. - - - - - - Clear the global context properties - - - - - Get a readonly immutable copy of the properties - - the current global context properties - - - This implementation is fast because the GlobalContextProperties class - stores a readonly copy of the properties. - - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Reading the value for a key is faster than setting the value. - When the value is written a new read only copy of - the properties is created. - - - - - - Manages a mapping from levels to - - - - Manages an ordered mapping from instances - to subclasses. - - - Nicko Cadell - - - - Default constructor - - - - Initialise a new instance of . - - - - - - Add a to this mapping - - the entry to add - - - If a has previously been added - for the same then that entry will be - overwritten. - - - - - - Lookup the mapping for the specified level - - the level to lookup - the for the level or null if no mapping found - - - Lookup the value for the specified level. Finds the nearest - mapping value for the level that is equal to or less than the - specified. - - - If no mapping could be found then null is returned. - - - - - - Initialize options - - - - Caches the sorted list of in an array - - - - - - Implementation of Properties collection for the - - - - Class implements a collection of properties that is specific to each thread. - The class is not synchronized as each thread has its own . - - - This class stores its properties in a slot on the named - log4net.Util.LogicalThreadContextProperties. - - - The requires a link time - for the - . - If the calling code does not have this permission then this context will be disabled. - It will not store any property values set on it. - - - Nicko Cadell - - - - Flag used to disable this context if we don't have permission to access the CallContext. - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property - - the key for the entry to remove - - - Remove the value for the specified from the context. - - - - - - Clear all the context properties - - - - Clear all the context properties - - - - - - Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. - - create the dictionary if it does not exist, otherwise return null if is does not exist - the properties for this thread - - - The collection returned is only to be used on the calling thread. If the - caller needs to share the collection between different threads then the - caller must clone the collection before doings so. - - - - - - Gets the call context get data. - - The peroperties dictionary stored in the call context - - The method has a - security link demand, therfore we must put the method call in a seperate method - that we can wrap in an exception handler. - - - - - Sets the call context data. - - The properties. - - The method has a - security link demand, therfore we must put the method call in a seperate method - that we can wrap in an exception handler. - - - - - The fully qualified type of the LogicalThreadContextProperties class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Get or set the property value for the specified. - - - - - - - - - - - - - Outputs log statements from within the log4net assembly. - - - - Log4net components cannot make log4net logging calls. However, it is - sometimes useful for the user to learn about what log4net is - doing. - - - All log4net internal debug calls go to the standard output stream - whereas internal error messages are sent to the standard error output - stream. - - - Nicko Cadell - Gert Driesen - - - - Formats Prefix, Source, and Message in the same format as the value - sent to Console.Out and Trace.Write. - - - - - - Initializes a new instance of the class. - - - - - - - - - Static constructor that initializes logging by reading - settings from the application configuration file. - - - - The log4net.Internal.Debug application setting - controls internal debugging. This setting should be set - to true to enable debugging. - - - The log4net.Internal.Quiet application setting - suppresses all internal logging including error messages. - This setting should be set to true to enable message - suppression. - - - - - - Raises the LogReceived event when an internal messages is received. - - - - - - - - - Writes log4net internal debug messages to the - standard output stream. - - - The message to log. - - - All internal debug messages are prepended with - the string "log4net: ". - - - - - - Writes log4net internal debug messages to the - standard output stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal debug messages are prepended with - the string "log4net: ". - - - - - - Writes log4net internal warning messages to the - standard error stream. - - The Type that generated this message. - The message to log. - - - All internal warning messages are prepended with - the string "log4net:WARN ". - - - - - - Writes log4net internal warning messages to the - standard error stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal warning messages are prepended with - the string "log4net:WARN ". - - - - - - Writes log4net internal error messages to the - standard error stream. - - The Type that generated this message. - The message to log. - - - All internal error messages are prepended with - the string "log4net:ERROR ". - - - - - - Writes log4net internal error messages to the - standard error stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal debug messages are prepended with - the string "log4net:ERROR ". - - - - - - Writes output to the standard output stream. - - The message to log. - - - Writes to both Console.Out and System.Diagnostics.Trace. - Note that the System.Diagnostics.Trace is not supported - on the Compact Framework. - - - If the AppDomain is not configured with a config file then - the call to System.Diagnostics.Trace may fail. This is only - an issue if you are programmatically creating your own AppDomains. - - - - - - Writes output to the standard error stream. - - The message to log. - - - Writes to both Console.Error and System.Diagnostics.Trace. - Note that the System.Diagnostics.Trace is not supported - on the Compact Framework. - - - If the AppDomain is not configured with a config file then - the call to System.Diagnostics.Trace may fail. This is only - an issue if you are programmatically creating your own AppDomains. - - - - - - Default debug level - - - - - In quietMode not even errors generate any output. - - - - - The event raised when an internal message has been received. - - - - - The Type that generated the internal message. - - - - - The DateTime stamp of when the internal message was received. - - - - - A string indicating the severity of the internal message. - - - "log4net: ", - "log4net:ERROR ", - "log4net:WARN " - - - - - The internal log message. - - - - - The Exception related to the message. - - - Optional. Will be null if no Exception was passed. - - - - - Gets or sets a value indicating whether log4net internal logging - is enabled or disabled. - - - true if log4net internal logging is enabled, otherwise - false. - - - - When set to true, internal debug level logging will be - displayed. - - - This value can be set by setting the application setting - log4net.Internal.Debug in the application configuration - file. - - - The default value is false, i.e. debugging is - disabled. - - - - - The following example enables internal debugging using the - application configuration file : - - - - - - - - - - - - - Gets or sets a value indicating whether log4net should generate no output - from internal logging, not even for errors. - - - true if log4net should generate no output at all from internal - logging, otherwise false. - - - - When set to true will cause internal logging at all levels to be - suppressed. This means that no warning or error reports will be logged. - This option overrides the setting and - disables all debug also. - - This value can be set by setting the application setting - log4net.Internal.Quiet in the application configuration file. - - - The default value is false, i.e. internal logging is not - disabled. - - - - The following example disables internal logging using the - application configuration file : - - - - - - - - - - - - - - - - - Test if LogLog.Debug is enabled for output. - - - true if Debug is enabled - - - - Test if LogLog.Debug is enabled for output. - - - - - - Test if LogLog.Warn is enabled for output. - - - true if Warn is enabled - - - - Test if LogLog.Warn is enabled for output. - - - - - - Test if LogLog.Error is enabled for output. - - - true if Error is enabled - - - - Test if LogLog.Error is enabled for output. - - - - - - Subscribes to the LogLog.LogReceived event and stores messages - to the supplied IList instance. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Represents a native error code and message. - - - - Represents a Win32 platform native error. - - - Nicko Cadell - Gert Driesen - - - - Create an instance of the class with the specified - error number and message. - - The number of the native error. - The message of the native error. - - - Create an instance of the class with the specified - error number and message. - - - - - - Create a new instance of the class for the last Windows error. - - - An instance of the class for the last windows error. - - - - The message for the error number is lookup up using the - native Win32 FormatMessage function. - - - - - - Create a new instance of the class. - - the error number for the native error - - An instance of the class for the specified - error number. - - - - The message for the specified error number is lookup up using the - native Win32 FormatMessage function. - - - - - - Retrieves the message corresponding with a Win32 message identifier. - - Message identifier for the requested message. - - The message corresponding with the specified message identifier. - - - - The message will be searched for in system message-table resource(s) - using the native FormatMessage function. - - - - - - Return error information string - - error information string - - - Return error information string - - - - - - Formats a message string. - - Formatting options, and how to interpret the parameter. - Location of the message definition. - Message identifier for the requested message. - Language identifier for the requested message. - If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . - If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. - Pointer to an array of values that are used as insert values in the formatted message. - - - The function requires a message definition as input. The message definition can come from a - buffer passed into the function. It can come from a message table resource in an - already-loaded module. Or the caller can ask the function to search the system's message - table resource(s) for the message definition. The function finds the message definition - in a message table resource based on a message identifier and a language identifier. - The function copies the formatted message text to an output buffer, processing any embedded - insert sequences if requested. - - - To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. - - - - - If the function succeeds, the return value is the number of TCHARs stored in the output - buffer, excluding the terminating null character. - - - If the function fails, the return value is zero. To get extended error information, - call . - - - - - - Gets the number of the native error. - - - The number of the native error. - - - - Gets the number of the native error. - - - - - - Gets the message of the native error. - - - The message of the native error. - - - - - Gets the message of the native error. - - - - - An always empty . - - - - A singleton implementation of the over a collection - that is empty and not modifiable. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Test if the enumerator can advance, if so advance. - - false as the cannot advance. - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will always return false. - - - - - - Resets the enumerator back to the start. - - - - As the enumerator is over an empty collection does nothing. - - - - - - The singleton instance of the . - - - - - Gets the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets the current object from the enumerator. - - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current key from the enumerator. - - - Throws an exception because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current value from the enumerator. - - The current value from the enumerator. - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current entry from the enumerator. - - - Throws an because the - never has a current entry. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - An always empty . - - - - A singleton implementation of the over a collection - that is empty and not modifiable. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Test if the enumerator can advance, if so advance - - false as the cannot advance. - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will always return false. - - - - - - Resets the enumerator back to the start. - - - - As the enumerator is over an empty collection does nothing. - - - - - - The singleton instance of the . - - - - - Get the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets the current object from the enumerator. - - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - A SecurityContext used when a SecurityContext is not required - - - - The is a no-op implementation of the - base class. It is used where a - is required but one has not been provided. - - - Nicko Cadell - - - - Singleton instance of - - - - Singleton instance of - - - - - - Private constructor - - - - Private constructor for singleton pattern. - - - - - - Impersonate this SecurityContext - - State supplied by the caller - null - - - No impersonation is done and null is always returned. - - - - - - Implements log4net's default error handling policy which consists - of emitting a message for the first error in an appender and - ignoring all subsequent errors. - - - - The error message is processed using the LogLog sub-system. - - - This policy aims at protecting an otherwise working application - from being flooded with error messages when logging fails. - - - Nicko Cadell - Gert Driesen - Ron Grabowski - - - - Default Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - The prefix to use for each message. - - - Initializes a new instance of the class - with the specified prefix. - - - - - - Reset the error handler back to its initial disabled state. - - - - - Log an Error - - The error message. - The exception. - The internal error code. - - - Sends the error information to 's Error method. - - - - - - Log an Error - - The error message. - The exception. - - - Prints the message and the stack trace of the exception on the standard - error output stream. - - - - - - Log an error - - The error message. - - - Print a the error message passed as parameter on the standard - error output stream. - - - - - - The date the error was recorded. - - - - - Flag to indicate if it is the first error - - - - - The message recorded during the first error. - - - - - The exception recorded during the first error. - - - - - The error code recorded during the first error. - - - - - String to prefix each message with - - - - - The fully qualified type of the OnlyOnceErrorHandler class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Is error logging enabled - - - - Is error logging enabled. Logging is only enabled for the - first error delivered to the . - - - - - - The date the first error that trigged this error handler occured. - - - - - The message from the first error that trigged this error handler. - - - - - The exception from the first error that trigged this error handler. - - - May be . - - - - - The error code from the first error that trigged this error handler. - - - Defaults to - - - - - A convenience class to convert property values to specific types. - - - - Utility functions for converting types and parsing values. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Converts a string to a value. - - String to convert. - The default value. - The value of . - - - If is "true", then true is returned. - If is "false", then false is returned. - Otherwise, is returned. - - - - - - Parses a file size into a number. - - String to parse. - The default value. - The value of . - - - Parses a file size of the form: number[KB|MB|GB] into a - long value. It is scaled with the appropriate multiplier. - - - is returned when - cannot be converted to a value. - - - - - - Converts a string to an object. - - The target type to convert to. - The string to convert to an object. - - The object converted from a string or null when the - conversion failed. - - - - Converts a string to an object. Uses the converter registry to try - to convert the string value into the specified target type. - - - - - - Checks if there is an appropriate type conversion from the source type to the target type. - - The type to convert from. - The type to convert to. - true if there is a conversion from the source type to the target type. - - Checks if there is an appropriate type conversion from the source type to the target type. - - - - - - - Converts an object to the target type. - - The object to convert to the target type. - The type to convert to. - The converted object. - - - Converts an object to the target type. - - - - - - Instantiates an object given a class name. - - The fully qualified class name of the object to instantiate. - The class to which the new object should belong. - The object to return in case of non-fulfillment. - - An instance of the or - if the object could not be instantiated. - - - - Checks that the is a subclass of - . If that test fails or the object could - not be instantiated, then is returned. - - - - - - Performs variable substitution in string from the - values of keys found in . - - The string on which variable substitution is performed. - The dictionary to use to lookup variables. - The result of the substitutions. - - - The variable substitution delimiters are ${ and }. - - - For example, if props contains key=value, then the call - - - - string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); - - - - will set the variable s to "Value of key is value.". - - - If no value could be found for the specified key, then substitution - defaults to an empty string. - - - For example, if system properties contains no value for the key - "nonExistentKey", then the call - - - - string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); - - - - will set s to "Value of nonExistentKey is []". - - - An Exception is thrown if contains a start - delimiter "${" which is not balanced by a stop delimiter "}". - - - - - - Converts the string representation of the name or numeric value of one or - more enumerated constants to an equivalent enumerated object. - - The type to convert to. - The enum string value. - If true, ignore case; otherwise, regard case. - An object of type whose value is represented by . - - - - The fully qualified type of the OptionConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Most of the work of the class - is delegated to the PatternParser class. - - - - The PatternParser processes a pattern string and - returns a chain of objects. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The pattern to parse. - - - Initializes a new instance of the class - with the specified pattern string. - - - - - - Parses the pattern into a chain of pattern converters. - - The head of a chain of pattern converters. - - - Parses the pattern into a chain of pattern converters. - - - - - - Build the unified cache of converters from the static and instance maps - - the list of all the converter names - - - Build the unified cache of converters from the static and instance maps - - - - - - Internal method to parse the specified pattern to find specified matches - - the pattern to parse - the converter names to match in the pattern - - - The matches param must be sorted such that longer strings come before shorter ones. - - - - - - Process a parsed literal - - the literal text - - - - Process a parsed converter pattern - - the name of the converter - the optional option for the converter - the formatting info for the converter - - - - Resets the internal state of the parser and adds the specified pattern converter - to the chain. - - The pattern converter to add. - - - - The first pattern converter in the chain - - - - - the last pattern converter in the chain - - - - - The pattern - - - - - Internal map of converter identifiers to converter types - - - - This map overrides the static s_globalRulesRegistry map. - - - - - - The fully qualified type of the PatternParser class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Get the converter registry used by this parser - - - The converter registry used by this parser - - - - Get the converter registry used by this parser - - - - - - Sort strings by length - - - - that orders strings by string length. - The longest strings are placed first - - - - - - This class implements a patterned string. - - - - This string has embedded patterns that are resolved and expanded - when the string is formatted. - - - This class functions similarly to the - in that it accepts a pattern and renders it to a string. Unlike the - however the PatternString - does not render the properties of a specific but - of the process in general. - - - The recognized conversion pattern names are: - - - - Conversion Pattern Name - Effect - - - appdomain - - - Used to output the friendly name of the current AppDomain. - - - - - date - - - Used to output the current date and time in the local time zone. - To output the date in universal time use the %utcdate pattern. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %date{HH:mm:ss,fff} or - %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %date{ISO8601} or %date{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - env - - - Used to output the a specific environment variable. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %env{COMPUTERNAME} would include the value - of the COMPUTERNAME environment variable. - - - The env pattern is not supported on the .NET Compact Framework. - - - - - identity - - - Used to output the user name for the currently active user - (Principal.Identity.Name). - - - - - newline - - - Outputs the platform dependent line separator character or - characters. - - - This conversion pattern name offers the same performance as using - non-portable line separator strings such as "\n", or "\r\n". - Thus, it is the preferred way of specifying a line separator. - - - - - processid - - - Used to output the system process ID for the current process. - - - - - property - - - Used to output a specific context property. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %property{user} would include the value - from the property that is keyed by the string 'user'. Each property value - that is to be included in the log must be specified separately. - Properties are stored in logging contexts. By default - the log4net:HostName property is set to the name of machine on - which the event was originally logged. - - - If no key is specified, e.g. %property then all the keys and their - values are printed in a comma separated list. - - - The properties of an event are combined from a number of different - contexts. These are listed below in the order in which they are searched. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - random - - - Used to output a random string of characters. The string is made up of - uppercase letters and numbers. By default the string is 4 characters long. - The length of the string can be specified within braces directly following the - pattern specifier, e.g. %random{8} would output an 8 character string. - - - - - username - - - Used to output the WindowsIdentity for the currently - active user. - - - - - utcdate - - - Used to output the date of the logging event in universal time. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %utcdate{HH:mm:ss,fff} or - %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %utcdate{ISO8601} or %utcdate{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - % - - - The sequence %% outputs a single percent sign. - - - - - - Additional pattern converters may be registered with a specific - instance using or - . - - - See the for details on the - format modifiers supported by the patterns. - - - Nicko Cadell - - - - Internal map of converter identifiers to converter types. - - - - - the pattern - - - - - the head of the pattern converter chain - - - - - patterns defined on this PatternString only - - - - - Initialize the global registry - - - - - Default constructor - - - - Initialize a new instance of - - - - - - Constructs a PatternString - - The pattern to use with this PatternString - - - Initialize a new instance of with the pattern specified. - - - - - - Initialize object options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Create the used to parse the pattern - - the pattern to parse - The - - - Returns PatternParser used to parse the conversion string. Subclasses - may override this to return a subclass of PatternParser which recognize - custom conversion pattern name. - - - - - - Produces a formatted string as specified by the conversion pattern. - - The TextWriter to write the formatted event to - - - Format the pattern to the . - - - - - - Format the pattern as a string - - the pattern formatted as a string - - - Format the pattern to a string. - - - - - - Add a converter to this PatternString - - the converter info - - - This version of the method is used by the configurator. - Programmatic users should use the alternative method. - - - - - - Add a converter to this PatternString - - the name of the conversion pattern for this converter - the type of the converter - - - Add a converter to this PatternString - - - - - - Gets or sets the pattern formatting string - - - The pattern formatting string - - - - The ConversionPattern option. This is the string which - controls formatting and consists of a mix of literal content and - conversion specifiers. - - - - - - String keyed object map. - - - - While this collection is serializable only member - objects that are serializable will - be serialized along with this collection. - - - Nicko Cadell - Gert Driesen - - - - String keyed object map that is read only. - - - - This collection is readonly and cannot be modified. - - - While this collection is serializable only member - objects that are serializable will - be serialized along with this collection. - - - Nicko Cadell - Gert Driesen - - - - The Hashtable used to store the properties data - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Copy Constructor - - properties to copy - - - Initializes a new instance of the class. - - - - - - Deserialization constructor - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Gets the key names. - - An array of all the keys. - - - Gets the key names. - - - - - - Test if the dictionary contains a specified key - - the key to look for - true if the dictionary contains the specified key - - - Test if the dictionary contains a specified key - - - - - - Serializes this object into the provided. - - The to populate with data. - The destination for this serialization. - - - Serializes this object into the provided. - - - - - - See - - - - - See - - - - - - See - - - - - - - Remove all properties from the properties collection - - - - - See - - - - - - - See - - - - - - - See - - - - - Gets or sets the value of the property with the specified key. - - - The value of the property with the specified key. - - The key of the property to get or set. - - - The property value will only be serialized if it is serializable. - If it cannot be serialized it will be silently ignored if - a serialization operation is performed. - - - - - - The hashtable used to store the properties - - - The internal collection used to store the properties - - - - The hashtable used to store the properties - - - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - The number of properties in this collection - - - - - See - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - properties to copy - - - Initializes a new instance of the class. - - - - - - Initializes a new instance of the class - with serialized data. - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Because this class is sealed the serialization constructor is private. - - - - - - Remove the entry with the specified key from this dictionary - - the key for the entry to remove - - - Remove the entry with the specified key from this dictionary - - - - - - See - - an enumerator - - - Returns a over the contest of this collection. - - - - - - See - - the key to remove - - - Remove the entry with the specified key from this dictionary - - - - - - See - - the key to lookup in the collection - true if the collection contains the specified key - - - Test if this collection contains a specified key. - - - - - - Remove all properties from the properties collection - - - - Remove all properties from the properties collection - - - - - - See - - the key - the value to store for the key - - - Store a value for the specified . - - - Thrown if the is not a string - - - - See - - - - - - - See - - - - - Gets or sets the value of the property with the specified key. - - - The value of the property with the specified key. - - The key of the property to get or set. - - - The property value will only be serialized if it is serializable. - If it cannot be serialized it will be silently ignored if - a serialization operation is performed. - - - - - - See - - - false - - - - This collection is modifiable. This property always - returns false. - - - - - - See - - - The value for the key specified. - - - - Get or set a value for the specified . - - - Thrown if the is not a string - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - A class to hold the key and data for a property set in the config file - - - - A class to hold the key and data for a property set in the config file - - - - - - Override Object.ToString to return sensible debug info - - string info about this object - - - - Property Key - - - Property Key - - - - Property Key. - - - - - - Property Value - - - Property Value - - - - Property Value. - - - - - - A that ignores the message - - - - This writer is used in special cases where it is necessary - to protect a writer from being closed by a client. - - - Nicko Cadell - - - - Constructor - - the writer to actually write to - - - Create a new ProtectCloseTextWriter using a writer - - - - - - Attach this instance to a different underlying - - the writer to attach to - - - Attach this instance to a different underlying - - - - - - Does not close the underlying output writer. - - - - Does not close the underlying output writer. - This method does nothing. - - - - - - Defines a lock that supports single writers and multiple readers - - - - ReaderWriterLock is used to synchronize access to a resource. - At any given time, it allows either concurrent read access for - multiple threads, or write access for a single thread. In a - situation where a resource is changed infrequently, a - ReaderWriterLock provides better throughput than a simple - one-at-a-time lock, such as . - - - If a platform does not support a System.Threading.ReaderWriterLock - implementation then all readers and writers are serialized. Therefore - the caller must not rely on multiple simultaneous readers. - - - Nicko Cadell - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Acquires a reader lock - - - - blocks if a different thread has the writer - lock, or if at least one thread is waiting for the writer lock. - - - - - - Decrements the lock count - - - - decrements the lock count. When the count - reaches zero, the lock is released. - - - - - - Acquires the writer lock - - - - This method blocks if another thread has a reader lock or writer lock. - - - - - - Decrements the lock count on the writer lock - - - - ReleaseWriterLock decrements the writer lock count. - When the count reaches zero, the writer lock is released. - - - - - - A that can be and reused - - - - A that can be and reused. - This uses a single buffer for string operations. - - - Nicko Cadell - - - - Create an instance of - - the format provider to use - - - Create an instance of - - - - - - Override Dispose to prevent closing of writer - - flag - - - Override Dispose to prevent closing of writer - - - - - - Reset this string writer so that it can be reused. - - the maximum buffer capacity before it is trimmed - the default size to make the buffer - - - Reset this string writer so that it can be reused. - The internal buffers are cleared and reset. - - - - - - Utility class for system specific information. - - - - Utility class of static methods for system specific information. - - - Nicko Cadell - Gert Driesen - Alexey Solofnenko - - - - Private constructor to prevent instances. - - - - Only static methods are exposed from this type. - - - - - - Initialize default values for private static fields. - - - - Only static methods are exposed from this type. - - - - - - Gets the assembly location path for the specified assembly. - - The assembly to get the location for. - The location of the assembly. - - - This method does not guarantee to return the correct path - to the assembly. If only tries to give an indication as to - where the assembly was loaded from. - - - - - - Gets the fully qualified name of the , including - the name of the assembly from which the was - loaded. - - The to get the fully qualified name for. - The fully qualified name for the . - - - This is equivalent to the Type.AssemblyQualifiedName property, - but this method works on the .NET Compact Framework 1.0 as well as - the full .NET runtime. - - - - - - Gets the short name of the . - - The to get the name for. - The short name of the . - - - The short name of the assembly is the - without the version, culture, or public key. i.e. it is just the - assembly's file name without the extension. - - - Use this rather than Assembly.GetName().Name because that - is not available on the Compact Framework. - - - Because of a FileIOPermission security demand we cannot do - the obvious Assembly.GetName().Name. We are allowed to get - the of the assembly so we - start from there and strip out just the assembly name. - - - - - - Gets the file name portion of the , including the extension. - - The to get the file name for. - The file name of the assembly. - - - Gets the file name portion of the , including the extension. - - - - - - Loads the type specified in the type string. - - A sibling type to use to load the type. - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified, it will be loaded from the assembly - containing the specified relative type. If the type is not found in the assembly - then all the loaded assemblies will be searched for the type. - - - - - - Loads the type specified in the type string. - - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified it will be loaded from the - assembly that is directly calling this method. If the type is not found - in the assembly then all the loaded assemblies will be searched for the type. - - - - - - Loads the type specified in the type string. - - An assembly to load the type from. - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified it will be loaded from the specified - assembly. If the type is not found in the assembly then all the loaded assemblies - will be searched for the type. - - - - - - Generate a new guid - - A new Guid - - - Generate a new guid - - - - - - Create an - - The name of the parameter that caused the exception - The value of the argument that causes this exception - The message that describes the error - the ArgumentOutOfRangeException object - - - Create a new instance of the class - with a specified error message, the parameter name, and the value - of the argument. - - - The Compact Framework does not support the 3 parameter constructor for the - type. This method provides an - implementation that works for all platforms. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Lookup an application setting - - the application settings key to lookup - the value for the key, or null - - - Configuration APIs are not supported under the Compact Framework - - - - - - Convert a path into a fully qualified local file path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - The path specified must be a local file path, a URI is not supported. - - - - - - Creates a new case-insensitive instance of the class with the default initial capacity. - - A new case-insensitive instance of the class with the default initial capacity - - - The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. - - - - - - Gets an empty array of types. - - - - The Type.EmptyTypes field is not available on - the .NET Compact Framework 1.0. - - - - - - The fully qualified type of the SystemInfo class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Cache the host name for the current machine - - - - - Cache the application friendly name - - - - - Text to output when a null is encountered. - - - - - Text to output when an unsupported feature is requested. - - - - - Start time for the current process. - - - - - Gets the system dependent line terminator. - - - The system dependent line terminator. - - - - Gets the system dependent line terminator. - - - - - - Gets the base directory for this . - - The base directory path for the current . - - - Gets the base directory for this . - - - The value returned may be either a local file path or a URI. - - - - - - Gets the path to the configuration file for the current . - - The path to the configuration file for the current . - - - The .NET Compact Framework 1.0 does not have a concept of a configuration - file. For this runtime, we use the entry assembly location as the root for - the configuration file name. - - - The value returned may be either a local file path or a URI. - - - - - - Gets the path to the file that first executed in the current . - - The path to the entry assembly. - - - Gets the path to the file that first executed in the current . - - - - - - Gets the ID of the current thread. - - The ID of the current thread. - - - On the .NET framework, the AppDomain.GetCurrentThreadId method - is used to obtain the thread ID for the current thread. This is the - operating system ID for the thread. - - - On the .NET Compact Framework 1.0 it is not possible to get the - operating system thread ID for the current thread. The native method - GetCurrentThreadId is implemented inline in a header file - and cannot be called. - - - On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this - gives a stable id unrelated to the operating system thread ID which may - change if the runtime is using fibers. - - - - - - Get the host name or machine name for the current machine - - - The hostname or machine name - - - - Get the host name or machine name for the current machine - - - The host name () or - the machine name (Environment.MachineName) for - the current machine, or if neither of these are available - then NOT AVAILABLE is returned. - - - - - - Get this application's friendly name - - - The friendly name of this application as a string - - - - If available the name of the application is retrieved from - the AppDomain using AppDomain.CurrentDomain.FriendlyName. - - - Otherwise the file name of the entry assembly is used. - - - - - - Get the start time for the current process. - - - - This is the time at which the log4net library was loaded into the - AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime - this is not the start time for the current process. - - - The log4net library should be loaded by an application early during its - startup, therefore this start time should be a good approximation for - the actual start time. - - - Note that AppDomains may be loaded and unloaded within the - same process without the process terminating, however this start time - will be set per AppDomain. - - - - - - Text to output when a null is encountered. - - - - Use this value to indicate a null has been encountered while - outputting a string representation of an item. - - - The default value is (null). This value can be overridden by specifying - a value for the log4net.NullText appSetting in the application's - .config file. - - - - - - Text to output when an unsupported feature is requested. - - - - Use this value when an unsupported feature is requested. - - - The default value is NOT AVAILABLE. This value can be overridden by specifying - a value for the log4net.NotAvailableText appSetting in the application's - .config file. - - - - - - Utility class that represents a format string. - - - - Utility class that represents a format string. - - - Nicko Cadell - - - - Initialise the - - An that supplies culture-specific formatting information. - A containing zero or more format items. - An array containing zero or more objects to format. - - - - Format the string and arguments - - the formatted string - - - - Replaces the format item in a specified with the text equivalent - of the value of a corresponding instance in a specified array. - A specified parameter supplies culture-specific formatting information. - - An that supplies culture-specific formatting information. - A containing zero or more format items. - An array containing zero or more objects to format. - - A copy of format in which the format items have been replaced by the - equivalent of the corresponding instances of in args. - - - - This method does not throw exceptions. If an exception thrown while formatting the result the - exception and arguments are returned in the result string. - - - - - - Process an error during StringFormat - - - - - Dump the contents of an array into a string builder - - - - - Dump an object to a string - - - - - The fully qualified type of the SystemStringFormat class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Implementation of Properties collection for the - - - - Class implements a collection of properties that is specific to each thread. - The class is not synchronized as each thread has its own . - - - Nicko Cadell - - - - The thread local data slot to use to store a PropertiesDictionary. - - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property - - the key for the entry to remove - - - Remove a property - - - - - - Clear all properties - - - - Clear all properties - - - - - - Get the PropertiesDictionary for this thread. - - create the dictionary if it does not exist, otherwise return null if is does not exist - the properties for this thread - - - The collection returned is only to be used on the calling thread. If the - caller needs to share the collection between different threads then the - caller must clone the collection before doing so. - - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Gets or sets the value of a property - - - - - - Implementation of Stack for the - - - - Implementation of Stack for the - - - Nicko Cadell - - - - The stack store. - - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - Clears all the contextual information held in this stack. - - - - Clears all the contextual information held in this stack. - Only call this if you think that this tread is being reused after - a previous call execution which may not have completed correctly. - You do not need to use this method if you always guarantee to call - the method of the - returned from even in exceptional circumstances, - for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) - syntax. - - - - - - Removes the top context from this stack. - - The message in the context that was removed from the top of this stack. - - - Remove the top context from this stack, and return - it to the caller. If this stack is empty then an - empty string (not ) is returned. - - - - - - Pushes a new context message into this stack. - - The new context message. - - An that can be used to clean up the context stack. - - - - Pushes a new context onto this stack. An - is returned that can be used to clean up this stack. This - can be easily combined with the using keyword to scope the - context. - - - Simple example of using the Push method with the using keyword. - - using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) - { - log.Warn("This should have an ThreadContext Stack message"); - } - - - - - - Gets the current context information for this stack. - - The current context information. - - - - Gets the current context information for this stack. - - Gets the current context information - - - Gets the current context information for this stack. - - - - - - Get a portable version of this object - - the portable instance of this object - - - Get a cross thread portable version of this object - - - - - - The number of messages in the stack - - - The current number of messages in the stack - - - - The current number of messages in the stack. That is - the number of times has been called - minus the number of times has been called. - - - - - - Gets and sets the internal stack used by this - - The internal storage stack - - - This property is provided only to support backward compatability - of the . Tytpically the internal stack should not - be modified. - - - - - - Inner class used to represent a single context frame in the stack. - - - - Inner class used to represent a single context frame in the stack. - - - - - - Constructor - - The message for this context. - The parent context in the chain. - - - Initializes a new instance of the class - with the specified message and parent context. - - - - - - Get the message. - - The message. - - - Get the message. - - - - - - Gets the full text of the context down to the root level. - - - The full text of the context down to the root level. - - - - Gets the full text of the context down to the root level. - - - - - - Struct returned from the method. - - - - This struct implements the and is designed to be used - with the pattern to remove the stack frame at the end of the scope. - - - - - - The ThreadContextStack internal stack - - - - - The depth to trim the stack to when this instance is disposed - - - - - Constructor - - The internal stack used by the ThreadContextStack. - The depth to return the stack to when this object is disposed. - - - Initializes a new instance of the class with - the specified stack and return depth. - - - - - - Returns the stack to the correct depth. - - - - Returns the stack to the correct depth. - - - - - - Implementation of Stacks collection for the - - - - Implementation of Stacks collection for the - - - Nicko Cadell - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - The fully qualified type of the ThreadContextStacks class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the named thread context stack - - - The named stack - - - - Gets the named thread context stack - - - - - - Utility class for transforming strings. - - - - Utility class for transforming strings. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Write a string to an - - the writer to write to - the string to write - The string to replace non XML compliant chars with - - - The test is escaped either using XML escape entities - or using CDATA sections. - - - - - - Replace invalid XML characters in text string - - the XML text input string - the string to use in place of invalid characters - A string that does not contain invalid XML characters. - - - Certain Unicode code points are not allowed in the XML InfoSet, for - details see: http://www.w3.org/TR/REC-xml/#charsets. - - - This method replaces any illegal characters in the input string - with the mask string specified. - - - - - - Count the number of times that the substring occurs in the text - - the text to search - the substring to find - the number of times the substring occurs in the text - - - The substring is assumed to be non repeating within itself. - - - - - - Characters illegal in XML 1.0 - - - - - Impersonate a Windows Account - - - - This impersonates a Windows account. - - - How the impersonation is done depends on the value of . - This allows the context to either impersonate a set of user credentials specified - using username, domain name and password or to revert to the process credentials. - - - - - - Default constructor - - - - Default constructor - - - - - - Initialize the SecurityContext based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The security context will try to Logon the specified user account and - capture a primary token for impersonation. - - - The required , - or properties were not specified. - - - - Impersonate the Windows account specified by the and properties. - - caller provided state - - An instance that will revoke the impersonation of this SecurityContext - - - - Depending on the property either - impersonate a user using credentials supplied or revert - to the process credentials. - - - - - - Create a given the userName, domainName and password. - - the user name - the domain name - the password - the for the account specified - - - Uses the Windows API call LogonUser to get a principal token for the account. This - token is used to initialize the WindowsIdentity. - - - - - - Gets or sets the impersonation mode for this security context - - - The impersonation mode for this security context - - - - Impersonate either a user with user credentials or - revert this thread to the credentials of the process. - The value is one of the - enum. - - - The default value is - - - When the mode is set to - the user's credentials are established using the - , and - values. - - - When the mode is set to - no other properties need to be set. If the calling thread is - impersonating then it will be reverted back to the process credentials. - - - - - - Gets or sets the Windows username for this security context - - - The Windows username for this security context - - - - This property must be set if - is set to (the default setting). - - - - - - Gets or sets the Windows domain name for this security context - - - The Windows domain name for this security context - - - - The default value for is the local machine name - taken from the property. - - - This property must be set if - is set to (the default setting). - - - - - - Sets the password for the Windows account specified by the and properties. - - - The password for the Windows account specified by the and properties. - - - - This property must be set if - is set to (the default setting). - - - - - - The impersonation modes for the - - - - See the property for - details. - - - - - - Impersonate a user using the credentials supplied - - - - - Revert this the thread to the credentials of the process - - - - - Adds to - - - - Helper class to expose the - through the interface. - - - - - - Constructor - - the impersonation context being wrapped - - - Constructor - - - - - - Revert the impersonation - - - - Revert the impersonation - - - - - - The log4net Global Context. - - - - The GlobalContext provides a location for global debugging - information to be stored. - - - The global context has a properties map and these properties can - be included in the output of log messages. The - supports selecting and outputing these properties. - - - By default the log4net:HostName property is set to the name of - the current machine. - - - - - GlobalContext.Properties["hostname"] = Environment.MachineName; - - - - Nicko Cadell - - - - Private Constructor. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - The global context properties instance - - - - - The global properties map. - - - The global properties map. - - - - The global properties map. - - - - - - Provides information about the environment the assembly has - been built for. - - - - Version of the assembly - - - Version of the framework targeted - - - Type of framework targeted - - - Does it target a client profile? - - - - Identifies the version and target for this assembly. - - - - - The log4net Logical Thread Context. - - - - The LogicalThreadContext provides a location for specific debugging - information to be stored. - The LogicalThreadContext properties override any or - properties with the same name. - - - The Logical Thread Context has a properties map and a stack. - The properties and stack can - be included in the output of log messages. The - supports selecting and outputting these properties. - - - The Logical Thread Context provides a diagnostic context for the current call context. - This is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The Logical Thread Context is managed on a per basis. - - - The requires a link time - for the - . - If the calling code does not have this permission then this context will be disabled. - It will not store any property values set on it. - - - Example of using the thread context properties to store a username. - - LogicalThreadContext.Properties["user"] = userName; - log.Info("This log message has a LogicalThreadContext Property called 'user'"); - - - Example of how to push a message into the context stack - - using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) - { - log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); - - } // at the end of the using block the message is automatically popped - - - - Nicko Cadell - - - - Private Constructor. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - The thread context properties instance - - - - - The thread context stacks instance - - - - - The thread properties map - - - The thread properties map - - - - The LogicalThreadContext properties override any - or properties with the same name. - - - - - - The thread stacks - - - stack map - - - - The logical thread stacks. - - - - - - This class is used by client applications to request logger instances. - - - - This class has static methods that are used by a client to request - a logger instance. The method is - used to retrieve a logger. - - - See the interface for more details. - - - Simple example of logging messages - - ILog log = LogManager.GetLogger("application-log"); - - log.Info("Application Start"); - log.Debug("This is a debug message"); - - if (log.IsDebugEnabled) - { - log.Debug("This is another debug message"); - } - - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - Returns the named logger if it exists. - - Returns the named logger if it exists. - - - - If the named logger exists (in the default repository) then it - returns a reference to the logger, otherwise it returns null. - - - The fully qualified logger name to look for. - The logger found, or null if no logger could be found. - - - - Returns the named logger if it exists. - - - - If the named logger exists (in the specified repository) then it - returns a reference to the logger, otherwise it returns - null. - - - The repository to lookup in. - The fully qualified logger name to look for. - - The logger found, or null if the logger doesn't exist in the specified - repository. - - - - - Returns the named logger if it exists. - - - - If the named logger exists (in the repository for the specified assembly) then it - returns a reference to the logger, otherwise it returns - null. - - - The assembly to use to lookup the repository. - The fully qualified logger name to look for. - - The logger, or null if the logger doesn't exist in the specified - assembly's repository. - - - - Get the currently defined loggers. - - Returns all the currently defined loggers in the default repository. - - - The root logger is not included in the returned array. - - All the defined loggers. - - - - Returns all the currently defined loggers in the specified repository. - - The repository to lookup in. - - The root logger is not included in the returned array. - - All the defined loggers. - - - - Returns all the currently defined loggers in the specified assembly's repository. - - The assembly to use to lookup the repository. - - The root logger is not included in the returned array. - - All the defined loggers. - - - Get or create a logger. - - Retrieves or creates a named logger. - - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The name of the logger to retrieve. - The logger with the name specified. - - - - Retrieves or creates a named logger. - - - - Retrieve a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The repository to lookup in. - The name of the logger to retrieve. - The logger with the name specified. - - - - Retrieves or creates a named logger. - - - - Retrieve a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The assembly to use to lookup the repository. - The name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Get the logger for the fully qualified name of the type specified. - - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Gets the logger for the fully qualified name of the type specified. - - The repository to lookup in. - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Gets the logger for the fully qualified name of the type specified. - - The assembly to use to lookup the repository. - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shuts down the log4net system. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in all the - default repositories. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - Shutdown a logger repository. - - Shuts down the default repository. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - default repository. - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - The repository to shutdown. - - - - Shuts down the repository specified. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository. The repository is looked up using - the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - The assembly to use to lookup the repository. - - - Reset the configuration of a repository - - Resets all values contained in this repository instance to their defaults. - - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - - - - Resets all values contained in this repository instance to their defaults. - - - - Reset all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - The repository to reset. - - - - Resets all values contained in this repository instance to their defaults. - - - - Reset all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - The assembly to use to lookup the repository to reset. - - - Get the logger repository. - - Returns the default instance. - - - - Gets the for the repository specified - by the callers assembly (). - - - The instance for the default repository. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The repository to lookup in. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The assembly to use to lookup the repository. - - - Get a logger repository. - - Returns the default instance. - - - - Gets the for the repository specified - by the callers assembly (). - - - The instance for the default repository. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The repository to lookup in. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The assembly to use to lookup the repository. - - - Create a domain - - Creates a repository with the specified repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to will return - the same repository instance. - - - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - Create a logger repository. - - Creates a repository with the specified repository type. - - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The created will be associated with the repository - specified such that a call to will return - the same repository instance. - - - - - - Creates a repository with the specified name. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name. - - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - The specified repository already exists. - - - - Creates a repository for the specified assembly and repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - - Creates a repository for the specified assembly and repository type. - - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - - Gets the list of currently defined repositories. - - - - Get an array of all the objects that have been created. - - - An array of all the known objects. - - - - Looks up the wrapper object for the logger specified. - - The logger to get the wrapper for. - The wrapper for the logger specified. - - - - Looks up the wrapper objects for the loggers specified. - - The loggers to get the wrappers for. - The wrapper objects for the loggers specified. - - - - Create the objects used by - this manager. - - The logger to wrap. - The wrapper for the logger specified. - - - - The wrapper map to use to hold the objects. - - - - - Implementation of Mapped Diagnostic Contexts. - - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - The MDC class is similar to the class except that it is - based on a map instead of a stack. It provides mapped - diagnostic contexts. A Mapped Diagnostic Context, or - MDC in short, is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The MDC is managed on a per thread basis. - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - Gets the context value identified by the parameter. - - The key to lookup in the MDC. - The string value held for the key, or a null reference if no corresponding value is found. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - If the parameter does not look up to a - previously defined context then null will be returned. - - - - - - Add an entry to the MDC - - The key to store the value under. - The value to store. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Puts a context value (the parameter) as identified - with the parameter into the current thread's - context map. - - - If a value is already defined for the - specified then the value will be replaced. If the - is specified as null then the key value mapping will be removed. - - - - - - Removes the key value mapping for the key specified. - - The key to remove. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Remove the specified entry from this thread's MDC - - - - - - Clear all entries in the MDC - - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Remove all the entries from this thread's MDC - - - - - - Implementation of Nested Diagnostic Contexts. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - A Nested Diagnostic Context, or NDC in short, is an instrument - to distinguish interleaved log output from different sources. Log - output is typically interleaved when a server handles multiple - clients near-simultaneously. - - - Interleaved log output can still be meaningful if each log entry - from different contexts had a distinctive stamp. This is where NDCs - come into play. - - - Note that NDCs are managed on a per thread basis. The NDC class - is made up of static methods that operate on the context of the - calling thread. - - - How to push a message into the context - - using(NDC.Push("my context message")) - { - ... all log calls will have 'my context message' included ... - - } // at the end of the using block the message is automatically removed - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - Clears all the contextual information held on the current thread. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Clears the stack of NDC data held on the current thread. - - - - - - Creates a clone of the stack of context information. - - A clone of the context info for this thread. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - The results of this method can be passed to the - method to allow child threads to inherit the context of their - parent thread. - - - - - - Inherits the contextual information from another thread. - - The context stack to inherit. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - This thread will use the context information from the stack - supplied. This can be used to initialize child threads with - the same contextual information as their parent threads. These - contexts will NOT be shared. Any further contexts that - are pushed onto the stack will not be visible to the other. - Call to obtain a stack to pass to - this method. - - - - - - Removes the top context from the stack. - - - The message in the context that was removed from the top - of the stack. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Remove the top context from the stack, and return - it to the caller. If the stack is empty then an - empty string (not null) is returned. - - - - - - Pushes a new context message. - - The new context message. - - An that can be used to clean up - the context stack. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Pushes a new context onto the context stack. An - is returned that can be used to clean up the context stack. This - can be easily combined with the using keyword to scope the - context. - - - Simple example of using the Push method with the using keyword. - - using(log4net.NDC.Push("NDC_Message")) - { - log.Warn("This should have an NDC message"); - } - - - - - - Removes the context information for this thread. It is - not required to call this method. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - This method is not implemented. - - - - - - Forces the stack depth to be at most . - - The maximum depth of the stack - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Forces the stack depth to be at most . - This may truncate the head of the stack. This only affects the - stack in the current thread. Also it does not prevent it from - growing, it only sets the maximum depth at the time of the - call. This can be used to return to a known context depth. - - - - - - Gets the current context depth. - - The current context depth. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - The number of context values pushed onto the context stack. - - - Used to record the current depth of the context. This can then - be restored using the method. - - - - - - - The log4net Thread Context. - - - - The ThreadContext provides a location for thread specific debugging - information to be stored. - The ThreadContext properties override any - properties with the same name. - - - The thread context has a properties map and a stack. - The properties and stack can - be included in the output of log messages. The - supports selecting and outputting these properties. - - - The Thread Context provides a diagnostic context for the current thread. - This is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The Thread Context is managed on a per thread basis. - - - Example of using the thread context properties to store a username. - - ThreadContext.Properties["user"] = userName; - log.Info("This log message has a ThreadContext Property called 'user'"); - - - Example of how to push a message into the context stack - - using(ThreadContext.Stacks["NDC"].Push("my context message")) - { - log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); - - } // at the end of the using block the message is automatically popped - - - - Nicko Cadell - - - - Private Constructor. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - The thread context properties instance - - - - - The thread context stacks instance - - - - - The thread properties map - - - The thread properties map - - - - The ThreadContext properties override any - properties with the same name. - - - - - - The thread stacks - - - stack map - - - - The thread local stacks. - - - - - diff --git a/source/packages/log4net.2.0.0/lib/net40-client/log4net.dll b/source/packages/log4net.2.0.0/lib/net40-client/log4net.dll deleted file mode 100644 index cadbcd33f94452908f2e317b6e7168587ab34ef4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 287232 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�FVuzyQkd;o4i8KW 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 WAqE!Oq393}9{GFN_y5@C@c#nO^x1>} diff --git a/source/packages/log4net.2.0.0/lib/net40-client/log4net.xml b/source/packages/log4net.2.0.0/lib/net40-client/log4net.xml deleted file mode 100644 index 71886da..0000000 --- a/source/packages/log4net.2.0.0/lib/net40-client/log4net.xml +++ /dev/null @@ -1,30000 +0,0 @@ - - - - log4net - - - -

    - Appender that logs to a database. - - - - appends logging events to a table within a - database. The appender can be configured to specify the connection - string by setting the property. - The connection type (provider) can be specified by setting the - property. For more information on database connection strings for - your specific database see
    http://www.connectionstrings.com/. - - - Records are written into the database either using a prepared - statement or a stored procedure. The property - is set to (System.Data.CommandType.Text) to specify a prepared statement - or to (System.Data.CommandType.StoredProcedure) to specify a stored - procedure. - - - The prepared statement text or the name of the stored procedure - must be set in the property. - - - The prepared statement or stored procedure can take a number - of parameters. Parameters are added using the - method. This adds a single to the - ordered list of parameters. The - type may be subclassed if required to provide database specific - functionality. The specifies - the parameter name, database type, size, and how the value should - be generated using a . - - - - An example of a SQL Server table that could be logged to: - - CREATE TABLE [dbo].[Log] ( - [ID] [int] IDENTITY (1, 1) NOT NULL , - [Date] [datetime] NOT NULL , - [Thread] [varchar] (255) NOT NULL , - [Level] [varchar] (20) NOT NULL , - [Logger] [varchar] (255) NOT NULL , - [Message] [varchar] (4000) NOT NULL - ) ON [PRIMARY] - - - - An example configuration to log to the above table: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Julian Biddle - Nicko Cadell - Gert Driesen - Lance Nehring - - - - Abstract base class implementation of that - buffers events in a fixed size buffer. - - - - This base class should be used by appenders that need to buffer a - number of events before logging them. For example the - buffers events and then submits the entire contents of the buffer to - the underlying database in one go. - - - Subclasses should override the - method to deliver the buffered events. - - The BufferingAppenderSkeleton maintains a fixed size cyclic - buffer of events. The size of the buffer is set using - the property. - - A is used to inspect - each event as it arrives in the appender. If the - triggers, then the current buffer is sent immediately - (see ). Otherwise the event - is stored in the buffer. For example, an evaluator can be used to - deliver the events immediately when an ERROR event arrives. - - - The buffering appender can be configured in a mode. - By default the appender is NOT lossy. When the buffer is full all - the buffered events are sent with . - If the property is set to true then the - buffer will not be sent when it is full, and new events arriving - in the appender will overwrite the oldest event in the buffer. - In lossy mode the buffer will only be sent when the - triggers. This can be useful behavior when you need to know about - ERROR events but not about events with a lower level, configure an - evaluator that will trigger when an ERROR event arrives, the whole - buffer will be sent which gives a history of events leading up to - the ERROR event. - - - Nicko Cadell - Gert Driesen - - - - Abstract base class implementation of . - - - - This class provides the code for common functionality, such - as support for threshold filtering and support for general filters. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface for your own strategies for printing log statements. - - - - Implementors should consider extending the - class which provides a default implementation of this interface. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Log the logging event in Appender specific way. - - The event to log - - - This method is called to log a message into this appender. - - - - - - Gets or sets the name of this appender. - - The name of the appender. - - The name uniquely identifies the appender. - - - - - Interface for appenders that support bulk logging. - - - - This interface extends the interface to - support bulk logging of objects. Appenders - should only implement this interface if they can bulk log efficiently. - - - Nicko Cadell - - - - Log the array of logging events in Appender specific way. - - The events to log - - - This method is called to log an array of events into this appender. - - - - - - Interface used to delay activate a configured object. - - - - This allows an object to defer activation of its options until all - options have been set. This is required for components which have - related options that remain ambiguous until all are set. - - - If a component implements this interface then the method - must be called by the container after its all the configured properties have been set - and before the component can be used. - - - Nicko Cadell - - - - Activate the options that were previously set with calls to properties. - - - - This allows an object to defer activation of its options until all - options have been set. This is required for components which have - related options that remain ambiguous until all are set. - - - If a component implements this interface then this method must be called - after its properties have been set before the component can be used. - - - - - - Initial buffer size - - - - - Maximum buffer size before it is recycled - - - - - Default constructor - - - Empty default constructor - - - - - Finalizes this appender by calling the implementation's - method. - - - - If this appender has not been closed then the Finalize method - will call . - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Closes the appender and release resources. - - - - Release any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - This method cannot be overridden by subclasses. This method - delegates the closing of the appender to the - method which must be overridden in the subclass. - - - - - - Performs threshold checks and invokes filters before - delegating actual logging to the subclasses specific - method. - - The event to log. - - - This method cannot be overridden by derived classes. A - derived class should override the method - which is called by this method. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - Calls and checks that - it returns true. - - - - - If all of the above steps succeed then the - will be passed to the abstract method. - - - - - - Performs threshold checks and invokes filters before - delegating actual logging to the subclasses specific - method. - - The array of events to log. - - - This method cannot be overridden by derived classes. A - derived class should override the method - which is called by this method. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - Calls and checks that - it returns true. - - - - - If all of the above steps succeed then the - will be passed to the method. - - - - - - Test if the logging event should we output by this appender - - the event to test - true if the event should be output, false if the event should be ignored - - - This method checks the logging event against the threshold level set - on this appender and also against the filters specified on this - appender. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - - - - - Adds a filter to the end of the filter chain. - - the filter to add to this appender - - - The Filters are organized in a linked list. - - - Setting this property causes the new filter to be pushed onto the - back of the filter chain. - - - - - - Clears the filter list for this appender. - - - - Clears the filter list for this appender. - - - - - - Checks if the message level is below this appender's threshold. - - to test against. - - - If there is no threshold set, then the return value is always true. - - - - true if the meets the - requirements of this appender. - - - - - Is called when the appender is closed. Derived classes should override - this method if resources need to be released. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Subclasses of should implement this method - to perform actual logging. - - The event to append. - - - A subclass must implement this method to perform - logging of the . - - This method will be called by - if all the conditions listed for that method are met. - - - To restrict the logging of events in the appender - override the method. - - - - - - Append a bulk array of logging events. - - the array of logging events - - - This base class implementation calls the - method for each element in the bulk array. - - - A sub class that can better process a bulk array of events should - override this method in addition to . - - - - - - Called before as a precondition. - - - - This method is called by - before the call to the abstract method. - - - This method can be overridden in a subclass to extend the checks - made before the event is passed to the method. - - - A subclass should ensure that they delegate this call to - this base class if it is overridden. - - - true if the call to should proceed. - - - - Renders the to a string. - - The event to render. - The event rendered as a string. - - - Helper method to render a to - a string. This appender must have a - set to render the to - a string. - - If there is exception data in the logging event and - the layout does not process the exception, this method - will append the exception text to the rendered string. - - - Where possible use the alternative version of this method - . - That method streams the rendering onto an existing Writer - which can give better performance if the caller already has - a open and ready for writing. - - - - - - Renders the to a string. - - The event to render. - The TextWriter to write the formatted event to - - - Helper method to render a to - a string. This appender must have a - set to render the to - a string. - - If there is exception data in the logging event and - the layout does not process the exception, this method - will append the exception text to the rendered string. - - - Use this method in preference to - where possible. If, however, the caller needs to render the event - to a string then does - provide an efficient mechanism for doing so. - - - - - - The layout of this appender. - - - See for more information. - - - - - The name of this appender. - - - See for more information. - - - - - The level threshold of this appender. - - - - There is no level threshold filtering by default. - - - See for more information. - - - - - - It is assumed and enforced that errorHandler is never null. - - - - It is assumed and enforced that errorHandler is never null. - - - See for more information. - - - - - - The first filter in the filter chain. - - - - Set to null initially. - - - See for more information. - - - - - - The last filter in the filter chain. - - - See for more information. - - - - - Flag indicating if this appender is closed. - - - See for more information. - - - - - The guard prevents an appender from repeatedly calling its own DoAppend method - - - - - StringWriter used to render events - - - - - The fully qualified type of the AppenderSkeleton class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the threshold of this appender. - - - The threshold of the appender. - - - - All log events with lower level than the threshold level are ignored - by the appender. - - - In configuration files this option is specified by setting the - value of the option to a level - string, such as "DEBUG", "INFO" and so on. - - - - - - Gets or sets the for this appender. - - The of the appender - - - The provides a default - implementation for the property. - - - - - - The filter chain. - - The head of the filter chain filter chain. - - - Returns the head Filter. The Filters are organized in a linked list - and so all Filters on this Appender are available through the result. - - - - - - Gets or sets the for this appender. - - The layout of the appender. - - - See for more information. - - - - - - - Gets or sets the name of this appender. - - The name of the appender. - - - The name uniquely identifies the appender. - - - - - - Tests if this appender requires a to be set. - - - - In the rather exceptional case, where the appender - implementation admits a layout but can also work without it, - then the appender should return true. - - - This default implementation always returns false. - - - - true if the appender requires a layout object, otherwise false. - - - - - The default buffer size. - - - The default size of the cyclic buffer used to store events. - This is set to 512 by default. - - - - - Initializes a new instance of the class. - - - - Protected default constructor to allow subclassing. - - - - - - Initializes a new instance of the class. - - the events passed through this appender must be - fixed by the time that they arrive in the derived class' SendBuffer method. - - - Protected constructor to allow subclassing. - - - The should be set if the subclass - expects the events delivered to be fixed even if the - is set to zero, i.e. when no buffering occurs. - - - - - - Flush the currently buffered events - - - - Flushes any events that have been buffered. - - - If the appender is buffering in mode then the contents - of the buffer will NOT be flushed to the appender. - - - - - - Flush the currently buffered events - - set to true to flush the buffer of lossy events - - - Flushes events that have been buffered. If is - false then events will only be flushed if this buffer is non-lossy mode. - - - If the appender is buffering in mode then the contents - of the buffer will only be flushed if is true. - In this case the contents of the buffer will be tested against the - and if triggering will be output. All other buffered - events will be discarded. - - - If is true then the buffer will always - be emptied by calling this method. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Close this appender instance. - - - - Close this appender instance. If this appender is marked - as not then the remaining events in - the buffer must be sent when the appender is closed. - - - - - - This method is called by the method. - - the event to log - - - Stores the in the cyclic buffer. - - - The buffer will be sent (i.e. passed to the - method) if one of the following conditions is met: - - - - The cyclic buffer is full and this appender is - marked as not lossy (see ) - - - An is set and - it is triggered for the - specified. - - - - Before the event is stored in the buffer it is fixed - (see ) to ensure that - any data referenced by the event will be valid when the buffer - is processed. - - - - - - Sends the contents of the buffer. - - The first logging event. - The buffer containing the events that need to be send. - - - The subclass must override . - - - - - - Sends the events. - - The events that need to be send. - - - The subclass must override this method to process the buffered events. - - - - - - The size of the cyclic buffer used to hold the logging events. - - - Set to by default. - - - - - The cyclic buffer used to store the logging events. - - - - - The triggering event evaluator that causes the buffer to be sent immediately. - - - The object that is used to determine if an event causes the entire - buffer to be sent immediately. This field can be null, which - indicates that event triggering is not to be done. The evaluator - can be set using the property. If this appender - has the ( property) set to - true then an must be set. - - - - - Indicates if the appender should overwrite events in the cyclic buffer - when it becomes full, or if the buffer should be flushed when the - buffer is full. - - - If this field is set to true then an must - be set. - - - - - The triggering event evaluator filters discarded events. - - - The object that is used to determine if an event that is discarded should - really be discarded or if it should be sent to the appenders. - This field can be null, which indicates that all discarded events will - be discarded. - - - - - Value indicating which fields in the event should be fixed - - - By default all fields are fixed - - - - - The events delivered to the subclass must be fixed. - - - - - Gets or sets a value that indicates whether the appender is lossy. - - - true if the appender is lossy, otherwise false. The default is false. - - - - This appender uses a buffer to store logging events before - delivering them. A triggering event causes the whole buffer - to be send to the remote sink. If the buffer overruns before - a triggering event then logging events could be lost. Set - to false to prevent logging events - from being lost. - - If is set to true then an - must be specified. - - - - - Gets or sets the size of the cyclic buffer used to hold the - logging events. - - - The size of the cyclic buffer used to hold the logging events. - - - - The option takes a positive integer - representing the maximum number of logging events to collect in - a cyclic buffer. When the is reached, - oldest events are deleted as new events are added to the - buffer. By default the size of the cyclic buffer is 512 events. - - - If the is set to a value less than - or equal to 1 then no buffering will occur. The logging event - will be delivered synchronously (depending on the - and properties). Otherwise the event will - be buffered. - - - - - - Gets or sets the that causes the - buffer to be sent immediately. - - - The that causes the buffer to be - sent immediately. - - - - The evaluator will be called for each event that is appended to this - appender. If the evaluator triggers then the current buffer will - immediately be sent (see ). - - If is set to true then an - must be specified. - - - - - Gets or sets the value of the to use. - - - The value of the to use. - - - - The evaluator will be called for each event that is discarded from this - appender. If the evaluator triggers then the current buffer will immediately - be sent (see ). - - - - - - Gets or sets a value indicating if only part of the logging event data - should be fixed. - - - true if the appender should only fix part of the logging event - data, otherwise false. The default is false. - - - - Setting this property to true will cause only part of the - event data to be fixed and serialized. This will improve performance. - - - See for more information. - - - - - - Gets or sets a the fields that will be fixed in the event - - - The event fields that will be fixed before the event is buffered - - - - The logging event needs to have certain thread specific values - captured before it can be buffered. See - for details. - - - - - - - Initializes a new instance of the class. - - - Public default constructor to initialize a new instance of this class. - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Override the parent method to close the database - - - - Closes the database command and database connection. - - - - - - Inserts the events into the database. - - The events to insert into the database. - - - Insert all the events specified in the - array into the database. - - - - - - Adds a parameter to the command. - - The parameter to add to the command. - - - Adds a parameter to the ordered list of command parameters. - - - - - - Writes the events to the database using the transaction specified. - - The transaction that the events will be executed under. - The array of events to insert into the database. - - - The transaction argument can be null if the appender has been - configured not to use transactions. See - property for more information. - - - - - - Formats the log message into database statement text. - - The event being logged. - - This method can be overridden by subclasses to provide - more control over the format of the database statement. - - - Text that can be passed to a . - - - - - Creates an instance used to connect to the database. - - - This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). - - The of the object. - The connectionString output from the ResolveConnectionString method. - An instance with a valid connection string. - - - - Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey - property. - - - ConnectiongStringName is only supported on .NET 2.0 and higher. - - Additional information describing the connection string. - A connection string used to connect to the database. - - - - Retrieves the class type of the ADO.NET provider. - - - - Gets the Type of the ADO.NET provider to use to connect to the - database. This method resolves the type specified in the - property. - - - Subclasses can override this method to return a different type - if necessary. - - - The of the ADO.NET provider - - - - Prepares the database command and initialize the parameters. - - - - - Connects to the database. - - - - - Cleanup the existing command. - - - If true, a message will be written using LogLog.Warn if an exception is encountered when calling Dispose. - - - - - Cleanup the existing connection. - - - Calls the IDbConnection's method. - - - - - Flag to indicate if we are using a command object - - - - Set to true when the appender is to use a prepared - statement or stored procedure to insert into the database. - - - - - - The list of objects. - - - - The list of objects. - - - - - - The security context to use for privileged calls - - - - - The that will be used - to insert logging events into a database. - - - - - The database command. - - - - - Database connection string. - - - - - The appSettings key from App.Config that contains the connection string. - - - - - The connectionStrings key from App.Config that contains the connection string. - - - - - String type name of the type name. - - - - - The text of the command. - - - - - The command type. - - - - - Indicates whether to use transactions when writing to the database. - - - - - Indicates whether to use transactions when writing to the database. - - - - - The fully qualified type of the AdoNetAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the database connection string that is used to connect to - the database. - - - The database connection string used to connect to the database. - - - - The connections string is specific to the connection type. - See for more information. - - - Connection string for MS Access via ODBC: - "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" - - Another connection string for MS Access via ODBC: - "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" - - Connection string for MS Access via OLE DB: - "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" - - - - - The appSettings key from App.Config that contains the connection string. - - - - - The connectionStrings key from App.Config that contains the connection string. - - - This property requires at least .NET 2.0. - - - - - Gets or sets the type name of the connection - that should be created. - - - The type name of the connection. - - - - The type name of the ADO.NET provider to use. - - - The default is to use the OLE DB provider. - - - Use the OLE DB Provider. This is the default value. - System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Use the MS SQL Server Provider. - System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Use the ODBC Provider. - Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral - This is an optional package that you can download from - http://msdn.microsoft.com/downloads - search for ODBC .NET Data Provider. - - Use the Oracle Provider. - System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - This is an optional package that you can download from - http://msdn.microsoft.com/downloads - search for .NET Managed Provider for Oracle. - - - - - Gets or sets the command text that is used to insert logging events - into the database. - - - The command text used to insert logging events into the database. - - - - Either the text of the prepared statement or the - name of the stored procedure to execute to write into - the database. - - - The property determines if - this text is a prepared statement or a stored procedure. - - - - - - Gets or sets the command type to execute. - - - The command type to execute. - - - - This value may be either (System.Data.CommandType.Text) to specify - that the is a prepared statement to execute, - or (System.Data.CommandType.StoredProcedure) to specify that the - property is the name of a stored procedure - to execute. - - - The default value is (System.Data.CommandType.Text). - - - - - - Should transactions be used to insert logging events in the database. - - - true if transactions should be used to insert logging events in - the database, otherwise false. The default value is true. - - - - Gets or sets a value that indicates whether transactions should be used - to insert logging events in the database. - - - When set a single transaction will be used to insert the buffered events - into the database. Otherwise each event will be inserted without using - an explicit transaction. - - - - - - Gets or sets the used to call the NetSend method. - - - The used to call the NetSend method. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Should this appender try to reconnect to the database on error. - - - true if the appender should try to reconnect to the database after an - error has occurred, otherwise false. The default value is false, - i.e. not to try to reconnect. - - - - The default behaviour is for the appender not to try to reconnect to the - database if an error occurs. Subsequent logging events are discarded. - - - To force the appender to attempt to reconnect to the database set this - property to true. - - - When the appender attempts to connect to the database there may be a - delay of up to the connection timeout specified in the connection string. - This delay will block the calling application's thread. - Until the connection can be reestablished this potential delay may occur multiple times. - - - - - - Gets or sets the underlying . - - - The underlying . - - - creates a to insert - logging events into a database. Classes deriving from - can use this property to get or set this . Use the - underlying returned from if - you require access beyond that which provides. - - - - - Parameter type used by the . - - - - This class provides the basic database parameter properties - as defined by the interface. - - This type can be subclassed to provide database specific - functionality. The two methods that are called externally are - and . - - - - - - Initializes a new instance of the class. - - - Default constructor for the AdoNetAppenderParameter class. - - - - - Prepare the specified database command object. - - The command to prepare. - - - Prepares the database command object by adding - this parameter to its collection of parameters. - - - - - - Renders the logging event and set the parameter value in the command. - - The command containing the parameter. - The event to be rendered. - - - Renders the logging event using this parameters layout - object. Sets the value of the parameter on the command object. - - - - - - The name of this parameter. - - - - - The database type for this parameter. - - - - - Flag to infer type rather than use the DbType - - - - - The precision for this parameter. - - - - - The scale for this parameter. - - - - - The size for this parameter. - - - - - The to use to render the - logging event into an object for this parameter. - - - - - Gets or sets the name of this parameter. - - - The name of this parameter. - - - - The name of this parameter. The parameter name - must match up to a named parameter to the SQL stored procedure - or prepared statement. - - - - - - Gets or sets the database type for this parameter. - - - The database type for this parameter. - - - - The database type for this parameter. This property should - be set to the database type from the - enumeration. See . - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the type from the value. - - - - - - - Gets or sets the precision for this parameter. - - - The precision for this parameter. - - - - The maximum number of digits used to represent the Value. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the precision from the value. - - - - - - - Gets or sets the scale for this parameter. - - - The scale for this parameter. - - - - The number of decimal places to which Value is resolved. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the scale from the value. - - - - - - - Gets or sets the size for this parameter. - - - The size for this parameter. - - - - The maximum size, in bytes, of the data within the column. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the size from the value. - - - - - - - Gets or sets the to use to - render the logging event into an object for this - parameter. - - - The used to render the - logging event into an object for this parameter. - - - - The that renders the value for this - parameter. - - - The can be used to adapt - any into a - for use in the property. - - - - - - Appends logging events to the terminal using ANSI color escape sequences. - - - - AnsiColorTerminalAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. It also allows the color of a specific level of message to be set. - - - This appender expects the terminal to understand the VT100 control set - in order to interpret the color codes. If the terminal or console does not - understand the control codes the behavior is not defined. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes each message to the System.Console.Out or - System.Console.Error that is set at the time the event is appended. - Therefore it is possible to programmatically redirect the output of this appender - (for example NUnit does this to capture program output). While this is the desired - behavior of this appender it may have security implications in your application. - - - When configuring the ANSI colored terminal appender, a mapping should be - specified to map a logging level to a color. For example: - - - - - - - - - - - - - - - The Level is the standard log4net logging level and ForeColor and BackColor can be any - of the following values: - - Blue - Green - Red - White - Yellow - Purple - Cyan - - These color values cannot be combined together to make new colors. - - - The attributes can be any combination of the following: - - Brightforeground is brighter - Dimforeground is dimmer - Underscoremessage is underlined - Blinkforeground is blinking (does not work on all terminals) - Reverseforeground and background are reversed - Hiddenoutput is hidden - Strikethroughmessage has a line through it - - While any of these attributes may be combined together not all combinations - work well together, for example setting both Bright and Dim attributes makes - no sense. - - - Patrick Wagstrom - Nicko Cadell - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Ansi code to reset terminal - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Add a mapping of level to color - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the foreground and background colours - for a level. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to color mappings set on this appender. - - - - - - Flag to write output to the error stream rather than the standard output stream - - - - - Mapping from level object to color value - - - - - Target is the value of the console output stream. - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The enum of possible display attributes - - - - The following flags can be combined together to - form the ANSI color attributes. - - - - - - - text is bright - - - - - text is dim - - - - - text is underlined - - - - - text is blinking - - - Not all terminals support this attribute - - - - - text and background colors are reversed - - - - - text is hidden - - - - - text is displayed with a strikethrough - - - - - The enum of possible foreground or background color values for - use with the color mapping method - - - - The output can be in one for the following ANSI colors. - - - - - - - color is black - - - - - color is red - - - - - color is green - - - - - color is yellow - - - - - color is blue - - - - - color is magenta - - - - - color is cyan - - - - - color is white - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and the color it should be displayed in. - - - - - - An entry in the - - - - This is an abstract base class for types that are stored in the - object. - - - Nicko Cadell - - - - Default protected constructor - - - - Default protected constructor - - - - - - Initialize any options defined on this entry - - - - Should be overridden by any classes that need to initialise based on their options - - - - - - The level that is the key for this mapping - - - The that is the key for this mapping - - - - Get or set the that is the key for this - mapping subclass. - - - - - - Initialize the options for the object - - - - Combine the and together - and append the attributes. - - - - - - The mapped foreground color for the specified level - - - - Required property. - The mapped foreground color for the specified level - - - - - - The mapped background color for the specified level - - - - Required property. - The mapped background color for the specified level - - - - - - The color attributes for the specified level - - - - Required property. - The color attributes for the specified level - - - - - - The combined , and - suitable for setting the ansi terminal color. - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a AppenderCollection instance. - - list to create a readonly wrapper arround - - An AppenderCollection wrapper that is read-only. - - - - - An empty readonly static AppenderCollection - - - - - Initializes a new instance of the AppenderCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the AppenderCollection class - that has the specified initial capacity. - - - The number of elements that the new AppenderCollection is initially capable of storing. - - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified AppenderCollection. - - The AppenderCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - - Copies the entire AppenderCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire AppenderCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the AppenderCollection. - - The to be added to the end of the AppenderCollection. - The index at which the value has been added. - - - - Removes all elements from the AppenderCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the AppenderCollection. - - The to check for. - true if is found in the AppenderCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the AppenderCollection. - - The to locate in the AppenderCollection. - - The zero-based index of the first occurrence of - in the entire AppenderCollection, if found; otherwise, -1. - - - - - Inserts an element into the AppenderCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the AppenderCollection. - - The to remove from the AppenderCollection. - - The specified was not found in the AppenderCollection. - - - - - Removes the element at the specified index of the AppenderCollection. - - The zero-based index of the element to remove. - - is less than zero - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the AppenderCollection. - - An for the entire AppenderCollection. - - - - Adds the elements of another AppenderCollection to the current AppenderCollection. - - The AppenderCollection whose elements should be added to the end of the current AppenderCollection. - The new of the AppenderCollection. - - - - Adds the elements of a array to the current AppenderCollection. - - The array whose elements should be added to the end of the AppenderCollection. - The new of the AppenderCollection. - - - - Adds the elements of a collection to the current AppenderCollection. - - The collection whose elements should be added to the end of the AppenderCollection. - The new of the AppenderCollection. - - - - Sets the capacity to the actual number of elements. - - - - - Return the collection elements as an array - - the array - - - - is less than zero - -or- - is equal to or greater than . - - - - - is less than zero - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the AppenderCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - The zero-based index of the element to get or set. - - is less than zero - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false - - - - Gets or sets the number of elements the AppenderCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - - A value - - - - - Supports simple iteration over a . - - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - - - - Buffers events and then forwards them to attached appenders. - - - - The events are buffered in this appender until conditions are - met to allow the appender to deliver the events to the attached - appenders. See for the - conditions that cause the buffer to be sent. - - The forwarding appender can be used to specify different - thresholds and filters for the same appender at different locations - within the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Interface for attaching appenders to objects. - - - - Interface for attaching, removing and retrieving appenders. - - - Nicko Cadell - Gert Driesen - - - - Attaches an appender. - - The appender to add. - - - Add the specified appender. The implementation may - choose to allow or deny duplicate appenders. - - - - - - Gets an attached appender with the specified name. - - The name of the appender to get. - - The appender with the name specified, or null if no appender with the - specified name is found. - - - - Returns an attached appender with the specified. - If no appender with the specified name is found null will be - returned. - - - - - - Removes all attached appenders. - - - - Removes and closes all attached appenders - - - - - - Removes the specified appender from the list of attached appenders. - - The appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Gets all attached appenders. - - - A collection of attached appenders. - - - - Gets a collection of attached appenders. - If there are no attached appenders the - implementation should return an empty - collection rather than null. - - - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Send the events. - - The events that need to be send. - - - Forwards the events to the attached appenders. - - - - - - Adds an to the list of appenders of this - instance. - - The to add to this appender. - - - If the specified is already in the list of - appenders, then it won't be added again. - - - - - - Looks for the appender with the specified name. - - The name of the appender to lookup. - - The appender with the specified name, or null. - - - - Get the named appender attached to this buffering appender. - - - - - - Removes all previously added appenders from this appender. - - - - This is useful when re-reading configuration information. - - - - - - Removes the specified appender from the list of appenders. - - The appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Implementation of the interface - - - - - Gets the appenders contained in this appender as an - . - - - If no appenders can be found, then an - is returned. - - - A collection of the appenders in this appender. - - - - - Appends logging events to the console. - - - - ColoredConsoleAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. It also allows the color of a specific type of message to be set. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes directly to the application's attached console - not to the System.Console.Out or System.Console.Error TextWriter. - The System.Console.Out and System.Console.Error streams can be - programmatically redirected (for example NUnit does this to capture program output). - This appender will ignore these redirections because it needs to use Win32 - API calls to colorize the output. To respect these redirections the - must be used. - - - When configuring the colored console appender, mapping should be - specified to map a logging level to a color. For example: - - - - - - - - - - - - - - The Level is the standard log4net logging level and ForeColor and BackColor can be any - combination of the following values: - - Blue - Green - Red - White - Yellow - Purple - Cyan - HighIntensity - - - - Rick Hobbs - Nicko Cadell - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - flag set to true to write to the console error stream - - When is set to true, output is written to - the standard error output stream. Otherwise, output is written to the standard - output stream. - - - - - Add a mapping of level to color - done by the config file - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the foreground and background colors - for a level. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to color mappings set on this appender. - - - - - - Flag to write output to the error stream rather than the standard output stream - - - - - Mapping from level object to color value - - - - - The console output stream writer to write to - - - - This writer is not thread safe. - - - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The enum of possible color values for use with the color mapping method - - - - The following flags can be combined together to - form the colors. - - - - - - - color is blue - - - - - color is green - - - - - color is red - - - - - color is white - - - - - color is yellow - - - - - color is purple - - - - - color is cyan - - - - - color is intensified - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and the color it should be displayed in. - - - - - - Initialize the options for the object - - - - Combine the and together. - - - - - - The mapped foreground color for the specified level - - - - Required property. - The mapped foreground color for the specified level. - - - - - - The mapped background color for the specified level - - - - Required property. - The mapped background color for the specified level. - - - - - - The combined and suitable for - setting the console color. - - - - - Appends logging events to the console. - - - - ConsoleAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes each message to the System.Console.Out or - System.Console.Error that is set at the time the event is appended. - Therefore it is possible to programmatically redirect the output of this appender - (for example NUnit does this to capture program output). While this is the desired - behavior of this appender it may have security implications in your application. - - - Nicko Cadell - Gert Driesen - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - flag set to true to write to the console error stream - - When is set to true, output is written to - the standard error output stream. Otherwise, output is written to the standard - output stream. - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appends log events to the system. - - - - The application configuration file can be used to control what listeners - are actually used. See the MSDN documentation for the - class for details on configuring the - debug system. - - - Events are written using the - method. The event's logger name is passed as the value for the category name to the Write method. - - - Nicko Cadell - - - - Initializes a new instance of the . - - - - Default constructor. - - - - - - Initializes a new instance of the - with a specified layout. - - The layout to use with this appender. - - - Obsolete constructor. - - - - - - Writes the logging event to the system. - - The event to log. - - - Writes the logging event to the system. - If is true then the - is called. - - - - - - Immediate flush means that the underlying writer or output stream - will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logs events are not actually written to persistent media if and - when the application crashes. - - - The default value is true. - - - - - Gets or sets a value that indicates whether the appender will - flush at the end of each write. - - - The default behavior is to flush at the end of each - write. If the option is set tofalse, then the underlying - stream can defer writing to physical medium to a later time. - - - Avoiding the flush operation at the end of each append results - in a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Writes events to the system event log. - - - - The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. - See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog - - - The EventID of the event log entry can be - set using the EventID property () - on the . - - - The Category of the event log entry can be - set using the Category property () - on the . - - - There is a limit of 32K characters for an event log message - - - When configuring the EventLogAppender a mapping can be - specified to map a logging level to an event log entry type. For example: - - - <mapping> - <level value="ERROR" /> - <eventLogEntryType value="Error" /> - </mapping> - <mapping> - <level value="DEBUG" /> - <eventLogEntryType value="Information" /> - </mapping> - - - The Level is the standard log4net logging level and eventLogEntryType can be any value - from the enum, i.e.: - - Erroran error event - Warninga warning event - Informationan informational event - - - - Aspi Havewala - Douglas de la Torre - Nicko Cadell - Gert Driesen - Thomas Voss - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initializes a new instance of the class - with the specified . - - The to use with this appender. - - - Obsolete constructor. - - - - - - Add a mapping of level to - done by the config file - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the event log entry type for a level. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Create an event log source - - - Uses different API calls under NET_2_0 - - - - - This method is called by the - method. - - the event to log - - Writes the event to the system event log using the - . - - If the event has an EventID property (see ) - set then this integer will be used as the event log event id. - - - There is a limit of 32K characters for an event log message - - - - - - Get the equivalent for a - - the Level to convert to an EventLogEntryType - The equivalent for a - - Because there are fewer applicable - values to use in logging levels than there are in the - this is a one way mapping. There is - a loss of information during the conversion. - - - - - The log name is the section in the event logs where the messages - are stored. - - - - - Name of the application to use when logging. This appears in the - application column of the event log named by . - - - - - The name of the machine which holds the event log. This is - currently only allowed to be '.' i.e. the current machine. - - - - - Mapping from level object to EventLogEntryType - - - - - The security context to use for privileged calls - - - - - The event ID to use unless one is explicitly specified via the LoggingEvent's properties. - - - - - The event category to use unless one is explicitly specified via the LoggingEvent's properties. - - - - - The fully qualified type of the EventLogAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - The name of the log where messages will be stored. - - - The string name of the log where messages will be stored. - - - This is the name of the log as it appears in the Event Viewer - tree. The default value is to log into the Application - log, this is where most applications write their events. However - if you need a separate log for your application (or applications) - then you should set the appropriately. - This should not be used to distinguish your event log messages - from those of other applications, the - property should be used to distinguish events. This property should be - used to group together events into a single log. - - - - - - Property used to set the Application name. This appears in the - event logs when logging. - - - The string used to distinguish events from different sources. - - - Sets the event log source property. - - - - - This property is used to return the name of the computer to use - when accessing the event logs. Currently, this is the current - computer, denoted by a dot "." - - - The string name of the machine holding the event log that - will be logged into. - - - This property cannot be changed. It is currently set to '.' - i.e. the local machine. This may be changed in future. - - - - - Gets or sets the used to write to the EventLog. - - - The used to write to the EventLog. - - - - The system security context used to write to the EventLog. - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. - - - - The EventID of the event log entry will normally be - set using the EventID property () - on the . - This property provides the fallback value which defaults to 0. - - - - - - Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. - - - - The Category of the event log entry will normally be - set using the Category property () - on the . - This property provides the fallback value which defaults to 0. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and its event log entry type. - - - - - - The for this entry - - - - Required property. - The for this entry - - - - - - Appends logging events to a file. - - - - Logging events are sent to the file specified by - the property. - - - The file can be opened in either append or overwrite mode - by specifying the property. - If the file path is relative it is taken as relative from - the application base directory. The file encoding can be - specified by setting the property. - - - The layout's and - values will be written each time the file is opened and closed - respectively. If the property is - then the file may contain multiple copies of the header and footer. - - - This appender will first try to open the file for writing when - is called. This will typically be during configuration. - If the file cannot be opened for writing the appender will attempt - to open the file again each time a message is logged to the appender. - If the file cannot be opened for writing when a message is logged then - the message will be discarded by this appender. - - - The supports pluggable file locking models via - the property. - The default behavior, implemented by - is to obtain an exclusive write lock on the file until this appender is closed. - The alternative models only hold a - write lock while the appender is writing a logging event () - or synchronize by using a named system wide Mutex (). - - - All locking strategies have issues and you should seriously consider using a different strategy that - avoids having multiple processes logging to the same file. - - - Nicko Cadell - Gert Driesen - Rodrigo B. de Oliveira - Douglas de la Torre - Niall Daley - - - - Sends logging events to a . - - - - An Appender that writes to a . - - - This appender may be used stand alone if initialized with an appropriate - writer, however it is typically used as a base class for an appender that - can open a to write to. - - - Nicko Cadell - Gert Driesen - Douglas de la Torre - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initializes a new instance of the class and - sets the output destination to a new initialized - with the specified . - - The layout to use with this appender. - The to output to. - - - Obsolete constructor. - - - - - - Initializes a new instance of the class and sets - the output destination to the specified . - - The layout to use with this appender - The to output to - - The must have been previously opened. - - - - Obsolete constructor. - - - - - - This method determines if there is a sense in attempting to append. - - - - This method checks if an output target has been set and if a - layout has been set. - - - false if any of the preconditions fail. - - - - This method is called by the - method. - - The event to log. - - - Writes a log statement to the output stream if the output stream exists - and is writable. - - - The format of the output will depend on the appender's layout. - - - - - - This method is called by the - method. - - The array of events to log. - - - This method writes all the bulk logged events to the output writer - before flushing the stream. - - - - - - Close this appender instance. The underlying stream or writer is also closed. - - - Closed appenders cannot be reused. - - - - - Writes the footer and closes the underlying . - - - - Writes the footer and closes the underlying . - - - - - - Closes the underlying . - - - - Closes the underlying . - - - - - - Clears internal references to the underlying - and other variables. - - - - Subclasses can override this method for an alternate closing behavior. - - - - - - Writes a footer as produced by the embedded layout's property. - - - - Writes a footer as produced by the embedded layout's property. - - - - - - Writes a header produced by the embedded layout's property. - - - - Writes a header produced by the embedded layout's property. - - - - - - Called to allow a subclass to lazily initialize the writer - - - - This method is called when an event is logged and the or - have not been set. This allows a subclass to - attempt to initialize the writer multiple times. - - - - - - This is the where logging events - will be written to. - - - - - Immediate flush means that the underlying - or output stream will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logging events are not actually persisted if and when the application - crashes. - - - The default value is true. - - - - - - The fully qualified type of the TextWriterAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or set whether the appender will flush at the end - of each append operation. - - - - The default behavior is to flush at the end of each - append operation. - - - If this option is set to false, then the underlying - stream can defer persisting the logging event to a later - time. - - - - Avoiding the flush operation at the end of each append results in - a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - Sets the where the log output will go. - - - - The specified must be open and writable. - - - The will be closed when the appender - instance is closed. - - - Note: Logging to an unopened will fail. - - - - - - Gets or set the and the underlying - , if any, for this appender. - - - The for this appender. - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Gets or sets the where logging events - will be written to. - - - The where logging events are written. - - - - This is the where logging events - will be written to. - - - - - - Default constructor - - - - Default constructor - - - - - - Construct a new appender using the layout, file and append mode. - - the layout to use with this appender - the full path to the file to write to - flag to indicate if the file should be appended to - - - Obsolete constructor. - - - - - - Construct a new appender using the layout and file specified. - The file will be appended to. - - the layout to use with this appender - the full path to the file to write to - - - Obsolete constructor. - - - - - - Activate the options on the file appender. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - This will cause the file to be opened. - - - - - - Closes any previously opened file and calls the parent's . - - - - Resets the filename and the file stream. - - - - - - Called to initialize the file writer - - - - Will be called for each logged message until the file is - successfully opened. - - - - - - This method is called by the - method. - - The event to log. - - - Writes a log statement to the output stream if the output stream exists - and is writable. - - - The format of the output will depend on the appender's layout. - - - - - - This method is called by the - method. - - The array of events to log. - - - Acquires the output file locks once before writing all the events to - the stream. - - - - - - Writes a footer as produced by the embedded layout's property. - - - - Writes a footer as produced by the embedded layout's property. - - - - - - Writes a header produced by the embedded layout's property. - - - - Writes a header produced by the embedded layout's property. - - - - - - Closes the underlying . - - - - Closes the underlying . - - - - - - Closes the previously opened file. - - - - Writes the to the file and then - closes the file. - - - - - - Sets and opens the file where the log output will go. The specified file must be writable. - - The path to the log file. Must be a fully qualified path. - If true will append to fileName. Otherwise will truncate fileName - - - Calls but guarantees not to throw an exception. - Errors are passed to the . - - - - - - Sets and opens the file where the log output will go. The specified file must be writable. - - The path to the log file. Must be a fully qualified path. - If true will append to fileName. Otherwise will truncate fileName - - - If there was already an opened file, then the previous file - is closed first. - - - This method will ensure that the directory structure - for the specified exists. - - - - - - Sets the quiet writer used for file output - - the file stream that has been opened for writing - - - This implementation of creates a - over the and passes it to the - method. - - - This method can be overridden by sub classes that want to wrap the - in some way, for example to encrypt the output - data using a System.Security.Cryptography.CryptoStream. - - - - - - Sets the quiet writer being used. - - the writer over the file stream that has been opened for writing - - - This method can be overridden by sub classes that want to - wrap the in some way. - - - - - - Convert a path into a fully qualified path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - - - - Flag to indicate if we should append to the file - or overwrite the file. The default is to append. - - - - - The name of the log file. - - - - - The encoding to use for the file stream. - - - - - The security context to use for privileged calls - - - - - The stream to log to. Has added locking semantics - - - - - The locking model to use - - - - - The fully qualified type of the FileAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the path to the file that logging will be written to. - - - The path to the file that logging will be written to. - - - - If the path is relative it is taken as relative from - the application base directory. - - - - - - Gets or sets a flag that indicates whether the file should be - appended to or overwritten. - - - Indicates whether the file should be appended to or overwritten. - - - - If the value is set to false then the file will be overwritten, if - it is set to true then the file will be appended to. - - The default value is true. - - - - - Gets or sets used to write to the file. - - - The used to write to the file. - - - - The default encoding set is - which is the encoding for the system's current ANSI code page. - - - - - - Gets or sets the used to write to the file. - - - The used to write to the file. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Gets or sets the used to handle locking of the file. - - - The used to lock the file. - - - - Gets or sets the used to handle locking of the file. - - - There are three built in locking models, , and . - The first locks the file from the start of logging to the end, the - second locks only for the minimal amount of time when logging each message - and the last synchronizes processes using a named system wide Mutex. - - - The default locking model is the . - - - - - - Write only that uses the - to manage access to an underlying resource. - - - - - True asynchronous writes are not supported, the implementation forces a synchronous write. - - - - - Exception base type for log4net. - - - - This type extends . It - does not add any new functionality but does differentiate the - type of exception being thrown. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - A message to include with the exception. - - - Initializes a new instance of the class with - the specified message. - - - - - - Constructor - - A message to include with the exception. - A nested exception to include. - - - Initializes a new instance of the class - with the specified message and inner exception. - - - - - - Serialization constructor - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Locking model base class - - - - Base class for the locking models available to the derived loggers. - - - - - - Open the output file - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Acquire the lock on the file in preparation for writing to it. - Return a stream pointing to the file. - must be called to release the lock on the output file. - - - - - - Release the lock on the file - - - - Release the lock on the file. No further writes will be made to the - stream until is called again. - - - - - - Helper method that creates a FileStream under CurrentAppender's SecurityContext. - - - - Typically called during OpenFile or AcquireLock. - - - If the directory portion of the does not exist, it is created - via Directory.CreateDirecctory. - - - - - - - - - - Helper method to close under CurrentAppender's SecurityContext. - - - Does not set to null. - - - - - - Gets or sets the for this LockingModel - - - The for this LockingModel - - - - The file appender this locking model is attached to and working on - behalf of. - - - The file appender is used to locate the security context and the error handler to use. - - - The value of this property will be set before is - called. - - - - - - Hold an exclusive lock on the output file - - - - Open the file once for writing and hold it open until is called. - Maintains an exclusive lock on the file during this time. - - - - - - Open the file specified and prepare for logging. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Does nothing. The lock is already taken - - - - - - Release the lock on the file - - - - Does nothing. The lock will be released when the file is closed. - - - - - - Acquires the file lock for each write - - - - Opens the file once for each / cycle, - thus holding the lock for the minimal amount of time. This method of locking - is considerably slower than but allows - other processes to move/delete the log file whilst logging continues. - - - - - - Prepares to open the file when the first message is logged. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Acquire the lock on the file in preparation for writing to it. - Return a stream pointing to the file. - must be called to release the lock on the output file. - - - - - - Release the lock on the file - - - - Release the lock on the file. No further writes will be made to the - stream until is called again. - - - - - - Provides cross-process file locking. - - Ron Grabowski - Steve Wranovsky - - - - Open the file specified and prepare for logging. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Does nothing. The lock is already taken - - - - - - - - - - - This appender forwards logging events to attached appenders. - - - - The forwarding appender can be used to specify different thresholds - and filters for the same appender at different locations within the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Forward the logging event to the attached appenders - - The event to log. - - - Delivers the logging event to all the attached appenders. - - - - - - Forward the logging events to the attached appenders - - The array of events to log. - - - Delivers the logging events to all the attached appenders. - - - - - - Adds an to the list of appenders of this - instance. - - The to add to this appender. - - - If the specified is already in the list of - appenders, then it won't be added again. - - - - - - Looks for the appender with the specified name. - - The name of the appender to lookup. - - The appender with the specified name, or null. - - - - Get the named appender attached to this appender. - - - - - - Removes all previously added appenders from this appender. - - - - This is useful when re-reading configuration information. - - - - - - Removes the specified appender from the list of appenders. - - The appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Implementation of the interface - - - - - Gets the appenders contained in this appender as an - . - - - If no appenders can be found, then an - is returned. - - - A collection of the appenders in this appender. - - - - - Logs events to a local syslog service. - - - - This appender uses the POSIX libc library functions openlog, syslog, and closelog. - If these functions are not available on the local system then this appender will not work! - - - The functions openlog, syslog, and closelog are specified in SUSv2 and - POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. - - - This appender talks to a local syslog service. If you need to log to a remote syslog - daemon and you cannot configure your local syslog service to do this you may be - able to use the to log via UDP. - - - Syslog messages must have a facility and and a severity. The severity - is derived from the Level of the logging event. - The facility must be chosen from the set of defined syslog - values. The facilities list is predefined - and cannot be extended. - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - Rob Lyon - Nicko Cadell - - - - Initializes a new instance of the class. - - - This instance of the class is set up to write - to a local syslog service. - - - - - Add a mapping of level to severity - - The mapping to add - - - Adds a to this appender. - - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to a remote syslog daemon. - - - The format of the output will depend on the appender's layout. - - - - - - Close the syslog when the appender is closed - - - - Close the syslog when the appender is closed - - - - - - Translates a log4net level to a syslog severity. - - A log4net level. - A syslog severity. - - - Translates a log4net level to a syslog severity. - - - - - - Generate a syslog priority. - - The syslog facility. - The syslog severity. - A syslog priority. - - - - The facility. The default facility is . - - - - - The message identity - - - - - Marshaled handle to the identity string. We have to hold on to the - string as the openlog and syslog APIs just hold the - pointer to the ident and dereference it for each log message. - - - - - Mapping from level object to syslog severity - - - - - Open connection to system logger. - - - - - Generate a log message. - - - - The libc syslog method takes a format string and a variable argument list similar - to the classic printf function. As this type of vararg list is not supported - by C# we need to specify the arguments explicitly. Here we have specified the - format string with a single message argument. The caller must set the format - string to "%s". - - - - - - Close descriptor used to write to system logger. - - - - - Message identity - - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - - - - Syslog facility - - - Set to one of the values. The list of - facilities is predefined and cannot be extended. The default value - is . - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - syslog severities - - - - The log4net Level maps to a syslog severity using the - method and the - class. The severity is set on . - - - - - - system is unusable - - - - - action must be taken immediately - - - - - critical conditions - - - - - error conditions - - - - - warning conditions - - - - - normal but significant condition - - - - - informational - - - - - debug-level messages - - - - - syslog facilities - - - - The syslog facility defines which subsystem the logging comes from. - This is set on the property. - - - - - - kernel messages - - - - - random user-level messages - - - - - mail system - - - - - system daemons - - - - - security/authorization messages - - - - - messages generated internally by syslogd - - - - - line printer subsystem - - - - - network news subsystem - - - - - UUCP subsystem - - - - - clock (cron/at) daemon - - - - - security/authorization messages (private) - - - - - ftp daemon - - - - - NTP subsystem - - - - - log audit - - - - - log alert - - - - - clock daemon - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - - - The mapped syslog severity for the specified level - - - - Required property. - The mapped syslog severity for the specified level - - - - - - Stores logging events in an array. - - - - The memory appender stores all the logging events - that are appended in an in-memory array. - - - Use the method to get - the current list of events that have been appended. - - - Use the method to clear the - current list of events. - - - Julian Biddle - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Gets the events that have been logged. - - The events that have been logged - - - Gets the events that have been logged. - - - - - - This method is called by the method. - - the event to log - - Stores the in the events list. - - - - - Clear the list of events - - - Clear the list of events - - - - - The list of events that have been appended. - - - - - Value indicating which fields in the event should be fixed - - - By default all fields are fixed - - - - - Gets or sets a value indicating whether only part of the logging event - data should be fixed. - - - true if the appender should only fix part of the logging event - data, otherwise false. The default is false. - - - - Setting this property to true will cause only part of the event - data to be fixed and stored in the appender, hereby improving performance. - - - See for more information. - - - - - - Gets or sets the fields that will be fixed in the event - - - - The logging event needs to have certain thread specific values - captured before it can be buffered. See - for details. - - - - - - Logs entries by sending network messages using the - native function. - - - - You can send messages only to names that are active - on the network. If you send the message to a user name, - that user must be logged on and running the Messenger - service to receive the message. - - - The receiver will get a top most window displaying the - messages one at a time, therefore this appender should - not be used to deliver a high volume of messages. - - - The following table lists some possible uses for this appender : - - - - - Action - Property Value(s) - - - Send a message to a user account on the local machine - - - = <name of the local machine> - - - = <user name> - - - - - Send a message to a user account on a remote machine - - - = <name of the remote machine> - - - = <user name> - - - - - Send a message to a domain user account - - - = <name of a domain controller | uninitialized> - - - = <user name> - - - - - Send a message to all the names in a workgroup or domain - - - = <workgroup name | domain name>* - - - - - Send a message from the local machine to a remote machine - - - = <name of the local machine | uninitialized> - - - = <name of the remote machine> - - - - - - - Note : security restrictions apply for sending - network messages, see - for more information. - - - - - An example configuration section to log information - using this appender from the local machine, named - LOCAL_PC, to machine OPERATOR_PC : - - - - - - - - - - Nicko Cadell - Gert Driesen - - - - The DNS or NetBIOS name of the server on which the function is to execute. - - - - - The sender of the network message. - - - - - The message alias to which the message should be sent. - - - - - The security context to use for privileged calls - - - - - Initializes the appender. - - - The default constructor initializes all fields to their default values. - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The appender will be ignored if no was specified. - - - The required property was not specified. - - - - This method is called by the method. - - The event to log. - - - Sends the event using a network message. - - - - - - Sends a buffer of information to a registered message alias. - - The DNS or NetBIOS name of the server on which the function is to execute. - The message alias to which the message buffer should be sent - The originator of the message. - The message text. - The length, in bytes, of the message text. - - - The following restrictions apply for sending network messages: - - - - - Platform - Requirements - - - Windows NT - - - No special group membership is required to send a network message. - - - Admin, Accounts, Print, or Server Operator group membership is required to - successfully send a network message on a remote server. - - - - - Windows 2000 or later - - - If you send a message on a domain controller that is running Active Directory, - access is allowed or denied based on the access control list (ACL) for the securable - object. The default ACL permits only Domain Admins and Account Operators to send a network message. - - - On a member server or workstation, only Administrators and Server Operators can send a network message. - - - - - - - For more information see Security Requirements for the Network Management Functions. - - - - - If the function succeeds, the return value is zero. - - - - - - Gets or sets the sender of the message. - - - The sender of the message. - - - If this property is not specified, the message is sent from the local computer. - - - - - Gets or sets the message alias to which the message should be sent. - - - The recipient of the message. - - - This property should always be specified in order to send a message. - - - - - Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. - - - DNS or NetBIOS name of the remote server on which the function is to execute. - - - - For Windows NT 4.0 and earlier, the string should begin with \\. - - - If this property is not specified, the local computer is used. - - - - - - Gets or sets the used to call the NetSend method. - - - The used to call the NetSend method. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appends log events to the OutputDebugString system. - - - - OutputDebugStringAppender appends log events to the - OutputDebugString system. - - - The string is passed to the native OutputDebugString - function. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Write the logging event to the output debug string API - - the event to log - - - Write the logging event to the output debug string API - - - - - - Stub for OutputDebugString native method - - the string to output - - - Stub for OutputDebugString native method - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Logs events to a remote syslog daemon. - - - - The BSD syslog protocol is used to remotely log to - a syslog daemon. The syslogd listens for for messages - on UDP port 514. - - - The syslog UDP protocol is not authenticated. Most syslog daemons - do not accept remote log messages because of the security implications. - You may be able to use the LocalSyslogAppender to talk to a local - syslog service. - - - There is an RFC 3164 that claims to document the BSD Syslog Protocol. - This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. - This appender generates what the RFC calls an "Original Device Message", - i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation - this format of message will be accepted by all current syslog daemon - implementations. The daemon will attach the current time and the source - hostname or IP address to any messages received. - - - Syslog messages must have a facility and and a severity. The severity - is derived from the Level of the logging event. - The facility must be chosen from the set of defined syslog - values. The facilities list is predefined - and cannot be extended. - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - Rob Lyon - Nicko Cadell - - - - Sends logging events as connectionless UDP datagrams to a remote host or a - multicast group using an . - - - - UDP guarantees neither that messages arrive, nor that they arrive in the correct order. - - - To view the logging results, a custom application can be developed that listens for logging - events. - - - When decoding events send via this appender remember to use the same encoding - to decode the events as was used to send the events. See the - property to specify the encoding to use. - - - - This example shows how to log receive logging events that are sent - on IP address 244.0.0.1 and port 8080 to the console. The event is - encoded in the packet as a unicode string and it is decoded as such. - - IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); - UdpClient udpClient; - byte[] buffer; - string loggingEvent; - - try - { - udpClient = new UdpClient(8080); - - while(true) - { - buffer = udpClient.Receive(ref remoteEndPoint); - loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); - Console.WriteLine(loggingEvent); - } - } - catch(Exception e) - { - Console.WriteLine(e.ToString()); - } - - - Dim remoteEndPoint as IPEndPoint - Dim udpClient as UdpClient - Dim buffer as Byte() - Dim loggingEvent as String - - Try - remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) - udpClient = new UdpClient(8080) - - While True - buffer = udpClient.Receive(ByRef remoteEndPoint) - loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) - Console.WriteLine(loggingEvent) - Wend - Catch e As Exception - Console.WriteLine(e.ToString()) - End Try - - - An example configuration section to log information using this appender to the - IP 224.0.0.1 on port 8080: - - - - - - - - - - Gert Driesen - Nicko Cadell - - - - Initializes a new instance of the class. - - - The default constructor initializes all fields to their default values. - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The appender will be ignored if no was specified or - an invalid remote or local TCP port number was specified. - - - The required property was not specified. - The TCP port number assigned to or is less than or greater than . - - - - This method is called by the method. - - The event to log. - - - Sends the event using an UDP datagram. - - - Exceptions are passed to the . - - - - - - Closes the UDP connection and releases all resources associated with - this instance. - - - - Disables the underlying and releases all managed - and unmanaged resources associated with the . - - - - - - Initializes the underlying connection. - - - - The underlying is initialized and binds to the - port number from which you intend to communicate. - - - Exceptions are passed to the . - - - - - - The IP address of the remote host or multicast group to which - the logging event will be sent. - - - - - The TCP port number of the remote host or multicast group to - which the logging event will be sent. - - - - - The cached remote endpoint to which the logging events will be sent. - - - - - The TCP port number from which the will communicate. - - - - - The instance that will be used for sending the - logging events. - - - - - The encoding to use for the packet. - - - - - Gets or sets the IP address of the remote host or multicast group to which - the underlying should sent the logging event. - - - The IP address of the remote host or multicast group to which the logging event - will be sent. - - - - Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to - 239.255.255.255). Multicast packets can pass across different networks through routers, so - it is possible to use multicasts in an Internet scenario as long as your network provider - supports multicasting. - - - Hosts that want to receive particular multicast messages must register their interest by joining - the multicast group. Multicast messages are not sent to networks where no host has joined - the multicast group. Class D IP addresses are used for multicast groups, to differentiate - them from normal host addresses, allowing nodes to easily detect if a message is of interest. - - - Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: - - - - - IP Address - Description - - - 224.0.0.1 - - - Sends a message to all system on the subnet. - - - - - 224.0.0.2 - - - Sends a message to all routers on the subnet. - - - - - 224.0.0.12 - - - The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. - - - - - - - A complete list of actually reserved multicast addresses and their owners in the ranges - defined by RFC 3171 can be found at the IANA web site. - - - The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative - addresses. These addresses can be reused with other local groups. Routers are typically - configured with filters to prevent multicast traffic in this range from flowing outside - of the local network. - - - - - - Gets or sets the TCP port number of the remote host or multicast group to which - the underlying should sent the logging event. - - - An integer value in the range to - indicating the TCP port number of the remote host or multicast group to which the logging event - will be sent. - - - The underlying will send messages to this TCP port number - on the remote host or multicast group. - - The value specified is less than or greater than . - - - - Gets or sets the TCP port number from which the underlying will communicate. - - - An integer value in the range to - indicating the TCP port number from which the underlying will communicate. - - - - The underlying will bind to this port for sending messages. - - - Setting the value to 0 (the default) will cause the udp client not to bind to - a local port. - - - The value specified is less than or greater than . - - - - Gets or sets used to write the packets. - - - The used to write the packets. - - - - The used to write the packets. - - - - - - Gets or sets the underlying . - - - The underlying . - - - creates a to send logging events - over a network. Classes deriving from can use this - property to get or set this . Use the underlying - returned from if you require access beyond that which - provides. - - - - - Gets or sets the cached remote endpoint to which the logging events should be sent. - - - The cached remote endpoint to which the logging events will be sent. - - - The method will initialize the remote endpoint - with the values of the and - properties. - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Syslog port 514 - - - - - Initializes a new instance of the class. - - - This instance of the class is set up to write - to a remote syslog daemon. - - - - - Add a mapping of level to severity - - The mapping to add - - - Add a mapping to this appender. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to a remote syslog daemon. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to syslog severity mappings set on this appender. - - - - - - Translates a log4net level to a syslog severity. - - A log4net level. - A syslog severity. - - - Translates a log4net level to a syslog severity. - - - - - - Generate a syslog priority. - - The syslog facility. - The syslog severity. - A syslog priority. - - - Generate a syslog priority. - - - - - - The facility. The default facility is . - - - - - The message identity - - - - - Mapping from level object to syslog severity - - - - - Message identity - - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - - - - Syslog facility - - - Set to one of the values. The list of - facilities is predefined and cannot be extended. The default value - is . - - - - - syslog severities - - - - The syslog severities. - - - - - - system is unusable - - - - - action must be taken immediately - - - - - critical conditions - - - - - error conditions - - - - - warning conditions - - - - - normal but significant condition - - - - - informational - - - - - debug-level messages - - - - - syslog facilities - - - - The syslog facilities - - - - - - kernel messages - - - - - random user-level messages - - - - - mail system - - - - - system daemons - - - - - security/authorization messages - - - - - messages generated internally by syslogd - - - - - line printer subsystem - - - - - network news subsystem - - - - - UUCP subsystem - - - - - clock (cron/at) daemon - - - - - security/authorization messages (private) - - - - - ftp daemon - - - - - NTP subsystem - - - - - log audit - - - - - log alert - - - - - clock daemon - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - - - The mapped syslog severity for the specified level - - - - Required property. - The mapped syslog severity for the specified level - - - - - - Delivers logging events to a remote logging sink. - - - - This Appender is designed to deliver events to a remote sink. - That is any object that implements the - interface. It delivers the events using .NET remoting. The - object to deliver events to is specified by setting the - appenders property. - - The RemotingAppender buffers events before sending them. This allows it to - make more efficient use of the remoting infrastructure. - - Once the buffer is full the events are still not sent immediately. - They are scheduled to be sent using a pool thread. The effect is that - the send occurs asynchronously. This is very important for a - number of non obvious reasons. The remoting infrastructure will - flow thread local variables (stored in the ), - if they are marked as , across the - remoting boundary. If the server is not contactable then - the remoting infrastructure will clear the - objects from the . To prevent a logging failure from - having side effects on the calling application the remoting call must be made - from a separate thread to the one used by the application. A - thread is used for this. If no thread is available then - the events will block in the thread pool manager until a thread is available. - - Because the events are sent asynchronously using pool threads it is possible to close - this appender before all the queued events have been sent. - When closing the appender attempts to wait until all the queued events have been sent, but - this will timeout after 30 seconds regardless. - - If this appender is being closed because the - event has fired it may not be possible to send all the queued events. During process - exit the runtime limits the time that a - event handler is allowed to run for. If the runtime terminates the threads before - the queued events have been sent then they will be lost. To ensure that all events - are sent the appender must be closed before the application exits. See - for details on how to shutdown - log4net programmatically. - - - Nicko Cadell - Gert Driesen - Daniel Cazzulino - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Send the contents of the buffer to the remote sink. - - - The events are not sent immediately. They are scheduled to be sent - using a pool thread. The effect is that the send occurs asynchronously. - This is very important for a number of non obvious reasons. The remoting - infrastructure will flow thread local variables (stored in the ), - if they are marked as , across the - remoting boundary. If the server is not contactable then - the remoting infrastructure will clear the - objects from the . To prevent a logging failure from - having side effects on the calling application the remoting call must be made - from a separate thread to the one used by the application. A - thread is used for this. If no thread is available then - the events will block in the thread pool manager until a thread is available. - - The events to send. - - - - Override base class close. - - - - This method waits while there are queued work items. The events are - sent asynchronously using work items. These items - will be sent once a thread pool thread is available to send them, therefore - it is possible to close the appender before all the queued events have been - sent. - - This method attempts to wait until all the queued events have been sent, but this - method will timeout after 30 seconds regardless. - - If the appender is being closed because the - event has fired it may not be possible to send all the queued events. During process - exit the runtime limits the time that a - event handler is allowed to run for. - - - - - A work item is being queued into the thread pool - - - - - A work item from the thread pool has completed - - - - - Send the contents of the buffer to the remote sink. - - - This method is designed to be used with the . - This method expects to be passed an array of - objects in the state param. - - the logging events to send - - - - The URL of the remote sink. - - - - - The local proxy (.NET remoting) for the remote logging sink. - - - - - The number of queued callbacks currently waiting or executing - - - - - Event used to signal when there are no queued work items - - - This event is set when there are no queued work items. In this - state it is safe to close the appender. - - - - - Gets or sets the URL of the well-known object that will accept - the logging events. - - - The well-known URL of the remote sink. - - - - The URL of the remoting sink that will accept logging events. - The sink must implement the - interface. - - - - - - Interface used to deliver objects to a remote sink. - - - This interface must be implemented by a remoting sink - if the is to be used - to deliver logging events to the sink. - - - - - Delivers logging events to the remote sink - - Array of events to log. - - - Delivers logging events to the remote sink - - - - - - Appender that rolls log files based on size or date or both. - - - - RollingFileAppender can roll log files based on size or date or both - depending on the setting of the property. - When set to the log file will be rolled - once its size exceeds the . - When set to the log file will be rolled - once the date boundary specified in the property - is crossed. - When set to the log file will be - rolled once the date boundary specified in the property - is crossed, but within a date boundary the file will also be rolled - once its size exceeds the . - When set to the log file will be rolled when - the appender is configured. This effectively means that the log file can be - rolled once per program execution. - - - A of few additional optional features have been added: - - Attach date pattern for current log file - Backup number increments for newer files - Infinite number of backups by file size - - - - - - For large or infinite numbers of backup files a - greater than zero is highly recommended, otherwise all the backup files need - to be renamed each time a new backup is created. - - - When Date/Time based rolling is used setting - to will reduce the number of file renamings to few or none. - - - - - - Changing or without clearing - the log file directory of backup files will cause unexpected and unwanted side effects. - - - - - If Date/Time based rolling is enabled this appender will attempt to roll existing files - in the directory without a Date/Time tag based on the last write date of the base log file. - The appender only rolls the log file when a message is logged. If Date/Time based rolling - is enabled then the appender will not roll the log file at the Date/Time boundary but - at the point when the next message is logged after the boundary has been crossed. - - - - The extends the and - has the same behavior when opening the log file. - The appender will first try to open the file for writing when - is called. This will typically be during configuration. - If the file cannot be opened for writing the appender will attempt - to open the file again each time a message is logged to the appender. - If the file cannot be opened for writing when a message is logged then - the message will be discarded by this appender. - - - When rolling a backup file necessitates deleting an older backup file the - file to be deleted is moved to a temporary name before being deleted. - - - - - A maximum number of backup files when rolling on date/time boundaries is not supported. - - - - Nicko Cadell - Gert Driesen - Aspi Havewala - Douglas de la Torre - Edward Smit - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - The fully qualified type of the RollingFileAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Sets the quiet writer being used. - - - This method can be overridden by sub classes. - - the writer to set - - - - Write out a logging event. - - the event to write to file. - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Write out an array of logging events. - - the events to write to file. - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Performs any required rolling before outputting the next event - - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Creates and opens the file for logging. If - is false then the fully qualified name is determined and used. - - the name of the file to open - true to append to existing file - - This method will ensure that the directory structure - for the specified exists. - - - - - Get the current output file name - - the base file name - the output file name - - The output file name is based on the base fileName specified. - If is set then the output - file name is the same as the base file passed in. Otherwise - the output file depends on the date pattern, on the count - direction or both. - - - - - Determines curSizeRollBackups (only within the current roll point) - - - - - Generates a wildcard pattern that can be used to find all files - that are similar to the base file name. - - - - - - - Builds a list of filenames for all files matching the base filename plus a file - pattern. - - - - - - - Initiates a roll over if needed for crossing a date boundary since the last run. - - - - - Initializes based on existing conditions at time of . - - - - Initializes based on existing conditions at time of . - The following is done - - determine curSizeRollBackups (only within the current roll point) - initiates a roll over if needed for crossing a date boundary since the last run. - - - - - - - Does the work of bumping the 'current' file counter higher - to the highest count when an incremental file name is seen. - The highest count is either the first file (when count direction - is greater than 0) or the last file (when count direction less than 0). - In either case, we want to know the highest count that is present. - - - - - - - Attempts to extract a number from the end of the file name that indicates - the number of the times the file has been rolled over. - - - Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. - - - - - - - Takes a list of files and a base file name, and looks for - 'incremented' versions of the base file. Bumps the max - count up to the highest count seen. - - - - - - - Calculates the RollPoint for the datePattern supplied. - - the date pattern to calculate the check period for - The RollPoint that is most accurate for the date pattern supplied - - Essentially the date pattern is examined to determine what the - most suitable roll point is. The roll point chosen is the roll point - with the smallest period that can be detected using the date pattern - supplied. i.e. if the date pattern only outputs the year, month, day - and hour then the smallest roll point that can be detected would be - and hourly roll point as minutes could not be detected. - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Sets initial conditions including date/time roll over information, first check, - scheduledFilename, and calls to initialize - the current number of backups. - - - - - - - - - .1, .2, .3, etc. - - - - - Rollover the file(s) to date/time tagged file(s). - - set to true if the file to be rolled is currently open - - - Rollover the file(s) to date/time tagged file(s). - Resets curSizeRollBackups. - If fileIsOpen is set then the new file is opened (through SafeOpenFile). - - - - - - Renames file to file . - - Name of existing file to roll. - New name for file. - - - Renames file to file . It - also checks for existence of target file and deletes if it does. - - - - - - Test if a file exists at a specified path - - the path to the file - true if the file exists - - - Test if a file exists at a specified path - - - - - - Deletes the specified file if it exists. - - The file to delete. - - - Delete a file if is exists. - The file is first moved to a new filename then deleted. - This allows the file to be removed even when it cannot - be deleted, but it still can be moved. - - - - - - Implements file roll base on file size. - - - - If the maximum number of size based backups is reached - (curSizeRollBackups == maxSizeRollBackups) then the oldest - file is deleted -- its index determined by the sign of countDirection. - If countDirection < 0, then files - {File.1, ..., File.curSizeRollBackups -1} - are renamed to {File.2, ..., - File.curSizeRollBackups}. Moreover, File is - renamed File.1 and closed. - - - A new file is created to receive further log output. - - - If maxSizeRollBackups is equal to zero, then the - File is truncated with no backup files created. - - - If maxSizeRollBackups < 0, then File is - renamed if needed and no files are deleted. - - - - - - Implements file roll. - - the base name to rename - - - If the maximum number of size based backups is reached - (curSizeRollBackups == maxSizeRollBackups) then the oldest - file is deleted -- its index determined by the sign of countDirection. - If countDirection < 0, then files - {File.1, ..., File.curSizeRollBackups -1} - are renamed to {File.2, ..., - File.curSizeRollBackups}. - - - If maxSizeRollBackups is equal to zero, then the - File is truncated with no backup files created. - - - If maxSizeRollBackups < 0, then File is - renamed if needed and no files are deleted. - - - This is called by to rename the files. - - - - - - Get the start time of the next window for the current rollpoint - - the current date - the type of roll point we are working with - the start time for the next roll point an interval after the currentDateTime date - - - Returns the date of the next roll point after the currentDateTime date passed to the method. - - - The basic strategy is to subtract the time parts that are less significant - than the rollpoint from the current time. This should roll the time back to - the start of the time window for the current rollpoint. Then we add 1 window - worth of time and get the start time of the next window for the rollpoint. - - - - - - This object supplies the current date/time. Allows test code to plug in - a method to control this class when testing date/time based rolling. The default - implementation uses the underlying value of DateTime.Now. - - - - - The date pattern. By default, the pattern is set to ".yyyy-MM-dd" - meaning daily rollover. - - - - - The actual formatted filename that is currently being written to - or will be the file transferred to on roll over - (based on staticLogFileName). - - - - - The timestamp when we shall next recompute the filename. - - - - - Holds date of last roll over - - - - - The type of rolling done - - - - - The default maximum file size is 10MB - - - - - There is zero backup files by default - - - - - How many sized based backups have been made so far - - - - - The rolling file count direction. - - - - - The rolling mode used in this appender. - - - - - Cache flag set if we are rolling by date. - - - - - Cache flag set if we are rolling by size. - - - - - Value indicating whether to always log to the same file. - - - - - Value indicating whether to preserve the file name extension when rolling. - - - - - FileName provided in configuration. Used for rolling properly - - - - - The 1st of January 1970 in UTC - - - - - Gets or sets the strategy for determining the current date and time. The default - implementation is to use LocalDateTime which internally calls through to DateTime.Now. - DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying - . - - - An implementation of the interface which returns the current date and time. - - - - Gets or sets the used to return the current date and time. - - - There are two built strategies for determining the current date and time, - - and . - - - The default strategy is . - - - - - - Gets or sets the date pattern to be used for generating file names - when rolling over on date. - - - The date pattern to be used for generating file names when rolling - over on date. - - - - Takes a string in the same format as expected by - . - - - This property determines the rollover schedule when rolling over - on date. - - - - - - Gets or sets the maximum number of backup files that are kept before - the oldest is erased. - - - The maximum number of backup files that are kept before the oldest is - erased. - - - - If set to zero, then there will be no backup files and the log file - will be truncated when it reaches . - - - If a negative number is supplied then no deletions will be made. Note - that this could result in very slow performance as a large number of - files are rolled over unless is used. - - - The maximum applies to each time based group of files and - not the total. - - - - - - Gets or sets the maximum size that the output file is allowed to reach - before being rolled over to backup files. - - - The maximum size in bytes that the output file is allowed to reach before being - rolled over to backup files. - - - - This property is equivalent to except - that it is required for differentiating the setter taking a - argument from the setter taking a - argument. - - - The default maximum file size is 10MB (10*1024*1024). - - - - - - Gets or sets the maximum size that the output file is allowed to reach - before being rolled over to backup files. - - - The maximum size that the output file is allowed to reach before being - rolled over to backup files. - - - - This property allows you to specify the maximum size with the - suffixes "KB", "MB" or "GB" so that the size is interpreted being - expressed respectively in kilobytes, megabytes or gigabytes. - - - For example, the value "10KB" will be interpreted as 10240 bytes. - - - The default maximum file size is 10MB. - - - If you have the option to set the maximum file size programmatically - consider using the property instead as this - allows you to set the size in bytes as a . - - - - - - Gets or sets the rolling file count direction. - - - The rolling file count direction. - - - - Indicates if the current file is the lowest numbered file or the - highest numbered file. - - - By default newer files have lower numbers ( < 0), - i.e. log.1 is most recent, log.5 is the 5th backup, etc... - - - >= 0 does the opposite i.e. - log.1 is the first backup made, log.5 is the 5th backup made, etc. - For infinite backups use >= 0 to reduce - rollover costs. - - The default file count direction is -1. - - - - - Gets or sets the rolling style. - - The rolling style. - - - The default rolling style is . - - - When set to this appender's - property is set to false, otherwise - the appender would append to a single file rather than rolling - the file each time it is opened. - - - - - - Gets or sets a value indicating whether to preserve the file name extension when rolling. - - - true if the file name extension should be preserved. - - - - By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. - However, under Windows the new file name will loose any program associations as the - extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or - file.curSizeRollBackup.log to maintain any program associations. - - - - - - Gets or sets a value indicating whether to always log to - the same file. - - - true if always should be logged to the same file, otherwise false. - - - - By default file.log is always the current file. Optionally - file.log.yyyy-mm-dd for current formatted datePattern can by the currently - logging file (or file.log.curSizeRollBackup or even - file.log.yyyy-mm-dd.curSizeRollBackup). - - - This will make time based rollovers with a large number of backups - much faster as the appender it won't have to rename all the backups! - - - - - - Style of rolling to use - - - - Style of rolling to use - - - - - - Roll files once per program execution - - - - Roll files once per program execution. - Well really once each time this appender is - configured. - - - Setting this option also sets AppendToFile to - false on the RollingFileAppender, otherwise - this appender would just be a normal file appender. - - - - - - Roll files based only on the size of the file - - - - - Roll files based only on the date - - - - - Roll files based on both the size and date of the file - - - - - The code assumes that the following 'time' constants are in a increasing sequence. - - - - The code assumes that the following 'time' constants are in a increasing sequence. - - - - - - Roll the log not based on the date - - - - - Roll the log for each minute - - - - - Roll the log for each hour - - - - - Roll the log twice a day (midday and midnight) - - - - - Roll the log each day (midnight) - - - - - Roll the log each week - - - - - Roll the log each month - - - - - This interface is used to supply Date/Time information to the . - - - This interface is used to supply Date/Time information to the . - Used primarily to allow test classes to plug themselves in so they can - supply test date/times. - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Default implementation of that returns the current time. - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Implementation of that returns the current time as the coordinated universal time (UTC). - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Send an e-mail when a specific logging event occurs, typically on errors - or fatal errors. - - - - The number of logging events delivered in this e-mail depend on - the value of option. The - keeps only the last - logging events in its - cyclic buffer. This keeps memory requirements at a reasonable level while - still delivering useful application context. - - - Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. - For these features to be enabled you need to ensure that you are using a version of - the log4net assembly that is built against the MS .NET 1.1 framework and that you are - running the your application on the MS .NET 1.1 runtime. On all other platforms only sending - unauthenticated messages to a server listening on port 25 (the default) is supported. - - - Authentication is supported by setting the property to - either or . - If using authentication then the - and properties must also be set. - - - To set the SMTP server port use the property. The default port is 25. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Default constructor - - - - - - Sends the contents of the cyclic buffer as an e-mail message. - - The logging events to send. - - - - Send the email message - - the body text to include in the mail - - - - Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - - Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses - that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - - Gets or sets a semicolon-delimited list of recipient e-mail addresses - that will be blind carbon copied. - - - A semicolon-delimited list of e-mail addresses. - - - - A semicolon-delimited list of recipient e-mail addresses. - - - - - - Gets or sets the e-mail address of the sender. - - - The e-mail address of the sender. - - - - The e-mail address of the sender. - - - - - - Gets or sets the subject line of the e-mail message. - - - The subject line of the e-mail message. - - - - The subject line of the e-mail message. - - - - - - Gets or sets the name of the SMTP relay mail server to use to send - the e-mail messages. - - - The name of the e-mail relay server. If SmtpServer is not set, the - name of the local SMTP server is used. - - - - The name of the e-mail relay server. If SmtpServer is not set, the - name of the local SMTP server is used. - - - - - - Obsolete - - - Use the BufferingAppenderSkeleton Fix methods instead - - - - Obsolete property. - - - - - - The mode to use to authentication with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - Valid Authentication mode values are: , - , and . - The default value is . When using - you must specify the - and to use to authenticate. - When using the Windows credentials for the current - thread, if impersonating, or the process will be used to authenticate. - - - - - - The username to use to authenticate with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - A and must be specified when - is set to , - otherwise the username will be ignored. - - - - - - The password to use to authenticate with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - A and must be specified when - is set to , - otherwise the password will be ignored. - - - - - - The port on which the SMTP server is listening - - - Server Port is only available on the MS .NET 1.1 runtime. - - The port on which the SMTP server is listening. The default - port is 25. The Port can only be changed when running on - the MS .NET 1.1 runtime. - - - - - - Gets or sets the priority of the e-mail message - - - One of the values. - - - - Sets the priority of the e-mails generated by this - appender. The default priority is . - - - If you are using this appender to report errors then - you may want to set the priority to . - - - - - - Enable or disable use of SSL when sending e-mail message - - - This is available on MS .NET 2.0 runtime and higher - - - - - Gets or sets the reply-to e-mail address. - - - This is available on MS .NET 2.0 runtime and higher - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Values for the property. - - - - SMTP authentication modes. - - - - - - No authentication - - - - - Basic authentication. - - - Requires a username and password to be supplied - - - - - Integrated authentication - - - Uses the Windows credentials from the current thread or process to authenticate. - - - - - Send an email when a specific logging event occurs, typically on errors - or fatal errors. Rather than sending via smtp it writes a file into the - directory specified by . This allows services such - as the IIS SMTP agent to manage sending the messages. - - - - The configuration for this appender is identical to that of the SMTPAppender, - except that instead of specifying the SMTPAppender.SMTPHost you specify - . - - - The number of logging events delivered in this e-mail depend on - the value of option. The - keeps only the last - logging events in its - cyclic buffer. This keeps memory requirements at a reasonable level while - still delivering useful application context. - - - Niall Daley - Nicko Cadell - - - - Default constructor - - - - Default constructor - - - - - - Sends the contents of the cyclic buffer as an e-mail message. - - The logging events to send. - - - Sends the contents of the cyclic buffer as an e-mail message. - - - - - - Activate the options on this appender. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Convert a path into a fully qualified path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - - - - The security context to use for privileged calls - - - - - Gets or sets a semicolon-delimited list of recipient e-mail addresses. - - - A semicolon-delimited list of e-mail addresses. - - - - A semicolon-delimited list of e-mail addresses. - - - - - - Gets or sets the e-mail address of the sender. - - - The e-mail address of the sender. - - - - The e-mail address of the sender. - - - - - - Gets or sets the subject line of the e-mail message. - - - The subject line of the e-mail message. - - - - The subject line of the e-mail message. - - - - - - Gets or sets the path to write the messages to. - - - - Gets or sets the path to write the messages to. This should be the same - as that used by the agent sending the messages. - - - - - - Gets or sets the used to write to the pickup directory. - - - The used to write to the pickup directory. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appender that allows clients to connect via Telnet to receive log messages - - - - The TelnetAppender accepts socket connections and streams logging messages - back to the client. - The output is provided in a telnet-friendly way so that a log can be monitored - over a TCP/IP socket. - This allows simple remote monitoring of application logging. - - - The default is 23 (the telnet port). - - - Keith Long - Nicko Cadell - - - - Default constructor - - - - Default constructor - - - - - - The fully qualified type of the TelnetAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Overrides the parent method to close the socket handler - - - - Closes all the outstanding connections. - - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Create the socket handler and wait for connections - - - - - - Writes the logging event to each connected client. - - The event to log. - - - Writes the logging event to each connected client. - - - - - - Gets or sets the TCP port number on which this will listen for connections. - - - An integer value in the range to - indicating the TCP port number on which this will listen for connections. - - - - The default value is 23 (the telnet port). - - - The value specified is less than - or greater than . - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Helper class to manage connected clients - - - - The SocketHandler class is used to accept connections from - clients. It is threaded so that clients can connect/disconnect - asynchronously. - - - - - - Opens a new server port on - - the local port to listen on for connections - - - Creates a socket handler on the specified local server port. - - - - - - Sends a string message to each of the connected clients - - the text to send - - - Sends a string message to each of the connected clients - - - - - - Add a client to the internal clients list - - client to add - - - - Remove a client from the internal clients list - - client to remove - - - - Callback used to accept a connection on the server socket - - The result of the asynchronous operation - - - On connection adds to the list of connections - if there are two many open connections you will be disconnected - - - - - - Close all network connections - - - - Make sure we close all network connections - - - - - - Test if this handler has active connections - - - true if this handler has active connections - - - - This property will be true while this handler has - active connections, that is at least one connection that - the handler will attempt to send a message to. - - - - - - Class that represents a client connected to this handler - - - - Class that represents a client connected to this handler - - - - - - Create this for the specified - - the client's socket - - - Opens a stream writer on the socket. - - - - - - Write a string to the client - - string to send - - - Write a string to the client - - - - - - Cleanup the clients connection - - - - Close the socket connection. - - - - - - Appends log events to the system. - - - - The application configuration file can be used to control what listeners - are actually used. See the MSDN documentation for the - class for details on configuring the - trace system. - - - Events are written using the System.Diagnostics.Trace.Write(string,string) - method. The event's logger name is the default value for the category parameter - of the Write method. - - - Compact Framework
    - The Compact Framework does not support the - class for any operation except Assert. When using the Compact Framework this - appender will write to the system rather than - the Trace system. This appender will therefore behave like the . -
    -
    - Douglas de la Torre - Nicko Cadell - Gert Driesen - Ron Grabowski -
    - - - Initializes a new instance of the . - - - - Default constructor. - - - - - - Initializes a new instance of the - with a specified layout. - - The layout to use with this appender. - - - Obsolete constructor. - - - - - - Writes the logging event to the system. - - The event to log. - - - Writes the logging event to the system. - - - - - - Immediate flush means that the underlying writer or output stream - will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logs events are not actually written to persistent media if and - when the application crashes. - - - The default value is true. - - - - - Defaults to %logger - - - - - Gets or sets a value that indicates whether the appender will - flush at the end of each write. - - - The default behavior is to flush at the end of each - write. If the option is set tofalse, then the underlying - stream can defer writing to physical medium to a later time. - - - Avoiding the flush operation at the end of each append results - in a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - - The category parameter sent to the Trace method. - - - - Defaults to %logger which will use the logger name of the current - as the category parameter. - - - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Assembly level attribute that specifies a domain to alias to this assembly's repository. - - - - AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. - - - An assembly's logger repository is defined by its , - however this can be overridden by an assembly loaded before the target assembly. - - - An assembly can alias another assembly's domain to its repository by - specifying this attribute with the name of the target domain. - - - This attribute can only be specified on the assembly and may be used - as many times as necessary to alias all the required domains. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute that specifies a repository to alias to this assembly's repository. - - - - An assembly's logger repository is defined by its , - however this can be overridden by an assembly loaded before the target assembly. - - - An assembly can alias another assembly's repository to its repository by - specifying this attribute with the name of the target repository. - - - This attribute can only be specified on the assembly and may be used - as many times as necessary to alias all the required repositories. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class with - the specified repository to alias to this assembly's repository. - - The repository to alias to this assemby's repository. - - - Initializes a new instance of the class with - the specified repository to alias to this assembly's repository. - - - - - - Gets or sets the repository to alias to this assemby's repository. - - - The repository to alias to this assemby's repository. - - - - The name of the repository to alias to this assemby's repository. - - - - - - Initializes a new instance of the class with - the specified domain to alias to this assembly's repository. - - The domain to alias to this assemby's repository. - - - Obsolete. Use instead of . - - - - - - Use this class to quickly configure a . - - - - Allows very simple programmatic configuration of log4net. - - - Only one appender can be configured using this configurator. - The appender is set at the root of the hierarchy and all logging - events will be delivered to that appender. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - The fully qualified type of the BasicConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Initializes the log4net system with a default configuration. - - - - Initializes the log4net logging system using a - that will write to Console.Out. The log messages are - formatted using the layout object - with the - layout style. - - - - - - Initializes the log4net system using the specified appender. - - The appender to use to log all logging events. - - - Initializes the log4net system using the specified appender. - - - - - - Initializes the log4net system using the specified appenders. - - The appenders to use to log all logging events. - - - Initializes the log4net system using the specified appenders. - - - - - - Initializes the with a default configuration. - - The repository to configure. - - - Initializes the specified repository using a - that will write to Console.Out. The log messages are - formatted using the layout object - with the - layout style. - - - - - - Initializes the using the specified appender. - - The repository to configure. - The appender to use to log all logging events. - - - Initializes the using the specified appender. - - - - - - Initializes the using the specified appenders. - - The repository to configure. - The appenders to use to log all logging events. - - - Initializes the using the specified appender. - - - - - - Base class for all log4net configuration attributes. - - - This is an abstract class that must be extended by - specific configurators. This attribute allows the - configurator to be parameterized by an assembly level - attribute. - - Nicko Cadell - Gert Driesen - - - - Constructor used by subclasses. - - the ordering priority for this configurator - - - The is used to order the configurator - attributes before they are invoked. Higher priority configurators are executed - before lower priority ones. - - - - - - Configures the for the specified assembly. - - The assembly that this attribute was defined on. - The repository to configure. - - - Abstract method implemented by a subclass. When this method is called - the subclass should configure the . - - - - - - Compare this instance to another ConfiguratorAttribute - - the object to compare to - see - - - Compares the priorities of the two instances. - Sorts by priority in descending order. Objects with the same priority are - randomly ordered. - - - - - - Assembly level attribute that specifies the logging domain for the assembly. - - - - DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - Assemblies are mapped to logging domains. Each domain has its own - logging repository. This attribute specified on the assembly controls - the configuration of the domain. The property specifies the name - of the domain that this assembly is a part of. The - specifies the type of the repository objects to create for the domain. If - this attribute is not specified and a is not specified - then the assembly will be part of the default shared logging domain. - - - This attribute can only be specified on the assembly and may only be used - once per assembly. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute that specifies the logging repository for the assembly. - - - - Assemblies are mapped to logging repository. This attribute specified - on the assembly controls - the configuration of the repository. The property specifies the name - of the repository that this assembly is a part of. The - specifies the type of the object - to create for the assembly. If this attribute is not specified or a - is not specified then the assembly will be part of the default shared logging repository. - - - This attribute can only be specified on the assembly and may only be used - once per assembly. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initialize a new instance of the class - with the name of the repository. - - The name of the repository. - - - Initialize the attribute with the name for the assembly's repository. - - - - - - Gets or sets the name of the logging repository. - - - The string name to use as the name of the repository associated with this - assembly. - - - - This value does not have to be unique. Several assemblies can share the - same repository. They will share the logging configuration of the repository. - - - - - - Gets or sets the type of repository to create for this assembly. - - - The type of repository to create for this assembly. - - - - The type of the repository to create for the assembly. - The type must implement the - interface. - - - This will be the type of repository created when - the repository is created. If multiple assemblies reference the - same repository then the repository is only created once using the - of the first assembly to call into the - repository. - - - - - - Initializes a new instance of the class. - - - - Obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - - - - Initialize a new instance of the class - with the name of the domain. - - The name of the domain. - - - Obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - - - - Use this class to initialize the log4net environment using an Xml tree. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - Configures a using an Xml tree. - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - - - Automatically configures the log4net system based on the - application's configuration settings. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - 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 - log4net that contains the configuration data. - - - - - Automatically configures the using settings - stored in the application's configuration file. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - 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 - log4net that contains the configuration data. - - The repository to configure. - - - - Configures log4net using a log4net element - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - Loads the log4net configuration from the XML element - supplied as . - - The element to parse. - - - - Configures the using the specified XML - element. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - Loads the log4net configuration from the XML element - supplied as . - - The repository to configure. - The element to parse. - - - - Configures log4net using the specified configuration file. - - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures log4net using the specified configuration file. - - A stream to load the XML configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The stream to load the XML configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures log4net using the file specified, monitors the file for changes - and reloads the configuration if a change is detected. - - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the using the file specified, - monitors the file for changes and reloads the configuration if a change - is detected. - - The repository to configure. - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Assembly level attribute to configure the . - - - - AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute to configure the . - - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - If neither of the or - properties are set the configuration is loaded from the application's .config file. - If set the property takes priority over the - property. The property - specifies a path to a file to load the config from. The path is relative to the - application's base directory; . - The property is used as a postfix to the assembly file name. - The config file must be located in the application's base directory; . - For example in a console application setting the to - config has the same effect as not specifying the or - properties. - - - The property can be set to cause the - to watch the configuration file for changes. - - - - Log4net will only look for assembly level configuration attributes once. - When using the log4net assembly level attributes to control the configuration - of log4net you must ensure that the first call to any of the - methods is made from the assembly with the configuration - attributes. - - - If you cannot guarantee the order in which log4net calls will be made from - different assemblies you must use programmatic configuration instead, i.e. - call the method directly. - - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Default constructor - - - - - - Configures the for the specified assembly. - - The assembly that this attribute was defined on. - The repository to configure. - - - Configure the repository using the . - The specified must extend the - class otherwise the will not be able to - configure it. - - - The does not extend . - - - - Attempt to load configuration from the local file system - - The assembly that this attribute was defined on. - The repository to configure. - - - - Configure the specified repository using a - - The repository to configure. - the FileInfo pointing to the config file - - - - Attempt to load configuration from a URI - - The assembly that this attribute was defined on. - The repository to configure. - - - - The fully qualified type of the XmlConfiguratorAttribute class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the filename of the configuration file. - - - The filename of the configuration file. - - - - If specified, this is the name of the configuration file to use with - the . This file path is relative to the - application base directory (). - - - The takes priority over the . - - - - - - Gets or sets the extension of the configuration file. - - - The extension of the configuration file. - - - - If specified this is the extension for the configuration file. - The path to the config file is built by using the application - base directory (), - the assembly file name and the config file extension. - - - If the is set to MyExt then - possible config file names would be: MyConsoleApp.exe.MyExt or - MyClassLibrary.dll.MyExt. - - - The takes priority over the . - - - - - - Gets or sets a value indicating whether to watch the configuration file. - - - true if the configuration should be watched, false otherwise. - - - - If this flag is specified and set to true then the framework - will watch the configuration file and will reload the config each time - the file is modified. - - - The config file can only be watched if it is loaded from local disk. - In a No-Touch (Smart Client) deployment where the application is downloaded - from a web server the config file may not reside on the local disk - and therefore it may not be able to watch it. - - - Watching configuration is not supported on the SSCLI. - - - - - - Class to register for the log4net section of the configuration file - - - The log4net section of the configuration file needs to have a section - handler registered. This is the section handler used. It simply returns - the XML element that is the root of the section. - - - Example of registering the log4net section handler : - - - -
    - - - log4net configuration XML goes here - - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Parses the configuration section. - - The configuration settings in a corresponding parent configuration section. - The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. - The for the log4net section. - The for the log4net section. - - - Returns the containing the configuration data, - - - - - - Assembly level attribute that specifies a plugin to attach to - the repository. - - - - Specifies the type of a plugin to create and attach to the - assembly's repository. The plugin type must implement the - interface. - - - Nicko Cadell - Gert Driesen - - - - Interface used to create plugins. - - - - Interface used to create a plugin. - - - Nicko Cadell - Gert Driesen - - - - Creates the plugin object. - - the new plugin instance - - - Create and return a new plugin instance. - - - - - - Initializes a new instance of the class - with the specified type. - - The type name of plugin to create. - - - Create the attribute with the plugin type specified. - - - Where possible use the constructor that takes a . - - - - - - Initializes a new instance of the class - with the specified type. - - The type of plugin to create. - - - Create the attribute with the plugin type specified. - - - - - - Creates the plugin object defined by this attribute. - - - - Creates the instance of the object as - specified by this attribute. - - - The plugin object. - - - - Returns a representation of the properties of this object. - - - - Overrides base class method to - return a representation of the properties of this object. - - - A representation of the properties of this object - - - - Gets or sets the type for the plugin. - - - The type for the plugin. - - - - The type for the plugin. - - - - - - Gets or sets the type name for the plugin. - - - The type name for the plugin. - - - - The type name for the plugin. - - - Where possible use the property instead. - - - - - - Assembly level attribute to configure the . - - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - Nicko Cadell - - - - Construct provider attribute with type specified - - the type of the provider to use - - - The provider specified must subclass the - class. - - - - - - Configures the SecurityContextProvider - - The assembly that this attribute was defined on. - The repository to configure. - - - Creates a provider instance from the specified. - Sets this as the default security context provider . - - - - - - The fully qualified type of the SecurityContextProviderAttribute class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the type of the provider to use. - - - the type of the provider to use. - - - - The provider specified must subclass the - class. - - - - - - Use this class to initialize the log4net environment using an Xml tree. - - - - Configures a using an Xml tree. - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - - - Automatically configures the log4net system based on the - application's configuration settings. - - - - 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 - log4net that contains the configuration data. - - - To use this method to configure log4net you must specify - the section - handler for the log4net configuration section. See the - for an example. - - - - - - - Automatically configures the using settings - stored in the application's configuration file. - - - - 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 - log4net that contains the configuration data. - - - To use this method to configure log4net you must specify - the section - handler for the log4net configuration section. See the - for an example. - - - The repository to configure. - - - - Configures log4net using a log4net element - - - - Loads the log4net configuration from the XML element - supplied as . - - - The element to parse. - - - - Configures the using the specified XML - element. - - - Loads the log4net configuration from the XML element - supplied as . - - The repository to configure. - The element to parse. - - - - Configures log4net using the specified configuration file. - - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The first element matching <configuration> will be read as the - configuration. If this file is also a .NET .config file then you must specify - a configuration section for the log4net element otherwise .NET will - complain. Set the type for the section handler to , for example: - - -
    - - - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures log4net using the specified configuration URI. - - A URI to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The must support the URI scheme specified. - - - - - - Configures log4net using the specified configuration data stream. - - A stream to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The first element matching <configuration> will be read as the - configuration. If this file is also a .NET .config file then you must specify - a configuration section for the log4net element otherwise .NET will - complain. Set the type for the section handler to , for example: - - -
    - - - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures the using the specified configuration - URI. - - The repository to configure. - A URI to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The must support the URI scheme specified. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The stream to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures log4net using the file specified, monitors the file for changes - and reloads the configuration if a change is detected. - - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the using the file specified, - monitors the file for changes and reloads the configuration if a change - is detected. - - The repository to configure. - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the specified repository using a log4net element. - - The hierarchy to configure. - The element to parse. - - - Loads the log4net configuration from the XML element - supplied as . - - - This method is ultimately called by one of the Configure methods - to load the configuration from an . - - - - - - Maps repository names to ConfigAndWatchHandler instances to allow a particular - ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is - reconfigured. - - - - - The fully qualified type of the XmlConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Class used to watch config files. - - - - Uses the to monitor - changes to a specified file. Because multiple change notifications - may be raised when the file is modified, a timer is used to - compress the notifications into a single event. The timer - waits for time before delivering - the event notification. If any further - change notifications arrive while the timer is waiting it - is reset and waits again for to - elapse. - - - - - - The default amount of time to wait after receiving notification - before reloading the config file. - - - - - Holds the FileInfo used to configure the XmlConfigurator - - - - - Holds the repository being configured. - - - - - The timer used to compress the notification events. - - - - - Watches file for changes. This object should be disposed when no longer - needed to free system handles on the watched resources. - - - - - Initializes a new instance of the class to - watch a specified config file used to configure a repository. - - The repository to configure. - The configuration file to watch. - - - Initializes a new instance of the class. - - - - - - Event handler used by . - - The firing the event. - The argument indicates the file that caused the event to be fired. - - - This handler reloads the configuration from the file when the event is fired. - - - - - - Event handler used by . - - The firing the event. - The argument indicates the file that caused the event to be fired. - - - This handler reloads the configuration from the file when the event is fired. - - - - - - Called by the timer when the configuration has been updated. - - null - - - - Release the handles held by the watcher and timer. - - - - - The implementation of the interface suitable - for use with the compact framework - - - - This implementation is a simple - mapping between repository name and - object. - - - The .NET Compact Framework 1.0 does not support retrieving assembly - level attributes therefore unlike the DefaultRepositorySelector - this selector does not examine the calling assembly for attributes. - - - Nicko Cadell - - - - Interface used by the to select the . - - - - The uses a - to specify the policy for selecting the correct - to return to the caller. - - - Nicko Cadell - Gert Driesen - - - - Gets the for the specified assembly. - - The assembly to use to lookup to the - The for the assembly. - - - Gets the for the specified assembly. - - - How the association between and - is made is not defined. The implementation may choose any method for - this association. The results of this method must be repeatable, i.e. - when called again with the same arguments the result must be the - save value. - - - - - - Gets the named . - - The name to use to lookup to the . - The named - - Lookup a named . This is the repository created by - calling . - - - - - Creates a new repository for the assembly specified. - - The assembly to use to create the domain to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the domain - specified such that a call to with the - same assembly specified will return the same repository instance. - - - How the association between and - is made is not defined. The implementation may choose any method for - this association. - - - - - - Creates a new repository with the name specified. - - The name to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the name - specified such that a call to with the - same name will return the same repository instance. - - - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets an array of all currently defined repositories. - - - An array of the instances created by - this . - - - Gets an array of all of the repositories created by this selector. - - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - Create a new repository selector - - the type of the repositories to create, must implement - - - Create an new compact repository selector. - The default type for repositories must be specified, - an appropriate value would be . - - - throw if is null - throw if does not implement - - - - Get the for the specified assembly - - not used - The default - - - The argument is not used. This selector does not create a - separate repository for each assembly. - - - As a named repository is not specified the default repository is - returned. The default repository is named log4net-default-repository. - - - - - - Get the named - - the name of the repository to lookup - The named - - - Get the named . The default - repository is log4net-default-repository. Other repositories - must be created using the . - If the named repository does not exist an exception is thrown. - - - throw if is null - throw if the does not exist - - - - Create a new repository for the assembly specified - - not used - the type of repository to create, must implement - the repository created - - - The argument is not used. This selector does not create a - separate repository for each assembly. - - - If the is null then the - default repository type specified to the constructor is used. - - - As a named repository is not specified the default repository is - returned. The default repository is named log4net-default-repository. - - - - - - Create a new repository for the repository specified - - the repository to associate with the - the type of repository to create, must implement . - If this param is null then the default repository type is used. - the repository created - - - The created will be associated with the repository - specified such that a call to with the - same repository specified will return the same repository instance. - - - If the named repository already exists an exception will be thrown. - - - If is null then the default - repository type specified to the constructor is used. - - - throw if is null - throw if the already exists - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets a list of objects - - an array of all known objects - - - Gets an array of all of the repositories created by this selector. - - - - - - The fully qualified type of the CompactRepositorySelector class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Notify the registered listeners that the repository has been created - - The repository that has been created - - - Raises the LoggerRepositoryCreatedEvent - event. - - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - The default implementation of the interface. - - - - Uses attributes defined on the calling assembly to determine how to - configure the hierarchy for the repository. - - - Nicko Cadell - Gert Driesen - - - - Creates a new repository selector. - - The type of the repositories to create, must implement - - - Create an new repository selector. - The default type for repositories must be specified, - an appropriate value would be . - - - is . - does not implement . - - - - Gets the for the specified assembly. - - The assembly use to lookup the . - - - The type of the created and the repository - to create can be overridden by specifying the - attribute on the . - - - The default values are to use the - implementation of the interface and to use the - as the name of the repository. - - - The created will be automatically configured using - any attributes defined on - the . - - - The for the assembly - is . - - - - Gets the for the specified repository. - - The repository to use to lookup the . - The for the specified repository. - - - Returns the named repository. If is null - a is thrown. If the repository - does not exist a is thrown. - - - Use to create a repository. - - - is . - does not exist. - - - - Create a new repository for the assembly specified - - the assembly to use to create the repository to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The type of the created and - the repository to create can be overridden by specifying the - attribute on the - . The default values are to use the - implementation of the - interface and to use the - as the name of the repository. - - - The created will be automatically - configured using any - attributes defined on the . - - - If a repository for the already exists - that repository will be returned. An error will not be raised and that - repository may be of a different type to that specified in . - Also the attribute on the - assembly may be used to override the repository type specified in - . - - - is . - - - - Creates a new repository for the assembly specified. - - the assembly to use to create the repository to associate with the . - The type of repository to create, must implement . - The name to assign to the created repository - Set to true to read and apply the assembly attributes - The repository created. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The type of the created and - the repository to create can be overridden by specifying the - attribute on the - . The default values are to use the - implementation of the - interface and to use the - as the name of the repository. - - - The created will be automatically - configured using any - attributes defined on the . - - - If a repository for the already exists - that repository will be returned. An error will not be raised and that - repository may be of a different type to that specified in . - Also the attribute on the - assembly may be used to override the repository type specified in - . - - - is . - - - - Creates a new repository for the specified repository. - - The repository to associate with the . - The type of repository to create, must implement . - If this param is then the default repository type is used. - The new repository. - - - The created will be associated with the repository - specified such that a call to with the - same repository specified will return the same repository instance. - - - is . - already exists. - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets a list of objects - - an array of all known objects - - - Gets an array of all of the repositories created by this selector. - - - - - - Aliases a repository to an existing repository. - - The repository to alias. - The repository that the repository is aliased to. - - - The repository specified will be aliased to the repository when created. - The repository must not already exist. - - - When the repository is created it must utilize the same repository type as - the repository it is aliased to, otherwise the aliasing will fail. - - - - is . - -or- - is . - - - - - Notifies the registered listeners that the repository has been created. - - The repository that has been created. - - - Raises the event. - - - - - - Gets the repository name and repository type for the specified assembly. - - The assembly that has a . - in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. - in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. - is . - - - - Configures the repository using information from the assembly. - - The assembly containing - attributes which define the configuration for the repository. - The repository to configure. - - is . - -or- - is . - - - - - Loads the attribute defined plugins on the assembly. - - The assembly that contains the attributes. - The repository to add the plugins to. - - is . - -or- - is . - - - - - Loads the attribute defined aliases on the assembly. - - The assembly that contains the attributes. - The repository to alias to. - - is . - -or- - is . - - - - - The fully qualified type of the DefaultRepositorySelector class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - Defined error codes that can be passed to the method. - - - - Values passed to the method. - - - Nicko Cadell - - - - A general error - - - - - Error while writing output - - - - - Failed to flush file - - - - - Failed to close file - - - - - Unable to open output file - - - - - No layout specified - - - - - Failed to parse address - - - - - An evaluator that triggers on an Exception type - - - - This evaluator will trigger if the type of the Exception - passed to - is equal to a Type in . /// - - - Drew Schaeffer - - - - Test if an triggers an action - - - - Implementations of this interface allow certain appenders to decide - when to perform an appender specific action. - - - The action or behavior triggered is defined by the implementation. - - - Nicko Cadell - - - - Test if this event triggers the action - - The event to check - true if this event triggers the action, otherwise false - - - Return true if this event triggers the action - - - - - - The type that causes the trigger to fire. - - - - - Causes subclasses of to cause the trigger to fire. - - - - - Default ctor to allow dynamic creation through a configurator. - - - - - Constructs an evaluator and initializes to trigger on - - the type that triggers this evaluator. - If true, this evaluator will trigger on subclasses of . - - - - Is this the triggering event? - - The event to check - This method returns true, if the logging event Exception - Type is . - Otherwise it returns false - - - This evaluator will trigger if the Exception Type of the event - passed to - is . - - - - - - The type that triggers this evaluator. - - - - - If true, this evaluator will trigger on subclasses of . - - - - - Appenders may delegate their error handling to an . - - - - Error handling is a particularly tedious to get right because by - definition errors are hard to predict and to reproduce. - - - Nicko Cadell - Gert Driesen - - - - Handles the error and information about the error condition is passed as - a parameter. - - The message associated with the error. - The that was thrown when the error occurred. - The error code associated with the error. - - - Handles the error and information about the error condition is passed as - a parameter. - - - - - - Prints the error message passed as a parameter. - - The message associated with the error. - The that was thrown when the error occurred. - - - See . - - - - - - Prints the error message passed as a parameter. - - The message associated with the error. - - - See . - - - - - - Interface for objects that require fixing. - - - - Interface that indicates that the object requires fixing before it - can be taken outside the context of the appender's - method. - - - When objects that implement this interface are stored - in the context properties maps - and - are fixed - (see ) the - method will be called. - - - Nicko Cadell - - - - Get a portable version of this object - - the portable instance of this object - - - Get a portable instance object that represents the current - state of this object. The portable object can be stored - and logged from any thread with identical results. - - - - - - Interface that all loggers implement - - - - This interface supports logging events and testing if a level - is enabled for logging. - - - These methods will not throw exceptions. Note to implementor, ensure - that the implementation of these methods cannot allow an exception - to be thrown to the caller. - - - Nicko Cadell - Gert Driesen - - - - This generic form is intended to be used by wrappers. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - the exception to log, including its stack trace. Pass null to not log an exception. - - - Generates a logging event for the specified using - the and . - - - - - - This is the most generic printing method that is intended to be used - by wrappers. - - The event being logged. - - - Logs the specified logging event through this logger. - - - - - - Checks if this logger is enabled for a given passed as parameter. - - The level to check. - - true if this logger is enabled for level, otherwise false. - - - - Test if this logger is going to log events of the specified . - - - - - - Gets the name of the logger. - - - The name of the logger. - - - - The name of this logger - - - - - - Gets the where this - Logger instance is attached to. - - - The that this logger belongs to. - - - - Gets the where this - Logger instance is attached to. - - - - - - Base interface for all wrappers - - - - Base interface for all wrappers. - - - All wrappers must implement this interface. - - - Nicko Cadell - - - - Get the implementation behind this wrapper object. - - - The object that in implementing this object. - - - - The object that in implementing this - object. The Logger object may not - be the same object as this object because of logger decorators. - This gets the actual underlying objects that is used to process - the log events. - - - - - - Delegate used to handle logger repository creation event notifications - - The which created the repository. - The event args - that holds the instance that has been created. - - - Delegate used to handle logger repository creation event notifications. - - - - - - Provides data for the event. - - - - A - event is raised every time a is created. - - - - - - The created - - - - - Construct instance using specified - - the that has been created - - - Construct instance using specified - - - - - - The that has been created - - - The that has been created - - - - The that has been created - - - - - - Defines the default set of levels recognized by the system. - - - - Each has an associated . - - - Levels have a numeric that defines the relative - ordering between levels. Two Levels with the same - are deemed to be equivalent. - - - The levels that are recognized by log4net are set for each - and each repository can have different levels defined. The levels are stored - in the on the repository. Levels are - looked up by name from the . - - - When logging at level INFO the actual level used is not but - the value of LoggerRepository.LevelMap["INFO"]. The default value for this is - , but this can be changed by reconfiguring the level map. - - - Each level has a in addition to its . The - is the string that is written into the output log. By default - the display name is the same as the level name, but this can be used to alias levels - or to localize the log output. - - - Some of the predefined levels recognized by the system are: - - - - . - - - . - - - . - - - . - - - . - - - . - - - . - - - - Nicko Cadell - Gert Driesen - - - - Constructor - - Integer value for this level, higher values represent more severe levels. - The string name of this level. - The display name for this level. This may be localized or otherwise different from the name - - - Initializes a new instance of the class with - the specified level name and value. - - - - - - Constructor - - Integer value for this level, higher values represent more severe levels. - The string name of this level. - - - Initializes a new instance of the class with - the specified level name and value. - - - - - - Returns the representation of the current - . - - - A representation of the current . - - - - Returns the level . - - - - - - Compares levels. - - The object to compare against. - true if the objects are equal. - - - Compares the levels of instances, and - defers to base class if the target object is not a - instance. - - - - - - Returns a hash code - - A hash code for the current . - - - Returns a hash code suitable for use in hashing algorithms and data - structures like a hash table. - - - Returns the hash code of the level . - - - - - - Compares this instance to a specified object and returns an - indication of their relative values. - - A instance or to compare with this instance. - - A 32-bit signed integer that indicates the relative order of the - values compared. The return value has these meanings: - - - Value - Meaning - - - Less than zero - This instance is less than . - - - Zero - This instance is equal to . - - - Greater than zero - - This instance is greater than . - -or- - is . - - - - - - - must be an instance of - or ; otherwise, an exception is thrown. - - - is not a . - - - - Returns a value indicating whether a specified - is greater than another specified . - - A - A - - true if is greater than - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is less than another specified . - - A - A - - true if is less than - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is greater than or equal to another specified . - - A - A - - true if is greater than or equal to - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is less than or equal to another specified . - - A - A - - true if is less than or equal to - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether two specified - objects have the same value. - - A or . - A or . - - true if the value of is the same as the - value of ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether two specified - objects have different values. - - A or . - A or . - - true if the value of is different from - the value of ; otherwise, false. - - - - Compares two levels. - - - - - - Compares two specified instances. - - The first to compare. - The second to compare. - - A 32-bit signed integer that indicates the relative order of the - two values compared. The return value has these meanings: - - - Value - Meaning - - - Less than zero - is less than . - - - Zero - is equal to . - - - Greater than zero - is greater than . - - - - - - Compares two levels. - - - - - - The level designates a higher level than all the rest. - - - - - The level designates very severe error events. - System unusable, emergencies. - - - - - The level designates very severe error events. - System unusable, emergencies. - - - - - The level designates very severe error events - that will presumably lead the application to abort. - - - - - The level designates very severe error events. - Take immediate action, alerts. - - - - - The level designates very severe error events. - Critical condition, critical. - - - - - The level designates very severe error events. - - - - - The level designates error events that might - still allow the application to continue running. - - - - - The level designates potentially harmful - situations. - - - - - The level designates informational messages - that highlight the progress of the application at the highest level. - - - - - The level designates informational messages that - highlight the progress of the application at coarse-grained level. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates the lowest level possible. - - - - - Gets the name of this level. - - - The name of this level. - - - - Gets the name of this level. - - - - - - Gets the value of this level. - - - The value of this level. - - - - Gets the value of this level. - - - - - - Gets the display name of this level. - - - The display name of this level. - - - - Gets the display name of this level. - - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a LevelCollection instance. - - list to create a readonly wrapper arround - - A LevelCollection wrapper that is read-only. - - - - - Initializes a new instance of the LevelCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the LevelCollection class - that has the specified initial capacity. - - - The number of elements that the new LevelCollection is initially capable of storing. - - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified LevelCollection. - - The LevelCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - Copies the entire LevelCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire LevelCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the LevelCollection. - - The to be added to the end of the LevelCollection. - The index at which the value has been added. - - - - Removes all elements from the LevelCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the LevelCollection. - - The to check for. - true if is found in the LevelCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the LevelCollection. - - The to locate in the LevelCollection. - - The zero-based index of the first occurrence of - in the entire LevelCollection, if found; otherwise, -1. - - - - - Inserts an element into the LevelCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the LevelCollection. - - The to remove from the LevelCollection. - - The specified was not found in the LevelCollection. - - - - - Removes the element at the specified index of the LevelCollection. - - The zero-based index of the element to remove. - - is less than zero - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the LevelCollection. - - An for the entire LevelCollection. - - - - Adds the elements of another LevelCollection to the current LevelCollection. - - The LevelCollection whose elements should be added to the end of the current LevelCollection. - The new of the LevelCollection. - - - - Adds the elements of a array to the current LevelCollection. - - The array whose elements should be added to the end of the LevelCollection. - The new of the LevelCollection. - - - - Adds the elements of a collection to the current LevelCollection. - - The collection whose elements should be added to the end of the LevelCollection. - The new of the LevelCollection. - - - - Sets the capacity to the actual number of elements. - - - - - is less than zero - -or- - is equal to or greater than . - - - - - is less than zero - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the LevelCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - The zero-based index of the element to get or set. - - is less than zero - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false - - - - Gets or sets the number of elements the LevelCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - A value - - - - - Supports simple iteration over a . - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - An evaluator that triggers at a threshold level - - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - Nicko Cadell - - - - The threshold for triggering - - - - - Create a new evaluator using the threshold. - - - - Create a new evaluator using the threshold. - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Create a new evaluator using the specified threshold. - - the threshold to trigger at - - - Create a new evaluator using the specified threshold. - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Is this the triggering event? - - The event to check - This method returns true, if the event level - is equal or higher than the . - Otherwise it returns false - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - the threshold to trigger at - - - The that will cause this evaluator to trigger - - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Mapping between string name and Level object - - - - Mapping between string name and object. - This mapping is held separately for each . - The level name is case insensitive. - - - Nicko Cadell - - - - Mapping from level name to Level object. The - level name is case insensitive - - - - - Construct the level map - - - - Construct the level map. - - - - - - Clear the internal maps of all levels - - - - Clear the internal maps of all levels - - - - - - Create a new Level and add it to the map - - the string to display for the Level - the level value to give to the Level - - - Create a new Level and add it to the map - - - - - - - Create a new Level and add it to the map - - the string to display for the Level - the level value to give to the Level - the display name to give to the Level - - - Create a new Level and add it to the map - - - - - - Add a Level to the map - - the Level to add - - - Add a Level to the map - - - - - - Lookup a named level from the map - - the name of the level to lookup is taken from this level. - If the level is not set on the map then this level is added - the level in the map with the name specified - - - Lookup a named level from the map. The name of the level to lookup is taken - from the property of the - argument. - - - If no level with the specified name is found then the - argument is added to the level map - and returned. - - - - - - Lookup a by name - - The name of the Level to lookup - a Level from the map with the name specified - - - Returns the from the - map with the name specified. If the no level is - found then null is returned. - - - - - - Return all possible levels as a list of Level objects. - - all possible levels as a list of Level objects - - - Return all possible levels as a list of Level objects. - - - - - - The internal representation of caller location information. - - - - This class uses the System.Diagnostics.StackTrace class to generate - a call stack. The caller's information is then extracted from this stack. - - - The System.Diagnostics.StackTrace class is not supported on the - .NET Compact Framework 1.0 therefore caller location information is not - available on that framework. - - - The System.Diagnostics.StackTrace class has this to say about Release builds: - - - "StackTrace information will be most informative with Debug build configurations. - By default, Debug builds include debug symbols, while Release builds do not. The - debug symbols contain most of the file, method name, line number, and column - information used in constructing StackFrame and StackTrace objects. StackTrace - might not report as many method calls as expected, due to code transformations - that occur during optimization." - - - This means that in a Release build the caller information may be incomplete or may - not exist at all! Therefore caller location information cannot be relied upon in a Release build. - - - Nicko Cadell - Gert Driesen - - - - When location information is not available the constant - NA is returned. Current value of this string - constant is ?. - - - - - Constructor - - The declaring type of the method that is - the stack boundary into the logging system for this call. - - - Initializes a new instance of the - class based on the current thread. - - - - - - Constructor - - The fully qualified class name. - The method name. - The file name. - The line number of the method within the file. - - - Initializes a new instance of the - class with the specified data. - - - - - - The fully qualified type of the LocationInfo class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the fully qualified class name of the caller making the logging - request. - - - The fully qualified class name of the caller making the logging - request. - - - - Gets the fully qualified class name of the caller making the logging - request. - - - - - - Gets the file name of the caller. - - - The file name of the caller. - - - - Gets the file name of the caller. - - - - - - Gets the line number of the caller. - - - The line number of the caller. - - - - Gets the line number of the caller. - - - - - - Gets the method name of the caller. - - - The method name of the caller. - - - - Gets the method name of the caller. - - - - - - Gets all available caller information - - - All available caller information, in the format - fully.qualified.classname.of.caller.methodName(Filename:line) - - - - Gets all available caller information, in the format - fully.qualified.classname.of.caller.methodName(Filename:line) - - - - - - Gets the stack frames from the stack trace of the caller making the log request - - - - - Static manager that controls the creation of repositories - - - - Static manager that controls the creation of repositories - - - This class is used by the wrapper managers (e.g. ) - to provide access to the objects. - - - This manager also holds the that is used to - lookup and create repositories. The selector can be set either programmatically using - the property, or by setting the log4net.RepositorySelector - AppSetting in the applications config file to the fully qualified type name of the - selector to use. - - - Nicko Cadell - Gert Driesen - - - - Private constructor to prevent instances. Only static methods should be used. - - - - Private constructor to prevent instances. Only static methods should be used. - - - - - - Hook the shutdown event - - - - On the full .NET runtime, the static constructor hooks up the - AppDomain.ProcessExit and AppDomain.DomainUnload> events. - These are used to shutdown the log4net system as the application exits. - - - - - - Register for ProcessExit and DomainUnload events on the AppDomain - - - - This needs to be in a separate method because the events make - a LinkDemand for the ControlAppDomain SecurityPermission. Because - this is a LinkDemand it is demanded at JIT time. Therefore we cannot - catch the exception in the method itself, we have to catch it in the - caller. - - - - - - Return the default instance. - - the repository to lookup in - Return the default instance - - - Gets the for the repository specified - by the argument. - - - - - - Returns the default instance. - - The assembly to use to lookup the repository. - The default instance. - - - - Return the default instance. - - the repository to lookup in - Return the default instance - - - Gets the for the repository specified - by the argument. - - - - - - Returns the default instance. - - The assembly to use to lookup the repository. - The default instance. - - - Returns the default instance. - - - - - - Returns the named logger if it exists. - - The repository to lookup in. - The fully qualified logger name to look for. - - The logger found, or null if the named logger does not exist in the - specified repository. - - - - If the named logger exists (in the specified repository) then it - returns a reference to the logger, otherwise it returns - null. - - - - - - Returns the named logger if it exists. - - The assembly to use to lookup the repository. - The fully qualified logger name to look for. - - The logger found, or null if the named logger does not exist in the - specified assembly's repository. - - - - If the named logger exists (in the specified assembly's repository) then it - returns a reference to the logger, otherwise it returns - null. - - - - - - Returns all the currently defined loggers in the specified repository. - - The repository to lookup in. - All the defined loggers. - - - The root logger is not included in the returned array. - - - - - - Returns all the currently defined loggers in the specified assembly's repository. - - The assembly to use to lookup the repository. - All the defined loggers. - - - The root logger is not included in the returned array. - - - - - - Retrieves or creates a named logger. - - The repository to lookup in. - The name of the logger to retrieve. - The logger with the name specified. - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - - - - Retrieves or creates a named logger. - - The assembly to use to lookup the repository. - The name of the logger to retrieve. - The logger with the name specified. - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - - - - Shorthand for . - - The repository to lookup in. - The of which the fullname will be used as the name of the logger to retrieve. - The logger with the name specified. - - - Gets the logger for the fully qualified name of the type specified. - - - - - - Shorthand for . - - the assembly to use to lookup the repository - The of which the fullname will be used as the name of the logger to retrieve. - The logger with the name specified. - - - Gets the logger for the fully qualified name of the type specified. - - - - - - Shuts down the log4net system. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in all the - default repositories. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - The repository to shutdown. - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository for the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - The assembly to use to lookup the repository. - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository for the repository. The repository is looked up using - the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Resets all values contained in this repository instance to their defaults. - - The repository to reset. - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - - - - Resets all values contained in this repository instance to their defaults. - - The assembly to use to lookup the repository to reset. - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - - - - Creates a repository with the specified name. - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name. - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The name must be unique. Repositories cannot be redefined. - An Exception will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The name must be unique. Repositories cannot be redefined. - An Exception will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository for the specified assembly and repository type. - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - - - - Creates a repository for the specified assembly and repository type. - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - - - - Gets an array of all currently defined repositories. - - An array of all the known objects. - - - Gets an array of all currently defined repositories. - - - - - - Internal method to get pertinent version info. - - A string of version info. - - - - Called when the event fires - - the that is exiting - null - - - Called when the event fires. - - - When the event is triggered the log4net system is . - - - - - - Called when the event fires - - the that is exiting - null - - - Called when the event fires. - - - When the event is triggered the log4net system is . - - - - - - The fully qualified type of the LoggerManager class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Initialize the default repository selector - - - - - Gets or sets the repository selector used by the . - - - The repository selector used by the . - - - - The repository selector () is used by - the to create and select repositories - (). - - - The caller to supplies either a string name - or an assembly (if not supplied the assembly is inferred using - ). - - - This context is used by the selector to lookup a specific repository. - - - For the full .NET Framework, the default repository is DefaultRepositorySelector; - for the .NET Compact Framework CompactRepositorySelector is the default - repository. - - - - - - Implementation of the interface. - - - - This class should be used as the base for all wrapper implementations. - - - Nicko Cadell - Gert Driesen - - - - Constructs a new wrapper for the specified logger. - - The logger to wrap. - - - Constructs a new wrapper for the specified logger. - - - - - - The logger that this object is wrapping - - - - - Gets the implementation behind this wrapper object. - - - The object that this object is implementing. - - - - The Logger object may not be the same object as this object - because of logger decorators. - - - This gets the actual underlying objects that is used to process - the log events. - - - - - - Portable data structure used by - - - - Portable data structure used by - - - Nicko Cadell - - - - The logger name. - - - - The logger name. - - - - - - Level of logging event. - - - - Level of logging event. Level cannot be Serializable - because it is a flyweight. Due to its special serialization it - cannot be declared final either. - - - - - - The application supplied message. - - - - The application supplied message of logging event. - - - - - - The name of thread - - - - The name of thread in which this logging event was generated - - - - - - The time the event was logged - - - - The TimeStamp is stored in the local time zone for this computer. - - - - - - Location information for the caller. - - - - Location information for the caller. - - - - - - String representation of the user - - - - String representation of the user's windows name, - like DOMAIN\username - - - - - - String representation of the identity. - - - - String representation of the current thread's principal identity. - - - - - - The string representation of the exception - - - - The string representation of the exception - - - - - - String representation of the AppDomain. - - - - String representation of the AppDomain. - - - - - - Additional event specific properties - - - - A logger or an appender may attach additional - properties to specific events. These properties - have a string key and an object value. - - - - - - Flags passed to the property - - - - Flags passed to the property - - - Nicko Cadell - - - - Fix the MDC - - - - - Fix the NDC - - - - - Fix the rendered message - - - - - Fix the thread name - - - - - Fix the callers location information - - - CAUTION: Very slow to generate - - - - - Fix the callers windows user name - - - CAUTION: Slow to generate - - - - - Fix the domain friendly name - - - - - Fix the callers principal name - - - CAUTION: May be slow to generate - - - - - Fix the exception text - - - - - Fix the event properties. Active properties must implement in order to be eligible for fixing. - - - - - No fields fixed - - - - - All fields fixed - - - - - Partial fields fixed - - - - This set of partial fields gives good performance. The following fields are fixed: - - - - - - - - - - - - - The internal representation of logging events. - - - - When an affirmative decision is made to log then a - instance is created. This instance - is passed around to the different log4net components. - - - This class is of concern to those wishing to extend log4net. - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - for incurred by calling but it - is essential to maintaining data consistency. - - - Nicko Cadell - Gert Driesen - Douglas de la Torre - Daniel Cazzulino - - - - The key into the Properties map for the host name value. - - - - - The key into the Properties map for the thread identity value. - - - - - The key into the Properties map for the user name value. - - - - - Initializes a new instance of the class - from the supplied parameters. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - The name of the logger of this event. - The level of this event. - The message of this event. - The exception for this event. - - - Except , and , - all fields of LoggingEvent are filled when actually needed. Call - to cache all data locally - to prevent inconsistencies. - - This method is called by the log4net framework - to create a logging event. - - - - - - Initializes a new instance of the class - using specific data. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - Data used to initialize the logging event. - The fields in the struct that have already been fixed. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - The parameter should be used to specify which fields in the - struct have been preset. Fields not specified in the - will be captured from the environment if requested or fixed. - - - - - - Initializes a new instance of the class - using specific data. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - Data used to initialize the logging event. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - This constructor sets this objects flags to , - this assumes that all the data relating to this event is passed in via the - parameter and no other data should be captured from the environment. - - - - - - Initializes a new instance of the class - using specific data. - - Data used to initialize the logging event. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - This constructor sets this objects flags to , - this assumes that all the data relating to this event is passed in via the - parameter and no other data should be captured from the environment. - - - - - - Serialization constructor - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Ensure that the repository is set. - - the value for the repository - - - - Write the rendered message to a TextWriter - - the writer to write the message to - - - Unlike the property this method - does store the message data in the internal cache. Therefore - if called only once this method should be faster than the - property, however if the message is - to be accessed multiple times then the property will be more efficient. - - - - - - Serializes this object into the provided. - - The to populate with data. - The destination for this serialization. - - - The data in this event must be fixed before it can be serialized. - - - The method must be called during the - method call if this event - is to be used outside that method. - - - - - - Gets the portable data for this . - - The for this event. - - - A new can be constructed using a - instance. - - - Does a fix of the data - in the logging event before returning the event data. - - - - - - Gets the portable data for this . - - The set of data to ensure is fixed in the LoggingEventData - The for this event. - - - A new can be constructed using a - instance. - - - - - - Returns this event's exception's rendered using the - . - - - This event's exception's rendered using the . - - - - Obsolete. Use instead. - - - - - - Returns this event's exception's rendered using the - . - - - This event's exception's rendered using the . - - - - Returns this event's exception's rendered using the - . - - - - - - Fix instance fields that hold volatile data. - - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - incurred by calling but it - is essential to maintaining data consistency. - - - Calling is equivalent to - calling passing the parameter - false. - - - See for more - information. - - - - - - Fixes instance fields that hold volatile data. - - Set to true to not fix data that takes a long time to fix. - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - for incurred by calling but it - is essential to maintaining data consistency. - - - The param controls the data that - is fixed. Some of the data that can be fixed takes a long time to - generate, therefore if you do not require those settings to be fixed - they can be ignored by setting the param - to true. This setting will ignore the - and settings. - - - Set to false to ensure that all - settings are fixed. - - - - - - Fix the fields specified by the parameter - - the fields to fix - - - Only fields specified in the will be fixed. - Fields will not be fixed if they have previously been fixed. - It is not possible to 'unfix' a field. - - - - - - Lookup a composite property in this event - - the key for the property to lookup - the value for the property - - - This event has composite properties that combine together properties from - several different contexts in the following order: - - - this events properties - - This event has that can be set. These - properties are specific to this event only. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - - - Get all the composite properties in this event - - the containing all the properties - - - See for details of the composite properties - stored by the event. - - - This method returns a single containing all the - properties defined for this event. - - - - - - The internal logging event data. - - - - - The internal logging event data. - - - - - The internal logging event data. - - - - - The fully qualified Type of the calling - logger class in the stack frame (i.e. the declaring type of the method). - - - - - The application supplied message of logging event. - - - - - The exception that was thrown. - - - This is not serialized. The string representation - is serialized instead. - - - - - The repository that generated the logging event - - - This is not serialized. - - - - - The fix state for this event - - - These flags indicate which fields have been fixed. - Not serialized. - - - - - Indicated that the internal cache is updateable (ie not fixed) - - - This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler - changes in the caching strategy. - - - - - Gets the time when the current process started. - - - This is the time when this process started. - - - - The TimeStamp is stored in the local time zone for this computer. - - - Tries to get the start time for the current process. - Failing that it returns the time of the first call to - this property. - - - Note that AppDomains may be loaded and unloaded within the - same process without the process terminating and therefore - without the process start time being reset. - - - - - - Gets the of the logging event. - - - The of the logging event. - - - - Gets the of the logging event. - - - - - - Gets the time of the logging event. - - - The time of the logging event. - - - - The TimeStamp is stored in the local time zone for this computer. - - - - - - Gets the name of the logger that logged the event. - - - The name of the logger that logged the event. - - - - Gets the name of the logger that logged the event. - - - - - - Gets the location information for this logging event. - - - The location information for this logging event. - - - - The collected information is cached for future use. - - - See the class for more information on - supported frameworks and the different behavior in Debug and - Release builds. - - - - - - Gets the message object used to initialize this event. - - - The message object used to initialize this event. - - - - Gets the message object used to initialize this event. - Note that this event may not have a valid message object. - If the event is serialized the message object will not - be transferred. To get the text of the message the - property must be used - not this property. - - - If there is no defined message object for this event then - null will be returned. - - - - - - Gets the exception object used to initialize this event. - - - The exception object used to initialize this event. - - - - Gets the exception object used to initialize this event. - Note that this event may not have a valid exception object. - If the event is serialized the exception object will not - be transferred. To get the text of the exception the - method must be used - not this property. - - - If there is no defined exception object for this event then - null will be returned. - - - - - - The that this event was created in. - - - - The that this event was created in. - - - - - - Gets the message, rendered through the . - - - The message rendered through the . - - - - The collected information is cached for future use. - - - - - - Gets the name of the current thread. - - - The name of the current thread, or the thread ID when - the name is not available. - - - - The collected information is cached for future use. - - - - - - Gets the name of the current user. - - - The name of the current user, or NOT AVAILABLE when the - underlying runtime has no support for retrieving the name of the - current user. - - - - Calls WindowsIdentity.GetCurrent().Name to get the name of - the current windows user. - - - To improve performance, we could cache the string representation of - the name, and reuse that as long as the identity stayed constant. - Once the identity changed, we would need to re-assign and re-render - the string. - - - However, the WindowsIdentity.GetCurrent() call seems to - return different objects every time, so the current implementation - doesn't do this type of caching. - - - Timing for these operations: - - - - Method - Results - - - WindowsIdentity.GetCurrent() - 10000 loops, 00:00:00.2031250 seconds - - - WindowsIdentity.GetCurrent().Name - 10000 loops, 00:00:08.0468750 seconds - - - - This means we could speed things up almost 40 times by caching the - value of the WindowsIdentity.GetCurrent().Name property, since - this takes (8.04-0.20) = 7.84375 seconds. - - - - - - Gets the identity of the current thread principal. - - - The string name of the identity of the current thread principal. - - - - Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get - the name of the current thread principal. - - - - - - Gets the AppDomain friendly name. - - - The AppDomain friendly name. - - - - Gets the AppDomain friendly name. - - - - - - Additional event specific properties. - - - Additional event specific properties. - - - - A logger or an appender may attach additional - properties to specific events. These properties - have a string key and an object value. - - - This property is for events that have been added directly to - this event. The aggregate properties (which include these - event properties) can be retrieved using - and . - - - Once the properties have been fixed this property - returns the combined cached properties. This ensures that updates to - this property are always reflected in the underlying storage. When - returning the combined properties there may be more keys in the - Dictionary than expected. - - - - - - The fixed fields in this event - - - The set of fields that are fixed in this event - - - - Fields will not be fixed if they have previously been fixed. - It is not possible to 'unfix' a field. - - - - - - Implementation of wrapper interface. - - - - This implementation of the interface - forwards to the held by the base class. - - - This logger has methods to allow the caller to log at the following - levels: - - - - DEBUG - - The and methods log messages - at the DEBUG level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - INFO - - The and methods log messages - at the INFO level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - WARN - - The and methods log messages - at the WARN level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - ERROR - - The and methods log messages - at the ERROR level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - FATAL - - The and methods log messages - at the FATAL level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - - The values for these levels and their semantic meanings can be changed by - configuring the for the repository. - - - Nicko Cadell - Gert Driesen - - - - The ILog interface is use by application to log messages into - the log4net framework. - - - - Use the to obtain logger instances - that implement this interface. The - static method is used to get logger instances. - - - This class contains methods for logging at different levels and also - has properties for determining if those logging levels are - enabled in the current configuration. - - - This interface can be implemented in different ways. This documentation - specifies reasonable behavior that a caller can expect from the actual - implementation, however different implementations reserve the right to - do things differently. - - - Simple example of logging messages - - ILog log = LogManager.GetLogger("application-log"); - - log.Info("Application Start"); - log.Debug("This is a debug message"); - - if (log.IsDebugEnabled) - { - log.Debug("This is another debug message"); - } - - - - - Nicko Cadell - Gert Driesen - - - Log a message object with the level. - - Log a message object with the level. - - The message object to log. - - - This method first checks if this logger is DEBUG - enabled by comparing the level of this logger with the - level. If this logger is - DEBUG enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of - the additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Logs a message object with the level. - - - - This method first checks if this logger is INFO - enabled by comparing the level of this logger with the - level. If this logger is - INFO enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Logs a message object with the INFO level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Log a message object with the level. - - - - This method first checks if this logger is WARN - enabled by comparing the level of this logger with the - level. If this logger is - WARN enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Logs a message object with the level. - - The message object to log. - - - This method first checks if this logger is ERROR - enabled by comparing the level of this logger with the - level. If this logger is - ERROR enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Log a message object with the level. - - - - This method first checks if this logger is FATAL - enabled by comparing the level of this logger with the - level. If this logger is - FATAL enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - - This function is intended to lessen the computational cost of - disabled log debug statements. - - For some ILog interface log, when you write: - - log.Debug("This is entry number: " + i ); - - - You incur the cost constructing the message, string construction and concatenation in - this case, regardless of whether the message is logged or not. - - - If you are worried about speed (who isn't), then you should write: - - - if (log.IsDebugEnabled) - { - log.Debug("This is entry number: " + i ); - } - - - This way you will not incur the cost of parameter - construction if debugging is disabled for log. On - the other hand, if the log is debug enabled, you - will incur the cost of evaluating whether the logger is debug - enabled twice. Once in and once in - the . This is an insignificant overhead - since evaluating a logger takes about 1% of the time it - takes to actually log. This is the preferred style of logging. - - Alternatively if your logger is available statically then the is debug - enabled state can be stored in a static variable like this: - - - private static readonly bool isDebugEnabled = log.IsDebugEnabled; - - - Then when you come to log you can write: - - - if (isDebugEnabled) - { - log.Debug("This is entry number: " + i ); - } - - - This way the debug enabled state is only queried once - when the class is loaded. Using a private static readonly - variable is the most efficient because it is a run time constant - and can be heavily optimized by the JIT compiler. - - - Of course if you use a static readonly variable to - hold the enabled state of the logger then you cannot - change the enabled state at runtime to vary the logging - that is produced. You have to decide if you need absolute - speed or runtime flexibility. - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Construct a new wrapper for the specified logger. - - The logger to wrap. - - - Construct a new wrapper for the specified logger. - - - - - - Virtual method called when the configuration of the repository changes - - the repository holding the levels - - - Virtual method called when the configuration of the repository changes - - - - - - Logs a message object with the DEBUG level. - - The message object to log. - - - This method first checks if this logger is DEBUG - enabled by comparing the level of this logger with the - DEBUG level. If this logger is - DEBUG enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the DEBUG level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the DEBUG level including - the stack trace of the passed - as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the INFO level. - - The message object to log. - - - This method first checks if this logger is INFO - enabled by comparing the level of this logger with the - INFO level. If this logger is - INFO enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of - the additivity flag. - - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the INFO level. - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the INFO level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the WARN level. - - the message object to log - - - This method first checks if this logger is WARN - enabled by comparing the level of this logger with the - WARN level. If this logger is - WARN enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the WARN level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the WARN level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the ERROR level. - - The message object to log. - - - This method first checks if this logger is ERROR - enabled by comparing the level of this logger with the - ERROR level. If this logger is - ERROR enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the ERROR level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the ERROR level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the FATAL level. - - The message object to log. - - - This method first checks if this logger is FATAL - enabled by comparing the level of this logger with the - FATAL level. If this logger is - FATAL enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the FATAL level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the FATAL level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Event handler for the event - - the repository - Empty - - - - The fully qualified name of this declaring type not the type of any subclass. - - - - - Checks if this logger is enabled for the DEBUG - level. - - - true if this logger is enabled for DEBUG events, - false otherwise. - - - - This function is intended to lessen the computational cost of - disabled log debug statements. - - - For some log Logger object, when you write: - - - log.Debug("This is entry number: " + i ); - - - You incur the cost constructing the message, concatenation in - this case, regardless of whether the message is logged or not. - - - If you are worried about speed, then you should write: - - - if (log.IsDebugEnabled()) - { - log.Debug("This is entry number: " + i ); - } - - - This way you will not incur the cost of parameter - construction if debugging is disabled for log. On - the other hand, if the log is debug enabled, you - will incur the cost of evaluating whether the logger is debug - enabled twice. Once in IsDebugEnabled and once in - the Debug. This is an insignificant overhead - since evaluating a logger takes about 1% of the time it - takes to actually log. - - - - - - Checks if this logger is enabled for the INFO level. - - - true if this logger is enabled for INFO events, - false otherwise. - - - - See for more information and examples - of using this method. - - - - - - - Checks if this logger is enabled for the WARN level. - - - true if this logger is enabled for WARN events, - false otherwise. - - - - See for more information and examples - of using this method. - - - - - - - Checks if this logger is enabled for the ERROR level. - - - true if this logger is enabled for ERROR events, - false otherwise. - - - - See for more information and examples of using this method. - - - - - - - Checks if this logger is enabled for the FATAL level. - - - true if this logger is enabled for FATAL events, - false otherwise. - - - - See for more information and examples of using this method. - - - - - - - A SecurityContext used by log4net when interacting with protected resources - - - - A SecurityContext used by log4net when interacting with protected resources - for example with operating system services. This can be used to impersonate - a principal that has been granted privileges on the system resources. - - - Nicko Cadell - - - - Impersonate this SecurityContext - - State supplied by the caller - An instance that will - revoke the impersonation of this SecurityContext, or null - - - Impersonate this security context. Further calls on the current - thread should now be made in the security context provided - by this object. When the result - method is called the security - context of the thread should be reverted to the state it was in - before was called. - - - - - - The providers default instances. - - - - A configured component that interacts with potentially protected system - resources uses a to provide the elevated - privileges required. If the object has - been not been explicitly provided to the component then the component - will request one from this . - - - By default the is - an instance of which returns only - objects. This is a reasonable default - where the privileges required are not know by the system. - - - This default behavior can be overridden by subclassing the - and overriding the method to return - the desired objects. The default provider - can be replaced by programmatically setting the value of the - property. - - - An alternative is to use the log4net.Config.SecurityContextProviderAttribute - This attribute can be applied to an assembly in the same way as the - log4net.Config.XmlConfiguratorAttribute". The attribute takes - the type to use as the as an argument. - - - Nicko Cadell - - - - The default provider - - - - - Protected default constructor to allow subclassing - - - - Protected default constructor to allow subclassing - - - - - - Create a SecurityContext for a consumer - - The consumer requesting the SecurityContext - An impersonation context - - - The default implementation is to return a . - - - Subclasses should override this method to provide their own - behavior. - - - - - - Gets or sets the default SecurityContextProvider - - - The default SecurityContextProvider - - - - The default provider is used by configured components that - require a and have not had one - given to them. - - - By default this is an instance of - that returns objects. - - - The default provider can be set programmatically by setting - the value of this property to a sub class of - that has the desired behavior. - - - - - - An evaluator that triggers after specified number of seconds. - - - - This evaluator will trigger if the specified time period - has passed since last check. - - - Robert Sevcik - - - - The default time threshold for triggering in seconds. Zero means it won't trigger at all. - - - - - The time threshold for triggering in seconds. Zero means it won't trigger at all. - - - - - The time of last check. This gets updated when the object is created and when the evaluator triggers. - - - - - Create a new evaluator using the time threshold in seconds. - - - - Create a new evaluator using the time threshold in seconds. - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Create a new evaluator using the specified time threshold in seconds. - - - The time threshold in seconds to trigger after. - Zero means it won't trigger at all. - - - - Create a new evaluator using the specified time threshold in seconds. - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Is this the triggering event? - - The event to check - This method returns true, if the specified time period - has passed since last check.. - Otherwise it returns false - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - The time threshold in seconds to trigger after - - - The time threshold in seconds to trigger after. - Zero means it won't trigger at all. - - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Delegate used to handle creation of new wrappers. - - The logger to wrap in a wrapper. - - - Delegate used to handle creation of new wrappers. This delegate - is called from the - method to construct the wrapper for the specified logger. - - - The delegate to use is supplied to the - constructor. - - - - - - Maps between logger objects and wrapper objects. - - - - This class maintains a mapping between objects and - objects. Use the method to - lookup the for the specified . - - - New wrapper instances are created by the - method. The default behavior is for this method to delegate construction - of the wrapper to the delegate supplied - to the constructor. This allows specialization of the behavior without - requiring subclassing of this type. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the - - The handler to use to create the wrapper objects. - - - Initializes a new instance of the class with - the specified handler to create the wrapper objects. - - - - - - Gets the wrapper object for the specified logger. - - The wrapper object for the specified logger - - - If the logger is null then the corresponding wrapper is null. - - - Looks up the wrapper it it has previously been requested and - returns it. If the wrapper has never been requested before then - the virtual method is - called. - - - - - - Creates the wrapper object for the specified logger. - - The logger to wrap in a wrapper. - The wrapper object for the logger. - - - This implementation uses the - passed to the constructor to create the wrapper. This method - can be overridden in a subclass. - - - - - - Called when a monitored repository shutdown event is received. - - The that is shutting down - - - This method is called when a that this - is holding loggers for has signaled its shutdown - event . The default - behavior of this method is to release the references to the loggers - and their wrappers generated for this repository. - - - - - - Event handler for repository shutdown event. - - The sender of the event. - The event args. - - - - Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings - - - - - The handler to use to create the extension wrapper objects. - - - - - Internal reference to the delegate used to register for repository shutdown events. - - - - - Gets the map of logger repositories. - - - Map of logger repositories. - - - - Gets the hashtable that is keyed on . The - values are hashtables keyed on with the - value being the corresponding . - - - - - - Formats a as "HH:mm:ss,fff". - - - - Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". - - - Nicko Cadell - Gert Driesen - - - - Render a as a string. - - - - Interface to abstract the rendering of a - instance into a string. - - - The method is used to render the - date to a text writer. - - - Nicko Cadell - Gert Driesen - - - - Formats the specified date as a string. - - The date to format. - The writer to write to. - - - Format the as a string and write it - to the provided. - - - - - - String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. - - - - - String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. - - - - - String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. - - - - - Renders the date into a string. Format is "HH:mm:ss". - - The date to render into a string. - The string builder to write to. - - - Subclasses should override this method to render the date - into a string using a precision up to the second. This method - will be called at most once per second and the result will be - reused if it is needed again during the same second. - - - - - - Renders the date into a string. Format is "HH:mm:ss,fff". - - The date to render into a string. - The writer to write to. - - - Uses the method to generate the - time string up to the seconds and then appends the current - milliseconds. The results from are - cached and is called at most once - per second. - - - Sub classes should override - rather than . - - - - - - Last stored time with precision up to the second. - - - - - Last stored time with precision up to the second, formatted - as a string. - - - - - Last stored time with precision up to the second, formatted - as a string. - - - - - Formats a as "dd MMM yyyy HH:mm:ss,fff" - - - - Formats a in the format - "dd MMM yyyy HH:mm:ss,fff" for example, - "06 Nov 1994 15:49:37,459". - - - Nicko Cadell - Gert Driesen - Angelika Schnagl - - - - Default constructor. - - - - Initializes a new instance of the class. - - - - - - Formats the date without the milliseconds part - - The date to format. - The string builder to write to. - - - Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" - for example, "06 Nov 1994 15:49:37". - - - The base class will append the ",fff" milliseconds section. - This method will only be called at most once per second. - - - - - - The format info for the invariant culture. - - - - - Formats the as "yyyy-MM-dd HH:mm:ss,fff". - - - - Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Formats the date without the milliseconds part - - The date to format. - The string builder to write to. - - - Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". - - - The base class will append the ",fff" milliseconds section. - This method will only be called at most once per second. - - - - - - Formats the using the method. - - - - Formats the using the method. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The format string. - - - Initializes a new instance of the class - with the specified format string. - - - The format string must be compatible with the options - that can be supplied to . - - - - - - Formats the date using . - - The date to convert to a string. - The writer to write to. - - - Uses the date format string supplied to the constructor to call - the method to format the date. - - - - - - The format string used to format the . - - - - The format string must be compatible with the options - that can be supplied to . - - - - - - This filter drops all . - - - - You can add this filter to the end of a filter chain to - switch from the default "accept all unless instructed otherwise" - filtering behavior to a "deny all unless instructed otherwise" - behavior. - - - Nicko Cadell - Gert Driesen - - - - Subclass this type to implement customized logging event filtering - - - - Users should extend this class to implement customized logging - event filtering. Note that and - , the parent class of all standard - appenders, have built-in filtering rules. It is suggested that you - first use and understand the built-in rules before rushing to write - your own custom filters. - - - This abstract class assumes and also imposes that filters be - organized in a linear chain. The - method of each filter is called sequentially, in the order of their - addition to the chain. - - - The method must return one - of the integer constants , - or . - - - If the value is returned, then the log event is dropped - immediately without consulting with the remaining filters. - - - If the value is returned, then the next filter - in the chain is consulted. If there are no more filters in the - chain, then the log event is logged. Thus, in the presence of no - filters, the default behavior is to log all logging events. - - - If the value is returned, then the log - event is logged without consulting the remaining filters. - - - The philosophy of log4net filters is largely inspired from the - Linux ipchains. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface to provide customized logging event filtering - - - - Users should implement this interface to implement customized logging - event filtering. Note that and - , the parent class of all standard - appenders, have built-in filtering rules. It is suggested that you - first use and understand the built-in rules before rushing to write - your own custom filters. - - - This abstract class assumes and also imposes that filters be - organized in a linear chain. The - method of each filter is called sequentially, in the order of their - addition to the chain. - - - The method must return one - of the integer constants , - or . - - - If the value is returned, then the log event is dropped - immediately without consulting with the remaining filters. - - - If the value is returned, then the next filter - in the chain is consulted. If there are no more filters in the - chain, then the log event is logged. Thus, in the presence of no - filters, the default behavior is to log all logging events. - - - If the value is returned, then the log - event is logged without consulting the remaining filters. - - - The philosophy of log4net filters is largely inspired from the - Linux ipchains. - - - Nicko Cadell - Gert Driesen - - - - Decide if the logging event should be logged through an appender. - - The LoggingEvent to decide upon - The decision of the filter - - - If the decision is , then the event will be - dropped. If the decision is , then the next - filter, if any, will be invoked. If the decision is then - the event will be logged without consulting with other filters in - the chain. - - - - - - Property to get and set the next filter - - - The next filter in the chain - - - - Filters are typically composed into chains. This property allows the next filter in - the chain to be accessed. - - - - - - Points to the next filter in the filter chain. - - - - See for more information. - - - - - - Initialize the filter with the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Typically filter's options become active immediately on set, - however this method must still be called. - - - - - - Decide if the should be logged through an appender. - - The to decide upon - The decision of the filter - - - If the decision is , then the event will be - dropped. If the decision is , then the next - filter, if any, will be invoked. If the decision is then - the event will be logged without consulting with other filters in - the chain. - - - This method is marked abstract and must be implemented - in a subclass. - - - - - - Property to get and set the next filter - - - The next filter in the chain - - - - Filters are typically composed into chains. This property allows the next filter in - the chain to be accessed. - - - - - - Default constructor - - - - - Always returns the integer constant - - the LoggingEvent to filter - Always returns - - - Ignores the event being logged and just returns - . This can be used to change the default filter - chain behavior from to . This filter - should only be used as the last filter in the chain - as any further filters will be ignored! - - - - - - The return result from - - - - The return result from - - - - - - The log event must be dropped immediately without - consulting with the remaining filters, if any, in the chain. - - - - - This filter is neutral with respect to the log event. - The remaining filters, if any, should be consulted for a final decision. - - - - - The log event must be logged immediately without - consulting with the remaining filters, if any, in the chain. - - - - - This is a very simple filter based on matching. - - - - The filter admits two options and - . If there is an exact match between the value - of the option and the of the - , then the method returns in - case the option value is set - to true, if it is false then - is returned. If the does not match then - the result will be . - - - Nicko Cadell - Gert Driesen - - - - flag to indicate if the filter should on a match - - - - - the to match against - - - - - Default constructor - - - - - Tests if the of the logging event matches that of the filter - - the event to filter - see remarks - - - If the of the event matches the level of the - filter then the result of the function depends on the - value of . If it is true then - the function will return , it it is false then it - will return . If the does not match then - the result will be . - - - - - - when matching - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - The that the filter will match - - - - The level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - This is a simple filter based on matching. - - - - The filter admits three options and - that determine the range of priorities that are matched, and - . If there is a match between the range - of priorities and the of the , then the - method returns in case the - option value is set to true, if it is false - then is returned. If there is no match, is returned. - - - Nicko Cadell - Gert Driesen - - - - Flag to indicate the behavior when matching a - - - - - the minimum value to match - - - - - the maximum value to match - - - - - Default constructor - - - - - Check if the event should be logged. - - the logging event to check - see remarks - - - If the of the logging event is outside the range - matched by this filter then - is returned. If the is matched then the value of - is checked. If it is true then - is returned, otherwise - is returned. - - - - - - when matching and - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - Set the minimum matched - - - - The minimum level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - Sets the maximum matched - - - - The maximum level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - Simple filter to match a string in the event's logger name. - - - - The works very similar to the . It admits two - options and . If the - of the starts - with the value of the option, then the - method returns in - case the option value is set to true, - if it is false then is returned. - - - Daniel Cazzulino - - - - Flag to indicate the behavior when we have a match - - - - - The logger name string to substring match against the event - - - - - Default constructor - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The rendered message is matched against the . - If the equals the beginning of - the incoming () - then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - when matching - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - The that the filter will match - - - - This filter will attempt to match this value against logger name in - the following way. The match will be done against the beginning of the - logger name (using ). The match is - case sensitive. If a match is found then - the result depends on the value of . - - - - - - Simple filter to match a keyed string in the - - - - Simple filter to match a keyed string in the - - - As the MDC has been replaced with layered properties the - should be used instead. - - - Nicko Cadell - Gert Driesen - - - - Simple filter to match a string an event property - - - - Simple filter to match a string in the value for a - specific event property - - - Nicko Cadell - - - - Simple filter to match a string in the rendered message - - - - Simple filter to match a string in the rendered message - - - Nicko Cadell - Gert Driesen - - - - Flag to indicate the behavior when we have a match - - - - - The string to substring match against the message - - - - - A string regex to match - - - - - A regex object to match (generated from m_stringRegexToMatch) - - - - - Default constructor - - - - - Initialize and precompile the Regex if required - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The rendered message is matched against the . - If the occurs as a substring within - the message then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - when matching or - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - Sets the static string to match - - - - The string that will be substring matched against - the rendered message. If the message contains this - string then the filter will match. If a match is found then - the result depends on the value of . - - - One of or - must be specified. - - - - - - Sets the regular expression to match - - - - The regular expression pattern that will be matched against - the rendered message. If the message matches this - pattern then the filter will match. If a match is found then - the result depends on the value of . - - - One of or - must be specified. - - - - - - The key to use to lookup the string from the event properties - - - - - Default constructor - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The event property for the is matched against - the . - If the occurs as a substring within - the property value then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - The key to lookup in the event properties and then match against. - - - - The key name to use to lookup in the properties map of the - . The match will be performed against - the value of this property if it exists. - - - - - - Simple filter to match a string in the - - - - Simple filter to match a string in the - - - As the MDC has been replaced with named stacks stored in the - properties collections the should - be used instead. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Sets the to "NDC". - - - - - - Write the event appdomain name to the output - - - - Writes the to the output writer. - - - Daniel Cazzulino - Nicko Cadell - - - - Abstract class that provides the formatting functionality that - derived classes need. - - - Conversion specifiers in a conversion patterns are parsed to - individual PatternConverters. Each of which is responsible for - converting a logging event in a converter specific manner. - - Nicko Cadell - - - - Abstract class that provides the formatting functionality that - derived classes need. - - - - Conversion specifiers in a conversion patterns are parsed to - individual PatternConverters. Each of which is responsible for - converting a logging event in a converter specific manner. - - - Nicko Cadell - Gert Driesen - - - - Initial buffer size - - - - - Maximum buffer size before it is recycled - - - - - Protected constructor - - - - Initializes a new instance of the class. - - - - - - Evaluate this pattern converter and write the output to a writer. - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the appropriate way. - - - - - - Set the next pattern converter in the chains - - the pattern converter that should follow this converter in the chain - the next converter - - - The PatternConverter can merge with its neighbor during this method (or a sub class). - Therefore the return value may or may not be the value of the argument passed in. - - - - - - Write the pattern converter to the writer with appropriate formatting - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - This method calls to allow the subclass to perform - appropriate conversion of the pattern converter. If formatting options have - been specified via the then this method will - apply those formattings before writing the output. - - - - - - Fast space padding method. - - to which the spaces will be appended. - The number of spaces to be padded. - - - Fast space padding method. - - - - - - The option string to the converter - - - - - Write an dictionary to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the to a writer in the form: - - - {key1=value1, key2=value2, key3=value3} - - - If the specified - is not null then it is used to render the key and value to text, otherwise - the object's ToString method is called. - - - - - - Write an dictionary to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the to a writer in the form: - - - {key1=value1, key2=value2, key3=value3} - - - If the specified - is not null then it is used to render the key and value to text, otherwise - the object's ToString method is called. - - - - - - Write an object to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the Object to a writer. If the specified - is not null then it is used to render the object to text, otherwise - the object's ToString method is called. - - - - - - Get the next pattern converter in the chain - - - the next pattern converter in the chain - - - - Get the next pattern converter in the chain - - - - - - Gets or sets the formatting info for this converter - - - The formatting info for this converter - - - - Gets or sets the formatting info for this converter - - - - - - Gets or sets the option value for this converter - - - The option for this converter - - - - Gets or sets the option value for this converter - - - - - - - - - - - Initializes a new instance of the class. - - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The on which the pattern converter should be executed. - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - - Flag indicating if this converter handles exceptions - - - false if this converter handles exceptions - - - - - Flag indicating if this converter handles the logging event exception - - false if this converter handles the logging event exception - - - If this converter handles the exception object contained within - , then this property should be set to - false. Otherwise, if the layout ignores the exception - object, then the property should be set to true. - - - Set this value to override a this default setting. The default - value is true, this converter does not handle the exception. - - - - - - Write the event appdomain name to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output . - - - - - - Date pattern converter, uses a to format - the date of a . - - - - Render the to the writer as a string. - - - The value of the determines - the formatting of the date. The following values are allowed: - - - Option value - Output - - - ISO8601 - - Uses the formatter. - Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. - - - - DATE - - Uses the formatter. - Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". - - - - ABSOLUTE - - Uses the formatter. - Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". - - - - other - - Any other pattern string uses the formatter. - This formatter passes the pattern string to the - method. - For details on valid patterns see - DateTimeFormatInfo Class. - - - - - - The is in the local time zone and is rendered in that zone. - To output the time in Universal time see . - - - Nicko Cadell - - - - The used to render the date to a string - - - - The used to render the date to a string - - - - - - Initialize the converter pattern based on the property. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Convert the pattern into the rendered message - - that will receive the formatted result. - the event being logged - - - Pass the to the - for it to render it to the writer. - - - The passed is in the local time zone. - - - - - - The fully qualified type of the DatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the exception text to the output - - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - - - If there is no exception then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - Nicko Cadell - - - - Default constructor - - - - - Write the exception text to the output - - that will receive the formatted result. - the event being logged - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - - - If there is no exception or the exception property specified - by the Option value does not exist then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - Recognized values for the Option parameter are: - - - - Message - - - Source - - - StackTrace - - - TargetSite - - - HelpLink - - - - - - - Writes the caller location file name to the output - - - - Writes the value of the for - the event to the output writer. - - - Nicko Cadell - - - - Write the caller location file name to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the for - the to the output . - - - - - - Write the caller location info to the output - - - - Writes the to the output writer. - - - Nicko Cadell - - - - Write the caller location info to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output writer. - - - - - - Writes the event identity to the output - - - - Writes the value of the to - the output writer. - - - Daniel Cazzulino - Nicko Cadell - - - - Writes the event identity to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the - to - the output . - - - - - - Write the event level to the output - - - - Writes the display name of the event - to the writer. - - - Nicko Cadell - - - - Write the event level to the output - - that will receive the formatted result. - the event being logged - - - Writes the of the - to the . - - - - - - Write the caller location line number to the output - - - - Writes the value of the for - the event to the output writer. - - - Nicko Cadell - - - - Write the caller location line number to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the for - the to the output . - - - - - - Converter for logger name - - - - Outputs the of the event. - - - Nicko Cadell - - - - Converter to output and truncate '.' separated strings - - - - This abstract class supports truncating a '.' separated string - to show a specified number of elements from the right hand side. - This is used to truncate class names that are fully qualified. - - - Subclasses should override the method to - return the fully qualified string. - - - Nicko Cadell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Get the fully qualified string data - - the event being logged - the fully qualified name - - - Overridden by subclasses to get the fully qualified name before the - precision is applied to it. - - - Return the fully qualified '.' (dot/period) separated string. - - - - - - Convert the pattern to the rendered message - - that will receive the formatted result. - the event being logged - - Render the to the precision - specified by the property. - - - - - The fully qualified type of the NamedPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the fully qualified name of the logger - - the event being logged - The fully qualified logger name - - - Returns the of the . - - - - - - Writes the event message to the output - - - - Uses the method - to write out the event message. - - - Nicko Cadell - - - - Writes the event message to the output - - that will receive the formatted result. - the event being logged - - - Uses the method - to write out the event message. - - - - - - Write the method name to the output - - - - Writes the caller location to - the output. - - - Nicko Cadell - - - - Write the method name to the output - - that will receive the formatted result. - the event being logged - - - Writes the caller location to - the output. - - - - - - Converter to include event NDC - - - - Outputs the value of the event property named NDC. - - - The should be used instead. - - - Nicko Cadell - - - - Write the event NDC to the output - - that will receive the formatted result. - the event being logged - - - As the thread context stacks are now stored in named event properties - this converter simply looks up the value of the NDC property. - - - The should be used instead. - - - - - - Property pattern converter - - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - Nicko Cadell - - - - Write the property value to the output - - that will receive the formatted result. - the event being logged - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - - - - Converter to output the relative time of the event - - - - Converter to output the time of the event relative to the start of the program. - - - Nicko Cadell - - - - Write the relative time to the output - - that will receive the formatted result. - the event being logged - - - Writes out the relative time of the event in milliseconds. - That is the number of milliseconds between the event - and the . - - - - - - Helper method to get the time difference between two DateTime objects - - start time (in the current local time zone) - end time (in the current local time zone) - the time difference in milliseconds - - - - Write the caller stack frames to the output - - - - Writes the to the output writer, using format: - type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) - - - Adam Davies - - - - Write the caller stack frames to the output - - - - Writes the to the output writer, using format: - type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 - - - Michael Cromwell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the strack frames to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output writer. - - - - - - Returns the Name of the method - - - This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter - string - - - - The fully qualified type of the StackTracePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - The fully qualified type of the StackTraceDetailPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Converter to include event thread name - - - - Writes the to the output. - - - Nicko Cadell - - - - Write the ThreadName to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the . - - - - - - Pattern converter for the class name - - - - Outputs the of the event. - - - Nicko Cadell - - - - Gets the fully qualified name of the class - - the event being logged - The fully qualified type name for the caller location - - - Returns the of the . - - - - - - Converter to include event user name - - Douglas de la Torre - Nicko Cadell - - - - Convert the pattern to the rendered message - - that will receive the formatted result. - the event being logged - - - - Write the TimeStamp to the output - - - - Date pattern converter, uses a to format - the date of a . - - - Uses a to format the - in Universal time. - - - See the for details on the date pattern syntax. - - - - Nicko Cadell - - - - Write the TimeStamp to the output - - that will receive the formatted result. - the event being logged - - - Pass the to the - for it to render it to the writer. - - - The passed is in the local time zone, this is converted - to Universal time before it is rendered. - - - - - - - The fully qualified type of the UtcDatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - A Layout that renders only the Exception text from the logging event - - - - A Layout that renders only the Exception text from the logging event. - - - This Layout should only be used with appenders that utilize multiple - layouts (e.g. ). - - - Nicko Cadell - Gert Driesen - - - - Extend this abstract class to create your own log layout format. - - - - This is the base implementation of the - interface. Most layout objects should extend this class. - - - - - - Subclasses must implement the - method. - - - Subclasses should set the in their default - constructor. - - - - Nicko Cadell - Gert Driesen - - - - Interface implemented by layout objects - - - - An object is used to format a - as text. The method is called by an - appender to transform the into a string. - - - The layout can also supply and - text that is appender before any events and after all the events respectively. - - - Nicko Cadell - Gert Driesen - - - - Implement this method to create your own layout format. - - The TextWriter to write the formatted event to - The event to format - - - This method is called by an appender to format - the as text and output to a writer. - - - If the caller does not have a and prefers the - event to be formatted as a then the following - code can be used to format the event into a . - - - StringWriter writer = new StringWriter(); - Layout.Format(writer, loggingEvent); - string formattedEvent = writer.ToString(); - - - - - - The content type output by this layout. - - The content type - - - The content type output by this layout. - - - This is a MIME type e.g. "text/plain". - - - - - - The header for the layout format. - - the layout header - - - The Header text will be appended before any logging events - are formatted and appended. - - - - - - The footer for the layout format. - - the layout footer - - - The Footer text will be appended after all the logging events - have been formatted and appended. - - - - - - Flag indicating if this layout handle exceptions - - false if this layout handles exceptions - - - If this layout handles the exception object contained within - , then the layout should return - false. Otherwise, if the layout ignores the exception - object, then the layout should return true. - - - - - - The header text - - - - See for more information. - - - - - - The footer text - - - - See for more information. - - - - - - Flag indicating if this layout handles exceptions - - - - false if this layout handles exceptions - - - - - - Empty default constructor - - - - Empty default constructor - - - - - - Activate component options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - This method must be implemented by the subclass. - - - - - - Implement this method to create your own layout format. - - The TextWriter to write the formatted event to - The event to format - - - This method is called by an appender to format - the as text. - - - - - - Convenience method for easily formatting the logging event into a string variable. - - - - Creates a new StringWriter instance to store the formatted logging event. - - - - - The content type output by this layout. - - The content type is "text/plain" - - - The content type output by this layout. - - - This base class uses the value "text/plain". - To change this value a subclass must override this - property. - - - - - - The header for the layout format. - - the layout header - - - The Header text will be appended before any logging events - are formatted and appended. - - - - - - The footer for the layout format. - - the layout footer - - - The Footer text will be appended after all the logging events - have been formatted and appended. - - - - - - Flag indicating if this layout handles exceptions - - false if this layout handles exceptions - - - If this layout handles the exception object contained within - , then the layout should return - false. Otherwise, if the layout ignores the exception - object, then the layout should return true. - - - Set this value to override a this default setting. The default - value is true, this layout does not handle the exception. - - - - - - Default constructor - - - - Constructs a ExceptionLayout - - - - - - Activate component options - - - - Part of the component activation - framework. - - - This method does nothing as options become effective immediately. - - - - - - Gets the exception text from the logging event - - The TextWriter to write the formatted event to - the event being logged - - - Write the exception string to the . - The exception string is retrieved from . - - - - - - Interface for raw layout objects - - - - Interface used to format a - to an object. - - - This interface should not be confused with the - interface. This interface is used in - only certain specialized situations where a raw object is - required rather than a formatted string. The - is not generally useful than this interface. - - - Nicko Cadell - Gert Driesen - - - - Implement this method to create your own layout format. - - The event to format - returns the formatted event - - - Implement this method to create your own layout format. - - - - - - Adapts any to a - - - - Where an is required this adapter - allows a to be specified. - - - Nicko Cadell - Gert Driesen - - - - The layout to adapt - - - - - Construct a new adapter - - the layout to adapt - - - Create the adapter for the specified . - - - - - - Format the logging event as an object. - - The event to format - returns the formatted event - - - Format the logging event as an object. - - - Uses the object supplied to - the constructor to perform the formatting. - - - - - - A flexible layout configurable with pattern string. - - - - The goal of this class is to a - as a string. The results - depend on the conversion pattern. - - - The conversion pattern is closely related to the conversion - pattern of the printf function in C. A conversion pattern is - composed of literal text and format control expressions called - conversion specifiers. - - - You are free to insert any literal text within the conversion - pattern. - - - Each conversion specifier starts with a percent sign (%) and is - followed by optional format modifiers and a conversion - pattern name. The conversion pattern name specifies the type of - data, e.g. logger, level, date, thread name. The format - modifiers control such things as field width, padding, left and - right justification. The following is a simple example. - - - Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume - that the log4net environment was set to use a PatternLayout. Then the - statements - - - ILog log = LogManager.GetLogger(typeof(TestApp)); - log.Debug("Message 1"); - log.Warn("Message 2"); - - would yield the output - - DEBUG [main]: Message 1 - WARN [main]: Message 2 - - - Note that there is no explicit separator between text and - conversion specifiers. The pattern parser knows when it has reached - the end of a conversion specifier when it reads a conversion - character. In the example above the conversion specifier - %-5level means the level of the logging event should be left - justified to a width of five characters. - - - The recognized conversion pattern names are: - - - - Conversion Pattern Name - Effect - - - a - Equivalent to appdomain - - - appdomain - - Used to output the friendly name of the AppDomain where the - logging event was generated. - - - - aspnet-cache - - - Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-context - - - Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-request - - - Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-session - - - Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - c - Equivalent to logger - - - C - Equivalent to type - - - class - Equivalent to type - - - d - Equivalent to date - - - date - - - Used to output the date of the logging event in the local time zone. - To output the date in universal time use the %utcdate pattern. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %date{HH:mm:ss,fff} or - %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %date{ISO8601} or %date{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - exception - - - Used to output the exception passed in with the log message. - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - If there is no exception then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - - - F - Equivalent to file - - - file - - - Used to output the file name where the logging request was - issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - identity - - - Used to output the user name for the currently active user - (Principal.Identity.Name). - - - WARNING Generating caller information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - - - l - Equivalent to location - - - L - Equivalent to line - - - location - - - Used to output location information of the caller which generated - the logging event. - - - The location information depends on the CLI implementation but - usually consists of the fully qualified name of the calling - method followed by the callers source the file name and line - number between parentheses. - - - The location information can be very useful. However, its - generation is extremely slow. Its use should be avoided - unless execution speed is not an issue. - - - See the note below on the availability of caller location information. - - - - - level - - - Used to output the level of the logging event. - - - - - line - - - Used to output the line number from where the logging request - was issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - logger - - - Used to output the logger of the logging event. The - logger conversion specifier can be optionally followed by - precision specifier, that is a decimal constant in - brackets. - - - If a precision specifier is given, then only the corresponding - number of right most components of the logger name will be - printed. By default the logger name is printed in full. - - - For example, for the logger name "a.b.c" the pattern - %logger{2} will output "b.c". - - - - - m - Equivalent to message - - - M - Equivalent to method - - - message - - - Used to output the application supplied message associated with - the logging event. - - - - - mdc - - - The MDC (old name for the ThreadContext.Properties) is now part of the - combined event properties. This pattern is supported for compatibility - but is equivalent to property. - - - - - method - - - Used to output the method name where the logging request was - issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - n - Equivalent to newline - - - newline - - - Outputs the platform dependent line separator character or - characters. - - - This conversion pattern offers the same performance as using - non-portable line separator strings such as "\n", or "\r\n". - Thus, it is the preferred way of specifying a line separator. - - - - - ndc - - - Used to output the NDC (nested diagnostic context) associated - with the thread that generated the logging event. - - - - - p - Equivalent to level - - - P - Equivalent to property - - - properties - Equivalent to property - - - property - - - Used to output the an event specific property. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %property{user} would include the value - from the property that is keyed by the string 'user'. Each property value - that is to be included in the log must be specified separately. - Properties are added to events by loggers or appenders. By default - the log4net:HostName property is set to the name of machine on - which the event was originally logged. - - - If no key is specified, e.g. %property then all the keys and their - values are printed in a comma separated list. - - - The properties of an event are combined from a number of different - contexts. These are listed below in the order in which they are searched. - - - - the event properties - - The event has that can be set. These - properties are specific to this event only. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - - r - Equivalent to timestamp - - - stacktrace - - - Used to output the stack trace of the logging event - The stack trace level specifier may be enclosed - between braces. For example, %stacktrace{level}. - If no stack trace level specifier is given then 1 is assumed - - - Output uses the format: - type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 - - - This pattern is not available for Compact Framework assemblies. - - - - - stacktracedetail - - - Used to output the stack trace of the logging event - The stack trace level specifier may be enclosed - between braces. For example, %stacktracedetail{level}. - If no stack trace level specifier is given then 1 is assumed - - - Output uses the format: - type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) - - - This pattern is not available for Compact Framework assemblies. - - - - - t - Equivalent to thread - - - timestamp - - - Used to output the number of milliseconds elapsed since the start - of the application until the creation of the logging event. - - - - - thread - - - Used to output the name of the thread that generated the - logging event. Uses the thread number if no name is available. - - - - - type - - - Used to output the fully qualified type name of the caller - issuing the logging request. This conversion specifier - can be optionally followed by precision specifier, that - is a decimal constant in brackets. - - - If a precision specifier is given, then only the corresponding - number of right most components of the class name will be - printed. By default the class name is output in fully qualified form. - - - For example, for the class name "log4net.Layout.PatternLayout", the - pattern %type{1} will output "PatternLayout". - - - WARNING Generating the caller class information is - slow. Thus, its use should be avoided unless execution speed is - not an issue. - - - See the note below on the availability of caller location information. - - - - - u - Equivalent to identity - - - username - - - Used to output the WindowsIdentity for the currently - active user. - - - WARNING Generating caller WindowsIdentity information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - - - utcdate - - - Used to output the date of the logging event in universal time. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %utcdate{HH:mm:ss,fff} or - %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %utcdate{ISO8601} or %utcdate{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - w - Equivalent to username - - - x - Equivalent to ndc - - - X - Equivalent to mdc - - - % - - - The sequence %% outputs a single percent sign. - - - - - - The single letter patterns are deprecated in favor of the - longer more descriptive pattern names. - - - By default the relevant information is output as is. However, - with the aid of format modifiers it is possible to change the - minimum field width, the maximum field width and justification. - - - The optional format modifier is placed between the percent sign - and the conversion pattern name. - - - The first optional format modifier is the left justification - flag which is just the minus (-) character. Then comes the - optional minimum field width modifier. This is a decimal - constant that represents the minimum number of characters to - output. If the data item requires fewer characters, it is padded on - either the left or the right until the minimum width is - reached. The default is to pad on the left (right justify) but you - can specify right padding with the left justification flag. The - padding character is space. If the data item is larger than the - minimum field width, the field is expanded to accommodate the - data. The value is never truncated. - - - This behavior can be changed using the maximum field - width modifier which is designated by a period followed by a - decimal constant. If the data item is longer than the maximum - field, then the extra characters are removed from the - beginning of the data item and not from the end. For - example, it the maximum field width is eight and the data item is - ten characters long, then the first two characters of the data item - are dropped. This behavior deviates from the printf function in C - where truncation is done from the end. - - - Below are various format modifier examples for the logger - conversion specifier. - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Format modifierleft justifyminimum widthmaximum widthcomment
    %20loggerfalse20none - - Left pad with spaces if the logger name is less than 20 - characters long. - -
    %-20loggertrue20none - - Right pad with spaces if the logger - name is less than 20 characters long. - -
    %.30loggerNAnone30 - - Truncate from the beginning if the logger - name is longer than 30 characters. - -
    %20.30loggerfalse2030 - - Left pad with spaces if the logger name is shorter than 20 - characters. However, if logger name is longer than 30 characters, - then truncate from the beginning. - -
    %-20.30loggertrue2030 - - Right pad with spaces if the logger name is shorter than 20 - characters. However, if logger name is longer than 30 characters, - then truncate from the beginning. - -
    -
    - - Note about caller location information.
    - The following patterns %type %file %line %method %location %class %C %F %L %l %M - all generate caller location information. - Location information uses the System.Diagnostics.StackTrace class to generate - a call stack. The caller's information is then extracted from this stack. -
    - - - The System.Diagnostics.StackTrace class is not supported on the - .NET Compact Framework 1.0 therefore caller location information is not - available on that framework. - - - - - The System.Diagnostics.StackTrace class has this to say about Release builds: - - - "StackTrace information will be most informative with Debug build configurations. - By default, Debug builds include debug symbols, while Release builds do not. The - debug symbols contain most of the file, method name, line number, and column - information used in constructing StackFrame and StackTrace objects. StackTrace - might not report as many method calls as expected, due to code transformations - that occur during optimization." - - - This means that in a Release build the caller information may be incomplete or may - not exist at all! Therefore caller location information cannot be relied upon in a Release build. - - - - Additional pattern converters may be registered with a specific - instance using the method. - -
    - - This is a more detailed pattern. - %timestamp [%thread] %level %logger %ndc - %message%newline - - - A similar pattern except that the relative time is - right padded if less than 6 digits, thread name is right padded if - less than 15 characters and truncated if longer and the logger - name is left padded if shorter than 30 characters and truncated if - longer. - %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline - - Nicko Cadell - Gert Driesen - Douglas de la Torre - Daniel Cazzulino -
    - - - Default pattern string for log output. - - - - Default pattern string for log output. - Currently set to the string "%message%newline" - which just prints the application supplied message. - - - - - - A detailed conversion pattern - - - - A conversion pattern which includes Time, Thread, Logger, and Nested Context. - Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. - - - - - - Internal map of converter identifiers to converter types. - - - - This static map is overridden by the m_converterRegistry instance map - - - - - - the pattern - - - - - the head of the pattern converter chain - - - - - patterns defined on this PatternLayout only - - - - - Initialize the global registry - - - - Defines the builtin global rules. - - - - - - Constructs a PatternLayout using the DefaultConversionPattern - - - - The default pattern just produces the application supplied message. - - - Note to Inheritors: This constructor calls the virtual method - . If you override this method be - aware that it will be called before your is called constructor. - - - As per the contract the - method must be called after the properties on this object have been - configured. - - - - - - Constructs a PatternLayout using the supplied conversion pattern - - the pattern to use - - - Note to Inheritors: This constructor calls the virtual method - . If you override this method be - aware that it will be called before your is called constructor. - - - When using this constructor the method - need not be called. This may not be the case when using a subclass. - - - - - - Create the pattern parser instance - - the pattern to parse - The that will format the event - - - Creates the used to parse the conversion string. Sets the - global and instance rules on the . - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a formatted string as specified by the conversion pattern. - - the event being logged - The TextWriter to write the formatted event to - - - Parse the using the patter format - specified in the property. - - - - - - Add a converter to this PatternLayout - - the converter info - - - This version of the method is used by the configurator. - Programmatic users should use the alternative method. - - - - - - Add a converter to this PatternLayout - - the name of the conversion pattern for this converter - the type of the converter - - - Add a named pattern converter to this instance. This - converter will be used in the formatting of the event. - This method must be called before . - - - The specified must extend the - type. - - - - - - The pattern formatting string - - - - The ConversionPattern option. This is the string which - controls formatting and consists of a mix of literal content and - conversion specifiers. - - - - - - Type converter for the interface - - - - Used to convert objects to the interface. - Supports converting from the interface to - the interface using the . - - - Nicko Cadell - Gert Driesen - - - - Interface supported by type converters - - - - This interface supports conversion from arbitrary types - to a single target type. See . - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Test if the can be converted to the - type supported by this converter. - - - - - - Convert the source object to the type supported by this object - - the object to convert - the converted object - - - Converts the to the type supported - by this converter. - - - - - - Can the sourceType be converted to an - - the source to be to be converted - true if the source type can be converted to - - - Test if the can be converted to a - . Only is supported - as the . - - - - - - Convert the value to a object - - the value to convert - the object - - - Convert the object to a - object. If the object - is a then the - is used to adapt between the two interfaces, otherwise an - exception is thrown. - - - - - - Extract the value of a property from the - - - - Extract the value of a property from the - - - Nicko Cadell - - - - Constructs a RawPropertyLayout - - - - - Lookup the property for - - The event to format - returns property value - - - Looks up and returns the object value of the property - named . If there is no property defined - with than name then null will be returned. - - - - - - The name of the value to lookup in the LoggingEvent Properties collection. - - - Value to lookup in the LoggingEvent Properties collection - - - - String name of the property to lookup in the . - - - - - - Extract the date from the - - - - Extract the date from the - - - Nicko Cadell - Gert Driesen - - - - Constructs a RawTimeStampLayout - - - - - Gets the as a . - - The event to format - returns the time stamp - - - Gets the as a . - - - The time stamp is in local time. To format the time stamp - in universal time use . - - - - - - Extract the date from the - - - - Extract the date from the - - - Nicko Cadell - Gert Driesen - - - - Constructs a RawUtcTimeStampLayout - - - - - Gets the as a . - - The event to format - returns the time stamp - - - Gets the as a . - - - The time stamp is in universal time. To format the time stamp - in local time use . - - - - - - A very simple layout - - - - SimpleLayout consists of the level of the log statement, - followed by " - " and then the log message itself. For example, - - DEBUG - Hello world - - - - Nicko Cadell - Gert Driesen - - - - Constructs a SimpleLayout - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a simple formatted output. - - the event being logged - The TextWriter to write the formatted event to - - - Formats the event as the level of the even, - followed by " - " and then the log message itself. The - output is terminated by a newline. - - - - - - Layout that formats the log events as XML elements. - - - - The output of the consists of a series of - log4net:event elements. It does not output a complete well-formed XML - file. The output is designed to be included as an external entity - in a separate file to form a correct XML file. - - - For example, if abc is the name of the file where - the output goes, then a well-formed XML file would - be: - - - <?xml version="1.0" ?> - - <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> - - <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> - &data; - </log4net:events> - - - This approach enforces the independence of the - and the appender where it is embedded. - - - The version attribute helps components to correctly - interpret output generated by . The value of - this attribute should be "1.2" for release 1.2 and later. - - - Alternatively the Header and Footer properties can be - configured to output the correct XML header, open tag and close tag. - When setting the Header and Footer properties it is essential - that the underlying data store not be appendable otherwise the data - will become invalid XML. - - - Nicko Cadell - Gert Driesen - - - - Layout that formats the log events as XML elements. - - - - This is an abstract class that must be subclassed by an implementation - to conform to a specific schema. - - - Deriving classes must implement the method. - - - Nicko Cadell - Gert Driesen - - - - Protected constructor to support subclasses - - - - Initializes a new instance of the class - with no location info. - - - - - - Protected constructor to support subclasses - - - - The parameter determines whether - location information will be output by the layout. If - is set to true, then the - file name and line number of the statement at the origin of the log - statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a formatted string. - - The event being logged. - The TextWriter to write the formatted event to - - - Format the and write it to the . - - - This method creates an that writes to the - . The is passed - to the method. Subclasses should override the - method rather than this method. - - - - - - Does the actual writing of the XML. - - The writer to use to output the event to. - The event to write. - - - Subclasses should override this method to format - the as XML. - - - - - - Flag to indicate if location information should be included in - the XML events. - - - - - The string to replace invalid chars with - - - - - Gets a value indicating whether to include location information in - the XML events. - - - true if location information should be included in the XML - events; otherwise, false. - - - - If is set to true, then the file - name and line number of the statement at the origin of the log - statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - The string to replace characters that can not be expressed in XML with. - - - Not all characters may be expressed in XML. This property contains the - string to replace those that can not with. This defaults to a ?. Set it - to the empty string to simply remove offending characters. For more - details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets - Character replacement will occur in the log message, the property names - and the property values. - - - - - - - Gets the content type output by this layout. - - - As this is the XML layout, the value is always "text/xml". - - - - As this is the XML layout, the value is always "text/xml". - - - - - - Constructs an XmlLayout - - - - - Constructs an XmlLayout. - - - - The LocationInfo option takes a boolean value. By - default, it is set to false which means there will be no location - information output by this layout. If the the option is set to - true, then the file name and line number of the statement - at the origin of the log statement will be output. - - - If you are embedding this layout within an SmtpAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Builds a cache of the element names - - - - - - Does the actual writing of the XML. - - The writer to use to output the event to. - The event to write. - - - Override the base class method - to write the to the . - - - - - - The prefix to use for all generated element names - - - - - The prefix to use for all element names - - - - The default prefix is log4net. Set this property - to change the prefix. If the prefix is set to an empty string - then no prefix will be written. - - - - - - Set whether or not to base64 encode the message. - - - - By default the log message will be written as text to the xml - output. This can cause problems when the message contains binary - data. By setting this to true the contents of the message will be - base64 encoded. If this is set then invalid character replacement - (see ) will not be performed - on the log message. - - - - - - Set whether or not to base64 encode the property values. - - - - By default the properties will be written as text to the xml - output. This can cause problems when one or more properties contain - binary data. By setting this to true the values of the properties - will be base64 encoded. If this is set then invalid character replacement - (see ) will not be performed - on the property values. - - - - - - Layout that formats the log events as XML elements compatible with the log4j schema - - - - Formats the log events according to the http://logging.apache.org/log4j schema. - - - Nicko Cadell - - - - The 1st of January 1970 in UTC - - - - - Constructs an XMLLayoutSchemaLog4j - - - - - Constructs an XMLLayoutSchemaLog4j. - - - - The LocationInfo option takes a boolean value. By - default, it is set to false which means there will be no location - information output by this layout. If the the option is set to - true, then the file name and line number of the statement - at the origin of the log statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Actually do the writing of the xml - - the writer to use - the event to write - - - Generate XML that is compatible with the log4j schema. - - - - - - The version of the log4j schema to use. - - - - Only version 1.2 of the log4j schema is supported. - - - - - - The default object Renderer. - - - - The default renderer supports rendering objects and collections to strings. - - - See the method for details of the output. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface in order to render objects as strings - - - - Certain types require special case conversion to - string form. This conversion is done by an object renderer. - Object renderers implement the - interface. - - - Nicko Cadell - Gert Driesen - - - - Render the object to a string - - The map used to lookup renderers - The object to render - The writer to render to - - - Render the object to a - string. - - - The parameter is - provided to lookup and render other objects. This is - very useful where contains - nested objects of unknown type. The - method can be used to render these objects. - - - - - - Default constructor - - - - Default constructor - - - - - - Render the object to a string - - The map used to lookup renderers - The object to render - The writer to render to - - - Render the object to a string. - - - The parameter is - provided to lookup and render other objects. This is - very useful where contains - nested objects of unknown type. The - method can be used to render these objects. - - - The default renderer supports rendering objects to strings as follows: - - - - Value - Rendered String - - - null - - "(null)" - - - - - - - For a one dimensional array this is the - array type name, an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. - - - For example: int[] {1, 2, 3}. - - - If the array is not one dimensional the - Array.ToString() is returned. - - - - - , & - - - Rendered as an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. - - - For example: {a, b, c}. - - - All collection classes that implement its subclasses, - or generic equivalents all implement the interface. - - - - - - - - Rendered as the key, an equals sign ('='), and the value (using the appropriate - renderer). - - - For example: key=value. - - - - - other - - Object.ToString() - - - - - - - - Render the array argument into a string - - The map used to lookup renderers - the array to render - The writer to render to - - - For a one dimensional array this is the - array type name, an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. For example: - int[] {1, 2, 3}. - - - If the array is not one dimensional the - Array.ToString() is returned. - - - - - - Render the enumerator argument into a string - - The map used to lookup renderers - the enumerator to render - The writer to render to - - - Rendered as an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. For example: - {a, b, c}. - - - - - - Render the DictionaryEntry argument into a string - - The map used to lookup renderers - the DictionaryEntry to render - The writer to render to - - - Render the key, an equals sign ('='), and the value (using the appropriate - renderer). For example: key=value. - - - - - - Map class objects to an . - - - - Maintains a mapping between types that require special - rendering and the that - is used to render them. - - - The method is used to render an - object using the appropriate renderers defined in this map. - - - Nicko Cadell - Gert Driesen - - - - Default Constructor - - - - Default constructor. - - - - - - Render using the appropriate renderer. - - the object to render to a string - the object rendered as a string - - - This is a convenience method used to render an object to a string. - The alternative method - should be used when streaming output to a . - - - - - - Render using the appropriate renderer. - - the object to render to a string - The writer to render to - - - Find the appropriate renderer for the type of the - parameter. This is accomplished by calling the - method. Once a renderer is found, it is - applied on the object and the result is returned - as a . - - - - - - Gets the renderer for the specified object type - - the object to lookup the renderer for - the renderer for - - - Gets the renderer for the specified object type. - - - Syntactic sugar method that calls - with the type of the object parameter. - - - - - - Gets the renderer for the specified type - - the type to lookup the renderer for - the renderer for the specified type - - - Returns the renderer for the specified type. - If no specific renderer has been defined the - will be returned. - - - - - - Internal function to recursively search interfaces - - the type to lookup the renderer for - the renderer for the specified type - - - - Clear the map of renderers - - - - Clear the custom renderers defined by using - . The - cannot be removed. - - - - - - Register an for . - - the type that will be rendered by - the renderer for - - - Register an object renderer for a specific source type. - This renderer will be returned from a call to - specifying the same as an argument. - - - - - - Get the default renderer instance - - the default renderer - - - Get the default renderer - - - - - - Interface implemented by logger repository plugins. - - - - Plugins define additional behavior that can be associated - with a . - The held by the - property is used to store the plugins for a repository. - - - The log4net.Config.PluginAttribute can be used to - attach plugins to repositories created using configuration - attributes. - - - Nicko Cadell - Gert Driesen - - - - Attaches the plugin to the specified . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - This method is called to notify the plugin that - it should stop operating and should detach from - the repository. - - - - - - Gets the name of the plugin. - - - The name of the plugin. - - - - Plugins are stored in the - keyed by name. Each plugin instance attached to a - repository must be a unique name. - - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a PluginCollection instance. - - list to create a readonly wrapper arround - - A PluginCollection wrapper that is read-only. - - - - - Initializes a new instance of the PluginCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the PluginCollection class - that has the specified initial capacity. - - - The number of elements that the new PluginCollection is initially capable of storing. - - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified PluginCollection. - - The PluginCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - - Copies the entire PluginCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire PluginCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the PluginCollection. - - The to be added to the end of the PluginCollection. - The index at which the value has been added. - - - - Removes all elements from the PluginCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the PluginCollection. - - The to check for. - true if is found in the PluginCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the PluginCollection. - - The to locate in the PluginCollection. - - The zero-based index of the first occurrence of - in the entire PluginCollection, if found; otherwise, -1. - - - - - Inserts an element into the PluginCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the PluginCollection. - - The to remove from the PluginCollection. - - The specified was not found in the PluginCollection. - - - - - Removes the element at the specified index of the PluginCollection. - - The zero-based index of the element to remove. - - is less than zero. - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the PluginCollection. - - An for the entire PluginCollection. - - - - Adds the elements of another PluginCollection to the current PluginCollection. - - The PluginCollection whose elements should be added to the end of the current PluginCollection. - The new of the PluginCollection. - - - - Adds the elements of a array to the current PluginCollection. - - The array whose elements should be added to the end of the PluginCollection. - The new of the PluginCollection. - - - - Adds the elements of a collection to the current PluginCollection. - - The collection whose elements should be added to the end of the PluginCollection. - The new of the PluginCollection. - - - - Sets the capacity to the actual number of elements. - - - - - is less than zero. - -or- - is equal to or greater than . - - - - - is less than zero. - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the PluginCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - An object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - - The at the specified index. - - The zero-based index of the element to get or set. - - is less than zero. - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false. - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false. - - - - Gets or sets the number of elements the PluginCollection can contain. - - - The number of elements the PluginCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - - A value - - - - - Supports simple iteration over a . - - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - The current element in the collection. - - - - - - - - Map of repository plugins. - - - - This class is a name keyed map of the plugins that are - attached to a repository. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The repository that the plugins should be attached to. - - - Initialize a new instance of the class with a - repository that the plugins should be attached to. - - - - - - Adds a to the map. - - The to add to the map. - - - The will be attached to the repository when added. - - - If there already exists a plugin with the same name - attached to the repository then the old plugin will - be and replaced with - the new plugin. - - - - - - Removes a from the map. - - The to remove from the map. - - - Remove a specific plugin from this map. - - - - - - Gets a by name. - - The name of the to lookup. - - The from the map with the name specified, or - null if no plugin is found. - - - - Lookup a plugin by name. If the plugin is not found null - will be returned. - - - - - - Gets all possible plugins as a list of objects. - - All possible plugins as a list of objects. - - - Get a collection of all the plugins defined in this map. - - - - - - Base implementation of - - - - Default abstract implementation of the - interface. This base class can be used by implementors - of the interface. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - the name of the plugin - - Initializes a new Plugin with the specified name. - - - - - Attaches this plugin to a . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - This method is called to notify the plugin that - it should stop operating and should detach from - the repository. - - - - - - The name of this plugin. - - - - - The repository this plugin is attached to. - - - - - Gets or sets the name of the plugin. - - - The name of the plugin. - - - - Plugins are stored in the - keyed by name. Each plugin instance attached to a - repository must be a unique name. - - - The name of the plugin must not change one the - plugin has been attached to a repository. - - - - - - The repository for this plugin - - - The that this plugin is attached to. - - - - Gets or sets the that this plugin is - attached to. - - - - - - Plugin that listens for events from the - - - - This plugin publishes an instance of - on a specified . This listens for logging events delivered from - a remote . - - - When an event is received it is relogged within the attached repository - as if it had been raised locally. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Initializes a new instance of the class. - - - The property must be set. - - - - - - Construct with sink Uri. - - The name to publish the sink under in the remoting infrastructure. - See for more details. - - - Initializes a new instance of the class - with specified name. - - - - - - Attaches this plugin to a . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - When the plugin is shutdown the remote logging - sink is disconnected. - - - - - - The fully qualified type of the RemoteLoggingServerPlugin class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the URI of this sink. - - - The URI of this sink. - - - - This is the name under which the object is marshaled. - - - - - - - Delivers objects to a remote sink. - - - - Internal class used to listen for logging events - and deliver them to the local repository. - - - - - - Constructor - - The repository to log to. - - - Initializes a new instance of the for the - specified . - - - - - - Logs the events to the repository. - - The events to log. - - - The events passed are logged to the - - - - - - Obtains a lifetime service object to control the lifetime - policy for this instance. - - null to indicate that this instance should live forever. - - - Obtains a lifetime service object to control the lifetime - policy for this instance. This object should live forever - therefore this implementation returns null. - - - - - - The underlying that events should - be logged to. - - - - - Default implementation of - - - - This default implementation of the - interface is used to create the default subclass - of the object. - - - Nicko Cadell - Gert Driesen - - - - Interface abstracts creation of instances - - - - This interface is used by the to - create new objects. - - - The method is called - to create a named . - - - Implement this interface to create new subclasses of . - - - Nicko Cadell - Gert Driesen - - - - Create a new instance - - The that will own the . - The name of the . - The instance for the specified name. - - - Create a new instance with the - specified name. - - - Called by the to create - new named instances. - - - If the is null then the root logger - must be returned. - - - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Create a new instance - - The that will own the . - The name of the . - The instance for the specified name. - - - Create a new instance with the - specified name. - - - Called by the to create - new named instances. - - - If the is null then the root logger - must be returned. - - - - - - Default internal subclass of - - - - This subclass has no additional behavior over the - class but does allow instances - to be created. - - - - - - Implementation of used by - - - - Internal class used to provide implementation of - interface. Applications should use to get - logger instances. - - - This is one of the central classes in the log4net implementation. One of the - distinctive features of log4net are hierarchical loggers and their - evaluation. The organizes the - instances into a rooted tree hierarchy. - - - The class is abstract. Only concrete subclasses of - can be created. The - is used to create instances of this type for the . - - - Nicko Cadell - Gert Driesen - Aspi Havewala - Douglas de la Torre - - - - This constructor created a new instance and - sets its name. - - The name of the . - - - This constructor is protected and designed to be used by - a subclass that is not abstract. - - - Loggers are constructed by - objects. See for the default - logger creator. - - - - - - Add to the list of appenders of this - Logger instance. - - An appender to add to this logger - - - Add to the list of appenders of this - Logger instance. - - - If is already in the list of - appenders, then it won't be added again. - - - - - - Look for the appender named as name - - The name of the appender to lookup - The appender with the name specified, or null. - - - Returns the named appender, or null if the appender is not found. - - - - - - Remove all previously added appenders from this Logger instance. - - - - Remove all previously added appenders from this Logger instance. - - - This is useful when re-reading configuration information. - - - - - - Remove the appender passed as parameter form the list of appenders. - - The appender to remove - The appender removed from the list - - - Remove the appender passed as parameter form the list of appenders. - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Remove the appender passed as parameter form the list of appenders. - - The name of the appender to remove - The appender removed from the list - - - Remove the named appender passed as parameter form the list of appenders. - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - This generic form is intended to be used by wrappers. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generate a logging event for the specified using - the and . - - - This method must not throw any exception to the caller. - - - - - - This is the most generic printing method that is intended to be used - by wrappers. - - The event being logged. - - - Logs the specified logging event through this logger. - - - This method must not throw any exception to the caller. - - - - - - Checks if this logger is enabled for a given passed as parameter. - - The level to check. - - true if this logger is enabled for level, otherwise false. - - - - Test if this logger is going to log events of the specified . - - - This method must not throw any exception to the caller. - - - - - - Deliver the to the attached appenders. - - The event to log. - - - Call the appenders in the hierarchy starting at - this. If no appenders could be found, emit a - warning. - - - This method calls all the appenders inherited from the - hierarchy circumventing any evaluation of whether to log or not - to log the particular log request. - - - - - - Closes all attached appenders implementing the interface. - - - - Used to ensure that the appenders are correctly shutdown. - - - - - - This is the most generic printing method. This generic form is intended to be used by wrappers - - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generate a logging event for the specified using - the . - - - - - - Creates a new logging event and logs the event without further checks. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generates a logging event and delivers it to the attached - appenders. - - - - - - Creates a new logging event and logs the event without further checks. - - The event being logged. - - - Delivers the logging event to the attached appenders. - - - - - - The fully qualified type of the Logger class. - - - - - The name of this logger. - - - - - The assigned level of this logger. - - - - The level variable need not be - assigned a value in which case it is inherited - form the hierarchy. - - - - - - The parent of this logger. - - - - The parent of this logger. - All loggers have at least one ancestor which is the root logger. - - - - - - Loggers need to know what Hierarchy they are in. - - - - Loggers need to know what Hierarchy they are in. - The hierarchy that this logger is a member of is stored - here. - - - - - - Helper implementation of the interface - - - - - Flag indicating if child loggers inherit their parents appenders - - - - Additivity is set to true by default, that is children inherit - the appenders of their ancestors by default. If this variable is - set to false then the appenders found in the - ancestors of this logger are not used. However, the children - of this logger will inherit its appenders, unless the children - have their additivity flag set to false too. See - the user manual for more details. - - - - - - Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl - - - - - Gets or sets the parent logger in the hierarchy. - - - The parent logger in the hierarchy. - - - - Part of the Composite pattern that makes the hierarchy. - The hierarchy is parent linked rather than child linked. - - - - - - Gets or sets a value indicating if child loggers inherit their parent's appenders. - - - true if child loggers inherit their parent's appenders. - - - - Additivity is set to true by default, that is children inherit - the appenders of their ancestors by default. If this variable is - set to false then the appenders found in the - ancestors of this logger are not used. However, the children - of this logger will inherit its appenders, unless the children - have their additivity flag set to false too. See - the user manual for more details. - - - - - - Gets the effective level for this logger. - - The nearest level in the logger hierarchy. - - - Starting from this logger, searches the logger hierarchy for a - non-null level and returns it. Otherwise, returns the level of the - root logger. - - The Logger class is designed so that this method executes as - quickly as possible. - - - - - Gets or sets the where this - Logger instance is attached to. - - The hierarchy that this logger belongs to. - - - This logger must be attached to a single . - - - - - - Gets or sets the assigned , if any, for this Logger. - - - The of this logger. - - - - The assigned can be null. - - - - - - Get the appenders contained in this logger as an - . - - A collection of the appenders in this logger - - - Get the appenders contained in this logger as an - . If no appenders - can be found, then a is returned. - - - - - - Gets the logger name. - - - The name of the logger. - - - - The name of this logger - - - - - - Gets the where this - Logger instance is attached to. - - - The that this logger belongs to. - - - - Gets the where this - Logger instance is attached to. - - - - - - Construct a new Logger - - the name of the logger - - - Initializes a new instance of the class - with the specified name. - - - - - - Delegate used to handle logger creation event notifications. - - The in which the has been created. - The event args that hold the instance that has been created. - - - Delegate used to handle logger creation event notifications. - - - - - - Provides data for the event. - - - - A event is raised every time a - is created. - - - - - - The created - - - - - Constructor - - The that has been created. - - - Initializes a new instance of the event argument - class,with the specified . - - - - - - Gets the that has been created. - - - The that has been created. - - - - The that has been created. - - - - - - Hierarchical organization of loggers - - - - The casual user should not have to deal with this class - directly. - - - This class is specialized in retrieving loggers by name and - also maintaining the logger hierarchy. Implements the - interface. - - - The structure of the logger hierarchy is maintained by the - method. The hierarchy is such that children - link to their parent but parents do not have any references to their - children. Moreover, loggers can be instantiated in any order, in - particular descendant before ancestor. - - - In case a descendant is created before a particular ancestor, - then it creates a provision node for the ancestor and adds itself - to the provision node. Other descendants of the same ancestor add - themselves to the previously created provision node. - - - Nicko Cadell - Gert Driesen - - - - Base implementation of - - - - Default abstract implementation of the interface. - - - Skeleton implementation of the interface. - All types can extend this type. - - - Nicko Cadell - Gert Driesen - - - - Interface implemented by logger repositories. - - - - This interface is implemented by logger repositories. e.g. - . - - - This interface is used by the - to obtain interfaces. - - - Nicko Cadell - Gert Driesen - - - - Check if the named logger exists in the repository. If so return - its reference, otherwise returns null. - - The name of the logger to lookup - The Logger object with the name specified - - - If the names logger exists it is returned, otherwise - null is returned. - - - - - - Returns all the currently defined loggers as an Array. - - All the defined loggers - - - Returns all the currently defined loggers as an Array. - - - - - - Returns a named logger instance - - The name of the logger to retrieve - The logger object with the name specified - - - Returns a named logger instance. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - - - Shutdown the repository - - - Shutting down a repository will safely close and remove - all appenders in all loggers including the root logger. - - - Some appenders need to be closed before the - application exists. Otherwise, pending logging events might be - lost. - - - The method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Reset the repositories configuration to a default state - - - - Reset all values contained in this instance to their - default state. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the through this repository. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are configured as an Array. - - All the Appenders - - - Returns all the Appenders that are configured as an Array. - - - - - - The name of the repository - - - The name of the repository - - - - The name of the repository. - - - - - - RendererMap accesses the object renderer map for this repository. - - - RendererMap accesses the object renderer map for this repository. - - - - RendererMap accesses the object renderer map for this repository. - - - The RendererMap holds a mapping between types and - objects. - - - - - - The plugin map for this repository. - - - The plugin map for this repository. - - - - The plugin map holds the instances - that have been attached to this repository. - - - - - - Get the level map for the Repository. - - - - Get the level map for the Repository. - - - The level map defines the mappings between - level names and objects in - this repository. - - - - - - The threshold for all events in this repository - - - The threshold for all events in this repository - - - - The threshold for all events in this repository. - - - - - - Flag indicates if this repository has been configured. - - - Flag indicates if this repository has been configured. - - - - Flag indicates if this repository has been configured. - - - - - - Collection of internal messages captured during the most - recent configuration process. - - - - - Event to notify that the repository has been shutdown. - - - Event to notify that the repository has been shutdown. - - - - Event raised when the repository has been shutdown. - - - - - - Event to notify that the repository has had its configuration reset. - - - Event to notify that the repository has had its configuration reset. - - - - Event raised when the repository's configuration has been - reset to default. - - - - - - Event to notify that the repository has had its configuration changed. - - - Event to notify that the repository has had its configuration changed. - - - - Event raised when the repository's configuration has been changed. - - - - - - Repository specific properties - - - Repository specific properties - - - - These properties can be specified on a repository specific basis. - - - - - - Default Constructor - - - - Initializes the repository with default (empty) properties. - - - - - - Construct the repository using specific properties - - the properties to set for this repository - - - Initializes the repository with specified properties. - - - - - - Test if logger exists - - The name of the logger to lookup - The Logger object with the name specified - - - Check if the named logger exists in the repository. If so return - its reference, otherwise returns null. - - - - - - Returns all the currently defined loggers in the repository - - All the defined loggers - - - Returns all the currently defined loggers in the repository as an Array. - - - - - - Return a new logger instance - - The name of the logger to retrieve - The logger object with the name specified - - - Return a new logger instance. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - - - - Shutdown the repository - - - - Shutdown the repository. Can be overridden in a subclass. - This base class implementation notifies the - listeners and all attached plugins of the shutdown event. - - - - - - Reset the repositories configuration to a default state - - - - Reset all values contained in this instance to their - default state. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the logEvent through this repository. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are configured as an Array. - - All the Appenders - - - Returns all the Appenders that are configured as an Array. - - - - - - The fully qualified type of the LoggerRepositorySkeleton class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Adds an object renderer for a specific class. - - The type that will be rendered by the renderer supplied. - The object renderer used to render the object. - - - Adds an object renderer for a specific class. - - - - - - Notify the registered listeners that the repository is shutting down - - Empty EventArgs - - - Notify any listeners that this repository is shutting down. - - - - - - Notify the registered listeners that the repository has had its configuration reset - - Empty EventArgs - - - Notify any listeners that this repository's configuration has been reset. - - - - - - Notify the registered listeners that the repository has had its configuration changed - - Empty EventArgs - - - Notify any listeners that this repository's configuration has changed. - - - - - - Raise a configuration changed event on this repository - - EventArgs.Empty - - - Applications that programmatically change the configuration of the repository should - raise this event notification to notify listeners. - - - - - - The name of the repository - - - The string name of the repository - - - - The name of this repository. The name is - used to store and lookup the repositories - stored by the . - - - - - - The threshold for all events in this repository - - - The threshold for all events in this repository - - - - The threshold for all events in this repository - - - - - - RendererMap accesses the object renderer map for this repository. - - - RendererMap accesses the object renderer map for this repository. - - - - RendererMap accesses the object renderer map for this repository. - - - The RendererMap holds a mapping between types and - objects. - - - - - - The plugin map for this repository. - - - The plugin map for this repository. - - - - The plugin map holds the instances - that have been attached to this repository. - - - - - - Get the level map for the Repository. - - - - Get the level map for the Repository. - - - The level map defines the mappings between - level names and objects in - this repository. - - - - - - Flag indicates if this repository has been configured. - - - Flag indicates if this repository has been configured. - - - - Flag indicates if this repository has been configured. - - - - - - Contains a list of internal messages captures during the - last configuration. - - - - - Event to notify that the repository has been shutdown. - - - Event to notify that the repository has been shutdown. - - - - Event raised when the repository has been shutdown. - - - - - - Event to notify that the repository has had its configuration reset. - - - Event to notify that the repository has had its configuration reset. - - - - Event raised when the repository's configuration has been - reset to default. - - - - - - Event to notify that the repository has had its configuration changed. - - - Event to notify that the repository has had its configuration changed. - - - - Event raised when the repository's configuration has been changed. - - - - - - Repository specific properties - - - Repository specific properties - - - These properties can be specified on a repository specific basis - - - - - Basic Configurator interface for repositories - - - - Interface used by basic configurator to configure a - with a default . - - - A should implement this interface to support - configuration by the . - - - Nicko Cadell - Gert Driesen - - - - Initialize the repository using the specified appender - - the appender to use to log all logging events - - - Configure the repository to route all logging events to the - specified appender. - - - - - - Initialize the repository using the specified appenders - - the appenders to use to log all logging events - - - Configure the repository to route all logging events to the - specified appenders. - - - - - - Configure repository using XML - - - - Interface used by Xml configurator to configure a . - - - A should implement this interface to support - configuration by the . - - - Nicko Cadell - Gert Driesen - - - - Initialize the repository using the specified config - - the element containing the root of the config - - - The schema for the XML configuration data is defined by - the implementation. - - - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Construct with properties - - The properties to pass to this repository. - - - Initializes a new instance of the class. - - - - - - Construct with a logger factory - - The factory to use to create new logger instances. - - - Initializes a new instance of the class with - the specified . - - - - - - Construct with properties and a logger factory - - The properties to pass to this repository. - The factory to use to create new logger instances. - - - Initializes a new instance of the class with - the specified . - - - - - - Test if a logger exists - - The name of the logger to lookup - The Logger object with the name specified - - - Check if the named logger exists in the hierarchy. If so return - its reference, otherwise returns null. - - - - - - Returns all the currently defined loggers in the hierarchy as an Array - - All the defined loggers - - - Returns all the currently defined loggers in the hierarchy as an Array. - The root logger is not included in the returned - enumeration. - - - - - - Return a new logger instance named as the first parameter using - the default factory. - - - - Return a new logger instance named as the first parameter using - the default factory. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - The name of the logger to retrieve - The logger object with the name specified - - - - Shutting down a hierarchy will safely close and remove - all appenders in all loggers including the root logger. - - - - Shutting down a hierarchy will safely close and remove - all appenders in all loggers including the root logger. - - - Some appenders need to be closed before the - application exists. Otherwise, pending logging events might be - lost. - - - The Shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Reset all values contained in this hierarchy instance to their default. - - - - Reset all values contained in this hierarchy instance to their - default. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the logEvent through this hierarchy. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are currently configured - - An array containing all the currently configured appenders - - - Returns all the instances that are currently configured. - All the loggers are searched for appenders. The appenders may also be containers - for appenders and these are also searched for additional loggers. - - - The list returned is unordered but does not contain duplicates. - - - - - - Collect the appenders from an . - The appender may also be a container. - - - - - - - Collect the appenders from an container - - - - - - - Initialize the log4net system using the specified appender - - the appender to use to log all logging events - - - - Initialize the log4net system using the specified appenders - - the appenders to use to log all logging events - - - - Initialize the log4net system using the specified appenders - - the appenders to use to log all logging events - - - This method provides the same functionality as the - method implemented - on this object, but it is protected and therefore can be called by subclasses. - - - - - - Initialize the log4net system using the specified config - - the element containing the root of the config - - - - Initialize the log4net system using the specified config - - the element containing the root of the config - - - This method provides the same functionality as the - method implemented - on this object, but it is protected and therefore can be called by subclasses. - - - - - - Test if this hierarchy is disabled for the specified . - - The level to check against. - - true if the repository is disabled for the level argument, false otherwise. - - - - If this hierarchy has not been configured then this method will - always return true. - - - This method will return true if this repository is - disabled for level object passed as parameter and - false otherwise. - - - See also the property. - - - - - - Clear all logger definitions from the internal hashtable - - - - This call will clear all logger definitions from the internal - hashtable. Invoking this method will irrevocably mess up the - logger hierarchy. - - - You should really know what you are doing before - invoking this method. - - - - - - Return a new logger instance named as the first parameter using - . - - The name of the logger to retrieve - The factory that will make the new logger instance - The logger object with the name specified - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated by the - parameter and linked with its existing - ancestors as well as children. - - - - - - Sends a logger creation event to all registered listeners - - The newly created logger - - Raises the logger creation event. - - - - - Updates all the parents of the specified logger - - The logger to update the parents for - - - This method loops through all the potential parents of - . There 3 possible cases: - - - - No entry for the potential parent of exists - - We create a ProvisionNode for this potential - parent and insert in that provision node. - - - - The entry is of type Logger for the potential parent. - - The entry is 's nearest existing parent. We - update 's parent field with this entry. We also break from - he loop because updating our parent's parent is our parent's - responsibility. - - - - The entry is of type ProvisionNode for this potential parent. - - We add to the list of children for this - potential parent. - - - - - - - - Replace a with a in the hierarchy. - - - - - - We update the links for all the children that placed themselves - in the provision node 'pn'. The second argument 'log' is a - reference for the newly created Logger, parent of all the - children in 'pn'. - - - We loop on all the children 'c' in 'pn'. - - - If the child 'c' has been already linked to a child of - 'log' then there is no need to update 'c'. - - - Otherwise, we set log's parent field to c's parent and set - c's parent field to log. - - - - - - Define or redefine a Level using the values in the argument - - the level values - - - Define or redefine a Level using the values in the argument - - - Supports setting levels via the configuration file. - - - - - - Set a Property using the values in the argument - - the property value - - - Set a Property using the values in the argument. - - - Supports setting property values via the configuration file. - - - - - - The fully qualified type of the Hierarchy class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Event used to notify that a logger has been created. - - - - Event raised when a logger is created. - - - - - - Has no appender warning been emitted - - - - Flag to indicate if we have already issued a warning - about not having an appender warning. - - - - - - Get the root of this hierarchy - - - - Get the root of this hierarchy. - - - - - - Gets or sets the default instance. - - The default - - - The logger factory is used to create logger instances. - - - - - - A class to hold the value, name and display name for a level - - - - A class to hold the value, name and display name for a level - - - - - - Override Object.ToString to return sensible debug info - - string info about this object - - - - Value of the level - - - - If the value is not set (defaults to -1) the value will be looked - up for the current level with the same name. - - - - - - Name of the level - - - The name of the level - - - - The name of the level. - - - - - - Display name for the level - - - The display name of the level - - - - The display name of the level. - - - - - - Used internally to accelerate hash table searches. - - - - Internal class used to improve performance of - string keyed hashtables. - - - The hashcode of the string is cached for reuse. - The string is stored as an interned value. - When comparing two objects for equality - the reference equality of the interned strings is compared. - - - Nicko Cadell - Gert Driesen - - - - Construct key with string name - - - - Initializes a new instance of the class - with the specified name. - - - Stores the hashcode of the string and interns - the string key to optimize comparisons. - - - The Compact Framework 1.0 the - method does not work. On the Compact Framework - the string keys are not interned nor are they - compared by reference. - - - The name of the logger. - - - - Returns a hash code for the current instance. - - A hash code for the current instance. - - - Returns the cached hashcode. - - - - - - Determines whether two instances - are equal. - - The to compare with the current . - - true if the specified is equal to the current ; otherwise, false. - - - - Compares the references of the interned strings. - - - - - - Provision nodes are used where no logger instance has been specified - - - - instances are used in the - when there is no specified - for that node. - - - A provision node holds a list of child loggers on behalf of - a logger that does not exist. - - - Nicko Cadell - Gert Driesen - - - - Create a new provision node with child node - - A child logger to add to this node. - - - Initializes a new instance of the class - with the specified child logger. - - - - - - The sits at the root of the logger hierarchy tree. - - - - The is a regular except - that it provides several guarantees. - - - First, it cannot be assigned a null - level. Second, since the root logger cannot have a parent, the - property always returns the value of the - level field without walking the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Construct a - - The level to assign to the root logger. - - - Initializes a new instance of the class with - the specified logging level. - - - The root logger names itself as "root". However, the root - logger cannot be retrieved by name. - - - - - - The fully qualified type of the RootLogger class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the assigned level value without walking the logger hierarchy. - - The assigned level value without walking the logger hierarchy. - - - Because the root logger cannot have a parent and its level - must not be null this property just returns the - value of . - - - - - - Gets or sets the assigned for the root logger. - - - The of the root logger. - - - - Setting the level of the root logger to a null reference - may have catastrophic results. We prevent this here. - - - - - - Initializes the log4net environment using an XML DOM. - - - - Configures a using an XML DOM. - - - Nicko Cadell - Gert Driesen - - - - Construct the configurator for a hierarchy - - The hierarchy to build. - - - Initializes a new instance of the class - with the specified . - - - - - - Configure the hierarchy by parsing a DOM tree of XML elements. - - The root element to parse. - - - Configure the hierarchy by parsing a DOM tree of XML elements. - - - - - - Parse appenders by IDREF. - - The appender ref element. - The instance of the appender that the ref refers to. - - - Parse an XML element that represents an appender and return - the appender. - - - - - - Parses an appender element. - - The appender element. - The appender instance or null when parsing failed. - - - Parse an XML element that represents an appender and return - the appender instance. - - - - - - Parses a logger element. - - The logger element. - - - Parse an XML element that represents a logger. - - - - - - Parses the root logger element. - - The root element. - - - Parse an XML element that represents the root logger. - - - - - - Parses the children of a logger element. - - The category element. - The logger instance. - Flag to indicate if the logger is the root logger. - - - Parse the child elements of a <logger> element. - - - - - - Parses an object renderer. - - The renderer element. - - - Parse an XML element that represents a renderer. - - - - - - Parses a level element. - - The level element. - The logger object to set the level on. - Flag to indicate if the logger is the root logger. - - - Parse an XML element that represents a level. - - - - - - Sets a parameter on an object. - - The parameter element. - The object to set the parameter on. - - The parameter name must correspond to a writable property - on the object. The value of the parameter is a string, - therefore this function will attempt to set a string - property first. If unable to set a string property it - will inspect the property and its argument type. It will - attempt to call a static method called Parse on the - type of the property. This method will take a single - string argument and return a value that can be used to - set the property. - - - - - Test if an element has no attributes or child elements - - the element to inspect - true if the element has any attributes or child elements, false otherwise - - - - Test if a is constructible with Activator.CreateInstance. - - the type to inspect - true if the type is creatable using a default constructor, false otherwise - - - - Look for a method on the that matches the supplied - - the type that has the method - the name of the method - the method info found - - - The method must be a public instance method on the . - The method must be named or "Add" followed by . - The method must take a single parameter. - - - - - - Converts a string value to a target type. - - The type of object to convert the string to. - The string value to use as the value of the object. - - - An object of type with value or - null when the conversion could not be performed. - - - - - - Creates an object as specified in XML. - - The XML element that contains the definition of the object. - The object type to use if not explicitly specified. - The type that the returned object must be or must inherit from. - The object or null - - - Parse an XML element and create an object instance based on the configuration - data. - - - The type of the instance may be specified in the XML. If not - specified then the is used - as the type. However the type is specified it must support the - type. - - - - - - key: appenderName, value: appender. - - - - - The Hierarchy being configured. - - - - - The fully qualified type of the XmlHierarchyConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - - - - - - - - - - - - - - - - - Delegate used to handle logger repository shutdown event notifications - - The that is shutting down. - Empty event args - - - Delegate used to handle logger repository shutdown event notifications. - - - - - - Delegate used to handle logger repository configuration reset event notifications - - The that has had its configuration reset. - Empty event args - - - Delegate used to handle logger repository configuration reset event notifications. - - - - - - Delegate used to handle event notifications for logger repository configuration changes. - - The that has had its configuration changed. - Empty event arguments. - - - Delegate used to handle event notifications for logger repository configuration changes. - - - - - - Write the name of the current AppDomain to the output - - - - Write the name of the current AppDomain to the output writer - - - Nicko Cadell - - - - Write the name of the current AppDomain to the output - - the writer to write to - null, state is not set - - - Writes name of the current AppDomain to the output . - - - - - - Write the current date to the output - - - - Date pattern converter, uses a to format - the current date and time to the writer as a string. - - - The value of the determines - the formatting of the date. The following values are allowed: - - - Option value - Output - - - ISO8601 - - Uses the formatter. - Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. - - - - DATE - - Uses the formatter. - Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". - - - - ABSOLUTE - - Uses the formatter. - Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". - - - - other - - Any other pattern string uses the formatter. - This formatter passes the pattern string to the - method. - For details on valid patterns see - DateTimeFormatInfo Class. - - - - - - The date and time is in the local time zone and is rendered in that zone. - To output the time in Universal time see . - - - Nicko Cadell - - - - The used to render the date to a string - - - - The used to render the date to a string - - - - - - Initialize the converter options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the current date to the output - - that will receive the formatted result. - null, state is not set - - - Pass the current date and time to the - for it to render it to the writer. - - - The date and time passed is in the local time zone. - - - - - - The fully qualified type of the DatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write an folder path to the output - - - - Write an special path environment folder path to the output writer. - The value of the determines - the name of the variable to output. - should be a value in the enumeration. - - - Ron Grabowski - - - - Write an special path environment folder path to the output - - the writer to write to - null, state is not set - - - Writes the special path environment folder path to the output . - The name of the special path environment folder path to output must be set - using the - property. - - - - - - The fully qualified type of the EnvironmentFolderPathPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write an environment variable to the output - - - - Write an environment variable to the output writer. - The value of the determines - the name of the variable to output. - - - Nicko Cadell - - - - Write an environment variable to the output - - the writer to write to - null, state is not set - - - Writes the environment variable to the output . - The name of the environment variable to output must be set - using the - property. - - - - - - The fully qualified type of the EnvironmentPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the current thread identity to the output - - - - Write the current thread identity to the output writer - - - Nicko Cadell - - - - Write the current thread identity to the output - - the writer to write to - null, state is not set - - - Writes the current thread identity to the output . - - - - - - The fully qualified type of the IdentityPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Pattern converter for literal string instances in the pattern - - - - Writes the literal string value specified in the - property to - the output. - - - Nicko Cadell - - - - Set the next converter in the chain - - The next pattern converter in the chain - The next pattern converter - - - Special case the building of the pattern converter chain - for instances. Two adjacent - literals in the pattern can be represented by a single combined - pattern converter. This implementation detects when a - is added to the chain - after this converter and combines its value with this converter's - literal value. - - - - - - Write the literal to the output - - the writer to write to - null, not set - - - Override the formatting behavior to ignore the FormattingInfo - because we have a literal instead. - - - Writes the value of - to the output . - - - - - - Convert this pattern into the rendered message - - that will receive the formatted result. - null, not set - - - This method is not used. - - - - - - Writes a newline to the output - - - - Writes the system dependent line terminator to the output. - This behavior can be overridden by setting the : - - - - Option Value - Output - - - DOS - DOS or Windows line terminator "\r\n" - - - UNIX - UNIX line terminator "\n" - - - - Nicko Cadell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the current process ID to the output - - - - Write the current process ID to the output writer - - - Nicko Cadell - - - - Write the current process ID to the output - - the writer to write to - null, state is not set - - - Write the current process ID to the output . - - - - - - The fully qualified type of the ProcessIdPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Property pattern converter - - - - This pattern converter reads the thread and global properties. - The thread properties take priority over global properties. - See for details of the - thread properties. See for - details of the global properties. - - - If the is specified then that will be used to - lookup a single property. If no is specified - then all properties will be dumped as a list of key value pairs. - - - Nicko Cadell - - - - Write the property value to the output - - that will receive the formatted result. - null, state is not set - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - - - - A Pattern converter that generates a string of random characters - - - - The converter generates a string of random characters. By default - the string is length 4. This can be changed by setting the - to the string value of the length required. - - - The random characters in the string are limited to uppercase letters - and numbers only. - - - The random number generator used by this class is not cryptographically secure. - - - Nicko Cadell - - - - Shared random number generator - - - - - Length of random string to generate. Default length 4. - - - - - Initialize the converter options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write a randoim string to the output - - the writer to write to - null, state is not set - - - Write a randoim string to the output . - - - - - - The fully qualified type of the RandomStringPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the current threads username to the output - - - - Write the current threads username to the output writer - - - Nicko Cadell - - - - Write the current threads username to the output - - the writer to write to - null, state is not set - - - Write the current threads username to the output . - - - - - - The fully qualified type of the UserNamePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the UTC date time to the output - - - - Date pattern converter, uses a to format - the current date and time in Universal time. - - - See the for details on the date pattern syntax. - - - - Nicko Cadell - - - - Write the current date and time to the output - - that will receive the formatted result. - null, state is not set - - - Pass the current date and time to the - for it to render it to the writer. - - - The date is in Universal time when it is rendered. - - - - - - - The fully qualified type of the UtcDatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Type converter for Boolean. - - - - Supports conversion from string to bool type. - - - - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Convert the source object to the type supported by this object - - the object to convert - the converted object - - - Uses the method to convert the - argument to a . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Exception base type for conversion errors. - - - - This type extends . It - does not add any new functionality but does differentiate the - type of exception being thrown. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - A message to include with the exception. - - - Initializes a new instance of the class - with the specified message. - - - - - - Constructor - - A message to include with the exception. - A nested exception to include. - - - Initializes a new instance of the class - with the specified message and inner exception. - - - - - - Serialization constructor - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Creates a new instance of the class. - - The conversion destination type. - The value to convert. - An instance of the . - - - Creates a new instance of the class. - - - - - - Creates a new instance of the class. - - The conversion destination type. - The value to convert. - A nested exception to include. - An instance of the . - - - Creates a new instance of the class. - - - - - - Register of type converters for specific types. - - - - Maintains a registry of type converters used to convert between - types. - - - Use the and - methods to register new converters. - The and methods - lookup appropriate converters to use. - - - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - Initializes a new instance of the class. - - - - - Static constructor. - - - - This constructor defines the intrinsic type converters. - - - - - - Adds a converter for a specific type. - - The type being converted to. - The type converter to use to convert to the destination type. - - - Adds a converter instance for a specific type. - - - - - - Adds a converter for a specific type. - - The type being converted to. - The type of the type converter to use to convert to the destination type. - - - Adds a converter for a specific type. - - - - - - Gets the type converter to use to convert values to the destination type. - - The type being converted from. - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - Gets the type converter to use to convert values to the destination type. - - - - - - Gets the type converter to use to convert values to the destination type. - - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - Gets the type converter to use to convert values to the destination type. - - - - - - Lookups the type converter to use as specified by the attributes on the - destination type. - - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - - Creates the instance of the type converter. - - The type of the type converter. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - The type specified for the type converter must implement - the or interfaces - and must have a public default (no argument) constructor. - - - - - - The fully qualified type of the ConverterRegistry class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Mapping from to type converter. - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to an encoding - the encoding - - - Uses the method to - convert the argument to an . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Interface supported by type converters - - - - This interface supports conversion from a single type to arbitrary types. - See . - - - Nicko Cadell - - - - Returns whether this converter can convert the object to the specified type - - A Type that represents the type you want to convert to - true if the conversion is possible - - - Test if the type supported by this converter can be converted to the - . - - - - - - Converts the given value object to the specified type, using the arguments - - the object to convert - The Type to convert the value parameter to - the converted object - - - Converts the (which must be of the type supported - by this converter) to the specified.. - - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to an IPAddress - the IPAddress - - - Uses the method to convert the - argument to an . - If that fails then the string is resolved as a DNS hostname. - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - The string is used as the - of the . - - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a PatternLayout - the PatternLayout - - - Creates and returns a new using - the as the - . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Convert between string and - - - - Supports conversion from string to type, - and from a type to a string. - - - The string is used as the - of the . - - - - - - Nicko Cadell - - - - Can the target type be converted to the type supported by this object - - A that represents the type you want to convert to - true if the conversion is possible - - - Returns true if the is - assignable from a type. - - - - - - Converts the given value object to the specified type, using the arguments - - the object to convert - The Type to convert the value parameter to - the converted object - - - Uses the method to convert the - argument to a . - - - - The object cannot be converted to the - . To check for this condition use the - method. - - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a PatternString - the PatternString - - - Creates and returns a new using - the as the - . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a Type - the Type - - - Uses the method to convert the - argument to a . - Additional effort is made to locate partially specified types - by searching the loaded assemblies. - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Attribute used to associate a type converter - - - - Class and Interface level attribute that specifies a type converter - to use with the associated type. - - - To associate a type converter with a target type apply a - TypeConverterAttribute to the target type. Specify the - type of the type converter on the attribute. - - - Nicko Cadell - Gert Driesen - - - - The string type name of the type converter - - - - - Default constructor - - - - Default constructor - - - - - - Create a new type converter attribute for the specified type name - - The string type name of the type converter - - - The type specified must implement the - or the interfaces. - - - - - - Create a new type converter attribute for the specified type - - The type of the type converter - - - The type specified must implement the - or the interfaces. - - - - - - The string type name of the type converter - - - The string type name of the type converter - - - - The type specified must implement the - or the interfaces. - - - - - - A straightforward implementation of the interface. - - - - This is the default implementation of the - interface. Implementors of the interface - should aggregate an instance of this type. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Append on on all attached appenders. - - The event being logged. - The number of appenders called. - - - Calls the method on all - attached appenders. - - - - - - Append on on all attached appenders. - - The array of events being logged. - The number of appenders called. - - - Calls the method on all - attached appenders. - - - - - - Calls the DoAppende method on the with - the objects supplied. - - The appender - The events - - - If the supports the - interface then the will be passed - through using that interface. Otherwise the - objects in the array will be passed one at a time. - - - - - - Attaches an appender. - - The appender to add. - - - If the appender is already in the list it won't be added again. - - - - - - Gets an attached appender with the specified name. - - The name of the appender to get. - - The appender with the name specified, or null if no appender with the - specified name is found. - - - - Lookup an attached appender by name. - - - - - - Removes all attached appenders. - - - - Removes and closes all attached appenders - - - - - - Removes the specified appender from the list of attached appenders. - - The appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - List of appenders - - - - - Array of appenders, used to cache the m_appenderList - - - - - The fully qualified type of the AppenderAttachedImpl class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets all attached appenders. - - - A collection of attached appenders, or null if there - are no attached appenders. - - - - The read only collection of all currently attached appenders. - - - - - - This class aggregates several PropertiesDictionary collections together. - - - - Provides a dictionary style lookup over an ordered list of - collections. - - - Nicko Cadell - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Add a Properties Dictionary to this composite collection - - the properties to add - - - Properties dictionaries added first take precedence over dictionaries added - later. - - - - - - Flatten this composite collection into a single properties dictionary - - the flattened dictionary - - - Reduces the collection of ordered dictionaries to a single dictionary - containing the resultant values for the keys. - - - - - - Gets the value of a property - - - The value for the property with the specified key - - - - Looks up the value for the specified. - The collections are searched - in the order in which they were added to this collection. The value - returned is the value held by the first collection that contains - the specified key. - - - If none of the collections contain the specified key then - null is returned. - - - - - - Base class for Context Properties implementations - - - - This class defines a basic property get set accessor - - - Nicko Cadell - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Gets or sets the value of a property - - - - - - Wrapper class used to map converter names to converter types - - - - Pattern converter info class used during configuration by custom - PatternString and PatternLayer converters. - - - - - - default constructor - - - - - - - - - - - Gets or sets the name of the conversion pattern - - - - The name of the pattern in the format string - - - - - - Gets or sets the type of the converter - - - - The value specified must extend the - type. - - - - - - - - - - - Subclass of that maintains a count of - the number of bytes written. - - - - This writer counts the number of bytes written. - - - Nicko Cadell - Gert Driesen - - - - that does not leak exceptions - - - - does not throw exceptions when things go wrong. - Instead, it delegates error handling to its . - - - Nicko Cadell - Gert Driesen - - - - Adapter that extends and forwards all - messages to an instance of . - - - - Adapter that extends and forwards all - messages to an instance of . - - - Nicko Cadell - - - - The writer to forward messages to - - - - - Create an instance of that forwards all - messages to a . - - The to forward to - - - Create an instance of that forwards all - messages to a . - - - - - - Closes the writer and releases any system resources associated with the writer - - - - - - - - - Dispose this writer - - flag indicating if we are being disposed - - - Dispose this writer - - - - - - Flushes any buffered output - - - - Clears all buffers for the writer and causes any buffered data to be written - to the underlying device - - - - - - Writes a character to the wrapped TextWriter - - the value to write to the TextWriter - - - Writes a character to the wrapped TextWriter - - - - - - Writes a character buffer to the wrapped TextWriter - - the data buffer - the start index - the number of characters to write - - - Writes a character buffer to the wrapped TextWriter - - - - - - Writes a string to the wrapped TextWriter - - the value to write to the TextWriter - - - Writes a string to the wrapped TextWriter - - - - - - Gets or sets the underlying . - - - The underlying . - - - - Gets or sets the underlying . - - - - - - The Encoding in which the output is written - - - The - - - - The Encoding in which the output is written - - - - - - Gets an object that controls formatting - - - The format provider - - - - Gets an object that controls formatting - - - - - - Gets or sets the line terminator string used by the TextWriter - - - The line terminator to use - - - - Gets or sets the line terminator string used by the TextWriter - - - - - - Constructor - - the writer to actually write to - the error handler to report error to - - - Create a new QuietTextWriter using a writer and error handler - - - - - - Writes a character to the underlying writer - - the char to write - - - Writes a character to the underlying writer - - - - - - Writes a buffer to the underlying writer - - the buffer to write - the start index to write from - the number of characters to write - - - Writes a buffer to the underlying writer - - - - - - Writes a string to the output. - - The string data to write to the output. - - - Writes a string to the output. - - - - - - Closes the underlying output writer. - - - - Closes the underlying output writer. - - - - - - The error handler instance to pass all errors to - - - - - Flag to indicate if this writer is closed - - - - - Gets or sets the error handler that all errors are passed to. - - - The error handler that all errors are passed to. - - - - Gets or sets the error handler that all errors are passed to. - - - - - - Gets a value indicating whether this writer is closed. - - - true if this writer is closed, otherwise false. - - - - Gets a value indicating whether this writer is closed. - - - - - - Constructor - - The to actually write to. - The to report errors to. - - - Creates a new instance of the class - with the specified and . - - - - - - Writes a character to the underlying writer and counts the number of bytes written. - - the char to write - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Writes a buffer to the underlying writer and counts the number of bytes written. - - the buffer to write - the start index to write from - the number of characters to write - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Writes a string to the output and counts the number of bytes written. - - The string data to write to the output. - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Total number of bytes written. - - - - - Gets or sets the total number of bytes written. - - - The total number of bytes written. - - - - Gets or sets the total number of bytes written. - - - - - - A fixed size rolling buffer of logging events. - - - - An array backed fixed size leaky bucket. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The maximum number of logging events in the buffer. - - - Initializes a new instance of the class with - the specified maximum number of buffered logging events. - - - The argument is not a positive integer. - - - - Appends a to the buffer. - - The event to append to the buffer. - The event discarded from the buffer, if the buffer is full, otherwise null. - - - Append an event to the buffer. If the buffer still contains free space then - null is returned. If the buffer is full then an event will be dropped - to make space for the new event, the event dropped is returned. - - - - - - Get and remove the oldest event in the buffer. - - The oldest logging event in the buffer - - - Gets the oldest (first) logging event in the buffer and removes it - from the buffer. - - - - - - Pops all the logging events from the buffer into an array. - - An array of all the logging events in the buffer. - - - Get all the events in the buffer and clear the buffer. - - - - - - Clear the buffer - - - - Clear the buffer of all events. The events in the buffer are lost. - - - - - - Gets the th oldest event currently in the buffer. - - The th oldest event currently in the buffer. - - - If is outside the range 0 to the number of events - currently in the buffer, then null is returned. - - - - - - Gets the maximum size of the buffer. - - The maximum size of the buffer. - - - Gets the maximum size of the buffer - - - - - - Gets the number of logging events in the buffer. - - The number of logging events in the buffer. - - - This number is guaranteed to be in the range 0 to - (inclusive). - - - - - - An always empty . - - - - A singleton implementation of the - interface that always represents an empty collection. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Copies the elements of the to an - , starting at a particular Array index. - - The one-dimensional - that is the destination of the elements copied from - . The Array must have zero-based - indexing. - The zero-based index in array at which - copying begins. - - - As the collection is empty no values are copied into the array. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - The singleton instance of the empty collection. - - - - - Gets the singleton instance of the empty collection. - - The singleton instance of the empty collection. - - - Gets the singleton instance of the empty collection. - - - - - - Gets a value indicating if access to the is synchronized (thread-safe). - - - true if access to the is synchronized (thread-safe); otherwise, false. - - - - For the this property is always true. - - - - - - Gets the number of elements contained in the . - - - The number of elements contained in the . - - - - As the collection is empty the is always 0. - - - - - - Gets an object that can be used to synchronize access to the . - - - An object that can be used to synchronize access to the . - - - - As the collection is empty and thread safe and synchronized this instance is also - the object. - - - - - - An always empty . - - - - A singleton implementation of the - interface that always represents an empty collection. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Copies the elements of the to an - , starting at a particular Array index. - - The one-dimensional - that is the destination of the elements copied from - . The Array must have zero-based - indexing. - The zero-based index in array at which - copying begins. - - - As the collection is empty no values are copied into the array. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - Adds an element with the provided key and value to the - . - - The to use as the key of the element to add. - The to use as the value of the element to add. - - - As the collection is empty no new values can be added. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - Removes all elements from the . - - - - As the collection is empty no values can be removed. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - Determines whether the contains an element - with the specified key. - - The key to locate in the . - false - - - As the collection is empty the method always returns false. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - Removes the element with the specified key from the . - - The key of the element to remove. - - - As the collection is empty no values can be removed. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - The singleton instance of the empty dictionary. - - - - - Gets the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets a value indicating if access to the is synchronized (thread-safe). - - - true if access to the is synchronized (thread-safe); otherwise, false. - - - - For the this property is always true. - - - - - - Gets the number of elements contained in the - - - The number of elements contained in the . - - - - As the collection is empty the is always 0. - - - - - - Gets an object that can be used to synchronize access to the . - - - An object that can be used to synchronize access to the . - - - - As the collection is empty and thread safe and synchronized this instance is also - the object. - - - - - - Gets a value indicating whether the has a fixed size. - - true - - - As the collection is empty always returns true. - - - - - - Gets a value indicating whether the is read-only. - - true - - - As the collection is empty always returns true. - - - - - - Gets an containing the keys of the . - - An containing the keys of the . - - - As the collection is empty a is returned. - - - - - - Gets an containing the values of the . - - An containing the values of the . - - - As the collection is empty a is returned. - - - - - - Gets or sets the element with the specified key. - - The key of the element to get or set. - null - - - As the collection is empty no values can be looked up or stored. - If the index getter is called then null is returned. - A is thrown if the setter is called. - - - This dictionary is always empty and cannot be modified. - - - - Contain the information obtained when parsing formatting modifiers - in conversion modifiers. - - - - Holds the formatting information extracted from the format string by - the . This is used by the - objects when rendering the output. - - - Nicko Cadell - Gert Driesen - - - - Defaut Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - - - Initializes a new instance of the class - with the specified parameters. - - - - - - Gets or sets the minimum value. - - - The minimum value. - - - - Gets or sets the minimum value. - - - - - - Gets or sets the maximum value. - - - The maximum value. - - - - Gets or sets the maximum value. - - - - - - Gets or sets a flag indicating whether left align is enabled - or not. - - - A flag indicating whether left align is enabled or not. - - - - Gets or sets a flag indicating whether left align is enabled or not. - - - - - - Implementation of Properties collection for the - - - - This class implements a properties collection that is thread safe and supports both - storing properties and capturing a read only copy of the current propertied. - - - This class is optimized to the scenario where the properties are read frequently - and are modified infrequently. - - - Nicko Cadell - - - - The read only copy of the properties. - - - - This variable is declared volatile to prevent the compiler and JIT from - reordering reads and writes of this thread performed on different threads. - - - - - - Lock object used to synchronize updates within this instance - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property from the global context - - the key for the entry to remove - - - Removing an entry from the global context properties is relatively expensive compared - with reading a value. - - - - - - Clear the global context properties - - - - - Get a readonly immutable copy of the properties - - the current global context properties - - - This implementation is fast because the GlobalContextProperties class - stores a readonly copy of the properties. - - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Reading the value for a key is faster than setting the value. - When the value is written a new read only copy of - the properties is created. - - - - - - Manages a mapping from levels to - - - - Manages an ordered mapping from instances - to subclasses. - - - Nicko Cadell - - - - Default constructor - - - - Initialise a new instance of . - - - - - - Add a to this mapping - - the entry to add - - - If a has previously been added - for the same then that entry will be - overwritten. - - - - - - Lookup the mapping for the specified level - - the level to lookup - the for the level or null if no mapping found - - - Lookup the value for the specified level. Finds the nearest - mapping value for the level that is equal to or less than the - specified. - - - If no mapping could be found then null is returned. - - - - - - Initialize options - - - - Caches the sorted list of in an array - - - - - - Implementation of Properties collection for the - - - - Class implements a collection of properties that is specific to each thread. - The class is not synchronized as each thread has its own . - - - This class stores its properties in a slot on the named - log4net.Util.LogicalThreadContextProperties. - - - The requires a link time - for the - . - If the calling code does not have this permission then this context will be disabled. - It will not store any property values set on it. - - - Nicko Cadell - - - - Flag used to disable this context if we don't have permission to access the CallContext. - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property - - the key for the entry to remove - - - Remove the value for the specified from the context. - - - - - - Clear all the context properties - - - - Clear all the context properties - - - - - - Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. - - create the dictionary if it does not exist, otherwise return null if is does not exist - the properties for this thread - - - The collection returned is only to be used on the calling thread. If the - caller needs to share the collection between different threads then the - caller must clone the collection before doings so. - - - - - - Gets the call context get data. - - The peroperties dictionary stored in the call context - - The method has a - security link demand, therfore we must put the method call in a seperate method - that we can wrap in an exception handler. - - - - - Sets the call context data. - - The properties. - - The method has a - security link demand, therfore we must put the method call in a seperate method - that we can wrap in an exception handler. - - - - - The fully qualified type of the LogicalThreadContextProperties class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Get or set the property value for the specified. - - - - - - - - - - - - - Outputs log statements from within the log4net assembly. - - - - Log4net components cannot make log4net logging calls. However, it is - sometimes useful for the user to learn about what log4net is - doing. - - - All log4net internal debug calls go to the standard output stream - whereas internal error messages are sent to the standard error output - stream. - - - Nicko Cadell - Gert Driesen - - - - Formats Prefix, Source, and Message in the same format as the value - sent to Console.Out and Trace.Write. - - - - - - Initializes a new instance of the class. - - - - - - - - - Static constructor that initializes logging by reading - settings from the application configuration file. - - - - The log4net.Internal.Debug application setting - controls internal debugging. This setting should be set - to true to enable debugging. - - - The log4net.Internal.Quiet application setting - suppresses all internal logging including error messages. - This setting should be set to true to enable message - suppression. - - - - - - Raises the LogReceived event when an internal messages is received. - - - - - - - - - Writes log4net internal debug messages to the - standard output stream. - - - The message to log. - - - All internal debug messages are prepended with - the string "log4net: ". - - - - - - Writes log4net internal debug messages to the - standard output stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal debug messages are prepended with - the string "log4net: ". - - - - - - Writes log4net internal warning messages to the - standard error stream. - - The Type that generated this message. - The message to log. - - - All internal warning messages are prepended with - the string "log4net:WARN ". - - - - - - Writes log4net internal warning messages to the - standard error stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal warning messages are prepended with - the string "log4net:WARN ". - - - - - - Writes log4net internal error messages to the - standard error stream. - - The Type that generated this message. - The message to log. - - - All internal error messages are prepended with - the string "log4net:ERROR ". - - - - - - Writes log4net internal error messages to the - standard error stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal debug messages are prepended with - the string "log4net:ERROR ". - - - - - - Writes output to the standard output stream. - - The message to log. - - - Writes to both Console.Out and System.Diagnostics.Trace. - Note that the System.Diagnostics.Trace is not supported - on the Compact Framework. - - - If the AppDomain is not configured with a config file then - the call to System.Diagnostics.Trace may fail. This is only - an issue if you are programmatically creating your own AppDomains. - - - - - - Writes output to the standard error stream. - - The message to log. - - - Writes to both Console.Error and System.Diagnostics.Trace. - Note that the System.Diagnostics.Trace is not supported - on the Compact Framework. - - - If the AppDomain is not configured with a config file then - the call to System.Diagnostics.Trace may fail. This is only - an issue if you are programmatically creating your own AppDomains. - - - - - - Default debug level - - - - - In quietMode not even errors generate any output. - - - - - The event raised when an internal message has been received. - - - - - The Type that generated the internal message. - - - - - The DateTime stamp of when the internal message was received. - - - - - A string indicating the severity of the internal message. - - - "log4net: ", - "log4net:ERROR ", - "log4net:WARN " - - - - - The internal log message. - - - - - The Exception related to the message. - - - Optional. Will be null if no Exception was passed. - - - - - Gets or sets a value indicating whether log4net internal logging - is enabled or disabled. - - - true if log4net internal logging is enabled, otherwise - false. - - - - When set to true, internal debug level logging will be - displayed. - - - This value can be set by setting the application setting - log4net.Internal.Debug in the application configuration - file. - - - The default value is false, i.e. debugging is - disabled. - - - - - The following example enables internal debugging using the - application configuration file : - - - - - - - - - - - - - Gets or sets a value indicating whether log4net should generate no output - from internal logging, not even for errors. - - - true if log4net should generate no output at all from internal - logging, otherwise false. - - - - When set to true will cause internal logging at all levels to be - suppressed. This means that no warning or error reports will be logged. - This option overrides the setting and - disables all debug also. - - This value can be set by setting the application setting - log4net.Internal.Quiet in the application configuration file. - - - The default value is false, i.e. internal logging is not - disabled. - - - - The following example disables internal logging using the - application configuration file : - - - - - - - - - - - - - - - - - Test if LogLog.Debug is enabled for output. - - - true if Debug is enabled - - - - Test if LogLog.Debug is enabled for output. - - - - - - Test if LogLog.Warn is enabled for output. - - - true if Warn is enabled - - - - Test if LogLog.Warn is enabled for output. - - - - - - Test if LogLog.Error is enabled for output. - - - true if Error is enabled - - - - Test if LogLog.Error is enabled for output. - - - - - - Subscribes to the LogLog.LogReceived event and stores messages - to the supplied IList instance. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Represents a native error code and message. - - - - Represents a Win32 platform native error. - - - Nicko Cadell - Gert Driesen - - - - Create an instance of the class with the specified - error number and message. - - The number of the native error. - The message of the native error. - - - Create an instance of the class with the specified - error number and message. - - - - - - Create a new instance of the class for the last Windows error. - - - An instance of the class for the last windows error. - - - - The message for the error number is lookup up using the - native Win32 FormatMessage function. - - - - - - Create a new instance of the class. - - the error number for the native error - - An instance of the class for the specified - error number. - - - - The message for the specified error number is lookup up using the - native Win32 FormatMessage function. - - - - - - Retrieves the message corresponding with a Win32 message identifier. - - Message identifier for the requested message. - - The message corresponding with the specified message identifier. - - - - The message will be searched for in system message-table resource(s) - using the native FormatMessage function. - - - - - - Return error information string - - error information string - - - Return error information string - - - - - - Formats a message string. - - Formatting options, and how to interpret the parameter. - Location of the message definition. - Message identifier for the requested message. - Language identifier for the requested message. - If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . - If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. - Pointer to an array of values that are used as insert values in the formatted message. - - - The function requires a message definition as input. The message definition can come from a - buffer passed into the function. It can come from a message table resource in an - already-loaded module. Or the caller can ask the function to search the system's message - table resource(s) for the message definition. The function finds the message definition - in a message table resource based on a message identifier and a language identifier. - The function copies the formatted message text to an output buffer, processing any embedded - insert sequences if requested. - - - To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. - - - - - If the function succeeds, the return value is the number of TCHARs stored in the output - buffer, excluding the terminating null character. - - - If the function fails, the return value is zero. To get extended error information, - call . - - - - - - Gets the number of the native error. - - - The number of the native error. - - - - Gets the number of the native error. - - - - - - Gets the message of the native error. - - - The message of the native error. - - - - - Gets the message of the native error. - - - - - An always empty . - - - - A singleton implementation of the over a collection - that is empty and not modifiable. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Test if the enumerator can advance, if so advance. - - false as the cannot advance. - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will always return false. - - - - - - Resets the enumerator back to the start. - - - - As the enumerator is over an empty collection does nothing. - - - - - - The singleton instance of the . - - - - - Gets the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets the current object from the enumerator. - - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current key from the enumerator. - - - Throws an exception because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current value from the enumerator. - - The current value from the enumerator. - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current entry from the enumerator. - - - Throws an because the - never has a current entry. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - An always empty . - - - - A singleton implementation of the over a collection - that is empty and not modifiable. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Test if the enumerator can advance, if so advance - - false as the cannot advance. - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will always return false. - - - - - - Resets the enumerator back to the start. - - - - As the enumerator is over an empty collection does nothing. - - - - - - The singleton instance of the . - - - - - Get the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets the current object from the enumerator. - - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - A SecurityContext used when a SecurityContext is not required - - - - The is a no-op implementation of the - base class. It is used where a - is required but one has not been provided. - - - Nicko Cadell - - - - Singleton instance of - - - - Singleton instance of - - - - - - Private constructor - - - - Private constructor for singleton pattern. - - - - - - Impersonate this SecurityContext - - State supplied by the caller - null - - - No impersonation is done and null is always returned. - - - - - - Implements log4net's default error handling policy which consists - of emitting a message for the first error in an appender and - ignoring all subsequent errors. - - - - The error message is processed using the LogLog sub-system. - - - This policy aims at protecting an otherwise working application - from being flooded with error messages when logging fails. - - - Nicko Cadell - Gert Driesen - Ron Grabowski - - - - Default Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - The prefix to use for each message. - - - Initializes a new instance of the class - with the specified prefix. - - - - - - Reset the error handler back to its initial disabled state. - - - - - Log an Error - - The error message. - The exception. - The internal error code. - - - Sends the error information to 's Error method. - - - - - - Log an Error - - The error message. - The exception. - - - Prints the message and the stack trace of the exception on the standard - error output stream. - - - - - - Log an error - - The error message. - - - Print a the error message passed as parameter on the standard - error output stream. - - - - - - The date the error was recorded. - - - - - Flag to indicate if it is the first error - - - - - The message recorded during the first error. - - - - - The exception recorded during the first error. - - - - - The error code recorded during the first error. - - - - - String to prefix each message with - - - - - The fully qualified type of the OnlyOnceErrorHandler class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Is error logging enabled - - - - Is error logging enabled. Logging is only enabled for the - first error delivered to the . - - - - - - The date the first error that trigged this error handler occured. - - - - - The message from the first error that trigged this error handler. - - - - - The exception from the first error that trigged this error handler. - - - May be . - - - - - The error code from the first error that trigged this error handler. - - - Defaults to - - - - - A convenience class to convert property values to specific types. - - - - Utility functions for converting types and parsing values. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Converts a string to a value. - - String to convert. - The default value. - The value of . - - - If is "true", then true is returned. - If is "false", then false is returned. - Otherwise, is returned. - - - - - - Parses a file size into a number. - - String to parse. - The default value. - The value of . - - - Parses a file size of the form: number[KB|MB|GB] into a - long value. It is scaled with the appropriate multiplier. - - - is returned when - cannot be converted to a value. - - - - - - Converts a string to an object. - - The target type to convert to. - The string to convert to an object. - - The object converted from a string or null when the - conversion failed. - - - - Converts a string to an object. Uses the converter registry to try - to convert the string value into the specified target type. - - - - - - Checks if there is an appropriate type conversion from the source type to the target type. - - The type to convert from. - The type to convert to. - true if there is a conversion from the source type to the target type. - - Checks if there is an appropriate type conversion from the source type to the target type. - - - - - - - Converts an object to the target type. - - The object to convert to the target type. - The type to convert to. - The converted object. - - - Converts an object to the target type. - - - - - - Instantiates an object given a class name. - - The fully qualified class name of the object to instantiate. - The class to which the new object should belong. - The object to return in case of non-fulfillment. - - An instance of the or - if the object could not be instantiated. - - - - Checks that the is a subclass of - . If that test fails or the object could - not be instantiated, then is returned. - - - - - - Performs variable substitution in string from the - values of keys found in . - - The string on which variable substitution is performed. - The dictionary to use to lookup variables. - The result of the substitutions. - - - The variable substitution delimiters are ${ and }. - - - For example, if props contains key=value, then the call - - - - string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); - - - - will set the variable s to "Value of key is value.". - - - If no value could be found for the specified key, then substitution - defaults to an empty string. - - - For example, if system properties contains no value for the key - "nonExistentKey", then the call - - - - string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); - - - - will set s to "Value of nonExistentKey is []". - - - An Exception is thrown if contains a start - delimiter "${" which is not balanced by a stop delimiter "}". - - - - - - Converts the string representation of the name or numeric value of one or - more enumerated constants to an equivalent enumerated object. - - The type to convert to. - The enum string value. - If true, ignore case; otherwise, regard case. - An object of type whose value is represented by . - - - - The fully qualified type of the OptionConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Most of the work of the class - is delegated to the PatternParser class. - - - - The PatternParser processes a pattern string and - returns a chain of objects. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The pattern to parse. - - - Initializes a new instance of the class - with the specified pattern string. - - - - - - Parses the pattern into a chain of pattern converters. - - The head of a chain of pattern converters. - - - Parses the pattern into a chain of pattern converters. - - - - - - Build the unified cache of converters from the static and instance maps - - the list of all the converter names - - - Build the unified cache of converters from the static and instance maps - - - - - - Internal method to parse the specified pattern to find specified matches - - the pattern to parse - the converter names to match in the pattern - - - The matches param must be sorted such that longer strings come before shorter ones. - - - - - - Process a parsed literal - - the literal text - - - - Process a parsed converter pattern - - the name of the converter - the optional option for the converter - the formatting info for the converter - - - - Resets the internal state of the parser and adds the specified pattern converter - to the chain. - - The pattern converter to add. - - - - The first pattern converter in the chain - - - - - the last pattern converter in the chain - - - - - The pattern - - - - - Internal map of converter identifiers to converter types - - - - This map overrides the static s_globalRulesRegistry map. - - - - - - The fully qualified type of the PatternParser class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Get the converter registry used by this parser - - - The converter registry used by this parser - - - - Get the converter registry used by this parser - - - - - - Sort strings by length - - - - that orders strings by string length. - The longest strings are placed first - - - - - - This class implements a patterned string. - - - - This string has embedded patterns that are resolved and expanded - when the string is formatted. - - - This class functions similarly to the - in that it accepts a pattern and renders it to a string. Unlike the - however the PatternString - does not render the properties of a specific but - of the process in general. - - - The recognized conversion pattern names are: - - - - Conversion Pattern Name - Effect - - - appdomain - - - Used to output the friendly name of the current AppDomain. - - - - - date - - - Used to output the current date and time in the local time zone. - To output the date in universal time use the %utcdate pattern. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %date{HH:mm:ss,fff} or - %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %date{ISO8601} or %date{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - env - - - Used to output the a specific environment variable. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %env{COMPUTERNAME} would include the value - of the COMPUTERNAME environment variable. - - - The env pattern is not supported on the .NET Compact Framework. - - - - - identity - - - Used to output the user name for the currently active user - (Principal.Identity.Name). - - - - - newline - - - Outputs the platform dependent line separator character or - characters. - - - This conversion pattern name offers the same performance as using - non-portable line separator strings such as "\n", or "\r\n". - Thus, it is the preferred way of specifying a line separator. - - - - - processid - - - Used to output the system process ID for the current process. - - - - - property - - - Used to output a specific context property. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %property{user} would include the value - from the property that is keyed by the string 'user'. Each property value - that is to be included in the log must be specified separately. - Properties are stored in logging contexts. By default - the log4net:HostName property is set to the name of machine on - which the event was originally logged. - - - If no key is specified, e.g. %property then all the keys and their - values are printed in a comma separated list. - - - The properties of an event are combined from a number of different - contexts. These are listed below in the order in which they are searched. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - random - - - Used to output a random string of characters. The string is made up of - uppercase letters and numbers. By default the string is 4 characters long. - The length of the string can be specified within braces directly following the - pattern specifier, e.g. %random{8} would output an 8 character string. - - - - - username - - - Used to output the WindowsIdentity for the currently - active user. - - - - - utcdate - - - Used to output the date of the logging event in universal time. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %utcdate{HH:mm:ss,fff} or - %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %utcdate{ISO8601} or %utcdate{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - % - - - The sequence %% outputs a single percent sign. - - - - - - Additional pattern converters may be registered with a specific - instance using or - . - - - See the for details on the - format modifiers supported by the patterns. - - - Nicko Cadell - - - - Internal map of converter identifiers to converter types. - - - - - the pattern - - - - - the head of the pattern converter chain - - - - - patterns defined on this PatternString only - - - - - Initialize the global registry - - - - - Default constructor - - - - Initialize a new instance of - - - - - - Constructs a PatternString - - The pattern to use with this PatternString - - - Initialize a new instance of with the pattern specified. - - - - - - Initialize object options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Create the used to parse the pattern - - the pattern to parse - The - - - Returns PatternParser used to parse the conversion string. Subclasses - may override this to return a subclass of PatternParser which recognize - custom conversion pattern name. - - - - - - Produces a formatted string as specified by the conversion pattern. - - The TextWriter to write the formatted event to - - - Format the pattern to the . - - - - - - Format the pattern as a string - - the pattern formatted as a string - - - Format the pattern to a string. - - - - - - Add a converter to this PatternString - - the converter info - - - This version of the method is used by the configurator. - Programmatic users should use the alternative method. - - - - - - Add a converter to this PatternString - - the name of the conversion pattern for this converter - the type of the converter - - - Add a converter to this PatternString - - - - - - Gets or sets the pattern formatting string - - - The pattern formatting string - - - - The ConversionPattern option. This is the string which - controls formatting and consists of a mix of literal content and - conversion specifiers. - - - - - - String keyed object map. - - - - While this collection is serializable only member - objects that are serializable will - be serialized along with this collection. - - - Nicko Cadell - Gert Driesen - - - - String keyed object map that is read only. - - - - This collection is readonly and cannot be modified. - - - While this collection is serializable only member - objects that are serializable will - be serialized along with this collection. - - - Nicko Cadell - Gert Driesen - - - - The Hashtable used to store the properties data - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Copy Constructor - - properties to copy - - - Initializes a new instance of the class. - - - - - - Deserialization constructor - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Gets the key names. - - An array of all the keys. - - - Gets the key names. - - - - - - Test if the dictionary contains a specified key - - the key to look for - true if the dictionary contains the specified key - - - Test if the dictionary contains a specified key - - - - - - Serializes this object into the provided. - - The to populate with data. - The destination for this serialization. - - - Serializes this object into the provided. - - - - - - See - - - - - See - - - - - - See - - - - - - - Remove all properties from the properties collection - - - - - See - - - - - - - See - - - - - - - See - - - - - Gets or sets the value of the property with the specified key. - - - The value of the property with the specified key. - - The key of the property to get or set. - - - The property value will only be serialized if it is serializable. - If it cannot be serialized it will be silently ignored if - a serialization operation is performed. - - - - - - The hashtable used to store the properties - - - The internal collection used to store the properties - - - - The hashtable used to store the properties - - - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - The number of properties in this collection - - - - - See - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - properties to copy - - - Initializes a new instance of the class. - - - - - - Initializes a new instance of the class - with serialized data. - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Because this class is sealed the serialization constructor is private. - - - - - - Remove the entry with the specified key from this dictionary - - the key for the entry to remove - - - Remove the entry with the specified key from this dictionary - - - - - - See - - an enumerator - - - Returns a over the contest of this collection. - - - - - - See - - the key to remove - - - Remove the entry with the specified key from this dictionary - - - - - - See - - the key to lookup in the collection - true if the collection contains the specified key - - - Test if this collection contains a specified key. - - - - - - Remove all properties from the properties collection - - - - Remove all properties from the properties collection - - - - - - See - - the key - the value to store for the key - - - Store a value for the specified . - - - Thrown if the is not a string - - - - See - - - - - - - See - - - - - Gets or sets the value of the property with the specified key. - - - The value of the property with the specified key. - - The key of the property to get or set. - - - The property value will only be serialized if it is serializable. - If it cannot be serialized it will be silently ignored if - a serialization operation is performed. - - - - - - See - - - false - - - - This collection is modifiable. This property always - returns false. - - - - - - See - - - The value for the key specified. - - - - Get or set a value for the specified . - - - Thrown if the is not a string - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - A class to hold the key and data for a property set in the config file - - - - A class to hold the key and data for a property set in the config file - - - - - - Override Object.ToString to return sensible debug info - - string info about this object - - - - Property Key - - - Property Key - - - - Property Key. - - - - - - Property Value - - - Property Value - - - - Property Value. - - - - - - A that ignores the message - - - - This writer is used in special cases where it is necessary - to protect a writer from being closed by a client. - - - Nicko Cadell - - - - Constructor - - the writer to actually write to - - - Create a new ProtectCloseTextWriter using a writer - - - - - - Attach this instance to a different underlying - - the writer to attach to - - - Attach this instance to a different underlying - - - - - - Does not close the underlying output writer. - - - - Does not close the underlying output writer. - This method does nothing. - - - - - - Defines a lock that supports single writers and multiple readers - - - - ReaderWriterLock is used to synchronize access to a resource. - At any given time, it allows either concurrent read access for - multiple threads, or write access for a single thread. In a - situation where a resource is changed infrequently, a - ReaderWriterLock provides better throughput than a simple - one-at-a-time lock, such as . - - - If a platform does not support a System.Threading.ReaderWriterLock - implementation then all readers and writers are serialized. Therefore - the caller must not rely on multiple simultaneous readers. - - - Nicko Cadell - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Acquires a reader lock - - - - blocks if a different thread has the writer - lock, or if at least one thread is waiting for the writer lock. - - - - - - Decrements the lock count - - - - decrements the lock count. When the count - reaches zero, the lock is released. - - - - - - Acquires the writer lock - - - - This method blocks if another thread has a reader lock or writer lock. - - - - - - Decrements the lock count on the writer lock - - - - ReleaseWriterLock decrements the writer lock count. - When the count reaches zero, the writer lock is released. - - - - - - A that can be and reused - - - - A that can be and reused. - This uses a single buffer for string operations. - - - Nicko Cadell - - - - Create an instance of - - the format provider to use - - - Create an instance of - - - - - - Override Dispose to prevent closing of writer - - flag - - - Override Dispose to prevent closing of writer - - - - - - Reset this string writer so that it can be reused. - - the maximum buffer capacity before it is trimmed - the default size to make the buffer - - - Reset this string writer so that it can be reused. - The internal buffers are cleared and reset. - - - - - - Utility class for system specific information. - - - - Utility class of static methods for system specific information. - - - Nicko Cadell - Gert Driesen - Alexey Solofnenko - - - - Private constructor to prevent instances. - - - - Only static methods are exposed from this type. - - - - - - Initialize default values for private static fields. - - - - Only static methods are exposed from this type. - - - - - - Gets the assembly location path for the specified assembly. - - The assembly to get the location for. - The location of the assembly. - - - This method does not guarantee to return the correct path - to the assembly. If only tries to give an indication as to - where the assembly was loaded from. - - - - - - Gets the fully qualified name of the , including - the name of the assembly from which the was - loaded. - - The to get the fully qualified name for. - The fully qualified name for the . - - - This is equivalent to the Type.AssemblyQualifiedName property, - but this method works on the .NET Compact Framework 1.0 as well as - the full .NET runtime. - - - - - - Gets the short name of the . - - The to get the name for. - The short name of the . - - - The short name of the assembly is the - without the version, culture, or public key. i.e. it is just the - assembly's file name without the extension. - - - Use this rather than Assembly.GetName().Name because that - is not available on the Compact Framework. - - - Because of a FileIOPermission security demand we cannot do - the obvious Assembly.GetName().Name. We are allowed to get - the of the assembly so we - start from there and strip out just the assembly name. - - - - - - Gets the file name portion of the , including the extension. - - The to get the file name for. - The file name of the assembly. - - - Gets the file name portion of the , including the extension. - - - - - - Loads the type specified in the type string. - - A sibling type to use to load the type. - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified, it will be loaded from the assembly - containing the specified relative type. If the type is not found in the assembly - then all the loaded assemblies will be searched for the type. - - - - - - Loads the type specified in the type string. - - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified it will be loaded from the - assembly that is directly calling this method. If the type is not found - in the assembly then all the loaded assemblies will be searched for the type. - - - - - - Loads the type specified in the type string. - - An assembly to load the type from. - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified it will be loaded from the specified - assembly. If the type is not found in the assembly then all the loaded assemblies - will be searched for the type. - - - - - - Generate a new guid - - A new Guid - - - Generate a new guid - - - - - - Create an - - The name of the parameter that caused the exception - The value of the argument that causes this exception - The message that describes the error - the ArgumentOutOfRangeException object - - - Create a new instance of the class - with a specified error message, the parameter name, and the value - of the argument. - - - The Compact Framework does not support the 3 parameter constructor for the - type. This method provides an - implementation that works for all platforms. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Lookup an application setting - - the application settings key to lookup - the value for the key, or null - - - Configuration APIs are not supported under the Compact Framework - - - - - - Convert a path into a fully qualified local file path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - The path specified must be a local file path, a URI is not supported. - - - - - - Creates a new case-insensitive instance of the class with the default initial capacity. - - A new case-insensitive instance of the class with the default initial capacity - - - The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. - - - - - - Gets an empty array of types. - - - - The Type.EmptyTypes field is not available on - the .NET Compact Framework 1.0. - - - - - - The fully qualified type of the SystemInfo class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Cache the host name for the current machine - - - - - Cache the application friendly name - - - - - Text to output when a null is encountered. - - - - - Text to output when an unsupported feature is requested. - - - - - Start time for the current process. - - - - - Gets the system dependent line terminator. - - - The system dependent line terminator. - - - - Gets the system dependent line terminator. - - - - - - Gets the base directory for this . - - The base directory path for the current . - - - Gets the base directory for this . - - - The value returned may be either a local file path or a URI. - - - - - - Gets the path to the configuration file for the current . - - The path to the configuration file for the current . - - - The .NET Compact Framework 1.0 does not have a concept of a configuration - file. For this runtime, we use the entry assembly location as the root for - the configuration file name. - - - The value returned may be either a local file path or a URI. - - - - - - Gets the path to the file that first executed in the current . - - The path to the entry assembly. - - - Gets the path to the file that first executed in the current . - - - - - - Gets the ID of the current thread. - - The ID of the current thread. - - - On the .NET framework, the AppDomain.GetCurrentThreadId method - is used to obtain the thread ID for the current thread. This is the - operating system ID for the thread. - - - On the .NET Compact Framework 1.0 it is not possible to get the - operating system thread ID for the current thread. The native method - GetCurrentThreadId is implemented inline in a header file - and cannot be called. - - - On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this - gives a stable id unrelated to the operating system thread ID which may - change if the runtime is using fibers. - - - - - - Get the host name or machine name for the current machine - - - The hostname or machine name - - - - Get the host name or machine name for the current machine - - - The host name () or - the machine name (Environment.MachineName) for - the current machine, or if neither of these are available - then NOT AVAILABLE is returned. - - - - - - Get this application's friendly name - - - The friendly name of this application as a string - - - - If available the name of the application is retrieved from - the AppDomain using AppDomain.CurrentDomain.FriendlyName. - - - Otherwise the file name of the entry assembly is used. - - - - - - Get the start time for the current process. - - - - This is the time at which the log4net library was loaded into the - AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime - this is not the start time for the current process. - - - The log4net library should be loaded by an application early during its - startup, therefore this start time should be a good approximation for - the actual start time. - - - Note that AppDomains may be loaded and unloaded within the - same process without the process terminating, however this start time - will be set per AppDomain. - - - - - - Text to output when a null is encountered. - - - - Use this value to indicate a null has been encountered while - outputting a string representation of an item. - - - The default value is (null). This value can be overridden by specifying - a value for the log4net.NullText appSetting in the application's - .config file. - - - - - - Text to output when an unsupported feature is requested. - - - - Use this value when an unsupported feature is requested. - - - The default value is NOT AVAILABLE. This value can be overridden by specifying - a value for the log4net.NotAvailableText appSetting in the application's - .config file. - - - - - - Utility class that represents a format string. - - - - Utility class that represents a format string. - - - Nicko Cadell - - - - Initialise the - - An that supplies culture-specific formatting information. - A containing zero or more format items. - An array containing zero or more objects to format. - - - - Format the string and arguments - - the formatted string - - - - Replaces the format item in a specified with the text equivalent - of the value of a corresponding instance in a specified array. - A specified parameter supplies culture-specific formatting information. - - An that supplies culture-specific formatting information. - A containing zero or more format items. - An array containing zero or more objects to format. - - A copy of format in which the format items have been replaced by the - equivalent of the corresponding instances of in args. - - - - This method does not throw exceptions. If an exception thrown while formatting the result the - exception and arguments are returned in the result string. - - - - - - Process an error during StringFormat - - - - - Dump the contents of an array into a string builder - - - - - Dump an object to a string - - - - - The fully qualified type of the SystemStringFormat class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Implementation of Properties collection for the - - - - Class implements a collection of properties that is specific to each thread. - The class is not synchronized as each thread has its own . - - - Nicko Cadell - - - - The thread local data slot to use to store a PropertiesDictionary. - - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property - - the key for the entry to remove - - - Remove a property - - - - - - Clear all properties - - - - Clear all properties - - - - - - Get the PropertiesDictionary for this thread. - - create the dictionary if it does not exist, otherwise return null if is does not exist - the properties for this thread - - - The collection returned is only to be used on the calling thread. If the - caller needs to share the collection between different threads then the - caller must clone the collection before doing so. - - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Gets or sets the value of a property - - - - - - Implementation of Stack for the - - - - Implementation of Stack for the - - - Nicko Cadell - - - - The stack store. - - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - Clears all the contextual information held in this stack. - - - - Clears all the contextual information held in this stack. - Only call this if you think that this tread is being reused after - a previous call execution which may not have completed correctly. - You do not need to use this method if you always guarantee to call - the method of the - returned from even in exceptional circumstances, - for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) - syntax. - - - - - - Removes the top context from this stack. - - The message in the context that was removed from the top of this stack. - - - Remove the top context from this stack, and return - it to the caller. If this stack is empty then an - empty string (not ) is returned. - - - - - - Pushes a new context message into this stack. - - The new context message. - - An that can be used to clean up the context stack. - - - - Pushes a new context onto this stack. An - is returned that can be used to clean up this stack. This - can be easily combined with the using keyword to scope the - context. - - - Simple example of using the Push method with the using keyword. - - using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) - { - log.Warn("This should have an ThreadContext Stack message"); - } - - - - - - Gets the current context information for this stack. - - The current context information. - - - - Gets the current context information for this stack. - - Gets the current context information - - - Gets the current context information for this stack. - - - - - - Get a portable version of this object - - the portable instance of this object - - - Get a cross thread portable version of this object - - - - - - The number of messages in the stack - - - The current number of messages in the stack - - - - The current number of messages in the stack. That is - the number of times has been called - minus the number of times has been called. - - - - - - Gets and sets the internal stack used by this - - The internal storage stack - - - This property is provided only to support backward compatability - of the . Tytpically the internal stack should not - be modified. - - - - - - Inner class used to represent a single context frame in the stack. - - - - Inner class used to represent a single context frame in the stack. - - - - - - Constructor - - The message for this context. - The parent context in the chain. - - - Initializes a new instance of the class - with the specified message and parent context. - - - - - - Get the message. - - The message. - - - Get the message. - - - - - - Gets the full text of the context down to the root level. - - - The full text of the context down to the root level. - - - - Gets the full text of the context down to the root level. - - - - - - Struct returned from the method. - - - - This struct implements the and is designed to be used - with the pattern to remove the stack frame at the end of the scope. - - - - - - The ThreadContextStack internal stack - - - - - The depth to trim the stack to when this instance is disposed - - - - - Constructor - - The internal stack used by the ThreadContextStack. - The depth to return the stack to when this object is disposed. - - - Initializes a new instance of the class with - the specified stack and return depth. - - - - - - Returns the stack to the correct depth. - - - - Returns the stack to the correct depth. - - - - - - Implementation of Stacks collection for the - - - - Implementation of Stacks collection for the - - - Nicko Cadell - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - The fully qualified type of the ThreadContextStacks class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the named thread context stack - - - The named stack - - - - Gets the named thread context stack - - - - - - Utility class for transforming strings. - - - - Utility class for transforming strings. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Write a string to an - - the writer to write to - the string to write - The string to replace non XML compliant chars with - - - The test is escaped either using XML escape entities - or using CDATA sections. - - - - - - Replace invalid XML characters in text string - - the XML text input string - the string to use in place of invalid characters - A string that does not contain invalid XML characters. - - - Certain Unicode code points are not allowed in the XML InfoSet, for - details see: http://www.w3.org/TR/REC-xml/#charsets. - - - This method replaces any illegal characters in the input string - with the mask string specified. - - - - - - Count the number of times that the substring occurs in the text - - the text to search - the substring to find - the number of times the substring occurs in the text - - - The substring is assumed to be non repeating within itself. - - - - - - Characters illegal in XML 1.0 - - - - - Impersonate a Windows Account - - - - This impersonates a Windows account. - - - How the impersonation is done depends on the value of . - This allows the context to either impersonate a set of user credentials specified - using username, domain name and password or to revert to the process credentials. - - - - - - Default constructor - - - - Default constructor - - - - - - Initialize the SecurityContext based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The security context will try to Logon the specified user account and - capture a primary token for impersonation. - - - The required , - or properties were not specified. - - - - Impersonate the Windows account specified by the and properties. - - caller provided state - - An instance that will revoke the impersonation of this SecurityContext - - - - Depending on the property either - impersonate a user using credentials supplied or revert - to the process credentials. - - - - - - Create a given the userName, domainName and password. - - the user name - the domain name - the password - the for the account specified - - - Uses the Windows API call LogonUser to get a principal token for the account. This - token is used to initialize the WindowsIdentity. - - - - - - Gets or sets the impersonation mode for this security context - - - The impersonation mode for this security context - - - - Impersonate either a user with user credentials or - revert this thread to the credentials of the process. - The value is one of the - enum. - - - The default value is - - - When the mode is set to - the user's credentials are established using the - , and - values. - - - When the mode is set to - no other properties need to be set. If the calling thread is - impersonating then it will be reverted back to the process credentials. - - - - - - Gets or sets the Windows username for this security context - - - The Windows username for this security context - - - - This property must be set if - is set to (the default setting). - - - - - - Gets or sets the Windows domain name for this security context - - - The Windows domain name for this security context - - - - The default value for is the local machine name - taken from the property. - - - This property must be set if - is set to (the default setting). - - - - - - Sets the password for the Windows account specified by the and properties. - - - The password for the Windows account specified by the and properties. - - - - This property must be set if - is set to (the default setting). - - - - - - The impersonation modes for the - - - - See the property for - details. - - - - - - Impersonate a user using the credentials supplied - - - - - Revert this the thread to the credentials of the process - - - - - Adds to - - - - Helper class to expose the - through the interface. - - - - - - Constructor - - the impersonation context being wrapped - - - Constructor - - - - - - Revert the impersonation - - - - Revert the impersonation - - - - - - The log4net Global Context. - - - - The GlobalContext provides a location for global debugging - information to be stored. - - - The global context has a properties map and these properties can - be included in the output of log messages. The - supports selecting and outputing these properties. - - - By default the log4net:HostName property is set to the name of - the current machine. - - - - - GlobalContext.Properties["hostname"] = Environment.MachineName; - - - - Nicko Cadell - - - - Private Constructor. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - The global context properties instance - - - - - The global properties map. - - - The global properties map. - - - - The global properties map. - - - - - - Provides information about the environment the assembly has - been built for. - - - - Version of the assembly - - - Version of the framework targeted - - - Type of framework targeted - - - Does it target a client profile? - - - - Identifies the version and target for this assembly. - - - - - The log4net Logical Thread Context. - - - - The LogicalThreadContext provides a location for specific debugging - information to be stored. - The LogicalThreadContext properties override any or - properties with the same name. - - - The Logical Thread Context has a properties map and a stack. - The properties and stack can - be included in the output of log messages. The - supports selecting and outputting these properties. - - - The Logical Thread Context provides a diagnostic context for the current call context. - This is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The Logical Thread Context is managed on a per basis. - - - The requires a link time - for the - . - If the calling code does not have this permission then this context will be disabled. - It will not store any property values set on it. - - - Example of using the thread context properties to store a username. - - LogicalThreadContext.Properties["user"] = userName; - log.Info("This log message has a LogicalThreadContext Property called 'user'"); - - - Example of how to push a message into the context stack - - using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) - { - log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); - - } // at the end of the using block the message is automatically popped - - - - Nicko Cadell - - - - Private Constructor. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - The thread context properties instance - - - - - The thread context stacks instance - - - - - The thread properties map - - - The thread properties map - - - - The LogicalThreadContext properties override any - or properties with the same name. - - - - - - The thread stacks - - - stack map - - - - The logical thread stacks. - - - - - - This class is used by client applications to request logger instances. - - - - This class has static methods that are used by a client to request - a logger instance. The method is - used to retrieve a logger. - - - See the interface for more details. - - - Simple example of logging messages - - ILog log = LogManager.GetLogger("application-log"); - - log.Info("Application Start"); - log.Debug("This is a debug message"); - - if (log.IsDebugEnabled) - { - log.Debug("This is another debug message"); - } - - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - Returns the named logger if it exists. - - Returns the named logger if it exists. - - - - If the named logger exists (in the default repository) then it - returns a reference to the logger, otherwise it returns null. - - - The fully qualified logger name to look for. - The logger found, or null if no logger could be found. - - - - Returns the named logger if it exists. - - - - If the named logger exists (in the specified repository) then it - returns a reference to the logger, otherwise it returns - null. - - - The repository to lookup in. - The fully qualified logger name to look for. - - The logger found, or null if the logger doesn't exist in the specified - repository. - - - - - Returns the named logger if it exists. - - - - If the named logger exists (in the repository for the specified assembly) then it - returns a reference to the logger, otherwise it returns - null. - - - The assembly to use to lookup the repository. - The fully qualified logger name to look for. - - The logger, or null if the logger doesn't exist in the specified - assembly's repository. - - - - Get the currently defined loggers. - - Returns all the currently defined loggers in the default repository. - - - The root logger is not included in the returned array. - - All the defined loggers. - - - - Returns all the currently defined loggers in the specified repository. - - The repository to lookup in. - - The root logger is not included in the returned array. - - All the defined loggers. - - - - Returns all the currently defined loggers in the specified assembly's repository. - - The assembly to use to lookup the repository. - - The root logger is not included in the returned array. - - All the defined loggers. - - - Get or create a logger. - - Retrieves or creates a named logger. - - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The name of the logger to retrieve. - The logger with the name specified. - - - - Retrieves or creates a named logger. - - - - Retrieve a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The repository to lookup in. - The name of the logger to retrieve. - The logger with the name specified. - - - - Retrieves or creates a named logger. - - - - Retrieve a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The assembly to use to lookup the repository. - The name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Get the logger for the fully qualified name of the type specified. - - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Gets the logger for the fully qualified name of the type specified. - - The repository to lookup in. - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Gets the logger for the fully qualified name of the type specified. - - The assembly to use to lookup the repository. - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shuts down the log4net system. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in all the - default repositories. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - Shutdown a logger repository. - - Shuts down the default repository. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - default repository. - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - The repository to shutdown. - - - - Shuts down the repository specified. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository. The repository is looked up using - the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - The assembly to use to lookup the repository. - - - Reset the configuration of a repository - - Resets all values contained in this repository instance to their defaults. - - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - - - - Resets all values contained in this repository instance to their defaults. - - - - Reset all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - The repository to reset. - - - - Resets all values contained in this repository instance to their defaults. - - - - Reset all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - The assembly to use to lookup the repository to reset. - - - Get the logger repository. - - Returns the default instance. - - - - Gets the for the repository specified - by the callers assembly (). - - - The instance for the default repository. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The repository to lookup in. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The assembly to use to lookup the repository. - - - Get a logger repository. - - Returns the default instance. - - - - Gets the for the repository specified - by the callers assembly (). - - - The instance for the default repository. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The repository to lookup in. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The assembly to use to lookup the repository. - - - Create a domain - - Creates a repository with the specified repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to will return - the same repository instance. - - - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - Create a logger repository. - - Creates a repository with the specified repository type. - - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The created will be associated with the repository - specified such that a call to will return - the same repository instance. - - - - - - Creates a repository with the specified name. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name. - - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - The specified repository already exists. - - - - Creates a repository for the specified assembly and repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - - Creates a repository for the specified assembly and repository type. - - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - - Gets the list of currently defined repositories. - - - - Get an array of all the objects that have been created. - - - An array of all the known objects. - - - - Looks up the wrapper object for the logger specified. - - The logger to get the wrapper for. - The wrapper for the logger specified. - - - - Looks up the wrapper objects for the loggers specified. - - The loggers to get the wrappers for. - The wrapper objects for the loggers specified. - - - - Create the objects used by - this manager. - - The logger to wrap. - The wrapper for the logger specified. - - - - The wrapper map to use to hold the objects. - - - - - Implementation of Mapped Diagnostic Contexts. - - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - The MDC class is similar to the class except that it is - based on a map instead of a stack. It provides mapped - diagnostic contexts. A Mapped Diagnostic Context, or - MDC in short, is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The MDC is managed on a per thread basis. - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - Gets the context value identified by the parameter. - - The key to lookup in the MDC. - The string value held for the key, or a null reference if no corresponding value is found. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - If the parameter does not look up to a - previously defined context then null will be returned. - - - - - - Add an entry to the MDC - - The key to store the value under. - The value to store. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Puts a context value (the parameter) as identified - with the parameter into the current thread's - context map. - - - If a value is already defined for the - specified then the value will be replaced. If the - is specified as null then the key value mapping will be removed. - - - - - - Removes the key value mapping for the key specified. - - The key to remove. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Remove the specified entry from this thread's MDC - - - - - - Clear all entries in the MDC - - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Remove all the entries from this thread's MDC - - - - - - Implementation of Nested Diagnostic Contexts. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - A Nested Diagnostic Context, or NDC in short, is an instrument - to distinguish interleaved log output from different sources. Log - output is typically interleaved when a server handles multiple - clients near-simultaneously. - - - Interleaved log output can still be meaningful if each log entry - from different contexts had a distinctive stamp. This is where NDCs - come into play. - - - Note that NDCs are managed on a per thread basis. The NDC class - is made up of static methods that operate on the context of the - calling thread. - - - How to push a message into the context - - using(NDC.Push("my context message")) - { - ... all log calls will have 'my context message' included ... - - } // at the end of the using block the message is automatically removed - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - Clears all the contextual information held on the current thread. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Clears the stack of NDC data held on the current thread. - - - - - - Creates a clone of the stack of context information. - - A clone of the context info for this thread. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - The results of this method can be passed to the - method to allow child threads to inherit the context of their - parent thread. - - - - - - Inherits the contextual information from another thread. - - The context stack to inherit. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - This thread will use the context information from the stack - supplied. This can be used to initialize child threads with - the same contextual information as their parent threads. These - contexts will NOT be shared. Any further contexts that - are pushed onto the stack will not be visible to the other. - Call to obtain a stack to pass to - this method. - - - - - - Removes the top context from the stack. - - - The message in the context that was removed from the top - of the stack. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Remove the top context from the stack, and return - it to the caller. If the stack is empty then an - empty string (not null) is returned. - - - - - - Pushes a new context message. - - The new context message. - - An that can be used to clean up - the context stack. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Pushes a new context onto the context stack. An - is returned that can be used to clean up the context stack. This - can be easily combined with the using keyword to scope the - context. - - - Simple example of using the Push method with the using keyword. - - using(log4net.NDC.Push("NDC_Message")) - { - log.Warn("This should have an NDC message"); - } - - - - - - Removes the context information for this thread. It is - not required to call this method. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - This method is not implemented. - - - - - - Forces the stack depth to be at most . - - The maximum depth of the stack - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Forces the stack depth to be at most . - This may truncate the head of the stack. This only affects the - stack in the current thread. Also it does not prevent it from - growing, it only sets the maximum depth at the time of the - call. This can be used to return to a known context depth. - - - - - - Gets the current context depth. - - The current context depth. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - The number of context values pushed onto the context stack. - - - Used to record the current depth of the context. This can then - be restored using the method. - - - - - - - The log4net Thread Context. - - - - The ThreadContext provides a location for thread specific debugging - information to be stored. - The ThreadContext properties override any - properties with the same name. - - - The thread context has a properties map and a stack. - The properties and stack can - be included in the output of log messages. The - supports selecting and outputting these properties. - - - The Thread Context provides a diagnostic context for the current thread. - This is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The Thread Context is managed on a per thread basis. - - - Example of using the thread context properties to store a username. - - ThreadContext.Properties["user"] = userName; - log.Info("This log message has a ThreadContext Property called 'user'"); - - - Example of how to push a message into the context stack - - using(ThreadContext.Stacks["NDC"].Push("my context message")) - { - log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); - - } // at the end of the using block the message is automatically popped - - - - Nicko Cadell - - - - Private Constructor. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - The thread context properties instance - - - - - The thread context stacks instance - - - - - The thread properties map - - - The thread properties map - - - - The ThreadContext properties override any - properties with the same name. - - - - - - The thread stacks - - - stack map - - - - The thread local stacks. - - - - - diff --git a/source/packages/log4net.2.0.0/lib/net40-full/log4net.dll b/source/packages/log4net.2.0.0/lib/net40-full/log4net.dll deleted file mode 100644 index 1e66c82abda444cd72c064c62a38ed216254b3d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 288768 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%0Ab7xahvn`?~19&@)|h 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

    IYgrYfF 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 Cp?ie@ diff --git a/source/packages/log4net.2.0.0/lib/net40-full/log4net.xml b/source/packages/log4net.2.0.0/lib/net40-full/log4net.xml deleted file mode 100644 index de8317a..0000000 --- a/source/packages/log4net.2.0.0/lib/net40-full/log4net.xml +++ /dev/null @@ -1,30205 +0,0 @@ - - - - log4net - - - -

    - Appender that logs to a database. - - - - appends logging events to a table within a - database. The appender can be configured to specify the connection - string by setting the property. - The connection type (provider) can be specified by setting the - property. For more information on database connection strings for - your specific database see
    http://www.connectionstrings.com/. - - - Records are written into the database either using a prepared - statement or a stored procedure. The property - is set to (System.Data.CommandType.Text) to specify a prepared statement - or to (System.Data.CommandType.StoredProcedure) to specify a stored - procedure. - - - The prepared statement text or the name of the stored procedure - must be set in the property. - - - The prepared statement or stored procedure can take a number - of parameters. Parameters are added using the - method. This adds a single to the - ordered list of parameters. The - type may be subclassed if required to provide database specific - functionality. The specifies - the parameter name, database type, size, and how the value should - be generated using a . - - - - An example of a SQL Server table that could be logged to: - - CREATE TABLE [dbo].[Log] ( - [ID] [int] IDENTITY (1, 1) NOT NULL , - [Date] [datetime] NOT NULL , - [Thread] [varchar] (255) NOT NULL , - [Level] [varchar] (20) NOT NULL , - [Logger] [varchar] (255) NOT NULL , - [Message] [varchar] (4000) NOT NULL - ) ON [PRIMARY] - - - - An example configuration to log to the above table: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Julian Biddle - Nicko Cadell - Gert Driesen - Lance Nehring - - - - Abstract base class implementation of that - buffers events in a fixed size buffer. - - - - This base class should be used by appenders that need to buffer a - number of events before logging them. For example the - buffers events and then submits the entire contents of the buffer to - the underlying database in one go. - - - Subclasses should override the - method to deliver the buffered events. - - The BufferingAppenderSkeleton maintains a fixed size cyclic - buffer of events. The size of the buffer is set using - the property. - - A is used to inspect - each event as it arrives in the appender. If the - triggers, then the current buffer is sent immediately - (see ). Otherwise the event - is stored in the buffer. For example, an evaluator can be used to - deliver the events immediately when an ERROR event arrives. - - - The buffering appender can be configured in a mode. - By default the appender is NOT lossy. When the buffer is full all - the buffered events are sent with . - If the property is set to true then the - buffer will not be sent when it is full, and new events arriving - in the appender will overwrite the oldest event in the buffer. - In lossy mode the buffer will only be sent when the - triggers. This can be useful behavior when you need to know about - ERROR events but not about events with a lower level, configure an - evaluator that will trigger when an ERROR event arrives, the whole - buffer will be sent which gives a history of events leading up to - the ERROR event. - - - Nicko Cadell - Gert Driesen - - - - Abstract base class implementation of . - - - - This class provides the code for common functionality, such - as support for threshold filtering and support for general filters. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface for your own strategies for printing log statements. - - - - Implementors should consider extending the - class which provides a default implementation of this interface. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Log the logging event in Appender specific way. - - The event to log - - - This method is called to log a message into this appender. - - - - - - Gets or sets the name of this appender. - - The name of the appender. - - The name uniquely identifies the appender. - - - - - Interface for appenders that support bulk logging. - - - - This interface extends the interface to - support bulk logging of objects. Appenders - should only implement this interface if they can bulk log efficiently. - - - Nicko Cadell - - - - Log the array of logging events in Appender specific way. - - The events to log - - - This method is called to log an array of events into this appender. - - - - - - Interface used to delay activate a configured object. - - - - This allows an object to defer activation of its options until all - options have been set. This is required for components which have - related options that remain ambiguous until all are set. - - - If a component implements this interface then the method - must be called by the container after its all the configured properties have been set - and before the component can be used. - - - Nicko Cadell - - - - Activate the options that were previously set with calls to properties. - - - - This allows an object to defer activation of its options until all - options have been set. This is required for components which have - related options that remain ambiguous until all are set. - - - If a component implements this interface then this method must be called - after its properties have been set before the component can be used. - - - - - - Initial buffer size - - - - - Maximum buffer size before it is recycled - - - - - Default constructor - - - Empty default constructor - - - - - Finalizes this appender by calling the implementation's - method. - - - - If this appender has not been closed then the Finalize method - will call . - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Closes the appender and release resources. - - - - Release any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - This method cannot be overridden by subclasses. This method - delegates the closing of the appender to the - method which must be overridden in the subclass. - - - - - - Performs threshold checks and invokes filters before - delegating actual logging to the subclasses specific - method. - - The event to log. - - - This method cannot be overridden by derived classes. A - derived class should override the method - which is called by this method. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - Calls and checks that - it returns true. - - - - - If all of the above steps succeed then the - will be passed to the abstract method. - - - - - - Performs threshold checks and invokes filters before - delegating actual logging to the subclasses specific - method. - - The array of events to log. - - - This method cannot be overridden by derived classes. A - derived class should override the method - which is called by this method. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - Calls and checks that - it returns true. - - - - - If all of the above steps succeed then the - will be passed to the method. - - - - - - Test if the logging event should we output by this appender - - the event to test - true if the event should be output, false if the event should be ignored - - - This method checks the logging event against the threshold level set - on this appender and also against the filters specified on this - appender. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - - - - - Adds a filter to the end of the filter chain. - - the filter to add to this appender - - - The Filters are organized in a linked list. - - - Setting this property causes the new filter to be pushed onto the - back of the filter chain. - - - - - - Clears the filter list for this appender. - - - - Clears the filter list for this appender. - - - - - - Checks if the message level is below this appender's threshold. - - to test against. - - - If there is no threshold set, then the return value is always true. - - - - true if the meets the - requirements of this appender. - - - - - Is called when the appender is closed. Derived classes should override - this method if resources need to be released. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Subclasses of should implement this method - to perform actual logging. - - The event to append. - - - A subclass must implement this method to perform - logging of the . - - This method will be called by - if all the conditions listed for that method are met. - - - To restrict the logging of events in the appender - override the method. - - - - - - Append a bulk array of logging events. - - the array of logging events - - - This base class implementation calls the - method for each element in the bulk array. - - - A sub class that can better process a bulk array of events should - override this method in addition to . - - - - - - Called before as a precondition. - - - - This method is called by - before the call to the abstract method. - - - This method can be overridden in a subclass to extend the checks - made before the event is passed to the method. - - - A subclass should ensure that they delegate this call to - this base class if it is overridden. - - - true if the call to should proceed. - - - - Renders the to a string. - - The event to render. - The event rendered as a string. - - - Helper method to render a to - a string. This appender must have a - set to render the to - a string. - - If there is exception data in the logging event and - the layout does not process the exception, this method - will append the exception text to the rendered string. - - - Where possible use the alternative version of this method - . - That method streams the rendering onto an existing Writer - which can give better performance if the caller already has - a open and ready for writing. - - - - - - Renders the to a string. - - The event to render. - The TextWriter to write the formatted event to - - - Helper method to render a to - a string. This appender must have a - set to render the to - a string. - - If there is exception data in the logging event and - the layout does not process the exception, this method - will append the exception text to the rendered string. - - - Use this method in preference to - where possible. If, however, the caller needs to render the event - to a string then does - provide an efficient mechanism for doing so. - - - - - - The layout of this appender. - - - See for more information. - - - - - The name of this appender. - - - See for more information. - - - - - The level threshold of this appender. - - - - There is no level threshold filtering by default. - - - See for more information. - - - - - - It is assumed and enforced that errorHandler is never null. - - - - It is assumed and enforced that errorHandler is never null. - - - See for more information. - - - - - - The first filter in the filter chain. - - - - Set to null initially. - - - See for more information. - - - - - - The last filter in the filter chain. - - - See for more information. - - - - - Flag indicating if this appender is closed. - - - See for more information. - - - - - The guard prevents an appender from repeatedly calling its own DoAppend method - - - - - StringWriter used to render events - - - - - The fully qualified type of the AppenderSkeleton class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the threshold of this appender. - - - The threshold of the appender. - - - - All log events with lower level than the threshold level are ignored - by the appender. - - - In configuration files this option is specified by setting the - value of the option to a level - string, such as "DEBUG", "INFO" and so on. - - - - - - Gets or sets the for this appender. - - The of the appender - - - The provides a default - implementation for the property. - - - - - - The filter chain. - - The head of the filter chain filter chain. - - - Returns the head Filter. The Filters are organized in a linked list - and so all Filters on this Appender are available through the result. - - - - - - Gets or sets the for this appender. - - The layout of the appender. - - - See for more information. - - - - - - - Gets or sets the name of this appender. - - The name of the appender. - - - The name uniquely identifies the appender. - - - - - - Tests if this appender requires a to be set. - - - - In the rather exceptional case, where the appender - implementation admits a layout but can also work without it, - then the appender should return true. - - - This default implementation always returns false. - - - - true if the appender requires a layout object, otherwise false. - - - - - The default buffer size. - - - The default size of the cyclic buffer used to store events. - This is set to 512 by default. - - - - - Initializes a new instance of the class. - - - - Protected default constructor to allow subclassing. - - - - - - Initializes a new instance of the class. - - the events passed through this appender must be - fixed by the time that they arrive in the derived class' SendBuffer method. - - - Protected constructor to allow subclassing. - - - The should be set if the subclass - expects the events delivered to be fixed even if the - is set to zero, i.e. when no buffering occurs. - - - - - - Flush the currently buffered events - - - - Flushes any events that have been buffered. - - - If the appender is buffering in mode then the contents - of the buffer will NOT be flushed to the appender. - - - - - - Flush the currently buffered events - - set to true to flush the buffer of lossy events - - - Flushes events that have been buffered. If is - false then events will only be flushed if this buffer is non-lossy mode. - - - If the appender is buffering in mode then the contents - of the buffer will only be flushed if is true. - In this case the contents of the buffer will be tested against the - and if triggering will be output. All other buffered - events will be discarded. - - - If is true then the buffer will always - be emptied by calling this method. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Close this appender instance. - - - - Close this appender instance. If this appender is marked - as not then the remaining events in - the buffer must be sent when the appender is closed. - - - - - - This method is called by the method. - - the event to log - - - Stores the in the cyclic buffer. - - - The buffer will be sent (i.e. passed to the - method) if one of the following conditions is met: - - - - The cyclic buffer is full and this appender is - marked as not lossy (see ) - - - An is set and - it is triggered for the - specified. - - - - Before the event is stored in the buffer it is fixed - (see ) to ensure that - any data referenced by the event will be valid when the buffer - is processed. - - - - - - Sends the contents of the buffer. - - The first logging event. - The buffer containing the events that need to be send. - - - The subclass must override . - - - - - - Sends the events. - - The events that need to be send. - - - The subclass must override this method to process the buffered events. - - - - - - The size of the cyclic buffer used to hold the logging events. - - - Set to by default. - - - - - The cyclic buffer used to store the logging events. - - - - - The triggering event evaluator that causes the buffer to be sent immediately. - - - The object that is used to determine if an event causes the entire - buffer to be sent immediately. This field can be null, which - indicates that event triggering is not to be done. The evaluator - can be set using the property. If this appender - has the ( property) set to - true then an must be set. - - - - - Indicates if the appender should overwrite events in the cyclic buffer - when it becomes full, or if the buffer should be flushed when the - buffer is full. - - - If this field is set to true then an must - be set. - - - - - The triggering event evaluator filters discarded events. - - - The object that is used to determine if an event that is discarded should - really be discarded or if it should be sent to the appenders. - This field can be null, which indicates that all discarded events will - be discarded. - - - - - Value indicating which fields in the event should be fixed - - - By default all fields are fixed - - - - - The events delivered to the subclass must be fixed. - - - - - Gets or sets a value that indicates whether the appender is lossy. - - - true if the appender is lossy, otherwise false. The default is false. - - - - This appender uses a buffer to store logging events before - delivering them. A triggering event causes the whole buffer - to be send to the remote sink. If the buffer overruns before - a triggering event then logging events could be lost. Set - to false to prevent logging events - from being lost. - - If is set to true then an - must be specified. - - - - - Gets or sets the size of the cyclic buffer used to hold the - logging events. - - - The size of the cyclic buffer used to hold the logging events. - - - - The option takes a positive integer - representing the maximum number of logging events to collect in - a cyclic buffer. When the is reached, - oldest events are deleted as new events are added to the - buffer. By default the size of the cyclic buffer is 512 events. - - - If the is set to a value less than - or equal to 1 then no buffering will occur. The logging event - will be delivered synchronously (depending on the - and properties). Otherwise the event will - be buffered. - - - - - - Gets or sets the that causes the - buffer to be sent immediately. - - - The that causes the buffer to be - sent immediately. - - - - The evaluator will be called for each event that is appended to this - appender. If the evaluator triggers then the current buffer will - immediately be sent (see ). - - If is set to true then an - must be specified. - - - - - Gets or sets the value of the to use. - - - The value of the to use. - - - - The evaluator will be called for each event that is discarded from this - appender. If the evaluator triggers then the current buffer will immediately - be sent (see ). - - - - - - Gets or sets a value indicating if only part of the logging event data - should be fixed. - - - true if the appender should only fix part of the logging event - data, otherwise false. The default is false. - - - - Setting this property to true will cause only part of the - event data to be fixed and serialized. This will improve performance. - - - See for more information. - - - - - - Gets or sets a the fields that will be fixed in the event - - - The event fields that will be fixed before the event is buffered - - - - The logging event needs to have certain thread specific values - captured before it can be buffered. See - for details. - - - - - - - Initializes a new instance of the class. - - - Public default constructor to initialize a new instance of this class. - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Override the parent method to close the database - - - - Closes the database command and database connection. - - - - - - Inserts the events into the database. - - The events to insert into the database. - - - Insert all the events specified in the - array into the database. - - - - - - Adds a parameter to the command. - - The parameter to add to the command. - - - Adds a parameter to the ordered list of command parameters. - - - - - - Writes the events to the database using the transaction specified. - - The transaction that the events will be executed under. - The array of events to insert into the database. - - - The transaction argument can be null if the appender has been - configured not to use transactions. See - property for more information. - - - - - - Formats the log message into database statement text. - - The event being logged. - - This method can be overridden by subclasses to provide - more control over the format of the database statement. - - - Text that can be passed to a . - - - - - Creates an instance used to connect to the database. - - - This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). - - The of the object. - The connectionString output from the ResolveConnectionString method. - An instance with a valid connection string. - - - - Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey - property. - - - ConnectiongStringName is only supported on .NET 2.0 and higher. - - Additional information describing the connection string. - A connection string used to connect to the database. - - - - Retrieves the class type of the ADO.NET provider. - - - - Gets the Type of the ADO.NET provider to use to connect to the - database. This method resolves the type specified in the - property. - - - Subclasses can override this method to return a different type - if necessary. - - - The of the ADO.NET provider - - - - Prepares the database command and initialize the parameters. - - - - - Connects to the database. - - - - - Cleanup the existing command. - - - If true, a message will be written using LogLog.Warn if an exception is encountered when calling Dispose. - - - - - Cleanup the existing connection. - - - Calls the IDbConnection's method. - - - - - Flag to indicate if we are using a command object - - - - Set to true when the appender is to use a prepared - statement or stored procedure to insert into the database. - - - - - - The list of objects. - - - - The list of objects. - - - - - - The security context to use for privileged calls - - - - - The that will be used - to insert logging events into a database. - - - - - The database command. - - - - - Database connection string. - - - - - The appSettings key from App.Config that contains the connection string. - - - - - The connectionStrings key from App.Config that contains the connection string. - - - - - String type name of the type name. - - - - - The text of the command. - - - - - The command type. - - - - - Indicates whether to use transactions when writing to the database. - - - - - Indicates whether to use transactions when writing to the database. - - - - - The fully qualified type of the AdoNetAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the database connection string that is used to connect to - the database. - - - The database connection string used to connect to the database. - - - - The connections string is specific to the connection type. - See for more information. - - - Connection string for MS Access via ODBC: - "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" - - Another connection string for MS Access via ODBC: - "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" - - Connection string for MS Access via OLE DB: - "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" - - - - - The appSettings key from App.Config that contains the connection string. - - - - - The connectionStrings key from App.Config that contains the connection string. - - - This property requires at least .NET 2.0. - - - - - Gets or sets the type name of the connection - that should be created. - - - The type name of the connection. - - - - The type name of the ADO.NET provider to use. - - - The default is to use the OLE DB provider. - - - Use the OLE DB Provider. This is the default value. - System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Use the MS SQL Server Provider. - System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Use the ODBC Provider. - Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral - This is an optional package that you can download from - http://msdn.microsoft.com/downloads - search for ODBC .NET Data Provider. - - Use the Oracle Provider. - System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - This is an optional package that you can download from - http://msdn.microsoft.com/downloads - search for .NET Managed Provider for Oracle. - - - - - Gets or sets the command text that is used to insert logging events - into the database. - - - The command text used to insert logging events into the database. - - - - Either the text of the prepared statement or the - name of the stored procedure to execute to write into - the database. - - - The property determines if - this text is a prepared statement or a stored procedure. - - - - - - Gets or sets the command type to execute. - - - The command type to execute. - - - - This value may be either (System.Data.CommandType.Text) to specify - that the is a prepared statement to execute, - or (System.Data.CommandType.StoredProcedure) to specify that the - property is the name of a stored procedure - to execute. - - - The default value is (System.Data.CommandType.Text). - - - - - - Should transactions be used to insert logging events in the database. - - - true if transactions should be used to insert logging events in - the database, otherwise false. The default value is true. - - - - Gets or sets a value that indicates whether transactions should be used - to insert logging events in the database. - - - When set a single transaction will be used to insert the buffered events - into the database. Otherwise each event will be inserted without using - an explicit transaction. - - - - - - Gets or sets the used to call the NetSend method. - - - The used to call the NetSend method. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Should this appender try to reconnect to the database on error. - - - true if the appender should try to reconnect to the database after an - error has occurred, otherwise false. The default value is false, - i.e. not to try to reconnect. - - - - The default behaviour is for the appender not to try to reconnect to the - database if an error occurs. Subsequent logging events are discarded. - - - To force the appender to attempt to reconnect to the database set this - property to true. - - - When the appender attempts to connect to the database there may be a - delay of up to the connection timeout specified in the connection string. - This delay will block the calling application's thread. - Until the connection can be reestablished this potential delay may occur multiple times. - - - - - - Gets or sets the underlying . - - - The underlying . - - - creates a to insert - logging events into a database. Classes deriving from - can use this property to get or set this . Use the - underlying returned from if - you require access beyond that which provides. - - - - - Parameter type used by the . - - - - This class provides the basic database parameter properties - as defined by the interface. - - This type can be subclassed to provide database specific - functionality. The two methods that are called externally are - and . - - - - - - Initializes a new instance of the class. - - - Default constructor for the AdoNetAppenderParameter class. - - - - - Prepare the specified database command object. - - The command to prepare. - - - Prepares the database command object by adding - this parameter to its collection of parameters. - - - - - - Renders the logging event and set the parameter value in the command. - - The command containing the parameter. - The event to be rendered. - - - Renders the logging event using this parameters layout - object. Sets the value of the parameter on the command object. - - - - - - The name of this parameter. - - - - - The database type for this parameter. - - - - - Flag to infer type rather than use the DbType - - - - - The precision for this parameter. - - - - - The scale for this parameter. - - - - - The size for this parameter. - - - - - The to use to render the - logging event into an object for this parameter. - - - - - Gets or sets the name of this parameter. - - - The name of this parameter. - - - - The name of this parameter. The parameter name - must match up to a named parameter to the SQL stored procedure - or prepared statement. - - - - - - Gets or sets the database type for this parameter. - - - The database type for this parameter. - - - - The database type for this parameter. This property should - be set to the database type from the - enumeration. See . - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the type from the value. - - - - - - - Gets or sets the precision for this parameter. - - - The precision for this parameter. - - - - The maximum number of digits used to represent the Value. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the precision from the value. - - - - - - - Gets or sets the scale for this parameter. - - - The scale for this parameter. - - - - The number of decimal places to which Value is resolved. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the scale from the value. - - - - - - - Gets or sets the size for this parameter. - - - The size for this parameter. - - - - The maximum size, in bytes, of the data within the column. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the size from the value. - - - - - - - Gets or sets the to use to - render the logging event into an object for this - parameter. - - - The used to render the - logging event into an object for this parameter. - - - - The that renders the value for this - parameter. - - - The can be used to adapt - any into a - for use in the property. - - - - - - Appends logging events to the terminal using ANSI color escape sequences. - - - - AnsiColorTerminalAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. It also allows the color of a specific level of message to be set. - - - This appender expects the terminal to understand the VT100 control set - in order to interpret the color codes. If the terminal or console does not - understand the control codes the behavior is not defined. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes each message to the System.Console.Out or - System.Console.Error that is set at the time the event is appended. - Therefore it is possible to programmatically redirect the output of this appender - (for example NUnit does this to capture program output). While this is the desired - behavior of this appender it may have security implications in your application. - - - When configuring the ANSI colored terminal appender, a mapping should be - specified to map a logging level to a color. For example: - - - - - - - - - - - - - - - The Level is the standard log4net logging level and ForeColor and BackColor can be any - of the following values: - - Blue - Green - Red - White - Yellow - Purple - Cyan - - These color values cannot be combined together to make new colors. - - - The attributes can be any combination of the following: - - Brightforeground is brighter - Dimforeground is dimmer - Underscoremessage is underlined - Blinkforeground is blinking (does not work on all terminals) - Reverseforeground and background are reversed - Hiddenoutput is hidden - Strikethroughmessage has a line through it - - While any of these attributes may be combined together not all combinations - work well together, for example setting both Bright and Dim attributes makes - no sense. - - - Patrick Wagstrom - Nicko Cadell - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Ansi code to reset terminal - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Add a mapping of level to color - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the foreground and background colours - for a level. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to color mappings set on this appender. - - - - - - Flag to write output to the error stream rather than the standard output stream - - - - - Mapping from level object to color value - - - - - Target is the value of the console output stream. - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The enum of possible display attributes - - - - The following flags can be combined together to - form the ANSI color attributes. - - - - - - - text is bright - - - - - text is dim - - - - - text is underlined - - - - - text is blinking - - - Not all terminals support this attribute - - - - - text and background colors are reversed - - - - - text is hidden - - - - - text is displayed with a strikethrough - - - - - The enum of possible foreground or background color values for - use with the color mapping method - - - - The output can be in one for the following ANSI colors. - - - - - - - color is black - - - - - color is red - - - - - color is green - - - - - color is yellow - - - - - color is blue - - - - - color is magenta - - - - - color is cyan - - - - - color is white - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and the color it should be displayed in. - - - - - - An entry in the - - - - This is an abstract base class for types that are stored in the - object. - - - Nicko Cadell - - - - Default protected constructor - - - - Default protected constructor - - - - - - Initialize any options defined on this entry - - - - Should be overridden by any classes that need to initialise based on their options - - - - - - The level that is the key for this mapping - - - The that is the key for this mapping - - - - Get or set the that is the key for this - mapping subclass. - - - - - - Initialize the options for the object - - - - Combine the and together - and append the attributes. - - - - - - The mapped foreground color for the specified level - - - - Required property. - The mapped foreground color for the specified level - - - - - - The mapped background color for the specified level - - - - Required property. - The mapped background color for the specified level - - - - - - The color attributes for the specified level - - - - Required property. - The color attributes for the specified level - - - - - - The combined , and - suitable for setting the ansi terminal color. - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a AppenderCollection instance. - - list to create a readonly wrapper arround - - An AppenderCollection wrapper that is read-only. - - - - - An empty readonly static AppenderCollection - - - - - Initializes a new instance of the AppenderCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the AppenderCollection class - that has the specified initial capacity. - - - The number of elements that the new AppenderCollection is initially capable of storing. - - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified AppenderCollection. - - The AppenderCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - - Copies the entire AppenderCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire AppenderCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the AppenderCollection. - - The to be added to the end of the AppenderCollection. - The index at which the value has been added. - - - - Removes all elements from the AppenderCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the AppenderCollection. - - The to check for. - true if is found in the AppenderCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the AppenderCollection. - - The to locate in the AppenderCollection. - - The zero-based index of the first occurrence of - in the entire AppenderCollection, if found; otherwise, -1. - - - - - Inserts an element into the AppenderCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the AppenderCollection. - - The to remove from the AppenderCollection. - - The specified was not found in the AppenderCollection. - - - - - Removes the element at the specified index of the AppenderCollection. - - The zero-based index of the element to remove. - - is less than zero - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the AppenderCollection. - - An for the entire AppenderCollection. - - - - Adds the elements of another AppenderCollection to the current AppenderCollection. - - The AppenderCollection whose elements should be added to the end of the current AppenderCollection. - The new of the AppenderCollection. - - - - Adds the elements of a array to the current AppenderCollection. - - The array whose elements should be added to the end of the AppenderCollection. - The new of the AppenderCollection. - - - - Adds the elements of a collection to the current AppenderCollection. - - The collection whose elements should be added to the end of the AppenderCollection. - The new of the AppenderCollection. - - - - Sets the capacity to the actual number of elements. - - - - - Return the collection elements as an array - - the array - - - - is less than zero - -or- - is equal to or greater than . - - - - - is less than zero - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the AppenderCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - The zero-based index of the element to get or set. - - is less than zero - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false - - - - Gets or sets the number of elements the AppenderCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - - A value - - - - - Supports simple iteration over a . - - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - - - - - Appends log events to the ASP.NET system. - - - - - Diagnostic information and tracing messages that you specify are appended to the output - of the page that is sent to the requesting browser. Optionally, you can view this information - from a separate trace viewer (Trace.axd) that displays trace information for every page in a - given application. - - - Trace statements are processed and displayed only when tracing is enabled. You can control - whether tracing is displayed to a page, to the trace viewer, or both. - - - The logging event is passed to the or - method depending on the level of the logging event. - The event's logger name is the default value for the category parameter of the Write/Warn method. - - - Nicko Cadell - Gert Driesen - Ron Grabowski - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Write the logging event to the ASP.NET trace - - the event to log - - - Write the logging event to the ASP.NET trace - HttpContext.Current.Trace - (). - - - - - - Defaults to %logger - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The category parameter sent to the Trace method. - - - - Defaults to %logger which will use the logger name of the current - as the category parameter. - - - - - - - - Buffers events and then forwards them to attached appenders. - - - - The events are buffered in this appender until conditions are - met to allow the appender to deliver the events to the attached - appenders. See for the - conditions that cause the buffer to be sent. - - The forwarding appender can be used to specify different - thresholds and filters for the same appender at different locations - within the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Interface for attaching appenders to objects. - - - - Interface for attaching, removing and retrieving appenders. - - - Nicko Cadell - Gert Driesen - - - - Attaches an appender. - - The appender to add. - - - Add the specified appender. The implementation may - choose to allow or deny duplicate appenders. - - - - - - Gets an attached appender with the specified name. - - The name of the appender to get. - - The appender with the name specified, or null if no appender with the - specified name is found. - - - - Returns an attached appender with the specified. - If no appender with the specified name is found null will be - returned. - - - - - - Removes all attached appenders. - - - - Removes and closes all attached appenders - - - - - - Removes the specified appender from the list of attached appenders. - - The appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Gets all attached appenders. - - - A collection of attached appenders. - - - - Gets a collection of attached appenders. - If there are no attached appenders the - implementation should return an empty - collection rather than null. - - - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Send the events. - - The events that need to be send. - - - Forwards the events to the attached appenders. - - - - - - Adds an to the list of appenders of this - instance. - - The to add to this appender. - - - If the specified is already in the list of - appenders, then it won't be added again. - - - - - - Looks for the appender with the specified name. - - The name of the appender to lookup. - - The appender with the specified name, or null. - - - - Get the named appender attached to this buffering appender. - - - - - - Removes all previously added appenders from this appender. - - - - This is useful when re-reading configuration information. - - - - - - Removes the specified appender from the list of appenders. - - The appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Implementation of the interface - - - - - Gets the appenders contained in this appender as an - . - - - If no appenders can be found, then an - is returned. - - - A collection of the appenders in this appender. - - - - - Appends logging events to the console. - - - - ColoredConsoleAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. It also allows the color of a specific type of message to be set. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes directly to the application's attached console - not to the System.Console.Out or System.Console.Error TextWriter. - The System.Console.Out and System.Console.Error streams can be - programmatically redirected (for example NUnit does this to capture program output). - This appender will ignore these redirections because it needs to use Win32 - API calls to colorize the output. To respect these redirections the - must be used. - - - When configuring the colored console appender, mapping should be - specified to map a logging level to a color. For example: - - - - - - - - - - - - - - The Level is the standard log4net logging level and ForeColor and BackColor can be any - combination of the following values: - - Blue - Green - Red - White - Yellow - Purple - Cyan - HighIntensity - - - - Rick Hobbs - Nicko Cadell - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - flag set to true to write to the console error stream - - When is set to true, output is written to - the standard error output stream. Otherwise, output is written to the standard - output stream. - - - - - Add a mapping of level to color - done by the config file - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the foreground and background colors - for a level. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to color mappings set on this appender. - - - - - - Flag to write output to the error stream rather than the standard output stream - - - - - Mapping from level object to color value - - - - - The console output stream writer to write to - - - - This writer is not thread safe. - - - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The enum of possible color values for use with the color mapping method - - - - The following flags can be combined together to - form the colors. - - - - - - - color is blue - - - - - color is green - - - - - color is red - - - - - color is white - - - - - color is yellow - - - - - color is purple - - - - - color is cyan - - - - - color is intensified - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and the color it should be displayed in. - - - - - - Initialize the options for the object - - - - Combine the and together. - - - - - - The mapped foreground color for the specified level - - - - Required property. - The mapped foreground color for the specified level. - - - - - - The mapped background color for the specified level - - - - Required property. - The mapped background color for the specified level. - - - - - - The combined and suitable for - setting the console color. - - - - - Appends logging events to the console. - - - - ConsoleAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes each message to the System.Console.Out or - System.Console.Error that is set at the time the event is appended. - Therefore it is possible to programmatically redirect the output of this appender - (for example NUnit does this to capture program output). While this is the desired - behavior of this appender it may have security implications in your application. - - - Nicko Cadell - Gert Driesen - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - flag set to true to write to the console error stream - - When is set to true, output is written to - the standard error output stream. Otherwise, output is written to the standard - output stream. - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appends log events to the system. - - - - The application configuration file can be used to control what listeners - are actually used. See the MSDN documentation for the - class for details on configuring the - debug system. - - - Events are written using the - method. The event's logger name is passed as the value for the category name to the Write method. - - - Nicko Cadell - - - - Initializes a new instance of the . - - - - Default constructor. - - - - - - Initializes a new instance of the - with a specified layout. - - The layout to use with this appender. - - - Obsolete constructor. - - - - - - Writes the logging event to the system. - - The event to log. - - - Writes the logging event to the system. - If is true then the - is called. - - - - - - Immediate flush means that the underlying writer or output stream - will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logs events are not actually written to persistent media if and - when the application crashes. - - - The default value is true. - - - - - Gets or sets a value that indicates whether the appender will - flush at the end of each write. - - - The default behavior is to flush at the end of each - write. If the option is set tofalse, then the underlying - stream can defer writing to physical medium to a later time. - - - Avoiding the flush operation at the end of each append results - in a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Writes events to the system event log. - - - - The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. - See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog - - - The EventID of the event log entry can be - set using the EventID property () - on the . - - - The Category of the event log entry can be - set using the Category property () - on the . - - - There is a limit of 32K characters for an event log message - - - When configuring the EventLogAppender a mapping can be - specified to map a logging level to an event log entry type. For example: - - - <mapping> - <level value="ERROR" /> - <eventLogEntryType value="Error" /> - </mapping> - <mapping> - <level value="DEBUG" /> - <eventLogEntryType value="Information" /> - </mapping> - - - The Level is the standard log4net logging level and eventLogEntryType can be any value - from the enum, i.e.: - - Erroran error event - Warninga warning event - Informationan informational event - - - - Aspi Havewala - Douglas de la Torre - Nicko Cadell - Gert Driesen - Thomas Voss - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initializes a new instance of the class - with the specified . - - The to use with this appender. - - - Obsolete constructor. - - - - - - Add a mapping of level to - done by the config file - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the event log entry type for a level. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Create an event log source - - - Uses different API calls under NET_2_0 - - - - - This method is called by the - method. - - the event to log - - Writes the event to the system event log using the - . - - If the event has an EventID property (see ) - set then this integer will be used as the event log event id. - - - There is a limit of 32K characters for an event log message - - - - - - Get the equivalent for a - - the Level to convert to an EventLogEntryType - The equivalent for a - - Because there are fewer applicable - values to use in logging levels than there are in the - this is a one way mapping. There is - a loss of information during the conversion. - - - - - The log name is the section in the event logs where the messages - are stored. - - - - - Name of the application to use when logging. This appears in the - application column of the event log named by . - - - - - The name of the machine which holds the event log. This is - currently only allowed to be '.' i.e. the current machine. - - - - - Mapping from level object to EventLogEntryType - - - - - The security context to use for privileged calls - - - - - The event ID to use unless one is explicitly specified via the LoggingEvent's properties. - - - - - The event category to use unless one is explicitly specified via the LoggingEvent's properties. - - - - - The fully qualified type of the EventLogAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - The name of the log where messages will be stored. - - - The string name of the log where messages will be stored. - - - This is the name of the log as it appears in the Event Viewer - tree. The default value is to log into the Application - log, this is where most applications write their events. However - if you need a separate log for your application (or applications) - then you should set the appropriately. - This should not be used to distinguish your event log messages - from those of other applications, the - property should be used to distinguish events. This property should be - used to group together events into a single log. - - - - - - Property used to set the Application name. This appears in the - event logs when logging. - - - The string used to distinguish events from different sources. - - - Sets the event log source property. - - - - - This property is used to return the name of the computer to use - when accessing the event logs. Currently, this is the current - computer, denoted by a dot "." - - - The string name of the machine holding the event log that - will be logged into. - - - This property cannot be changed. It is currently set to '.' - i.e. the local machine. This may be changed in future. - - - - - Gets or sets the used to write to the EventLog. - - - The used to write to the EventLog. - - - - The system security context used to write to the EventLog. - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. - - - - The EventID of the event log entry will normally be - set using the EventID property () - on the . - This property provides the fallback value which defaults to 0. - - - - - - Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. - - - - The Category of the event log entry will normally be - set using the Category property () - on the . - This property provides the fallback value which defaults to 0. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and its event log entry type. - - - - - - The for this entry - - - - Required property. - The for this entry - - - - - - Appends logging events to a file. - - - - Logging events are sent to the file specified by - the property. - - - The file can be opened in either append or overwrite mode - by specifying the property. - If the file path is relative it is taken as relative from - the application base directory. The file encoding can be - specified by setting the property. - - - The layout's and - values will be written each time the file is opened and closed - respectively. If the property is - then the file may contain multiple copies of the header and footer. - - - This appender will first try to open the file for writing when - is called. This will typically be during configuration. - If the file cannot be opened for writing the appender will attempt - to open the file again each time a message is logged to the appender. - If the file cannot be opened for writing when a message is logged then - the message will be discarded by this appender. - - - The supports pluggable file locking models via - the property. - The default behavior, implemented by - is to obtain an exclusive write lock on the file until this appender is closed. - The alternative models only hold a - write lock while the appender is writing a logging event () - or synchronize by using a named system wide Mutex (). - - - All locking strategies have issues and you should seriously consider using a different strategy that - avoids having multiple processes logging to the same file. - - - Nicko Cadell - Gert Driesen - Rodrigo B. de Oliveira - Douglas de la Torre - Niall Daley - - - - Sends logging events to a . - - - - An Appender that writes to a . - - - This appender may be used stand alone if initialized with an appropriate - writer, however it is typically used as a base class for an appender that - can open a to write to. - - - Nicko Cadell - Gert Driesen - Douglas de la Torre - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initializes a new instance of the class and - sets the output destination to a new initialized - with the specified . - - The layout to use with this appender. - The to output to. - - - Obsolete constructor. - - - - - - Initializes a new instance of the class and sets - the output destination to the specified . - - The layout to use with this appender - The to output to - - The must have been previously opened. - - - - Obsolete constructor. - - - - - - This method determines if there is a sense in attempting to append. - - - - This method checks if an output target has been set and if a - layout has been set. - - - false if any of the preconditions fail. - - - - This method is called by the - method. - - The event to log. - - - Writes a log statement to the output stream if the output stream exists - and is writable. - - - The format of the output will depend on the appender's layout. - - - - - - This method is called by the - method. - - The array of events to log. - - - This method writes all the bulk logged events to the output writer - before flushing the stream. - - - - - - Close this appender instance. The underlying stream or writer is also closed. - - - Closed appenders cannot be reused. - - - - - Writes the footer and closes the underlying . - - - - Writes the footer and closes the underlying . - - - - - - Closes the underlying . - - - - Closes the underlying . - - - - - - Clears internal references to the underlying - and other variables. - - - - Subclasses can override this method for an alternate closing behavior. - - - - - - Writes a footer as produced by the embedded layout's property. - - - - Writes a footer as produced by the embedded layout's property. - - - - - - Writes a header produced by the embedded layout's property. - - - - Writes a header produced by the embedded layout's property. - - - - - - Called to allow a subclass to lazily initialize the writer - - - - This method is called when an event is logged and the or - have not been set. This allows a subclass to - attempt to initialize the writer multiple times. - - - - - - This is the where logging events - will be written to. - - - - - Immediate flush means that the underlying - or output stream will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logging events are not actually persisted if and when the application - crashes. - - - The default value is true. - - - - - - The fully qualified type of the TextWriterAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or set whether the appender will flush at the end - of each append operation. - - - - The default behavior is to flush at the end of each - append operation. - - - If this option is set to false, then the underlying - stream can defer persisting the logging event to a later - time. - - - - Avoiding the flush operation at the end of each append results in - a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - Sets the where the log output will go. - - - - The specified must be open and writable. - - - The will be closed when the appender - instance is closed. - - - Note: Logging to an unopened will fail. - - - - - - Gets or set the and the underlying - , if any, for this appender. - - - The for this appender. - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Gets or sets the where logging events - will be written to. - - - The where logging events are written. - - - - This is the where logging events - will be written to. - - - - - - Default constructor - - - - Default constructor - - - - - - Construct a new appender using the layout, file and append mode. - - the layout to use with this appender - the full path to the file to write to - flag to indicate if the file should be appended to - - - Obsolete constructor. - - - - - - Construct a new appender using the layout and file specified. - The file will be appended to. - - the layout to use with this appender - the full path to the file to write to - - - Obsolete constructor. - - - - - - Activate the options on the file appender. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - This will cause the file to be opened. - - - - - - Closes any previously opened file and calls the parent's . - - - - Resets the filename and the file stream. - - - - - - Called to initialize the file writer - - - - Will be called for each logged message until the file is - successfully opened. - - - - - - This method is called by the - method. - - The event to log. - - - Writes a log statement to the output stream if the output stream exists - and is writable. - - - The format of the output will depend on the appender's layout. - - - - - - This method is called by the - method. - - The array of events to log. - - - Acquires the output file locks once before writing all the events to - the stream. - - - - - - Writes a footer as produced by the embedded layout's property. - - - - Writes a footer as produced by the embedded layout's property. - - - - - - Writes a header produced by the embedded layout's property. - - - - Writes a header produced by the embedded layout's property. - - - - - - Closes the underlying . - - - - Closes the underlying . - - - - - - Closes the previously opened file. - - - - Writes the to the file and then - closes the file. - - - - - - Sets and opens the file where the log output will go. The specified file must be writable. - - The path to the log file. Must be a fully qualified path. - If true will append to fileName. Otherwise will truncate fileName - - - Calls but guarantees not to throw an exception. - Errors are passed to the . - - - - - - Sets and opens the file where the log output will go. The specified file must be writable. - - The path to the log file. Must be a fully qualified path. - If true will append to fileName. Otherwise will truncate fileName - - - If there was already an opened file, then the previous file - is closed first. - - - This method will ensure that the directory structure - for the specified exists. - - - - - - Sets the quiet writer used for file output - - the file stream that has been opened for writing - - - This implementation of creates a - over the and passes it to the - method. - - - This method can be overridden by sub classes that want to wrap the - in some way, for example to encrypt the output - data using a System.Security.Cryptography.CryptoStream. - - - - - - Sets the quiet writer being used. - - the writer over the file stream that has been opened for writing - - - This method can be overridden by sub classes that want to - wrap the in some way. - - - - - - Convert a path into a fully qualified path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - - - - Flag to indicate if we should append to the file - or overwrite the file. The default is to append. - - - - - The name of the log file. - - - - - The encoding to use for the file stream. - - - - - The security context to use for privileged calls - - - - - The stream to log to. Has added locking semantics - - - - - The locking model to use - - - - - The fully qualified type of the FileAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the path to the file that logging will be written to. - - - The path to the file that logging will be written to. - - - - If the path is relative it is taken as relative from - the application base directory. - - - - - - Gets or sets a flag that indicates whether the file should be - appended to or overwritten. - - - Indicates whether the file should be appended to or overwritten. - - - - If the value is set to false then the file will be overwritten, if - it is set to true then the file will be appended to. - - The default value is true. - - - - - Gets or sets used to write to the file. - - - The used to write to the file. - - - - The default encoding set is - which is the encoding for the system's current ANSI code page. - - - - - - Gets or sets the used to write to the file. - - - The used to write to the file. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Gets or sets the used to handle locking of the file. - - - The used to lock the file. - - - - Gets or sets the used to handle locking of the file. - - - There are three built in locking models, , and . - The first locks the file from the start of logging to the end, the - second locks only for the minimal amount of time when logging each message - and the last synchronizes processes using a named system wide Mutex. - - - The default locking model is the . - - - - - - Write only that uses the - to manage access to an underlying resource. - - - - - True asynchronous writes are not supported, the implementation forces a synchronous write. - - - - - Exception base type for log4net. - - - - This type extends . It - does not add any new functionality but does differentiate the - type of exception being thrown. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - A message to include with the exception. - - - Initializes a new instance of the class with - the specified message. - - - - - - Constructor - - A message to include with the exception. - A nested exception to include. - - - Initializes a new instance of the class - with the specified message and inner exception. - - - - - - Serialization constructor - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Locking model base class - - - - Base class for the locking models available to the derived loggers. - - - - - - Open the output file - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Acquire the lock on the file in preparation for writing to it. - Return a stream pointing to the file. - must be called to release the lock on the output file. - - - - - - Release the lock on the file - - - - Release the lock on the file. No further writes will be made to the - stream until is called again. - - - - - - Helper method that creates a FileStream under CurrentAppender's SecurityContext. - - - - Typically called during OpenFile or AcquireLock. - - - If the directory portion of the does not exist, it is created - via Directory.CreateDirecctory. - - - - - - - - - - Helper method to close under CurrentAppender's SecurityContext. - - - Does not set to null. - - - - - - Gets or sets the for this LockingModel - - - The for this LockingModel - - - - The file appender this locking model is attached to and working on - behalf of. - - - The file appender is used to locate the security context and the error handler to use. - - - The value of this property will be set before is - called. - - - - - - Hold an exclusive lock on the output file - - - - Open the file once for writing and hold it open until is called. - Maintains an exclusive lock on the file during this time. - - - - - - Open the file specified and prepare for logging. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Does nothing. The lock is already taken - - - - - - Release the lock on the file - - - - Does nothing. The lock will be released when the file is closed. - - - - - - Acquires the file lock for each write - - - - Opens the file once for each / cycle, - thus holding the lock for the minimal amount of time. This method of locking - is considerably slower than but allows - other processes to move/delete the log file whilst logging continues. - - - - - - Prepares to open the file when the first message is logged. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Acquire the lock on the file in preparation for writing to it. - Return a stream pointing to the file. - must be called to release the lock on the output file. - - - - - - Release the lock on the file - - - - Release the lock on the file. No further writes will be made to the - stream until is called again. - - - - - - Provides cross-process file locking. - - Ron Grabowski - Steve Wranovsky - - - - Open the file specified and prepare for logging. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Does nothing. The lock is already taken - - - - - - - - - - - This appender forwards logging events to attached appenders. - - - - The forwarding appender can be used to specify different thresholds - and filters for the same appender at different locations within the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Forward the logging event to the attached appenders - - The event to log. - - - Delivers the logging event to all the attached appenders. - - - - - - Forward the logging events to the attached appenders - - The array of events to log. - - - Delivers the logging events to all the attached appenders. - - - - - - Adds an to the list of appenders of this - instance. - - The to add to this appender. - - - If the specified is already in the list of - appenders, then it won't be added again. - - - - - - Looks for the appender with the specified name. - - The name of the appender to lookup. - - The appender with the specified name, or null. - - - - Get the named appender attached to this appender. - - - - - - Removes all previously added appenders from this appender. - - - - This is useful when re-reading configuration information. - - - - - - Removes the specified appender from the list of appenders. - - The appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Implementation of the interface - - - - - Gets the appenders contained in this appender as an - . - - - If no appenders can be found, then an - is returned. - - - A collection of the appenders in this appender. - - - - - Logs events to a local syslog service. - - - - This appender uses the POSIX libc library functions openlog, syslog, and closelog. - If these functions are not available on the local system then this appender will not work! - - - The functions openlog, syslog, and closelog are specified in SUSv2 and - POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. - - - This appender talks to a local syslog service. If you need to log to a remote syslog - daemon and you cannot configure your local syslog service to do this you may be - able to use the to log via UDP. - - - Syslog messages must have a facility and and a severity. The severity - is derived from the Level of the logging event. - The facility must be chosen from the set of defined syslog - values. The facilities list is predefined - and cannot be extended. - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - Rob Lyon - Nicko Cadell - - - - Initializes a new instance of the class. - - - This instance of the class is set up to write - to a local syslog service. - - - - - Add a mapping of level to severity - - The mapping to add - - - Adds a to this appender. - - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to a remote syslog daemon. - - - The format of the output will depend on the appender's layout. - - - - - - Close the syslog when the appender is closed - - - - Close the syslog when the appender is closed - - - - - - Translates a log4net level to a syslog severity. - - A log4net level. - A syslog severity. - - - Translates a log4net level to a syslog severity. - - - - - - Generate a syslog priority. - - The syslog facility. - The syslog severity. - A syslog priority. - - - - The facility. The default facility is . - - - - - The message identity - - - - - Marshaled handle to the identity string. We have to hold on to the - string as the openlog and syslog APIs just hold the - pointer to the ident and dereference it for each log message. - - - - - Mapping from level object to syslog severity - - - - - Open connection to system logger. - - - - - Generate a log message. - - - - The libc syslog method takes a format string and a variable argument list similar - to the classic printf function. As this type of vararg list is not supported - by C# we need to specify the arguments explicitly. Here we have specified the - format string with a single message argument. The caller must set the format - string to "%s". - - - - - - Close descriptor used to write to system logger. - - - - - Message identity - - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - - - - Syslog facility - - - Set to one of the values. The list of - facilities is predefined and cannot be extended. The default value - is . - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - syslog severities - - - - The log4net Level maps to a syslog severity using the - method and the - class. The severity is set on . - - - - - - system is unusable - - - - - action must be taken immediately - - - - - critical conditions - - - - - error conditions - - - - - warning conditions - - - - - normal but significant condition - - - - - informational - - - - - debug-level messages - - - - - syslog facilities - - - - The syslog facility defines which subsystem the logging comes from. - This is set on the property. - - - - - - kernel messages - - - - - random user-level messages - - - - - mail system - - - - - system daemons - - - - - security/authorization messages - - - - - messages generated internally by syslogd - - - - - line printer subsystem - - - - - network news subsystem - - - - - UUCP subsystem - - - - - clock (cron/at) daemon - - - - - security/authorization messages (private) - - - - - ftp daemon - - - - - NTP subsystem - - - - - log audit - - - - - log alert - - - - - clock daemon - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - - - The mapped syslog severity for the specified level - - - - Required property. - The mapped syslog severity for the specified level - - - - - - Stores logging events in an array. - - - - The memory appender stores all the logging events - that are appended in an in-memory array. - - - Use the method to get - the current list of events that have been appended. - - - Use the method to clear the - current list of events. - - - Julian Biddle - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Gets the events that have been logged. - - The events that have been logged - - - Gets the events that have been logged. - - - - - - This method is called by the method. - - the event to log - - Stores the in the events list. - - - - - Clear the list of events - - - Clear the list of events - - - - - The list of events that have been appended. - - - - - Value indicating which fields in the event should be fixed - - - By default all fields are fixed - - - - - Gets or sets a value indicating whether only part of the logging event - data should be fixed. - - - true if the appender should only fix part of the logging event - data, otherwise false. The default is false. - - - - Setting this property to true will cause only part of the event - data to be fixed and stored in the appender, hereby improving performance. - - - See for more information. - - - - - - Gets or sets the fields that will be fixed in the event - - - - The logging event needs to have certain thread specific values - captured before it can be buffered. See - for details. - - - - - - Logs entries by sending network messages using the - native function. - - - - You can send messages only to names that are active - on the network. If you send the message to a user name, - that user must be logged on and running the Messenger - service to receive the message. - - - The receiver will get a top most window displaying the - messages one at a time, therefore this appender should - not be used to deliver a high volume of messages. - - - The following table lists some possible uses for this appender : - - - - - Action - Property Value(s) - - - Send a message to a user account on the local machine - - - = <name of the local machine> - - - = <user name> - - - - - Send a message to a user account on a remote machine - - - = <name of the remote machine> - - - = <user name> - - - - - Send a message to a domain user account - - - = <name of a domain controller | uninitialized> - - - = <user name> - - - - - Send a message to all the names in a workgroup or domain - - - = <workgroup name | domain name>* - - - - - Send a message from the local machine to a remote machine - - - = <name of the local machine | uninitialized> - - - = <name of the remote machine> - - - - - - - Note : security restrictions apply for sending - network messages, see - for more information. - - - - - An example configuration section to log information - using this appender from the local machine, named - LOCAL_PC, to machine OPERATOR_PC : - - - - - - - - - - Nicko Cadell - Gert Driesen - - - - The DNS or NetBIOS name of the server on which the function is to execute. - - - - - The sender of the network message. - - - - - The message alias to which the message should be sent. - - - - - The security context to use for privileged calls - - - - - Initializes the appender. - - - The default constructor initializes all fields to their default values. - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The appender will be ignored if no was specified. - - - The required property was not specified. - - - - This method is called by the method. - - The event to log. - - - Sends the event using a network message. - - - - - - Sends a buffer of information to a registered message alias. - - The DNS or NetBIOS name of the server on which the function is to execute. - The message alias to which the message buffer should be sent - The originator of the message. - The message text. - The length, in bytes, of the message text. - - - The following restrictions apply for sending network messages: - - - - - Platform - Requirements - - - Windows NT - - - No special group membership is required to send a network message. - - - Admin, Accounts, Print, or Server Operator group membership is required to - successfully send a network message on a remote server. - - - - - Windows 2000 or later - - - If you send a message on a domain controller that is running Active Directory, - access is allowed or denied based on the access control list (ACL) for the securable - object. The default ACL permits only Domain Admins and Account Operators to send a network message. - - - On a member server or workstation, only Administrators and Server Operators can send a network message. - - - - - - - For more information see Security Requirements for the Network Management Functions. - - - - - If the function succeeds, the return value is zero. - - - - - - Gets or sets the sender of the message. - - - The sender of the message. - - - If this property is not specified, the message is sent from the local computer. - - - - - Gets or sets the message alias to which the message should be sent. - - - The recipient of the message. - - - This property should always be specified in order to send a message. - - - - - Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. - - - DNS or NetBIOS name of the remote server on which the function is to execute. - - - - For Windows NT 4.0 and earlier, the string should begin with \\. - - - If this property is not specified, the local computer is used. - - - - - - Gets or sets the used to call the NetSend method. - - - The used to call the NetSend method. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appends log events to the OutputDebugString system. - - - - OutputDebugStringAppender appends log events to the - OutputDebugString system. - - - The string is passed to the native OutputDebugString - function. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Write the logging event to the output debug string API - - the event to log - - - Write the logging event to the output debug string API - - - - - - Stub for OutputDebugString native method - - the string to output - - - Stub for OutputDebugString native method - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Logs events to a remote syslog daemon. - - - - The BSD syslog protocol is used to remotely log to - a syslog daemon. The syslogd listens for for messages - on UDP port 514. - - - The syslog UDP protocol is not authenticated. Most syslog daemons - do not accept remote log messages because of the security implications. - You may be able to use the LocalSyslogAppender to talk to a local - syslog service. - - - There is an RFC 3164 that claims to document the BSD Syslog Protocol. - This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. - This appender generates what the RFC calls an "Original Device Message", - i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation - this format of message will be accepted by all current syslog daemon - implementations. The daemon will attach the current time and the source - hostname or IP address to any messages received. - - - Syslog messages must have a facility and and a severity. The severity - is derived from the Level of the logging event. - The facility must be chosen from the set of defined syslog - values. The facilities list is predefined - and cannot be extended. - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - Rob Lyon - Nicko Cadell - - - - Sends logging events as connectionless UDP datagrams to a remote host or a - multicast group using an . - - - - UDP guarantees neither that messages arrive, nor that they arrive in the correct order. - - - To view the logging results, a custom application can be developed that listens for logging - events. - - - When decoding events send via this appender remember to use the same encoding - to decode the events as was used to send the events. See the - property to specify the encoding to use. - - - - This example shows how to log receive logging events that are sent - on IP address 244.0.0.1 and port 8080 to the console. The event is - encoded in the packet as a unicode string and it is decoded as such. - - IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); - UdpClient udpClient; - byte[] buffer; - string loggingEvent; - - try - { - udpClient = new UdpClient(8080); - - while(true) - { - buffer = udpClient.Receive(ref remoteEndPoint); - loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); - Console.WriteLine(loggingEvent); - } - } - catch(Exception e) - { - Console.WriteLine(e.ToString()); - } - - - Dim remoteEndPoint as IPEndPoint - Dim udpClient as UdpClient - Dim buffer as Byte() - Dim loggingEvent as String - - Try - remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) - udpClient = new UdpClient(8080) - - While True - buffer = udpClient.Receive(ByRef remoteEndPoint) - loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) - Console.WriteLine(loggingEvent) - Wend - Catch e As Exception - Console.WriteLine(e.ToString()) - End Try - - - An example configuration section to log information using this appender to the - IP 224.0.0.1 on port 8080: - - - - - - - - - - Gert Driesen - Nicko Cadell - - - - Initializes a new instance of the class. - - - The default constructor initializes all fields to their default values. - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The appender will be ignored if no was specified or - an invalid remote or local TCP port number was specified. - - - The required property was not specified. - The TCP port number assigned to or is less than or greater than . - - - - This method is called by the method. - - The event to log. - - - Sends the event using an UDP datagram. - - - Exceptions are passed to the . - - - - - - Closes the UDP connection and releases all resources associated with - this instance. - - - - Disables the underlying and releases all managed - and unmanaged resources associated with the . - - - - - - Initializes the underlying connection. - - - - The underlying is initialized and binds to the - port number from which you intend to communicate. - - - Exceptions are passed to the . - - - - - - The IP address of the remote host or multicast group to which - the logging event will be sent. - - - - - The TCP port number of the remote host or multicast group to - which the logging event will be sent. - - - - - The cached remote endpoint to which the logging events will be sent. - - - - - The TCP port number from which the will communicate. - - - - - The instance that will be used for sending the - logging events. - - - - - The encoding to use for the packet. - - - - - Gets or sets the IP address of the remote host or multicast group to which - the underlying should sent the logging event. - - - The IP address of the remote host or multicast group to which the logging event - will be sent. - - - - Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to - 239.255.255.255). Multicast packets can pass across different networks through routers, so - it is possible to use multicasts in an Internet scenario as long as your network provider - supports multicasting. - - - Hosts that want to receive particular multicast messages must register their interest by joining - the multicast group. Multicast messages are not sent to networks where no host has joined - the multicast group. Class D IP addresses are used for multicast groups, to differentiate - them from normal host addresses, allowing nodes to easily detect if a message is of interest. - - - Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: - - - - - IP Address - Description - - - 224.0.0.1 - - - Sends a message to all system on the subnet. - - - - - 224.0.0.2 - - - Sends a message to all routers on the subnet. - - - - - 224.0.0.12 - - - The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. - - - - - - - A complete list of actually reserved multicast addresses and their owners in the ranges - defined by RFC 3171 can be found at the IANA web site. - - - The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative - addresses. These addresses can be reused with other local groups. Routers are typically - configured with filters to prevent multicast traffic in this range from flowing outside - of the local network. - - - - - - Gets or sets the TCP port number of the remote host or multicast group to which - the underlying should sent the logging event. - - - An integer value in the range to - indicating the TCP port number of the remote host or multicast group to which the logging event - will be sent. - - - The underlying will send messages to this TCP port number - on the remote host or multicast group. - - The value specified is less than or greater than . - - - - Gets or sets the TCP port number from which the underlying will communicate. - - - An integer value in the range to - indicating the TCP port number from which the underlying will communicate. - - - - The underlying will bind to this port for sending messages. - - - Setting the value to 0 (the default) will cause the udp client not to bind to - a local port. - - - The value specified is less than or greater than . - - - - Gets or sets used to write the packets. - - - The used to write the packets. - - - - The used to write the packets. - - - - - - Gets or sets the underlying . - - - The underlying . - - - creates a to send logging events - over a network. Classes deriving from can use this - property to get or set this . Use the underlying - returned from if you require access beyond that which - provides. - - - - - Gets or sets the cached remote endpoint to which the logging events should be sent. - - - The cached remote endpoint to which the logging events will be sent. - - - The method will initialize the remote endpoint - with the values of the and - properties. - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Syslog port 514 - - - - - Initializes a new instance of the class. - - - This instance of the class is set up to write - to a remote syslog daemon. - - - - - Add a mapping of level to severity - - The mapping to add - - - Add a mapping to this appender. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to a remote syslog daemon. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to syslog severity mappings set on this appender. - - - - - - Translates a log4net level to a syslog severity. - - A log4net level. - A syslog severity. - - - Translates a log4net level to a syslog severity. - - - - - - Generate a syslog priority. - - The syslog facility. - The syslog severity. - A syslog priority. - - - Generate a syslog priority. - - - - - - The facility. The default facility is . - - - - - The message identity - - - - - Mapping from level object to syslog severity - - - - - Message identity - - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - - - - Syslog facility - - - Set to one of the values. The list of - facilities is predefined and cannot be extended. The default value - is . - - - - - syslog severities - - - - The syslog severities. - - - - - - system is unusable - - - - - action must be taken immediately - - - - - critical conditions - - - - - error conditions - - - - - warning conditions - - - - - normal but significant condition - - - - - informational - - - - - debug-level messages - - - - - syslog facilities - - - - The syslog facilities - - - - - - kernel messages - - - - - random user-level messages - - - - - mail system - - - - - system daemons - - - - - security/authorization messages - - - - - messages generated internally by syslogd - - - - - line printer subsystem - - - - - network news subsystem - - - - - UUCP subsystem - - - - - clock (cron/at) daemon - - - - - security/authorization messages (private) - - - - - ftp daemon - - - - - NTP subsystem - - - - - log audit - - - - - log alert - - - - - clock daemon - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - - - The mapped syslog severity for the specified level - - - - Required property. - The mapped syslog severity for the specified level - - - - - - Delivers logging events to a remote logging sink. - - - - This Appender is designed to deliver events to a remote sink. - That is any object that implements the - interface. It delivers the events using .NET remoting. The - object to deliver events to is specified by setting the - appenders property. - - The RemotingAppender buffers events before sending them. This allows it to - make more efficient use of the remoting infrastructure. - - Once the buffer is full the events are still not sent immediately. - They are scheduled to be sent using a pool thread. The effect is that - the send occurs asynchronously. This is very important for a - number of non obvious reasons. The remoting infrastructure will - flow thread local variables (stored in the ), - if they are marked as , across the - remoting boundary. If the server is not contactable then - the remoting infrastructure will clear the - objects from the . To prevent a logging failure from - having side effects on the calling application the remoting call must be made - from a separate thread to the one used by the application. A - thread is used for this. If no thread is available then - the events will block in the thread pool manager until a thread is available. - - Because the events are sent asynchronously using pool threads it is possible to close - this appender before all the queued events have been sent. - When closing the appender attempts to wait until all the queued events have been sent, but - this will timeout after 30 seconds regardless. - - If this appender is being closed because the - event has fired it may not be possible to send all the queued events. During process - exit the runtime limits the time that a - event handler is allowed to run for. If the runtime terminates the threads before - the queued events have been sent then they will be lost. To ensure that all events - are sent the appender must be closed before the application exits. See - for details on how to shutdown - log4net programmatically. - - - Nicko Cadell - Gert Driesen - Daniel Cazzulino - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Send the contents of the buffer to the remote sink. - - - The events are not sent immediately. They are scheduled to be sent - using a pool thread. The effect is that the send occurs asynchronously. - This is very important for a number of non obvious reasons. The remoting - infrastructure will flow thread local variables (stored in the ), - if they are marked as , across the - remoting boundary. If the server is not contactable then - the remoting infrastructure will clear the - objects from the . To prevent a logging failure from - having side effects on the calling application the remoting call must be made - from a separate thread to the one used by the application. A - thread is used for this. If no thread is available then - the events will block in the thread pool manager until a thread is available. - - The events to send. - - - - Override base class close. - - - - This method waits while there are queued work items. The events are - sent asynchronously using work items. These items - will be sent once a thread pool thread is available to send them, therefore - it is possible to close the appender before all the queued events have been - sent. - - This method attempts to wait until all the queued events have been sent, but this - method will timeout after 30 seconds regardless. - - If the appender is being closed because the - event has fired it may not be possible to send all the queued events. During process - exit the runtime limits the time that a - event handler is allowed to run for. - - - - - A work item is being queued into the thread pool - - - - - A work item from the thread pool has completed - - - - - Send the contents of the buffer to the remote sink. - - - This method is designed to be used with the . - This method expects to be passed an array of - objects in the state param. - - the logging events to send - - - - The URL of the remote sink. - - - - - The local proxy (.NET remoting) for the remote logging sink. - - - - - The number of queued callbacks currently waiting or executing - - - - - Event used to signal when there are no queued work items - - - This event is set when there are no queued work items. In this - state it is safe to close the appender. - - - - - Gets or sets the URL of the well-known object that will accept - the logging events. - - - The well-known URL of the remote sink. - - - - The URL of the remoting sink that will accept logging events. - The sink must implement the - interface. - - - - - - Interface used to deliver objects to a remote sink. - - - This interface must be implemented by a remoting sink - if the is to be used - to deliver logging events to the sink. - - - - - Delivers logging events to the remote sink - - Array of events to log. - - - Delivers logging events to the remote sink - - - - - - Appender that rolls log files based on size or date or both. - - - - RollingFileAppender can roll log files based on size or date or both - depending on the setting of the property. - When set to the log file will be rolled - once its size exceeds the . - When set to the log file will be rolled - once the date boundary specified in the property - is crossed. - When set to the log file will be - rolled once the date boundary specified in the property - is crossed, but within a date boundary the file will also be rolled - once its size exceeds the . - When set to the log file will be rolled when - the appender is configured. This effectively means that the log file can be - rolled once per program execution. - - - A of few additional optional features have been added: - - Attach date pattern for current log file - Backup number increments for newer files - Infinite number of backups by file size - - - - - - For large or infinite numbers of backup files a - greater than zero is highly recommended, otherwise all the backup files need - to be renamed each time a new backup is created. - - - When Date/Time based rolling is used setting - to will reduce the number of file renamings to few or none. - - - - - - Changing or without clearing - the log file directory of backup files will cause unexpected and unwanted side effects. - - - - - If Date/Time based rolling is enabled this appender will attempt to roll existing files - in the directory without a Date/Time tag based on the last write date of the base log file. - The appender only rolls the log file when a message is logged. If Date/Time based rolling - is enabled then the appender will not roll the log file at the Date/Time boundary but - at the point when the next message is logged after the boundary has been crossed. - - - - The extends the and - has the same behavior when opening the log file. - The appender will first try to open the file for writing when - is called. This will typically be during configuration. - If the file cannot be opened for writing the appender will attempt - to open the file again each time a message is logged to the appender. - If the file cannot be opened for writing when a message is logged then - the message will be discarded by this appender. - - - When rolling a backup file necessitates deleting an older backup file the - file to be deleted is moved to a temporary name before being deleted. - - - - - A maximum number of backup files when rolling on date/time boundaries is not supported. - - - - Nicko Cadell - Gert Driesen - Aspi Havewala - Douglas de la Torre - Edward Smit - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - The fully qualified type of the RollingFileAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Sets the quiet writer being used. - - - This method can be overridden by sub classes. - - the writer to set - - - - Write out a logging event. - - the event to write to file. - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Write out an array of logging events. - - the events to write to file. - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Performs any required rolling before outputting the next event - - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Creates and opens the file for logging. If - is false then the fully qualified name is determined and used. - - the name of the file to open - true to append to existing file - - This method will ensure that the directory structure - for the specified exists. - - - - - Get the current output file name - - the base file name - the output file name - - The output file name is based on the base fileName specified. - If is set then the output - file name is the same as the base file passed in. Otherwise - the output file depends on the date pattern, on the count - direction or both. - - - - - Determines curSizeRollBackups (only within the current roll point) - - - - - Generates a wildcard pattern that can be used to find all files - that are similar to the base file name. - - - - - - - Builds a list of filenames for all files matching the base filename plus a file - pattern. - - - - - - - Initiates a roll over if needed for crossing a date boundary since the last run. - - - - - Initializes based on existing conditions at time of . - - - - Initializes based on existing conditions at time of . - The following is done - - determine curSizeRollBackups (only within the current roll point) - initiates a roll over if needed for crossing a date boundary since the last run. - - - - - - - Does the work of bumping the 'current' file counter higher - to the highest count when an incremental file name is seen. - The highest count is either the first file (when count direction - is greater than 0) or the last file (when count direction less than 0). - In either case, we want to know the highest count that is present. - - - - - - - Attempts to extract a number from the end of the file name that indicates - the number of the times the file has been rolled over. - - - Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. - - - - - - - Takes a list of files and a base file name, and looks for - 'incremented' versions of the base file. Bumps the max - count up to the highest count seen. - - - - - - - Calculates the RollPoint for the datePattern supplied. - - the date pattern to calculate the check period for - The RollPoint that is most accurate for the date pattern supplied - - Essentially the date pattern is examined to determine what the - most suitable roll point is. The roll point chosen is the roll point - with the smallest period that can be detected using the date pattern - supplied. i.e. if the date pattern only outputs the year, month, day - and hour then the smallest roll point that can be detected would be - and hourly roll point as minutes could not be detected. - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Sets initial conditions including date/time roll over information, first check, - scheduledFilename, and calls to initialize - the current number of backups. - - - - - - - - - .1, .2, .3, etc. - - - - - Rollover the file(s) to date/time tagged file(s). - - set to true if the file to be rolled is currently open - - - Rollover the file(s) to date/time tagged file(s). - Resets curSizeRollBackups. - If fileIsOpen is set then the new file is opened (through SafeOpenFile). - - - - - - Renames file to file . - - Name of existing file to roll. - New name for file. - - - Renames file to file . It - also checks for existence of target file and deletes if it does. - - - - - - Test if a file exists at a specified path - - the path to the file - true if the file exists - - - Test if a file exists at a specified path - - - - - - Deletes the specified file if it exists. - - The file to delete. - - - Delete a file if is exists. - The file is first moved to a new filename then deleted. - This allows the file to be removed even when it cannot - be deleted, but it still can be moved. - - - - - - Implements file roll base on file size. - - - - If the maximum number of size based backups is reached - (curSizeRollBackups == maxSizeRollBackups) then the oldest - file is deleted -- its index determined by the sign of countDirection. - If countDirection < 0, then files - {File.1, ..., File.curSizeRollBackups -1} - are renamed to {File.2, ..., - File.curSizeRollBackups}. Moreover, File is - renamed File.1 and closed. - - - A new file is created to receive further log output. - - - If maxSizeRollBackups is equal to zero, then the - File is truncated with no backup files created. - - - If maxSizeRollBackups < 0, then File is - renamed if needed and no files are deleted. - - - - - - Implements file roll. - - the base name to rename - - - If the maximum number of size based backups is reached - (curSizeRollBackups == maxSizeRollBackups) then the oldest - file is deleted -- its index determined by the sign of countDirection. - If countDirection < 0, then files - {File.1, ..., File.curSizeRollBackups -1} - are renamed to {File.2, ..., - File.curSizeRollBackups}. - - - If maxSizeRollBackups is equal to zero, then the - File is truncated with no backup files created. - - - If maxSizeRollBackups < 0, then File is - renamed if needed and no files are deleted. - - - This is called by to rename the files. - - - - - - Get the start time of the next window for the current rollpoint - - the current date - the type of roll point we are working with - the start time for the next roll point an interval after the currentDateTime date - - - Returns the date of the next roll point after the currentDateTime date passed to the method. - - - The basic strategy is to subtract the time parts that are less significant - than the rollpoint from the current time. This should roll the time back to - the start of the time window for the current rollpoint. Then we add 1 window - worth of time and get the start time of the next window for the rollpoint. - - - - - - This object supplies the current date/time. Allows test code to plug in - a method to control this class when testing date/time based rolling. The default - implementation uses the underlying value of DateTime.Now. - - - - - The date pattern. By default, the pattern is set to ".yyyy-MM-dd" - meaning daily rollover. - - - - - The actual formatted filename that is currently being written to - or will be the file transferred to on roll over - (based on staticLogFileName). - - - - - The timestamp when we shall next recompute the filename. - - - - - Holds date of last roll over - - - - - The type of rolling done - - - - - The default maximum file size is 10MB - - - - - There is zero backup files by default - - - - - How many sized based backups have been made so far - - - - - The rolling file count direction. - - - - - The rolling mode used in this appender. - - - - - Cache flag set if we are rolling by date. - - - - - Cache flag set if we are rolling by size. - - - - - Value indicating whether to always log to the same file. - - - - - Value indicating whether to preserve the file name extension when rolling. - - - - - FileName provided in configuration. Used for rolling properly - - - - - The 1st of January 1970 in UTC - - - - - Gets or sets the strategy for determining the current date and time. The default - implementation is to use LocalDateTime which internally calls through to DateTime.Now. - DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying - . - - - An implementation of the interface which returns the current date and time. - - - - Gets or sets the used to return the current date and time. - - - There are two built strategies for determining the current date and time, - - and . - - - The default strategy is . - - - - - - Gets or sets the date pattern to be used for generating file names - when rolling over on date. - - - The date pattern to be used for generating file names when rolling - over on date. - - - - Takes a string in the same format as expected by - . - - - This property determines the rollover schedule when rolling over - on date. - - - - - - Gets or sets the maximum number of backup files that are kept before - the oldest is erased. - - - The maximum number of backup files that are kept before the oldest is - erased. - - - - If set to zero, then there will be no backup files and the log file - will be truncated when it reaches . - - - If a negative number is supplied then no deletions will be made. Note - that this could result in very slow performance as a large number of - files are rolled over unless is used. - - - The maximum applies to each time based group of files and - not the total. - - - - - - Gets or sets the maximum size that the output file is allowed to reach - before being rolled over to backup files. - - - The maximum size in bytes that the output file is allowed to reach before being - rolled over to backup files. - - - - This property is equivalent to except - that it is required for differentiating the setter taking a - argument from the setter taking a - argument. - - - The default maximum file size is 10MB (10*1024*1024). - - - - - - Gets or sets the maximum size that the output file is allowed to reach - before being rolled over to backup files. - - - The maximum size that the output file is allowed to reach before being - rolled over to backup files. - - - - This property allows you to specify the maximum size with the - suffixes "KB", "MB" or "GB" so that the size is interpreted being - expressed respectively in kilobytes, megabytes or gigabytes. - - - For example, the value "10KB" will be interpreted as 10240 bytes. - - - The default maximum file size is 10MB. - - - If you have the option to set the maximum file size programmatically - consider using the property instead as this - allows you to set the size in bytes as a . - - - - - - Gets or sets the rolling file count direction. - - - The rolling file count direction. - - - - Indicates if the current file is the lowest numbered file or the - highest numbered file. - - - By default newer files have lower numbers ( < 0), - i.e. log.1 is most recent, log.5 is the 5th backup, etc... - - - >= 0 does the opposite i.e. - log.1 is the first backup made, log.5 is the 5th backup made, etc. - For infinite backups use >= 0 to reduce - rollover costs. - - The default file count direction is -1. - - - - - Gets or sets the rolling style. - - The rolling style. - - - The default rolling style is . - - - When set to this appender's - property is set to false, otherwise - the appender would append to a single file rather than rolling - the file each time it is opened. - - - - - - Gets or sets a value indicating whether to preserve the file name extension when rolling. - - - true if the file name extension should be preserved. - - - - By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. - However, under Windows the new file name will loose any program associations as the - extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or - file.curSizeRollBackup.log to maintain any program associations. - - - - - - Gets or sets a value indicating whether to always log to - the same file. - - - true if always should be logged to the same file, otherwise false. - - - - By default file.log is always the current file. Optionally - file.log.yyyy-mm-dd for current formatted datePattern can by the currently - logging file (or file.log.curSizeRollBackup or even - file.log.yyyy-mm-dd.curSizeRollBackup). - - - This will make time based rollovers with a large number of backups - much faster as the appender it won't have to rename all the backups! - - - - - - Style of rolling to use - - - - Style of rolling to use - - - - - - Roll files once per program execution - - - - Roll files once per program execution. - Well really once each time this appender is - configured. - - - Setting this option also sets AppendToFile to - false on the RollingFileAppender, otherwise - this appender would just be a normal file appender. - - - - - - Roll files based only on the size of the file - - - - - Roll files based only on the date - - - - - Roll files based on both the size and date of the file - - - - - The code assumes that the following 'time' constants are in a increasing sequence. - - - - The code assumes that the following 'time' constants are in a increasing sequence. - - - - - - Roll the log not based on the date - - - - - Roll the log for each minute - - - - - Roll the log for each hour - - - - - Roll the log twice a day (midday and midnight) - - - - - Roll the log each day (midnight) - - - - - Roll the log each week - - - - - Roll the log each month - - - - - This interface is used to supply Date/Time information to the . - - - This interface is used to supply Date/Time information to the . - Used primarily to allow test classes to plug themselves in so they can - supply test date/times. - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Default implementation of that returns the current time. - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Implementation of that returns the current time as the coordinated universal time (UTC). - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Send an e-mail when a specific logging event occurs, typically on errors - or fatal errors. - - - - The number of logging events delivered in this e-mail depend on - the value of option. The - keeps only the last - logging events in its - cyclic buffer. This keeps memory requirements at a reasonable level while - still delivering useful application context. - - - Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. - For these features to be enabled you need to ensure that you are using a version of - the log4net assembly that is built against the MS .NET 1.1 framework and that you are - running the your application on the MS .NET 1.1 runtime. On all other platforms only sending - unauthenticated messages to a server listening on port 25 (the default) is supported. - - - Authentication is supported by setting the property to - either or . - If using authentication then the - and properties must also be set. - - - To set the SMTP server port use the property. The default port is 25. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Default constructor - - - - - - Sends the contents of the cyclic buffer as an e-mail message. - - The logging events to send. - - - - Send the email message - - the body text to include in the mail - - - - Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - - Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses - that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - - Gets or sets a semicolon-delimited list of recipient e-mail addresses - that will be blind carbon copied. - - - A semicolon-delimited list of e-mail addresses. - - - - A semicolon-delimited list of recipient e-mail addresses. - - - - - - Gets or sets the e-mail address of the sender. - - - The e-mail address of the sender. - - - - The e-mail address of the sender. - - - - - - Gets or sets the subject line of the e-mail message. - - - The subject line of the e-mail message. - - - - The subject line of the e-mail message. - - - - - - Gets or sets the name of the SMTP relay mail server to use to send - the e-mail messages. - - - The name of the e-mail relay server. If SmtpServer is not set, the - name of the local SMTP server is used. - - - - The name of the e-mail relay server. If SmtpServer is not set, the - name of the local SMTP server is used. - - - - - - Obsolete - - - Use the BufferingAppenderSkeleton Fix methods instead - - - - Obsolete property. - - - - - - The mode to use to authentication with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - Valid Authentication mode values are: , - , and . - The default value is . When using - you must specify the - and to use to authenticate. - When using the Windows credentials for the current - thread, if impersonating, or the process will be used to authenticate. - - - - - - The username to use to authenticate with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - A and must be specified when - is set to , - otherwise the username will be ignored. - - - - - - The password to use to authenticate with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - A and must be specified when - is set to , - otherwise the password will be ignored. - - - - - - The port on which the SMTP server is listening - - - Server Port is only available on the MS .NET 1.1 runtime. - - The port on which the SMTP server is listening. The default - port is 25. The Port can only be changed when running on - the MS .NET 1.1 runtime. - - - - - - Gets or sets the priority of the e-mail message - - - One of the values. - - - - Sets the priority of the e-mails generated by this - appender. The default priority is . - - - If you are using this appender to report errors then - you may want to set the priority to . - - - - - - Enable or disable use of SSL when sending e-mail message - - - This is available on MS .NET 2.0 runtime and higher - - - - - Gets or sets the reply-to e-mail address. - - - This is available on MS .NET 2.0 runtime and higher - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Values for the property. - - - - SMTP authentication modes. - - - - - - No authentication - - - - - Basic authentication. - - - Requires a username and password to be supplied - - - - - Integrated authentication - - - Uses the Windows credentials from the current thread or process to authenticate. - - - - - Send an email when a specific logging event occurs, typically on errors - or fatal errors. Rather than sending via smtp it writes a file into the - directory specified by . This allows services such - as the IIS SMTP agent to manage sending the messages. - - - - The configuration for this appender is identical to that of the SMTPAppender, - except that instead of specifying the SMTPAppender.SMTPHost you specify - . - - - The number of logging events delivered in this e-mail depend on - the value of option. The - keeps only the last - logging events in its - cyclic buffer. This keeps memory requirements at a reasonable level while - still delivering useful application context. - - - Niall Daley - Nicko Cadell - - - - Default constructor - - - - Default constructor - - - - - - Sends the contents of the cyclic buffer as an e-mail message. - - The logging events to send. - - - Sends the contents of the cyclic buffer as an e-mail message. - - - - - - Activate the options on this appender. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Convert a path into a fully qualified path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - - - - The security context to use for privileged calls - - - - - Gets or sets a semicolon-delimited list of recipient e-mail addresses. - - - A semicolon-delimited list of e-mail addresses. - - - - A semicolon-delimited list of e-mail addresses. - - - - - - Gets or sets the e-mail address of the sender. - - - The e-mail address of the sender. - - - - The e-mail address of the sender. - - - - - - Gets or sets the subject line of the e-mail message. - - - The subject line of the e-mail message. - - - - The subject line of the e-mail message. - - - - - - Gets or sets the path to write the messages to. - - - - Gets or sets the path to write the messages to. This should be the same - as that used by the agent sending the messages. - - - - - - Gets or sets the used to write to the pickup directory. - - - The used to write to the pickup directory. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appender that allows clients to connect via Telnet to receive log messages - - - - The TelnetAppender accepts socket connections and streams logging messages - back to the client. - The output is provided in a telnet-friendly way so that a log can be monitored - over a TCP/IP socket. - This allows simple remote monitoring of application logging. - - - The default is 23 (the telnet port). - - - Keith Long - Nicko Cadell - - - - Default constructor - - - - Default constructor - - - - - - The fully qualified type of the TelnetAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Overrides the parent method to close the socket handler - - - - Closes all the outstanding connections. - - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Create the socket handler and wait for connections - - - - - - Writes the logging event to each connected client. - - The event to log. - - - Writes the logging event to each connected client. - - - - - - Gets or sets the TCP port number on which this will listen for connections. - - - An integer value in the range to - indicating the TCP port number on which this will listen for connections. - - - - The default value is 23 (the telnet port). - - - The value specified is less than - or greater than . - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Helper class to manage connected clients - - - - The SocketHandler class is used to accept connections from - clients. It is threaded so that clients can connect/disconnect - asynchronously. - - - - - - Opens a new server port on - - the local port to listen on for connections - - - Creates a socket handler on the specified local server port. - - - - - - Sends a string message to each of the connected clients - - the text to send - - - Sends a string message to each of the connected clients - - - - - - Add a client to the internal clients list - - client to add - - - - Remove a client from the internal clients list - - client to remove - - - - Callback used to accept a connection on the server socket - - The result of the asynchronous operation - - - On connection adds to the list of connections - if there are two many open connections you will be disconnected - - - - - - Close all network connections - - - - Make sure we close all network connections - - - - - - Test if this handler has active connections - - - true if this handler has active connections - - - - This property will be true while this handler has - active connections, that is at least one connection that - the handler will attempt to send a message to. - - - - - - Class that represents a client connected to this handler - - - - Class that represents a client connected to this handler - - - - - - Create this for the specified - - the client's socket - - - Opens a stream writer on the socket. - - - - - - Write a string to the client - - string to send - - - Write a string to the client - - - - - - Cleanup the clients connection - - - - Close the socket connection. - - - - - - Appends log events to the system. - - - - The application configuration file can be used to control what listeners - are actually used. See the MSDN documentation for the - class for details on configuring the - trace system. - - - Events are written using the System.Diagnostics.Trace.Write(string,string) - method. The event's logger name is the default value for the category parameter - of the Write method. - - - Compact Framework
    - The Compact Framework does not support the - class for any operation except Assert. When using the Compact Framework this - appender will write to the system rather than - the Trace system. This appender will therefore behave like the . -
    -
    - Douglas de la Torre - Nicko Cadell - Gert Driesen - Ron Grabowski -
    - - - Initializes a new instance of the . - - - - Default constructor. - - - - - - Initializes a new instance of the - with a specified layout. - - The layout to use with this appender. - - - Obsolete constructor. - - - - - - Writes the logging event to the system. - - The event to log. - - - Writes the logging event to the system. - - - - - - Immediate flush means that the underlying writer or output stream - will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logs events are not actually written to persistent media if and - when the application crashes. - - - The default value is true. - - - - - Defaults to %logger - - - - - Gets or sets a value that indicates whether the appender will - flush at the end of each write. - - - The default behavior is to flush at the end of each - write. If the option is set tofalse, then the underlying - stream can defer writing to physical medium to a later time. - - - Avoiding the flush operation at the end of each append results - in a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - - The category parameter sent to the Trace method. - - - - Defaults to %logger which will use the logger name of the current - as the category parameter. - - - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Assembly level attribute that specifies a domain to alias to this assembly's repository. - - - - AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. - - - An assembly's logger repository is defined by its , - however this can be overridden by an assembly loaded before the target assembly. - - - An assembly can alias another assembly's domain to its repository by - specifying this attribute with the name of the target domain. - - - This attribute can only be specified on the assembly and may be used - as many times as necessary to alias all the required domains. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute that specifies a repository to alias to this assembly's repository. - - - - An assembly's logger repository is defined by its , - however this can be overridden by an assembly loaded before the target assembly. - - - An assembly can alias another assembly's repository to its repository by - specifying this attribute with the name of the target repository. - - - This attribute can only be specified on the assembly and may be used - as many times as necessary to alias all the required repositories. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class with - the specified repository to alias to this assembly's repository. - - The repository to alias to this assemby's repository. - - - Initializes a new instance of the class with - the specified repository to alias to this assembly's repository. - - - - - - Gets or sets the repository to alias to this assemby's repository. - - - The repository to alias to this assemby's repository. - - - - The name of the repository to alias to this assemby's repository. - - - - - - Initializes a new instance of the class with - the specified domain to alias to this assembly's repository. - - The domain to alias to this assemby's repository. - - - Obsolete. Use instead of . - - - - - - Use this class to quickly configure a . - - - - Allows very simple programmatic configuration of log4net. - - - Only one appender can be configured using this configurator. - The appender is set at the root of the hierarchy and all logging - events will be delivered to that appender. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - The fully qualified type of the BasicConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Initializes the log4net system with a default configuration. - - - - Initializes the log4net logging system using a - that will write to Console.Out. The log messages are - formatted using the layout object - with the - layout style. - - - - - - Initializes the log4net system using the specified appender. - - The appender to use to log all logging events. - - - Initializes the log4net system using the specified appender. - - - - - - Initializes the log4net system using the specified appenders. - - The appenders to use to log all logging events. - - - Initializes the log4net system using the specified appenders. - - - - - - Initializes the with a default configuration. - - The repository to configure. - - - Initializes the specified repository using a - that will write to Console.Out. The log messages are - formatted using the layout object - with the - layout style. - - - - - - Initializes the using the specified appender. - - The repository to configure. - The appender to use to log all logging events. - - - Initializes the using the specified appender. - - - - - - Initializes the using the specified appenders. - - The repository to configure. - The appenders to use to log all logging events. - - - Initializes the using the specified appender. - - - - - - Base class for all log4net configuration attributes. - - - This is an abstract class that must be extended by - specific configurators. This attribute allows the - configurator to be parameterized by an assembly level - attribute. - - Nicko Cadell - Gert Driesen - - - - Constructor used by subclasses. - - the ordering priority for this configurator - - - The is used to order the configurator - attributes before they are invoked. Higher priority configurators are executed - before lower priority ones. - - - - - - Configures the for the specified assembly. - - The assembly that this attribute was defined on. - The repository to configure. - - - Abstract method implemented by a subclass. When this method is called - the subclass should configure the . - - - - - - Compare this instance to another ConfiguratorAttribute - - the object to compare to - see - - - Compares the priorities of the two instances. - Sorts by priority in descending order. Objects with the same priority are - randomly ordered. - - - - - - Assembly level attribute that specifies the logging domain for the assembly. - - - - DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - Assemblies are mapped to logging domains. Each domain has its own - logging repository. This attribute specified on the assembly controls - the configuration of the domain. The property specifies the name - of the domain that this assembly is a part of. The - specifies the type of the repository objects to create for the domain. If - this attribute is not specified and a is not specified - then the assembly will be part of the default shared logging domain. - - - This attribute can only be specified on the assembly and may only be used - once per assembly. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute that specifies the logging repository for the assembly. - - - - Assemblies are mapped to logging repository. This attribute specified - on the assembly controls - the configuration of the repository. The property specifies the name - of the repository that this assembly is a part of. The - specifies the type of the object - to create for the assembly. If this attribute is not specified or a - is not specified then the assembly will be part of the default shared logging repository. - - - This attribute can only be specified on the assembly and may only be used - once per assembly. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initialize a new instance of the class - with the name of the repository. - - The name of the repository. - - - Initialize the attribute with the name for the assembly's repository. - - - - - - Gets or sets the name of the logging repository. - - - The string name to use as the name of the repository associated with this - assembly. - - - - This value does not have to be unique. Several assemblies can share the - same repository. They will share the logging configuration of the repository. - - - - - - Gets or sets the type of repository to create for this assembly. - - - The type of repository to create for this assembly. - - - - The type of the repository to create for the assembly. - The type must implement the - interface. - - - This will be the type of repository created when - the repository is created. If multiple assemblies reference the - same repository then the repository is only created once using the - of the first assembly to call into the - repository. - - - - - - Initializes a new instance of the class. - - - - Obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - - - - Initialize a new instance of the class - with the name of the domain. - - The name of the domain. - - - Obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - - - - Use this class to initialize the log4net environment using an Xml tree. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - Configures a using an Xml tree. - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - - - Automatically configures the log4net system based on the - application's configuration settings. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - 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 - log4net that contains the configuration data. - - - - - Automatically configures the using settings - stored in the application's configuration file. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - 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 - log4net that contains the configuration data. - - The repository to configure. - - - - Configures log4net using a log4net element - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - Loads the log4net configuration from the XML element - supplied as . - - The element to parse. - - - - Configures the using the specified XML - element. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - Loads the log4net configuration from the XML element - supplied as . - - The repository to configure. - The element to parse. - - - - Configures log4net using the specified configuration file. - - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures log4net using the specified configuration file. - - A stream to load the XML configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The stream to load the XML configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures log4net using the file specified, monitors the file for changes - and reloads the configuration if a change is detected. - - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the using the file specified, - monitors the file for changes and reloads the configuration if a change - is detected. - - The repository to configure. - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Assembly level attribute to configure the . - - - - AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute to configure the . - - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - If neither of the or - properties are set the configuration is loaded from the application's .config file. - If set the property takes priority over the - property. The property - specifies a path to a file to load the config from. The path is relative to the - application's base directory; . - The property is used as a postfix to the assembly file name. - The config file must be located in the application's base directory; . - For example in a console application setting the to - config has the same effect as not specifying the or - properties. - - - The property can be set to cause the - to watch the configuration file for changes. - - - - Log4net will only look for assembly level configuration attributes once. - When using the log4net assembly level attributes to control the configuration - of log4net you must ensure that the first call to any of the - methods is made from the assembly with the configuration - attributes. - - - If you cannot guarantee the order in which log4net calls will be made from - different assemblies you must use programmatic configuration instead, i.e. - call the method directly. - - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Default constructor - - - - - - Configures the for the specified assembly. - - The assembly that this attribute was defined on. - The repository to configure. - - - Configure the repository using the . - The specified must extend the - class otherwise the will not be able to - configure it. - - - The does not extend . - - - - Attempt to load configuration from the local file system - - The assembly that this attribute was defined on. - The repository to configure. - - - - Configure the specified repository using a - - The repository to configure. - the FileInfo pointing to the config file - - - - Attempt to load configuration from a URI - - The assembly that this attribute was defined on. - The repository to configure. - - - - The fully qualified type of the XmlConfiguratorAttribute class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the filename of the configuration file. - - - The filename of the configuration file. - - - - If specified, this is the name of the configuration file to use with - the . This file path is relative to the - application base directory (). - - - The takes priority over the . - - - - - - Gets or sets the extension of the configuration file. - - - The extension of the configuration file. - - - - If specified this is the extension for the configuration file. - The path to the config file is built by using the application - base directory (), - the assembly file name and the config file extension. - - - If the is set to MyExt then - possible config file names would be: MyConsoleApp.exe.MyExt or - MyClassLibrary.dll.MyExt. - - - The takes priority over the . - - - - - - Gets or sets a value indicating whether to watch the configuration file. - - - true if the configuration should be watched, false otherwise. - - - - If this flag is specified and set to true then the framework - will watch the configuration file and will reload the config each time - the file is modified. - - - The config file can only be watched if it is loaded from local disk. - In a No-Touch (Smart Client) deployment where the application is downloaded - from a web server the config file may not reside on the local disk - and therefore it may not be able to watch it. - - - Watching configuration is not supported on the SSCLI. - - - - - - Class to register for the log4net section of the configuration file - - - The log4net section of the configuration file needs to have a section - handler registered. This is the section handler used. It simply returns - the XML element that is the root of the section. - - - Example of registering the log4net section handler : - - - -
    - - - log4net configuration XML goes here - - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Parses the configuration section. - - The configuration settings in a corresponding parent configuration section. - The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. - The for the log4net section. - The for the log4net section. - - - Returns the containing the configuration data, - - - - - - Assembly level attribute that specifies a plugin to attach to - the repository. - - - - Specifies the type of a plugin to create and attach to the - assembly's repository. The plugin type must implement the - interface. - - - Nicko Cadell - Gert Driesen - - - - Interface used to create plugins. - - - - Interface used to create a plugin. - - - Nicko Cadell - Gert Driesen - - - - Creates the plugin object. - - the new plugin instance - - - Create and return a new plugin instance. - - - - - - Initializes a new instance of the class - with the specified type. - - The type name of plugin to create. - - - Create the attribute with the plugin type specified. - - - Where possible use the constructor that takes a . - - - - - - Initializes a new instance of the class - with the specified type. - - The type of plugin to create. - - - Create the attribute with the plugin type specified. - - - - - - Creates the plugin object defined by this attribute. - - - - Creates the instance of the object as - specified by this attribute. - - - The plugin object. - - - - Returns a representation of the properties of this object. - - - - Overrides base class method to - return a representation of the properties of this object. - - - A representation of the properties of this object - - - - Gets or sets the type for the plugin. - - - The type for the plugin. - - - - The type for the plugin. - - - - - - Gets or sets the type name for the plugin. - - - The type name for the plugin. - - - - The type name for the plugin. - - - Where possible use the property instead. - - - - - - Assembly level attribute to configure the . - - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - Nicko Cadell - - - - Construct provider attribute with type specified - - the type of the provider to use - - - The provider specified must subclass the - class. - - - - - - Configures the SecurityContextProvider - - The assembly that this attribute was defined on. - The repository to configure. - - - Creates a provider instance from the specified. - Sets this as the default security context provider . - - - - - - The fully qualified type of the SecurityContextProviderAttribute class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the type of the provider to use. - - - the type of the provider to use. - - - - The provider specified must subclass the - class. - - - - - - Use this class to initialize the log4net environment using an Xml tree. - - - - Configures a using an Xml tree. - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - - - Automatically configures the log4net system based on the - application's configuration settings. - - - - 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 - log4net that contains the configuration data. - - - To use this method to configure log4net you must specify - the section - handler for the log4net configuration section. See the - for an example. - - - - - - - Automatically configures the using settings - stored in the application's configuration file. - - - - 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 - log4net that contains the configuration data. - - - To use this method to configure log4net you must specify - the section - handler for the log4net configuration section. See the - for an example. - - - The repository to configure. - - - - Configures log4net using a log4net element - - - - Loads the log4net configuration from the XML element - supplied as . - - - The element to parse. - - - - Configures the using the specified XML - element. - - - Loads the log4net configuration from the XML element - supplied as . - - The repository to configure. - The element to parse. - - - - Configures log4net using the specified configuration file. - - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The first element matching <configuration> will be read as the - configuration. If this file is also a .NET .config file then you must specify - a configuration section for the log4net element otherwise .NET will - complain. Set the type for the section handler to , for example: - - -
    - - - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures log4net using the specified configuration URI. - - A URI to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The must support the URI scheme specified. - - - - - - Configures log4net using the specified configuration data stream. - - A stream to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The first element matching <configuration> will be read as the - configuration. If this file is also a .NET .config file then you must specify - a configuration section for the log4net element otherwise .NET will - complain. Set the type for the section handler to , for example: - - -
    - - - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures the using the specified configuration - URI. - - The repository to configure. - A URI to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The must support the URI scheme specified. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The stream to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures log4net using the file specified, monitors the file for changes - and reloads the configuration if a change is detected. - - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the using the file specified, - monitors the file for changes and reloads the configuration if a change - is detected. - - The repository to configure. - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the specified repository using a log4net element. - - The hierarchy to configure. - The element to parse. - - - Loads the log4net configuration from the XML element - supplied as . - - - This method is ultimately called by one of the Configure methods - to load the configuration from an . - - - - - - Maps repository names to ConfigAndWatchHandler instances to allow a particular - ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is - reconfigured. - - - - - The fully qualified type of the XmlConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Class used to watch config files. - - - - Uses the to monitor - changes to a specified file. Because multiple change notifications - may be raised when the file is modified, a timer is used to - compress the notifications into a single event. The timer - waits for time before delivering - the event notification. If any further - change notifications arrive while the timer is waiting it - is reset and waits again for to - elapse. - - - - - - The default amount of time to wait after receiving notification - before reloading the config file. - - - - - Holds the FileInfo used to configure the XmlConfigurator - - - - - Holds the repository being configured. - - - - - The timer used to compress the notification events. - - - - - Watches file for changes. This object should be disposed when no longer - needed to free system handles on the watched resources. - - - - - Initializes a new instance of the class to - watch a specified config file used to configure a repository. - - The repository to configure. - The configuration file to watch. - - - Initializes a new instance of the class. - - - - - - Event handler used by . - - The firing the event. - The argument indicates the file that caused the event to be fired. - - - This handler reloads the configuration from the file when the event is fired. - - - - - - Event handler used by . - - The firing the event. - The argument indicates the file that caused the event to be fired. - - - This handler reloads the configuration from the file when the event is fired. - - - - - - Called by the timer when the configuration has been updated. - - null - - - - Release the handles held by the watcher and timer. - - - - - The implementation of the interface suitable - for use with the compact framework - - - - This implementation is a simple - mapping between repository name and - object. - - - The .NET Compact Framework 1.0 does not support retrieving assembly - level attributes therefore unlike the DefaultRepositorySelector - this selector does not examine the calling assembly for attributes. - - - Nicko Cadell - - - - Interface used by the to select the . - - - - The uses a - to specify the policy for selecting the correct - to return to the caller. - - - Nicko Cadell - Gert Driesen - - - - Gets the for the specified assembly. - - The assembly to use to lookup to the - The for the assembly. - - - Gets the for the specified assembly. - - - How the association between and - is made is not defined. The implementation may choose any method for - this association. The results of this method must be repeatable, i.e. - when called again with the same arguments the result must be the - save value. - - - - - - Gets the named . - - The name to use to lookup to the . - The named - - Lookup a named . This is the repository created by - calling . - - - - - Creates a new repository for the assembly specified. - - The assembly to use to create the domain to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the domain - specified such that a call to with the - same assembly specified will return the same repository instance. - - - How the association between and - is made is not defined. The implementation may choose any method for - this association. - - - - - - Creates a new repository with the name specified. - - The name to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the name - specified such that a call to with the - same name will return the same repository instance. - - - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets an array of all currently defined repositories. - - - An array of the instances created by - this . - - - Gets an array of all of the repositories created by this selector. - - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - Create a new repository selector - - the type of the repositories to create, must implement - - - Create an new compact repository selector. - The default type for repositories must be specified, - an appropriate value would be . - - - throw if is null - throw if does not implement - - - - Get the for the specified assembly - - not used - The default - - - The argument is not used. This selector does not create a - separate repository for each assembly. - - - As a named repository is not specified the default repository is - returned. The default repository is named log4net-default-repository. - - - - - - Get the named - - the name of the repository to lookup - The named - - - Get the named . The default - repository is log4net-default-repository. Other repositories - must be created using the . - If the named repository does not exist an exception is thrown. - - - throw if is null - throw if the does not exist - - - - Create a new repository for the assembly specified - - not used - the type of repository to create, must implement - the repository created - - - The argument is not used. This selector does not create a - separate repository for each assembly. - - - If the is null then the - default repository type specified to the constructor is used. - - - As a named repository is not specified the default repository is - returned. The default repository is named log4net-default-repository. - - - - - - Create a new repository for the repository specified - - the repository to associate with the - the type of repository to create, must implement . - If this param is null then the default repository type is used. - the repository created - - - The created will be associated with the repository - specified such that a call to with the - same repository specified will return the same repository instance. - - - If the named repository already exists an exception will be thrown. - - - If is null then the default - repository type specified to the constructor is used. - - - throw if is null - throw if the already exists - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets a list of objects - - an array of all known objects - - - Gets an array of all of the repositories created by this selector. - - - - - - The fully qualified type of the CompactRepositorySelector class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Notify the registered listeners that the repository has been created - - The repository that has been created - - - Raises the LoggerRepositoryCreatedEvent - event. - - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - The default implementation of the interface. - - - - Uses attributes defined on the calling assembly to determine how to - configure the hierarchy for the repository. - - - Nicko Cadell - Gert Driesen - - - - Creates a new repository selector. - - The type of the repositories to create, must implement - - - Create an new repository selector. - The default type for repositories must be specified, - an appropriate value would be . - - - is . - does not implement . - - - - Gets the for the specified assembly. - - The assembly use to lookup the . - - - The type of the created and the repository - to create can be overridden by specifying the - attribute on the . - - - The default values are to use the - implementation of the interface and to use the - as the name of the repository. - - - The created will be automatically configured using - any attributes defined on - the . - - - The for the assembly - is . - - - - Gets the for the specified repository. - - The repository to use to lookup the . - The for the specified repository. - - - Returns the named repository. If is null - a is thrown. If the repository - does not exist a is thrown. - - - Use to create a repository. - - - is . - does not exist. - - - - Create a new repository for the assembly specified - - the assembly to use to create the repository to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The type of the created and - the repository to create can be overridden by specifying the - attribute on the - . The default values are to use the - implementation of the - interface and to use the - as the name of the repository. - - - The created will be automatically - configured using any - attributes defined on the . - - - If a repository for the already exists - that repository will be returned. An error will not be raised and that - repository may be of a different type to that specified in . - Also the attribute on the - assembly may be used to override the repository type specified in - . - - - is . - - - - Creates a new repository for the assembly specified. - - the assembly to use to create the repository to associate with the . - The type of repository to create, must implement . - The name to assign to the created repository - Set to true to read and apply the assembly attributes - The repository created. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The type of the created and - the repository to create can be overridden by specifying the - attribute on the - . The default values are to use the - implementation of the - interface and to use the - as the name of the repository. - - - The created will be automatically - configured using any - attributes defined on the . - - - If a repository for the already exists - that repository will be returned. An error will not be raised and that - repository may be of a different type to that specified in . - Also the attribute on the - assembly may be used to override the repository type specified in - . - - - is . - - - - Creates a new repository for the specified repository. - - The repository to associate with the . - The type of repository to create, must implement . - If this param is then the default repository type is used. - The new repository. - - - The created will be associated with the repository - specified such that a call to with the - same repository specified will return the same repository instance. - - - is . - already exists. - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets a list of objects - - an array of all known objects - - - Gets an array of all of the repositories created by this selector. - - - - - - Aliases a repository to an existing repository. - - The repository to alias. - The repository that the repository is aliased to. - - - The repository specified will be aliased to the repository when created. - The repository must not already exist. - - - When the repository is created it must utilize the same repository type as - the repository it is aliased to, otherwise the aliasing will fail. - - - - is . - -or- - is . - - - - - Notifies the registered listeners that the repository has been created. - - The repository that has been created. - - - Raises the event. - - - - - - Gets the repository name and repository type for the specified assembly. - - The assembly that has a . - in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. - in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. - is . - - - - Configures the repository using information from the assembly. - - The assembly containing - attributes which define the configuration for the repository. - The repository to configure. - - is . - -or- - is . - - - - - Loads the attribute defined plugins on the assembly. - - The assembly that contains the attributes. - The repository to add the plugins to. - - is . - -or- - is . - - - - - Loads the attribute defined aliases on the assembly. - - The assembly that contains the attributes. - The repository to alias to. - - is . - -or- - is . - - - - - The fully qualified type of the DefaultRepositorySelector class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - Defined error codes that can be passed to the method. - - - - Values passed to the method. - - - Nicko Cadell - - - - A general error - - - - - Error while writing output - - - - - Failed to flush file - - - - - Failed to close file - - - - - Unable to open output file - - - - - No layout specified - - - - - Failed to parse address - - - - - An evaluator that triggers on an Exception type - - - - This evaluator will trigger if the type of the Exception - passed to - is equal to a Type in . /// - - - Drew Schaeffer - - - - Test if an triggers an action - - - - Implementations of this interface allow certain appenders to decide - when to perform an appender specific action. - - - The action or behavior triggered is defined by the implementation. - - - Nicko Cadell - - - - Test if this event triggers the action - - The event to check - true if this event triggers the action, otherwise false - - - Return true if this event triggers the action - - - - - - The type that causes the trigger to fire. - - - - - Causes subclasses of to cause the trigger to fire. - - - - - Default ctor to allow dynamic creation through a configurator. - - - - - Constructs an evaluator and initializes to trigger on - - the type that triggers this evaluator. - If true, this evaluator will trigger on subclasses of . - - - - Is this the triggering event? - - The event to check - This method returns true, if the logging event Exception - Type is . - Otherwise it returns false - - - This evaluator will trigger if the Exception Type of the event - passed to - is . - - - - - - The type that triggers this evaluator. - - - - - If true, this evaluator will trigger on subclasses of . - - - - - Appenders may delegate their error handling to an . - - - - Error handling is a particularly tedious to get right because by - definition errors are hard to predict and to reproduce. - - - Nicko Cadell - Gert Driesen - - - - Handles the error and information about the error condition is passed as - a parameter. - - The message associated with the error. - The that was thrown when the error occurred. - The error code associated with the error. - - - Handles the error and information about the error condition is passed as - a parameter. - - - - - - Prints the error message passed as a parameter. - - The message associated with the error. - The that was thrown when the error occurred. - - - See . - - - - - - Prints the error message passed as a parameter. - - The message associated with the error. - - - See . - - - - - - Interface for objects that require fixing. - - - - Interface that indicates that the object requires fixing before it - can be taken outside the context of the appender's - method. - - - When objects that implement this interface are stored - in the context properties maps - and - are fixed - (see ) the - method will be called. - - - Nicko Cadell - - - - Get a portable version of this object - - the portable instance of this object - - - Get a portable instance object that represents the current - state of this object. The portable object can be stored - and logged from any thread with identical results. - - - - - - Interface that all loggers implement - - - - This interface supports logging events and testing if a level - is enabled for logging. - - - These methods will not throw exceptions. Note to implementor, ensure - that the implementation of these methods cannot allow an exception - to be thrown to the caller. - - - Nicko Cadell - Gert Driesen - - - - This generic form is intended to be used by wrappers. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - the exception to log, including its stack trace. Pass null to not log an exception. - - - Generates a logging event for the specified using - the and . - - - - - - This is the most generic printing method that is intended to be used - by wrappers. - - The event being logged. - - - Logs the specified logging event through this logger. - - - - - - Checks if this logger is enabled for a given passed as parameter. - - The level to check. - - true if this logger is enabled for level, otherwise false. - - - - Test if this logger is going to log events of the specified . - - - - - - Gets the name of the logger. - - - The name of the logger. - - - - The name of this logger - - - - - - Gets the where this - Logger instance is attached to. - - - The that this logger belongs to. - - - - Gets the where this - Logger instance is attached to. - - - - - - Base interface for all wrappers - - - - Base interface for all wrappers. - - - All wrappers must implement this interface. - - - Nicko Cadell - - - - Get the implementation behind this wrapper object. - - - The object that in implementing this object. - - - - The object that in implementing this - object. The Logger object may not - be the same object as this object because of logger decorators. - This gets the actual underlying objects that is used to process - the log events. - - - - - - Delegate used to handle logger repository creation event notifications - - The which created the repository. - The event args - that holds the instance that has been created. - - - Delegate used to handle logger repository creation event notifications. - - - - - - Provides data for the event. - - - - A - event is raised every time a is created. - - - - - - The created - - - - - Construct instance using specified - - the that has been created - - - Construct instance using specified - - - - - - The that has been created - - - The that has been created - - - - The that has been created - - - - - - Defines the default set of levels recognized by the system. - - - - Each has an associated . - - - Levels have a numeric that defines the relative - ordering between levels. Two Levels with the same - are deemed to be equivalent. - - - The levels that are recognized by log4net are set for each - and each repository can have different levels defined. The levels are stored - in the on the repository. Levels are - looked up by name from the . - - - When logging at level INFO the actual level used is not but - the value of LoggerRepository.LevelMap["INFO"]. The default value for this is - , but this can be changed by reconfiguring the level map. - - - Each level has a in addition to its . The - is the string that is written into the output log. By default - the display name is the same as the level name, but this can be used to alias levels - or to localize the log output. - - - Some of the predefined levels recognized by the system are: - - - - . - - - . - - - . - - - . - - - . - - - . - - - . - - - - Nicko Cadell - Gert Driesen - - - - Constructor - - Integer value for this level, higher values represent more severe levels. - The string name of this level. - The display name for this level. This may be localized or otherwise different from the name - - - Initializes a new instance of the class with - the specified level name and value. - - - - - - Constructor - - Integer value for this level, higher values represent more severe levels. - The string name of this level. - - - Initializes a new instance of the class with - the specified level name and value. - - - - - - Returns the representation of the current - . - - - A representation of the current . - - - - Returns the level . - - - - - - Compares levels. - - The object to compare against. - true if the objects are equal. - - - Compares the levels of instances, and - defers to base class if the target object is not a - instance. - - - - - - Returns a hash code - - A hash code for the current . - - - Returns a hash code suitable for use in hashing algorithms and data - structures like a hash table. - - - Returns the hash code of the level . - - - - - - Compares this instance to a specified object and returns an - indication of their relative values. - - A instance or to compare with this instance. - - A 32-bit signed integer that indicates the relative order of the - values compared. The return value has these meanings: - - - Value - Meaning - - - Less than zero - This instance is less than . - - - Zero - This instance is equal to . - - - Greater than zero - - This instance is greater than . - -or- - is . - - - - - - - must be an instance of - or ; otherwise, an exception is thrown. - - - is not a . - - - - Returns a value indicating whether a specified - is greater than another specified . - - A - A - - true if is greater than - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is less than another specified . - - A - A - - true if is less than - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is greater than or equal to another specified . - - A - A - - true if is greater than or equal to - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is less than or equal to another specified . - - A - A - - true if is less than or equal to - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether two specified - objects have the same value. - - A or . - A or . - - true if the value of is the same as the - value of ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether two specified - objects have different values. - - A or . - A or . - - true if the value of is different from - the value of ; otherwise, false. - - - - Compares two levels. - - - - - - Compares two specified instances. - - The first to compare. - The second to compare. - - A 32-bit signed integer that indicates the relative order of the - two values compared. The return value has these meanings: - - - Value - Meaning - - - Less than zero - is less than . - - - Zero - is equal to . - - - Greater than zero - is greater than . - - - - - - Compares two levels. - - - - - - The level designates a higher level than all the rest. - - - - - The level designates very severe error events. - System unusable, emergencies. - - - - - The level designates very severe error events. - System unusable, emergencies. - - - - - The level designates very severe error events - that will presumably lead the application to abort. - - - - - The level designates very severe error events. - Take immediate action, alerts. - - - - - The level designates very severe error events. - Critical condition, critical. - - - - - The level designates very severe error events. - - - - - The level designates error events that might - still allow the application to continue running. - - - - - The level designates potentially harmful - situations. - - - - - The level designates informational messages - that highlight the progress of the application at the highest level. - - - - - The level designates informational messages that - highlight the progress of the application at coarse-grained level. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates the lowest level possible. - - - - - Gets the name of this level. - - - The name of this level. - - - - Gets the name of this level. - - - - - - Gets the value of this level. - - - The value of this level. - - - - Gets the value of this level. - - - - - - Gets the display name of this level. - - - The display name of this level. - - - - Gets the display name of this level. - - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a LevelCollection instance. - - list to create a readonly wrapper arround - - A LevelCollection wrapper that is read-only. - - - - - Initializes a new instance of the LevelCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the LevelCollection class - that has the specified initial capacity. - - - The number of elements that the new LevelCollection is initially capable of storing. - - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified LevelCollection. - - The LevelCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - Copies the entire LevelCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire LevelCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the LevelCollection. - - The to be added to the end of the LevelCollection. - The index at which the value has been added. - - - - Removes all elements from the LevelCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the LevelCollection. - - The to check for. - true if is found in the LevelCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the LevelCollection. - - The to locate in the LevelCollection. - - The zero-based index of the first occurrence of - in the entire LevelCollection, if found; otherwise, -1. - - - - - Inserts an element into the LevelCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the LevelCollection. - - The to remove from the LevelCollection. - - The specified was not found in the LevelCollection. - - - - - Removes the element at the specified index of the LevelCollection. - - The zero-based index of the element to remove. - - is less than zero - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the LevelCollection. - - An for the entire LevelCollection. - - - - Adds the elements of another LevelCollection to the current LevelCollection. - - The LevelCollection whose elements should be added to the end of the current LevelCollection. - The new of the LevelCollection. - - - - Adds the elements of a array to the current LevelCollection. - - The array whose elements should be added to the end of the LevelCollection. - The new of the LevelCollection. - - - - Adds the elements of a collection to the current LevelCollection. - - The collection whose elements should be added to the end of the LevelCollection. - The new of the LevelCollection. - - - - Sets the capacity to the actual number of elements. - - - - - is less than zero - -or- - is equal to or greater than . - - - - - is less than zero - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the LevelCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - The zero-based index of the element to get or set. - - is less than zero - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false - - - - Gets or sets the number of elements the LevelCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - A value - - - - - Supports simple iteration over a . - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - An evaluator that triggers at a threshold level - - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - Nicko Cadell - - - - The threshold for triggering - - - - - Create a new evaluator using the threshold. - - - - Create a new evaluator using the threshold. - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Create a new evaluator using the specified threshold. - - the threshold to trigger at - - - Create a new evaluator using the specified threshold. - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Is this the triggering event? - - The event to check - This method returns true, if the event level - is equal or higher than the . - Otherwise it returns false - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - the threshold to trigger at - - - The that will cause this evaluator to trigger - - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Mapping between string name and Level object - - - - Mapping between string name and object. - This mapping is held separately for each . - The level name is case insensitive. - - - Nicko Cadell - - - - Mapping from level name to Level object. The - level name is case insensitive - - - - - Construct the level map - - - - Construct the level map. - - - - - - Clear the internal maps of all levels - - - - Clear the internal maps of all levels - - - - - - Create a new Level and add it to the map - - the string to display for the Level - the level value to give to the Level - - - Create a new Level and add it to the map - - - - - - - Create a new Level and add it to the map - - the string to display for the Level - the level value to give to the Level - the display name to give to the Level - - - Create a new Level and add it to the map - - - - - - Add a Level to the map - - the Level to add - - - Add a Level to the map - - - - - - Lookup a named level from the map - - the name of the level to lookup is taken from this level. - If the level is not set on the map then this level is added - the level in the map with the name specified - - - Lookup a named level from the map. The name of the level to lookup is taken - from the property of the - argument. - - - If no level with the specified name is found then the - argument is added to the level map - and returned. - - - - - - Lookup a by name - - The name of the Level to lookup - a Level from the map with the name specified - - - Returns the from the - map with the name specified. If the no level is - found then null is returned. - - - - - - Return all possible levels as a list of Level objects. - - all possible levels as a list of Level objects - - - Return all possible levels as a list of Level objects. - - - - - - The internal representation of caller location information. - - - - This class uses the System.Diagnostics.StackTrace class to generate - a call stack. The caller's information is then extracted from this stack. - - - The System.Diagnostics.StackTrace class is not supported on the - .NET Compact Framework 1.0 therefore caller location information is not - available on that framework. - - - The System.Diagnostics.StackTrace class has this to say about Release builds: - - - "StackTrace information will be most informative with Debug build configurations. - By default, Debug builds include debug symbols, while Release builds do not. The - debug symbols contain most of the file, method name, line number, and column - information used in constructing StackFrame and StackTrace objects. StackTrace - might not report as many method calls as expected, due to code transformations - that occur during optimization." - - - This means that in a Release build the caller information may be incomplete or may - not exist at all! Therefore caller location information cannot be relied upon in a Release build. - - - Nicko Cadell - Gert Driesen - - - - When location information is not available the constant - NA is returned. Current value of this string - constant is ?. - - - - - Constructor - - The declaring type of the method that is - the stack boundary into the logging system for this call. - - - Initializes a new instance of the - class based on the current thread. - - - - - - Constructor - - The fully qualified class name. - The method name. - The file name. - The line number of the method within the file. - - - Initializes a new instance of the - class with the specified data. - - - - - - The fully qualified type of the LocationInfo class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the fully qualified class name of the caller making the logging - request. - - - The fully qualified class name of the caller making the logging - request. - - - - Gets the fully qualified class name of the caller making the logging - request. - - - - - - Gets the file name of the caller. - - - The file name of the caller. - - - - Gets the file name of the caller. - - - - - - Gets the line number of the caller. - - - The line number of the caller. - - - - Gets the line number of the caller. - - - - - - Gets the method name of the caller. - - - The method name of the caller. - - - - Gets the method name of the caller. - - - - - - Gets all available caller information - - - All available caller information, in the format - fully.qualified.classname.of.caller.methodName(Filename:line) - - - - Gets all available caller information, in the format - fully.qualified.classname.of.caller.methodName(Filename:line) - - - - - - Gets the stack frames from the stack trace of the caller making the log request - - - - - Static manager that controls the creation of repositories - - - - Static manager that controls the creation of repositories - - - This class is used by the wrapper managers (e.g. ) - to provide access to the objects. - - - This manager also holds the that is used to - lookup and create repositories. The selector can be set either programmatically using - the property, or by setting the log4net.RepositorySelector - AppSetting in the applications config file to the fully qualified type name of the - selector to use. - - - Nicko Cadell - Gert Driesen - - - - Private constructor to prevent instances. Only static methods should be used. - - - - Private constructor to prevent instances. Only static methods should be used. - - - - - - Hook the shutdown event - - - - On the full .NET runtime, the static constructor hooks up the - AppDomain.ProcessExit and AppDomain.DomainUnload> events. - These are used to shutdown the log4net system as the application exits. - - - - - - Register for ProcessExit and DomainUnload events on the AppDomain - - - - This needs to be in a separate method because the events make - a LinkDemand for the ControlAppDomain SecurityPermission. Because - this is a LinkDemand it is demanded at JIT time. Therefore we cannot - catch the exception in the method itself, we have to catch it in the - caller. - - - - - - Return the default instance. - - the repository to lookup in - Return the default instance - - - Gets the for the repository specified - by the argument. - - - - - - Returns the default instance. - - The assembly to use to lookup the repository. - The default instance. - - - - Return the default instance. - - the repository to lookup in - Return the default instance - - - Gets the for the repository specified - by the argument. - - - - - - Returns the default instance. - - The assembly to use to lookup the repository. - The default instance. - - - Returns the default instance. - - - - - - Returns the named logger if it exists. - - The repository to lookup in. - The fully qualified logger name to look for. - - The logger found, or null if the named logger does not exist in the - specified repository. - - - - If the named logger exists (in the specified repository) then it - returns a reference to the logger, otherwise it returns - null. - - - - - - Returns the named logger if it exists. - - The assembly to use to lookup the repository. - The fully qualified logger name to look for. - - The logger found, or null if the named logger does not exist in the - specified assembly's repository. - - - - If the named logger exists (in the specified assembly's repository) then it - returns a reference to the logger, otherwise it returns - null. - - - - - - Returns all the currently defined loggers in the specified repository. - - The repository to lookup in. - All the defined loggers. - - - The root logger is not included in the returned array. - - - - - - Returns all the currently defined loggers in the specified assembly's repository. - - The assembly to use to lookup the repository. - All the defined loggers. - - - The root logger is not included in the returned array. - - - - - - Retrieves or creates a named logger. - - The repository to lookup in. - The name of the logger to retrieve. - The logger with the name specified. - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - - - - Retrieves or creates a named logger. - - The assembly to use to lookup the repository. - The name of the logger to retrieve. - The logger with the name specified. - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - - - - Shorthand for . - - The repository to lookup in. - The of which the fullname will be used as the name of the logger to retrieve. - The logger with the name specified. - - - Gets the logger for the fully qualified name of the type specified. - - - - - - Shorthand for . - - the assembly to use to lookup the repository - The of which the fullname will be used as the name of the logger to retrieve. - The logger with the name specified. - - - Gets the logger for the fully qualified name of the type specified. - - - - - - Shuts down the log4net system. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in all the - default repositories. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - The repository to shutdown. - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository for the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - The assembly to use to lookup the repository. - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository for the repository. The repository is looked up using - the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Resets all values contained in this repository instance to their defaults. - - The repository to reset. - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - - - - Resets all values contained in this repository instance to their defaults. - - The assembly to use to lookup the repository to reset. - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - - - - Creates a repository with the specified name. - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name. - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The name must be unique. Repositories cannot be redefined. - An Exception will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The name must be unique. Repositories cannot be redefined. - An Exception will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository for the specified assembly and repository type. - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - - - - Creates a repository for the specified assembly and repository type. - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - - - - Gets an array of all currently defined repositories. - - An array of all the known objects. - - - Gets an array of all currently defined repositories. - - - - - - Internal method to get pertinent version info. - - A string of version info. - - - - Called when the event fires - - the that is exiting - null - - - Called when the event fires. - - - When the event is triggered the log4net system is . - - - - - - Called when the event fires - - the that is exiting - null - - - Called when the event fires. - - - When the event is triggered the log4net system is . - - - - - - The fully qualified type of the LoggerManager class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Initialize the default repository selector - - - - - Gets or sets the repository selector used by the . - - - The repository selector used by the . - - - - The repository selector () is used by - the to create and select repositories - (). - - - The caller to supplies either a string name - or an assembly (if not supplied the assembly is inferred using - ). - - - This context is used by the selector to lookup a specific repository. - - - For the full .NET Framework, the default repository is DefaultRepositorySelector; - for the .NET Compact Framework CompactRepositorySelector is the default - repository. - - - - - - Implementation of the interface. - - - - This class should be used as the base for all wrapper implementations. - - - Nicko Cadell - Gert Driesen - - - - Constructs a new wrapper for the specified logger. - - The logger to wrap. - - - Constructs a new wrapper for the specified logger. - - - - - - The logger that this object is wrapping - - - - - Gets the implementation behind this wrapper object. - - - The object that this object is implementing. - - - - The Logger object may not be the same object as this object - because of logger decorators. - - - This gets the actual underlying objects that is used to process - the log events. - - - - - - Portable data structure used by - - - - Portable data structure used by - - - Nicko Cadell - - - - The logger name. - - - - The logger name. - - - - - - Level of logging event. - - - - Level of logging event. Level cannot be Serializable - because it is a flyweight. Due to its special serialization it - cannot be declared final either. - - - - - - The application supplied message. - - - - The application supplied message of logging event. - - - - - - The name of thread - - - - The name of thread in which this logging event was generated - - - - - - The time the event was logged - - - - The TimeStamp is stored in the local time zone for this computer. - - - - - - Location information for the caller. - - - - Location information for the caller. - - - - - - String representation of the user - - - - String representation of the user's windows name, - like DOMAIN\username - - - - - - String representation of the identity. - - - - String representation of the current thread's principal identity. - - - - - - The string representation of the exception - - - - The string representation of the exception - - - - - - String representation of the AppDomain. - - - - String representation of the AppDomain. - - - - - - Additional event specific properties - - - - A logger or an appender may attach additional - properties to specific events. These properties - have a string key and an object value. - - - - - - Flags passed to the property - - - - Flags passed to the property - - - Nicko Cadell - - - - Fix the MDC - - - - - Fix the NDC - - - - - Fix the rendered message - - - - - Fix the thread name - - - - - Fix the callers location information - - - CAUTION: Very slow to generate - - - - - Fix the callers windows user name - - - CAUTION: Slow to generate - - - - - Fix the domain friendly name - - - - - Fix the callers principal name - - - CAUTION: May be slow to generate - - - - - Fix the exception text - - - - - Fix the event properties. Active properties must implement in order to be eligible for fixing. - - - - - No fields fixed - - - - - All fields fixed - - - - - Partial fields fixed - - - - This set of partial fields gives good performance. The following fields are fixed: - - - - - - - - - - - - - The internal representation of logging events. - - - - When an affirmative decision is made to log then a - instance is created. This instance - is passed around to the different log4net components. - - - This class is of concern to those wishing to extend log4net. - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - for incurred by calling but it - is essential to maintaining data consistency. - - - Nicko Cadell - Gert Driesen - Douglas de la Torre - Daniel Cazzulino - - - - The key into the Properties map for the host name value. - - - - - The key into the Properties map for the thread identity value. - - - - - The key into the Properties map for the user name value. - - - - - Initializes a new instance of the class - from the supplied parameters. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - The name of the logger of this event. - The level of this event. - The message of this event. - The exception for this event. - - - Except , and , - all fields of LoggingEvent are filled when actually needed. Call - to cache all data locally - to prevent inconsistencies. - - This method is called by the log4net framework - to create a logging event. - - - - - - Initializes a new instance of the class - using specific data. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - Data used to initialize the logging event. - The fields in the struct that have already been fixed. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - The parameter should be used to specify which fields in the - struct have been preset. Fields not specified in the - will be captured from the environment if requested or fixed. - - - - - - Initializes a new instance of the class - using specific data. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - Data used to initialize the logging event. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - This constructor sets this objects flags to , - this assumes that all the data relating to this event is passed in via the - parameter and no other data should be captured from the environment. - - - - - - Initializes a new instance of the class - using specific data. - - Data used to initialize the logging event. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - This constructor sets this objects flags to , - this assumes that all the data relating to this event is passed in via the - parameter and no other data should be captured from the environment. - - - - - - Serialization constructor - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Ensure that the repository is set. - - the value for the repository - - - - Write the rendered message to a TextWriter - - the writer to write the message to - - - Unlike the property this method - does store the message data in the internal cache. Therefore - if called only once this method should be faster than the - property, however if the message is - to be accessed multiple times then the property will be more efficient. - - - - - - Serializes this object into the provided. - - The to populate with data. - The destination for this serialization. - - - The data in this event must be fixed before it can be serialized. - - - The method must be called during the - method call if this event - is to be used outside that method. - - - - - - Gets the portable data for this . - - The for this event. - - - A new can be constructed using a - instance. - - - Does a fix of the data - in the logging event before returning the event data. - - - - - - Gets the portable data for this . - - The set of data to ensure is fixed in the LoggingEventData - The for this event. - - - A new can be constructed using a - instance. - - - - - - Returns this event's exception's rendered using the - . - - - This event's exception's rendered using the . - - - - Obsolete. Use instead. - - - - - - Returns this event's exception's rendered using the - . - - - This event's exception's rendered using the . - - - - Returns this event's exception's rendered using the - . - - - - - - Fix instance fields that hold volatile data. - - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - incurred by calling but it - is essential to maintaining data consistency. - - - Calling is equivalent to - calling passing the parameter - false. - - - See for more - information. - - - - - - Fixes instance fields that hold volatile data. - - Set to true to not fix data that takes a long time to fix. - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - for incurred by calling but it - is essential to maintaining data consistency. - - - The param controls the data that - is fixed. Some of the data that can be fixed takes a long time to - generate, therefore if you do not require those settings to be fixed - they can be ignored by setting the param - to true. This setting will ignore the - and settings. - - - Set to false to ensure that all - settings are fixed. - - - - - - Fix the fields specified by the parameter - - the fields to fix - - - Only fields specified in the will be fixed. - Fields will not be fixed if they have previously been fixed. - It is not possible to 'unfix' a field. - - - - - - Lookup a composite property in this event - - the key for the property to lookup - the value for the property - - - This event has composite properties that combine together properties from - several different contexts in the following order: - - - this events properties - - This event has that can be set. These - properties are specific to this event only. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - - - Get all the composite properties in this event - - the containing all the properties - - - See for details of the composite properties - stored by the event. - - - This method returns a single containing all the - properties defined for this event. - - - - - - The internal logging event data. - - - - - The internal logging event data. - - - - - The internal logging event data. - - - - - The fully qualified Type of the calling - logger class in the stack frame (i.e. the declaring type of the method). - - - - - The application supplied message of logging event. - - - - - The exception that was thrown. - - - This is not serialized. The string representation - is serialized instead. - - - - - The repository that generated the logging event - - - This is not serialized. - - - - - The fix state for this event - - - These flags indicate which fields have been fixed. - Not serialized. - - - - - Indicated that the internal cache is updateable (ie not fixed) - - - This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler - changes in the caching strategy. - - - - - Gets the time when the current process started. - - - This is the time when this process started. - - - - The TimeStamp is stored in the local time zone for this computer. - - - Tries to get the start time for the current process. - Failing that it returns the time of the first call to - this property. - - - Note that AppDomains may be loaded and unloaded within the - same process without the process terminating and therefore - without the process start time being reset. - - - - - - Gets the of the logging event. - - - The of the logging event. - - - - Gets the of the logging event. - - - - - - Gets the time of the logging event. - - - The time of the logging event. - - - - The TimeStamp is stored in the local time zone for this computer. - - - - - - Gets the name of the logger that logged the event. - - - The name of the logger that logged the event. - - - - Gets the name of the logger that logged the event. - - - - - - Gets the location information for this logging event. - - - The location information for this logging event. - - - - The collected information is cached for future use. - - - See the class for more information on - supported frameworks and the different behavior in Debug and - Release builds. - - - - - - Gets the message object used to initialize this event. - - - The message object used to initialize this event. - - - - Gets the message object used to initialize this event. - Note that this event may not have a valid message object. - If the event is serialized the message object will not - be transferred. To get the text of the message the - property must be used - not this property. - - - If there is no defined message object for this event then - null will be returned. - - - - - - Gets the exception object used to initialize this event. - - - The exception object used to initialize this event. - - - - Gets the exception object used to initialize this event. - Note that this event may not have a valid exception object. - If the event is serialized the exception object will not - be transferred. To get the text of the exception the - method must be used - not this property. - - - If there is no defined exception object for this event then - null will be returned. - - - - - - The that this event was created in. - - - - The that this event was created in. - - - - - - Gets the message, rendered through the . - - - The message rendered through the . - - - - The collected information is cached for future use. - - - - - - Gets the name of the current thread. - - - The name of the current thread, or the thread ID when - the name is not available. - - - - The collected information is cached for future use. - - - - - - Gets the name of the current user. - - - The name of the current user, or NOT AVAILABLE when the - underlying runtime has no support for retrieving the name of the - current user. - - - - Calls WindowsIdentity.GetCurrent().Name to get the name of - the current windows user. - - - To improve performance, we could cache the string representation of - the name, and reuse that as long as the identity stayed constant. - Once the identity changed, we would need to re-assign and re-render - the string. - - - However, the WindowsIdentity.GetCurrent() call seems to - return different objects every time, so the current implementation - doesn't do this type of caching. - - - Timing for these operations: - - - - Method - Results - - - WindowsIdentity.GetCurrent() - 10000 loops, 00:00:00.2031250 seconds - - - WindowsIdentity.GetCurrent().Name - 10000 loops, 00:00:08.0468750 seconds - - - - This means we could speed things up almost 40 times by caching the - value of the WindowsIdentity.GetCurrent().Name property, since - this takes (8.04-0.20) = 7.84375 seconds. - - - - - - Gets the identity of the current thread principal. - - - The string name of the identity of the current thread principal. - - - - Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get - the name of the current thread principal. - - - - - - Gets the AppDomain friendly name. - - - The AppDomain friendly name. - - - - Gets the AppDomain friendly name. - - - - - - Additional event specific properties. - - - Additional event specific properties. - - - - A logger or an appender may attach additional - properties to specific events. These properties - have a string key and an object value. - - - This property is for events that have been added directly to - this event. The aggregate properties (which include these - event properties) can be retrieved using - and . - - - Once the properties have been fixed this property - returns the combined cached properties. This ensures that updates to - this property are always reflected in the underlying storage. When - returning the combined properties there may be more keys in the - Dictionary than expected. - - - - - - The fixed fields in this event - - - The set of fields that are fixed in this event - - - - Fields will not be fixed if they have previously been fixed. - It is not possible to 'unfix' a field. - - - - - - Implementation of wrapper interface. - - - - This implementation of the interface - forwards to the held by the base class. - - - This logger has methods to allow the caller to log at the following - levels: - - - - DEBUG - - The and methods log messages - at the DEBUG level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - INFO - - The and methods log messages - at the INFO level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - WARN - - The and methods log messages - at the WARN level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - ERROR - - The and methods log messages - at the ERROR level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - FATAL - - The and methods log messages - at the FATAL level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - - The values for these levels and their semantic meanings can be changed by - configuring the for the repository. - - - Nicko Cadell - Gert Driesen - - - - The ILog interface is use by application to log messages into - the log4net framework. - - - - Use the to obtain logger instances - that implement this interface. The - static method is used to get logger instances. - - - This class contains methods for logging at different levels and also - has properties for determining if those logging levels are - enabled in the current configuration. - - - This interface can be implemented in different ways. This documentation - specifies reasonable behavior that a caller can expect from the actual - implementation, however different implementations reserve the right to - do things differently. - - - Simple example of logging messages - - ILog log = LogManager.GetLogger("application-log"); - - log.Info("Application Start"); - log.Debug("This is a debug message"); - - if (log.IsDebugEnabled) - { - log.Debug("This is another debug message"); - } - - - - - Nicko Cadell - Gert Driesen - - - Log a message object with the level. - - Log a message object with the level. - - The message object to log. - - - This method first checks if this logger is DEBUG - enabled by comparing the level of this logger with the - level. If this logger is - DEBUG enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of - the additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Logs a message object with the level. - - - - This method first checks if this logger is INFO - enabled by comparing the level of this logger with the - level. If this logger is - INFO enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Logs a message object with the INFO level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Log a message object with the level. - - - - This method first checks if this logger is WARN - enabled by comparing the level of this logger with the - level. If this logger is - WARN enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Logs a message object with the level. - - The message object to log. - - - This method first checks if this logger is ERROR - enabled by comparing the level of this logger with the - level. If this logger is - ERROR enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Log a message object with the level. - - - - This method first checks if this logger is FATAL - enabled by comparing the level of this logger with the - level. If this logger is - FATAL enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - - This function is intended to lessen the computational cost of - disabled log debug statements. - - For some ILog interface log, when you write: - - log.Debug("This is entry number: " + i ); - - - You incur the cost constructing the message, string construction and concatenation in - this case, regardless of whether the message is logged or not. - - - If you are worried about speed (who isn't), then you should write: - - - if (log.IsDebugEnabled) - { - log.Debug("This is entry number: " + i ); - } - - - This way you will not incur the cost of parameter - construction if debugging is disabled for log. On - the other hand, if the log is debug enabled, you - will incur the cost of evaluating whether the logger is debug - enabled twice. Once in and once in - the . This is an insignificant overhead - since evaluating a logger takes about 1% of the time it - takes to actually log. This is the preferred style of logging. - - Alternatively if your logger is available statically then the is debug - enabled state can be stored in a static variable like this: - - - private static readonly bool isDebugEnabled = log.IsDebugEnabled; - - - Then when you come to log you can write: - - - if (isDebugEnabled) - { - log.Debug("This is entry number: " + i ); - } - - - This way the debug enabled state is only queried once - when the class is loaded. Using a private static readonly - variable is the most efficient because it is a run time constant - and can be heavily optimized by the JIT compiler. - - - Of course if you use a static readonly variable to - hold the enabled state of the logger then you cannot - change the enabled state at runtime to vary the logging - that is produced. You have to decide if you need absolute - speed or runtime flexibility. - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Construct a new wrapper for the specified logger. - - The logger to wrap. - - - Construct a new wrapper for the specified logger. - - - - - - Virtual method called when the configuration of the repository changes - - the repository holding the levels - - - Virtual method called when the configuration of the repository changes - - - - - - Logs a message object with the DEBUG level. - - The message object to log. - - - This method first checks if this logger is DEBUG - enabled by comparing the level of this logger with the - DEBUG level. If this logger is - DEBUG enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the DEBUG level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the DEBUG level including - the stack trace of the passed - as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the INFO level. - - The message object to log. - - - This method first checks if this logger is INFO - enabled by comparing the level of this logger with the - INFO level. If this logger is - INFO enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of - the additivity flag. - - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the INFO level. - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the INFO level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the WARN level. - - the message object to log - - - This method first checks if this logger is WARN - enabled by comparing the level of this logger with the - WARN level. If this logger is - WARN enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the WARN level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the WARN level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the ERROR level. - - The message object to log. - - - This method first checks if this logger is ERROR - enabled by comparing the level of this logger with the - ERROR level. If this logger is - ERROR enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the ERROR level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the ERROR level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the FATAL level. - - The message object to log. - - - This method first checks if this logger is FATAL - enabled by comparing the level of this logger with the - FATAL level. If this logger is - FATAL enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the FATAL level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the FATAL level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Event handler for the event - - the repository - Empty - - - - The fully qualified name of this declaring type not the type of any subclass. - - - - - Checks if this logger is enabled for the DEBUG - level. - - - true if this logger is enabled for DEBUG events, - false otherwise. - - - - This function is intended to lessen the computational cost of - disabled log debug statements. - - - For some log Logger object, when you write: - - - log.Debug("This is entry number: " + i ); - - - You incur the cost constructing the message, concatenation in - this case, regardless of whether the message is logged or not. - - - If you are worried about speed, then you should write: - - - if (log.IsDebugEnabled()) - { - log.Debug("This is entry number: " + i ); - } - - - This way you will not incur the cost of parameter - construction if debugging is disabled for log. On - the other hand, if the log is debug enabled, you - will incur the cost of evaluating whether the logger is debug - enabled twice. Once in IsDebugEnabled and once in - the Debug. This is an insignificant overhead - since evaluating a logger takes about 1% of the time it - takes to actually log. - - - - - - Checks if this logger is enabled for the INFO level. - - - true if this logger is enabled for INFO events, - false otherwise. - - - - See for more information and examples - of using this method. - - - - - - - Checks if this logger is enabled for the WARN level. - - - true if this logger is enabled for WARN events, - false otherwise. - - - - See for more information and examples - of using this method. - - - - - - - Checks if this logger is enabled for the ERROR level. - - - true if this logger is enabled for ERROR events, - false otherwise. - - - - See for more information and examples of using this method. - - - - - - - Checks if this logger is enabled for the FATAL level. - - - true if this logger is enabled for FATAL events, - false otherwise. - - - - See for more information and examples of using this method. - - - - - - - A SecurityContext used by log4net when interacting with protected resources - - - - A SecurityContext used by log4net when interacting with protected resources - for example with operating system services. This can be used to impersonate - a principal that has been granted privileges on the system resources. - - - Nicko Cadell - - - - Impersonate this SecurityContext - - State supplied by the caller - An instance that will - revoke the impersonation of this SecurityContext, or null - - - Impersonate this security context. Further calls on the current - thread should now be made in the security context provided - by this object. When the result - method is called the security - context of the thread should be reverted to the state it was in - before was called. - - - - - - The providers default instances. - - - - A configured component that interacts with potentially protected system - resources uses a to provide the elevated - privileges required. If the object has - been not been explicitly provided to the component then the component - will request one from this . - - - By default the is - an instance of which returns only - objects. This is a reasonable default - where the privileges required are not know by the system. - - - This default behavior can be overridden by subclassing the - and overriding the method to return - the desired objects. The default provider - can be replaced by programmatically setting the value of the - property. - - - An alternative is to use the log4net.Config.SecurityContextProviderAttribute - This attribute can be applied to an assembly in the same way as the - log4net.Config.XmlConfiguratorAttribute". The attribute takes - the type to use as the as an argument. - - - Nicko Cadell - - - - The default provider - - - - - Protected default constructor to allow subclassing - - - - Protected default constructor to allow subclassing - - - - - - Create a SecurityContext for a consumer - - The consumer requesting the SecurityContext - An impersonation context - - - The default implementation is to return a . - - - Subclasses should override this method to provide their own - behavior. - - - - - - Gets or sets the default SecurityContextProvider - - - The default SecurityContextProvider - - - - The default provider is used by configured components that - require a and have not had one - given to them. - - - By default this is an instance of - that returns objects. - - - The default provider can be set programmatically by setting - the value of this property to a sub class of - that has the desired behavior. - - - - - - An evaluator that triggers after specified number of seconds. - - - - This evaluator will trigger if the specified time period - has passed since last check. - - - Robert Sevcik - - - - The default time threshold for triggering in seconds. Zero means it won't trigger at all. - - - - - The time threshold for triggering in seconds. Zero means it won't trigger at all. - - - - - The time of last check. This gets updated when the object is created and when the evaluator triggers. - - - - - Create a new evaluator using the time threshold in seconds. - - - - Create a new evaluator using the time threshold in seconds. - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Create a new evaluator using the specified time threshold in seconds. - - - The time threshold in seconds to trigger after. - Zero means it won't trigger at all. - - - - Create a new evaluator using the specified time threshold in seconds. - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Is this the triggering event? - - The event to check - This method returns true, if the specified time period - has passed since last check.. - Otherwise it returns false - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - The time threshold in seconds to trigger after - - - The time threshold in seconds to trigger after. - Zero means it won't trigger at all. - - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Delegate used to handle creation of new wrappers. - - The logger to wrap in a wrapper. - - - Delegate used to handle creation of new wrappers. This delegate - is called from the - method to construct the wrapper for the specified logger. - - - The delegate to use is supplied to the - constructor. - - - - - - Maps between logger objects and wrapper objects. - - - - This class maintains a mapping between objects and - objects. Use the method to - lookup the for the specified . - - - New wrapper instances are created by the - method. The default behavior is for this method to delegate construction - of the wrapper to the delegate supplied - to the constructor. This allows specialization of the behavior without - requiring subclassing of this type. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the - - The handler to use to create the wrapper objects. - - - Initializes a new instance of the class with - the specified handler to create the wrapper objects. - - - - - - Gets the wrapper object for the specified logger. - - The wrapper object for the specified logger - - - If the logger is null then the corresponding wrapper is null. - - - Looks up the wrapper it it has previously been requested and - returns it. If the wrapper has never been requested before then - the virtual method is - called. - - - - - - Creates the wrapper object for the specified logger. - - The logger to wrap in a wrapper. - The wrapper object for the logger. - - - This implementation uses the - passed to the constructor to create the wrapper. This method - can be overridden in a subclass. - - - - - - Called when a monitored repository shutdown event is received. - - The that is shutting down - - - This method is called when a that this - is holding loggers for has signaled its shutdown - event . The default - behavior of this method is to release the references to the loggers - and their wrappers generated for this repository. - - - - - - Event handler for repository shutdown event. - - The sender of the event. - The event args. - - - - Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings - - - - - The handler to use to create the extension wrapper objects. - - - - - Internal reference to the delegate used to register for repository shutdown events. - - - - - Gets the map of logger repositories. - - - Map of logger repositories. - - - - Gets the hashtable that is keyed on . The - values are hashtables keyed on with the - value being the corresponding . - - - - - - Formats a as "HH:mm:ss,fff". - - - - Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". - - - Nicko Cadell - Gert Driesen - - - - Render a as a string. - - - - Interface to abstract the rendering of a - instance into a string. - - - The method is used to render the - date to a text writer. - - - Nicko Cadell - Gert Driesen - - - - Formats the specified date as a string. - - The date to format. - The writer to write to. - - - Format the as a string and write it - to the provided. - - - - - - String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. - - - - - String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. - - - - - String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. - - - - - Renders the date into a string. Format is "HH:mm:ss". - - The date to render into a string. - The string builder to write to. - - - Subclasses should override this method to render the date - into a string using a precision up to the second. This method - will be called at most once per second and the result will be - reused if it is needed again during the same second. - - - - - - Renders the date into a string. Format is "HH:mm:ss,fff". - - The date to render into a string. - The writer to write to. - - - Uses the method to generate the - time string up to the seconds and then appends the current - milliseconds. The results from are - cached and is called at most once - per second. - - - Sub classes should override - rather than . - - - - - - Last stored time with precision up to the second. - - - - - Last stored time with precision up to the second, formatted - as a string. - - - - - Last stored time with precision up to the second, formatted - as a string. - - - - - Formats a as "dd MMM yyyy HH:mm:ss,fff" - - - - Formats a in the format - "dd MMM yyyy HH:mm:ss,fff" for example, - "06 Nov 1994 15:49:37,459". - - - Nicko Cadell - Gert Driesen - Angelika Schnagl - - - - Default constructor. - - - - Initializes a new instance of the class. - - - - - - Formats the date without the milliseconds part - - The date to format. - The string builder to write to. - - - Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" - for example, "06 Nov 1994 15:49:37". - - - The base class will append the ",fff" milliseconds section. - This method will only be called at most once per second. - - - - - - The format info for the invariant culture. - - - - - Formats the as "yyyy-MM-dd HH:mm:ss,fff". - - - - Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Formats the date without the milliseconds part - - The date to format. - The string builder to write to. - - - Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". - - - The base class will append the ",fff" milliseconds section. - This method will only be called at most once per second. - - - - - - Formats the using the method. - - - - Formats the using the method. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The format string. - - - Initializes a new instance of the class - with the specified format string. - - - The format string must be compatible with the options - that can be supplied to . - - - - - - Formats the date using . - - The date to convert to a string. - The writer to write to. - - - Uses the date format string supplied to the constructor to call - the method to format the date. - - - - - - The format string used to format the . - - - - The format string must be compatible with the options - that can be supplied to . - - - - - - This filter drops all . - - - - You can add this filter to the end of a filter chain to - switch from the default "accept all unless instructed otherwise" - filtering behavior to a "deny all unless instructed otherwise" - behavior. - - - Nicko Cadell - Gert Driesen - - - - Subclass this type to implement customized logging event filtering - - - - Users should extend this class to implement customized logging - event filtering. Note that and - , the parent class of all standard - appenders, have built-in filtering rules. It is suggested that you - first use and understand the built-in rules before rushing to write - your own custom filters. - - - This abstract class assumes and also imposes that filters be - organized in a linear chain. The - method of each filter is called sequentially, in the order of their - addition to the chain. - - - The method must return one - of the integer constants , - or . - - - If the value is returned, then the log event is dropped - immediately without consulting with the remaining filters. - - - If the value is returned, then the next filter - in the chain is consulted. If there are no more filters in the - chain, then the log event is logged. Thus, in the presence of no - filters, the default behavior is to log all logging events. - - - If the value is returned, then the log - event is logged without consulting the remaining filters. - - - The philosophy of log4net filters is largely inspired from the - Linux ipchains. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface to provide customized logging event filtering - - - - Users should implement this interface to implement customized logging - event filtering. Note that and - , the parent class of all standard - appenders, have built-in filtering rules. It is suggested that you - first use and understand the built-in rules before rushing to write - your own custom filters. - - - This abstract class assumes and also imposes that filters be - organized in a linear chain. The - method of each filter is called sequentially, in the order of their - addition to the chain. - - - The method must return one - of the integer constants , - or . - - - If the value is returned, then the log event is dropped - immediately without consulting with the remaining filters. - - - If the value is returned, then the next filter - in the chain is consulted. If there are no more filters in the - chain, then the log event is logged. Thus, in the presence of no - filters, the default behavior is to log all logging events. - - - If the value is returned, then the log - event is logged without consulting the remaining filters. - - - The philosophy of log4net filters is largely inspired from the - Linux ipchains. - - - Nicko Cadell - Gert Driesen - - - - Decide if the logging event should be logged through an appender. - - The LoggingEvent to decide upon - The decision of the filter - - - If the decision is , then the event will be - dropped. If the decision is , then the next - filter, if any, will be invoked. If the decision is then - the event will be logged without consulting with other filters in - the chain. - - - - - - Property to get and set the next filter - - - The next filter in the chain - - - - Filters are typically composed into chains. This property allows the next filter in - the chain to be accessed. - - - - - - Points to the next filter in the filter chain. - - - - See for more information. - - - - - - Initialize the filter with the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Typically filter's options become active immediately on set, - however this method must still be called. - - - - - - Decide if the should be logged through an appender. - - The to decide upon - The decision of the filter - - - If the decision is , then the event will be - dropped. If the decision is , then the next - filter, if any, will be invoked. If the decision is then - the event will be logged without consulting with other filters in - the chain. - - - This method is marked abstract and must be implemented - in a subclass. - - - - - - Property to get and set the next filter - - - The next filter in the chain - - - - Filters are typically composed into chains. This property allows the next filter in - the chain to be accessed. - - - - - - Default constructor - - - - - Always returns the integer constant - - the LoggingEvent to filter - Always returns - - - Ignores the event being logged and just returns - . This can be used to change the default filter - chain behavior from to . This filter - should only be used as the last filter in the chain - as any further filters will be ignored! - - - - - - The return result from - - - - The return result from - - - - - - The log event must be dropped immediately without - consulting with the remaining filters, if any, in the chain. - - - - - This filter is neutral with respect to the log event. - The remaining filters, if any, should be consulted for a final decision. - - - - - The log event must be logged immediately without - consulting with the remaining filters, if any, in the chain. - - - - - This is a very simple filter based on matching. - - - - The filter admits two options and - . If there is an exact match between the value - of the option and the of the - , then the method returns in - case the option value is set - to true, if it is false then - is returned. If the does not match then - the result will be . - - - Nicko Cadell - Gert Driesen - - - - flag to indicate if the filter should on a match - - - - - the to match against - - - - - Default constructor - - - - - Tests if the of the logging event matches that of the filter - - the event to filter - see remarks - - - If the of the event matches the level of the - filter then the result of the function depends on the - value of . If it is true then - the function will return , it it is false then it - will return . If the does not match then - the result will be . - - - - - - when matching - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - The that the filter will match - - - - The level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - This is a simple filter based on matching. - - - - The filter admits three options and - that determine the range of priorities that are matched, and - . If there is a match between the range - of priorities and the of the , then the - method returns in case the - option value is set to true, if it is false - then is returned. If there is no match, is returned. - - - Nicko Cadell - Gert Driesen - - - - Flag to indicate the behavior when matching a - - - - - the minimum value to match - - - - - the maximum value to match - - - - - Default constructor - - - - - Check if the event should be logged. - - the logging event to check - see remarks - - - If the of the logging event is outside the range - matched by this filter then - is returned. If the is matched then the value of - is checked. If it is true then - is returned, otherwise - is returned. - - - - - - when matching and - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - Set the minimum matched - - - - The minimum level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - Sets the maximum matched - - - - The maximum level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - Simple filter to match a string in the event's logger name. - - - - The works very similar to the . It admits two - options and . If the - of the starts - with the value of the option, then the - method returns in - case the option value is set to true, - if it is false then is returned. - - - Daniel Cazzulino - - - - Flag to indicate the behavior when we have a match - - - - - The logger name string to substring match against the event - - - - - Default constructor - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The rendered message is matched against the . - If the equals the beginning of - the incoming () - then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - when matching - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - The that the filter will match - - - - This filter will attempt to match this value against logger name in - the following way. The match will be done against the beginning of the - logger name (using ). The match is - case sensitive. If a match is found then - the result depends on the value of . - - - - - - Simple filter to match a keyed string in the - - - - Simple filter to match a keyed string in the - - - As the MDC has been replaced with layered properties the - should be used instead. - - - Nicko Cadell - Gert Driesen - - - - Simple filter to match a string an event property - - - - Simple filter to match a string in the value for a - specific event property - - - Nicko Cadell - - - - Simple filter to match a string in the rendered message - - - - Simple filter to match a string in the rendered message - - - Nicko Cadell - Gert Driesen - - - - Flag to indicate the behavior when we have a match - - - - - The string to substring match against the message - - - - - A string regex to match - - - - - A regex object to match (generated from m_stringRegexToMatch) - - - - - Default constructor - - - - - Initialize and precompile the Regex if required - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The rendered message is matched against the . - If the occurs as a substring within - the message then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - when matching or - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - Sets the static string to match - - - - The string that will be substring matched against - the rendered message. If the message contains this - string then the filter will match. If a match is found then - the result depends on the value of . - - - One of or - must be specified. - - - - - - Sets the regular expression to match - - - - The regular expression pattern that will be matched against - the rendered message. If the message matches this - pattern then the filter will match. If a match is found then - the result depends on the value of . - - - One of or - must be specified. - - - - - - The key to use to lookup the string from the event properties - - - - - Default constructor - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The event property for the is matched against - the . - If the occurs as a substring within - the property value then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - The key to lookup in the event properties and then match against. - - - - The key name to use to lookup in the properties map of the - . The match will be performed against - the value of this property if it exists. - - - - - - Simple filter to match a string in the - - - - Simple filter to match a string in the - - - As the MDC has been replaced with named stacks stored in the - properties collections the should - be used instead. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Sets the to "NDC". - - - - - - Write the event appdomain name to the output - - - - Writes the to the output writer. - - - Daniel Cazzulino - Nicko Cadell - - - - Abstract class that provides the formatting functionality that - derived classes need. - - - Conversion specifiers in a conversion patterns are parsed to - individual PatternConverters. Each of which is responsible for - converting a logging event in a converter specific manner. - - Nicko Cadell - - - - Abstract class that provides the formatting functionality that - derived classes need. - - - - Conversion specifiers in a conversion patterns are parsed to - individual PatternConverters. Each of which is responsible for - converting a logging event in a converter specific manner. - - - Nicko Cadell - Gert Driesen - - - - Initial buffer size - - - - - Maximum buffer size before it is recycled - - - - - Protected constructor - - - - Initializes a new instance of the class. - - - - - - Evaluate this pattern converter and write the output to a writer. - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the appropriate way. - - - - - - Set the next pattern converter in the chains - - the pattern converter that should follow this converter in the chain - the next converter - - - The PatternConverter can merge with its neighbor during this method (or a sub class). - Therefore the return value may or may not be the value of the argument passed in. - - - - - - Write the pattern converter to the writer with appropriate formatting - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - This method calls to allow the subclass to perform - appropriate conversion of the pattern converter. If formatting options have - been specified via the then this method will - apply those formattings before writing the output. - - - - - - Fast space padding method. - - to which the spaces will be appended. - The number of spaces to be padded. - - - Fast space padding method. - - - - - - The option string to the converter - - - - - Write an dictionary to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the to a writer in the form: - - - {key1=value1, key2=value2, key3=value3} - - - If the specified - is not null then it is used to render the key and value to text, otherwise - the object's ToString method is called. - - - - - - Write an dictionary to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the to a writer in the form: - - - {key1=value1, key2=value2, key3=value3} - - - If the specified - is not null then it is used to render the key and value to text, otherwise - the object's ToString method is called. - - - - - - Write an object to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the Object to a writer. If the specified - is not null then it is used to render the object to text, otherwise - the object's ToString method is called. - - - - - - Get the next pattern converter in the chain - - - the next pattern converter in the chain - - - - Get the next pattern converter in the chain - - - - - - Gets or sets the formatting info for this converter - - - The formatting info for this converter - - - - Gets or sets the formatting info for this converter - - - - - - Gets or sets the option value for this converter - - - The option for this converter - - - - Gets or sets the option value for this converter - - - - - - - - - - - Initializes a new instance of the class. - - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The on which the pattern converter should be executed. - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - - Flag indicating if this converter handles exceptions - - - false if this converter handles exceptions - - - - - Flag indicating if this converter handles the logging event exception - - false if this converter handles the logging event exception - - - If this converter handles the exception object contained within - , then this property should be set to - false. Otherwise, if the layout ignores the exception - object, then the property should be set to true. - - - Set this value to override a this default setting. The default - value is true, this converter does not handle the exception. - - - - - - Write the event appdomain name to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output . - - - - - - Converter for items in the ASP.Net Cache. - - - - Outputs an item from the . - - - Ron Grabowski - - - - Abstract class that provides access to the current HttpContext () that - derived classes need. - - - This class handles the case when HttpContext.Current is null by writing - to the writer. - - Ron Grabowski - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - - Write the ASP.Net Cache item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. If no property has been set, all key value pairs from the Cache will - be written to the output. - - - - - - Converter for items in the . - - - - Outputs an item from the . - - - Ron Grabowski - - - - Write the ASP.Net HttpContext item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. - - - - - - Converter for items in the ASP.Net Cache. - - - - Outputs an item from the . - - - Ron Grabowski - - - - Write the ASP.Net Cache item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. - - - - - - Converter for items in the ASP.Net Cache. - - - - Outputs an item from the . - - - Ron Grabowski - - - - Write the ASP.Net Cache item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. If no property has been set, all key value pairs from the Session will - be written to the output. - - - - - - Date pattern converter, uses a to format - the date of a . - - - - Render the to the writer as a string. - - - The value of the determines - the formatting of the date. The following values are allowed: - - - Option value - Output - - - ISO8601 - - Uses the formatter. - Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. - - - - DATE - - Uses the formatter. - Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". - - - - ABSOLUTE - - Uses the formatter. - Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". - - - - other - - Any other pattern string uses the formatter. - This formatter passes the pattern string to the - method. - For details on valid patterns see - DateTimeFormatInfo Class. - - - - - - The is in the local time zone and is rendered in that zone. - To output the time in Universal time see . - - - Nicko Cadell - - - - The used to render the date to a string - - - - The used to render the date to a string - - - - - - Initialize the converter pattern based on the property. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Convert the pattern into the rendered message - - that will receive the formatted result. - the event being logged - - - Pass the to the - for it to render it to the writer. - - - The passed is in the local time zone. - - - - - - The fully qualified type of the DatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the exception text to the output - - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - - - If there is no exception then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - Nicko Cadell - - - - Default constructor - - - - - Write the exception text to the output - - that will receive the formatted result. - the event being logged - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - - - If there is no exception or the exception property specified - by the Option value does not exist then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - Recognized values for the Option parameter are: - - - - Message - - - Source - - - StackTrace - - - TargetSite - - - HelpLink - - - - - - - Writes the caller location file name to the output - - - - Writes the value of the for - the event to the output writer. - - - Nicko Cadell - - - - Write the caller location file name to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the for - the to the output . - - - - - - Write the caller location info to the output - - - - Writes the to the output writer. - - - Nicko Cadell - - - - Write the caller location info to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output writer. - - - - - - Writes the event identity to the output - - - - Writes the value of the to - the output writer. - - - Daniel Cazzulino - Nicko Cadell - - - - Writes the event identity to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the - to - the output . - - - - - - Write the event level to the output - - - - Writes the display name of the event - to the writer. - - - Nicko Cadell - - - - Write the event level to the output - - that will receive the formatted result. - the event being logged - - - Writes the of the - to the . - - - - - - Write the caller location line number to the output - - - - Writes the value of the for - the event to the output writer. - - - Nicko Cadell - - - - Write the caller location line number to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the for - the to the output . - - - - - - Converter for logger name - - - - Outputs the of the event. - - - Nicko Cadell - - - - Converter to output and truncate '.' separated strings - - - - This abstract class supports truncating a '.' separated string - to show a specified number of elements from the right hand side. - This is used to truncate class names that are fully qualified. - - - Subclasses should override the method to - return the fully qualified string. - - - Nicko Cadell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Get the fully qualified string data - - the event being logged - the fully qualified name - - - Overridden by subclasses to get the fully qualified name before the - precision is applied to it. - - - Return the fully qualified '.' (dot/period) separated string. - - - - - - Convert the pattern to the rendered message - - that will receive the formatted result. - the event being logged - - Render the to the precision - specified by the property. - - - - - The fully qualified type of the NamedPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the fully qualified name of the logger - - the event being logged - The fully qualified logger name - - - Returns the of the . - - - - - - Writes the event message to the output - - - - Uses the method - to write out the event message. - - - Nicko Cadell - - - - Writes the event message to the output - - that will receive the formatted result. - the event being logged - - - Uses the method - to write out the event message. - - - - - - Write the method name to the output - - - - Writes the caller location to - the output. - - - Nicko Cadell - - - - Write the method name to the output - - that will receive the formatted result. - the event being logged - - - Writes the caller location to - the output. - - - - - - Converter to include event NDC - - - - Outputs the value of the event property named NDC. - - - The should be used instead. - - - Nicko Cadell - - - - Write the event NDC to the output - - that will receive the formatted result. - the event being logged - - - As the thread context stacks are now stored in named event properties - this converter simply looks up the value of the NDC property. - - - The should be used instead. - - - - - - Property pattern converter - - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - Nicko Cadell - - - - Write the property value to the output - - that will receive the formatted result. - the event being logged - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - - - - Converter to output the relative time of the event - - - - Converter to output the time of the event relative to the start of the program. - - - Nicko Cadell - - - - Write the relative time to the output - - that will receive the formatted result. - the event being logged - - - Writes out the relative time of the event in milliseconds. - That is the number of milliseconds between the event - and the . - - - - - - Helper method to get the time difference between two DateTime objects - - start time (in the current local time zone) - end time (in the current local time zone) - the time difference in milliseconds - - - - Write the caller stack frames to the output - - - - Writes the to the output writer, using format: - type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) - - - Adam Davies - - - - Write the caller stack frames to the output - - - - Writes the to the output writer, using format: - type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 - - - Michael Cromwell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the strack frames to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output writer. - - - - - - Returns the Name of the method - - - This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter - string - - - - The fully qualified type of the StackTracePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - The fully qualified type of the StackTraceDetailPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Converter to include event thread name - - - - Writes the to the output. - - - Nicko Cadell - - - - Write the ThreadName to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the . - - - - - - Pattern converter for the class name - - - - Outputs the of the event. - - - Nicko Cadell - - - - Gets the fully qualified name of the class - - the event being logged - The fully qualified type name for the caller location - - - Returns the of the . - - - - - - Converter to include event user name - - Douglas de la Torre - Nicko Cadell - - - - Convert the pattern to the rendered message - - that will receive the formatted result. - the event being logged - - - - Write the TimeStamp to the output - - - - Date pattern converter, uses a to format - the date of a . - - - Uses a to format the - in Universal time. - - - See the for details on the date pattern syntax. - - - - Nicko Cadell - - - - Write the TimeStamp to the output - - that will receive the formatted result. - the event being logged - - - Pass the to the - for it to render it to the writer. - - - The passed is in the local time zone, this is converted - to Universal time before it is rendered. - - - - - - - The fully qualified type of the UtcDatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - A Layout that renders only the Exception text from the logging event - - - - A Layout that renders only the Exception text from the logging event. - - - This Layout should only be used with appenders that utilize multiple - layouts (e.g. ). - - - Nicko Cadell - Gert Driesen - - - - Extend this abstract class to create your own log layout format. - - - - This is the base implementation of the - interface. Most layout objects should extend this class. - - - - - - Subclasses must implement the - method. - - - Subclasses should set the in their default - constructor. - - - - Nicko Cadell - Gert Driesen - - - - Interface implemented by layout objects - - - - An object is used to format a - as text. The method is called by an - appender to transform the into a string. - - - The layout can also supply and - text that is appender before any events and after all the events respectively. - - - Nicko Cadell - Gert Driesen - - - - Implement this method to create your own layout format. - - The TextWriter to write the formatted event to - The event to format - - - This method is called by an appender to format - the as text and output to a writer. - - - If the caller does not have a and prefers the - event to be formatted as a then the following - code can be used to format the event into a . - - - StringWriter writer = new StringWriter(); - Layout.Format(writer, loggingEvent); - string formattedEvent = writer.ToString(); - - - - - - The content type output by this layout. - - The content type - - - The content type output by this layout. - - - This is a MIME type e.g. "text/plain". - - - - - - The header for the layout format. - - the layout header - - - The Header text will be appended before any logging events - are formatted and appended. - - - - - - The footer for the layout format. - - the layout footer - - - The Footer text will be appended after all the logging events - have been formatted and appended. - - - - - - Flag indicating if this layout handle exceptions - - false if this layout handles exceptions - - - If this layout handles the exception object contained within - , then the layout should return - false. Otherwise, if the layout ignores the exception - object, then the layout should return true. - - - - - - The header text - - - - See for more information. - - - - - - The footer text - - - - See for more information. - - - - - - Flag indicating if this layout handles exceptions - - - - false if this layout handles exceptions - - - - - - Empty default constructor - - - - Empty default constructor - - - - - - Activate component options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - This method must be implemented by the subclass. - - - - - - Implement this method to create your own layout format. - - The TextWriter to write the formatted event to - The event to format - - - This method is called by an appender to format - the as text. - - - - - - Convenience method for easily formatting the logging event into a string variable. - - - - Creates a new StringWriter instance to store the formatted logging event. - - - - - The content type output by this layout. - - The content type is "text/plain" - - - The content type output by this layout. - - - This base class uses the value "text/plain". - To change this value a subclass must override this - property. - - - - - - The header for the layout format. - - the layout header - - - The Header text will be appended before any logging events - are formatted and appended. - - - - - - The footer for the layout format. - - the layout footer - - - The Footer text will be appended after all the logging events - have been formatted and appended. - - - - - - Flag indicating if this layout handles exceptions - - false if this layout handles exceptions - - - If this layout handles the exception object contained within - , then the layout should return - false. Otherwise, if the layout ignores the exception - object, then the layout should return true. - - - Set this value to override a this default setting. The default - value is true, this layout does not handle the exception. - - - - - - Default constructor - - - - Constructs a ExceptionLayout - - - - - - Activate component options - - - - Part of the component activation - framework. - - - This method does nothing as options become effective immediately. - - - - - - Gets the exception text from the logging event - - The TextWriter to write the formatted event to - the event being logged - - - Write the exception string to the . - The exception string is retrieved from . - - - - - - Interface for raw layout objects - - - - Interface used to format a - to an object. - - - This interface should not be confused with the - interface. This interface is used in - only certain specialized situations where a raw object is - required rather than a formatted string. The - is not generally useful than this interface. - - - Nicko Cadell - Gert Driesen - - - - Implement this method to create your own layout format. - - The event to format - returns the formatted event - - - Implement this method to create your own layout format. - - - - - - Adapts any to a - - - - Where an is required this adapter - allows a to be specified. - - - Nicko Cadell - Gert Driesen - - - - The layout to adapt - - - - - Construct a new adapter - - the layout to adapt - - - Create the adapter for the specified . - - - - - - Format the logging event as an object. - - The event to format - returns the formatted event - - - Format the logging event as an object. - - - Uses the object supplied to - the constructor to perform the formatting. - - - - - - A flexible layout configurable with pattern string. - - - - The goal of this class is to a - as a string. The results - depend on the conversion pattern. - - - The conversion pattern is closely related to the conversion - pattern of the printf function in C. A conversion pattern is - composed of literal text and format control expressions called - conversion specifiers. - - - You are free to insert any literal text within the conversion - pattern. - - - Each conversion specifier starts with a percent sign (%) and is - followed by optional format modifiers and a conversion - pattern name. The conversion pattern name specifies the type of - data, e.g. logger, level, date, thread name. The format - modifiers control such things as field width, padding, left and - right justification. The following is a simple example. - - - Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume - that the log4net environment was set to use a PatternLayout. Then the - statements - - - ILog log = LogManager.GetLogger(typeof(TestApp)); - log.Debug("Message 1"); - log.Warn("Message 2"); - - would yield the output - - DEBUG [main]: Message 1 - WARN [main]: Message 2 - - - Note that there is no explicit separator between text and - conversion specifiers. The pattern parser knows when it has reached - the end of a conversion specifier when it reads a conversion - character. In the example above the conversion specifier - %-5level means the level of the logging event should be left - justified to a width of five characters. - - - The recognized conversion pattern names are: - - - - Conversion Pattern Name - Effect - - - a - Equivalent to appdomain - - - appdomain - - Used to output the friendly name of the AppDomain where the - logging event was generated. - - - - aspnet-cache - - - Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-context - - - Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-request - - - Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-session - - - Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - c - Equivalent to logger - - - C - Equivalent to type - - - class - Equivalent to type - - - d - Equivalent to date - - - date - - - Used to output the date of the logging event in the local time zone. - To output the date in universal time use the %utcdate pattern. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %date{HH:mm:ss,fff} or - %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %date{ISO8601} or %date{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - exception - - - Used to output the exception passed in with the log message. - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - If there is no exception then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - - - F - Equivalent to file - - - file - - - Used to output the file name where the logging request was - issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - identity - - - Used to output the user name for the currently active user - (Principal.Identity.Name). - - - WARNING Generating caller information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - - - l - Equivalent to location - - - L - Equivalent to line - - - location - - - Used to output location information of the caller which generated - the logging event. - - - The location information depends on the CLI implementation but - usually consists of the fully qualified name of the calling - method followed by the callers source the file name and line - number between parentheses. - - - The location information can be very useful. However, its - generation is extremely slow. Its use should be avoided - unless execution speed is not an issue. - - - See the note below on the availability of caller location information. - - - - - level - - - Used to output the level of the logging event. - - - - - line - - - Used to output the line number from where the logging request - was issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - logger - - - Used to output the logger of the logging event. The - logger conversion specifier can be optionally followed by - precision specifier, that is a decimal constant in - brackets. - - - If a precision specifier is given, then only the corresponding - number of right most components of the logger name will be - printed. By default the logger name is printed in full. - - - For example, for the logger name "a.b.c" the pattern - %logger{2} will output "b.c". - - - - - m - Equivalent to message - - - M - Equivalent to method - - - message - - - Used to output the application supplied message associated with - the logging event. - - - - - mdc - - - The MDC (old name for the ThreadContext.Properties) is now part of the - combined event properties. This pattern is supported for compatibility - but is equivalent to property. - - - - - method - - - Used to output the method name where the logging request was - issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - n - Equivalent to newline - - - newline - - - Outputs the platform dependent line separator character or - characters. - - - This conversion pattern offers the same performance as using - non-portable line separator strings such as "\n", or "\r\n". - Thus, it is the preferred way of specifying a line separator. - - - - - ndc - - - Used to output the NDC (nested diagnostic context) associated - with the thread that generated the logging event. - - - - - p - Equivalent to level - - - P - Equivalent to property - - - properties - Equivalent to property - - - property - - - Used to output the an event specific property. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %property{user} would include the value - from the property that is keyed by the string 'user'. Each property value - that is to be included in the log must be specified separately. - Properties are added to events by loggers or appenders. By default - the log4net:HostName property is set to the name of machine on - which the event was originally logged. - - - If no key is specified, e.g. %property then all the keys and their - values are printed in a comma separated list. - - - The properties of an event are combined from a number of different - contexts. These are listed below in the order in which they are searched. - - - - the event properties - - The event has that can be set. These - properties are specific to this event only. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - - r - Equivalent to timestamp - - - stacktrace - - - Used to output the stack trace of the logging event - The stack trace level specifier may be enclosed - between braces. For example, %stacktrace{level}. - If no stack trace level specifier is given then 1 is assumed - - - Output uses the format: - type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 - - - This pattern is not available for Compact Framework assemblies. - - - - - stacktracedetail - - - Used to output the stack trace of the logging event - The stack trace level specifier may be enclosed - between braces. For example, %stacktracedetail{level}. - If no stack trace level specifier is given then 1 is assumed - - - Output uses the format: - type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) - - - This pattern is not available for Compact Framework assemblies. - - - - - t - Equivalent to thread - - - timestamp - - - Used to output the number of milliseconds elapsed since the start - of the application until the creation of the logging event. - - - - - thread - - - Used to output the name of the thread that generated the - logging event. Uses the thread number if no name is available. - - - - - type - - - Used to output the fully qualified type name of the caller - issuing the logging request. This conversion specifier - can be optionally followed by precision specifier, that - is a decimal constant in brackets. - - - If a precision specifier is given, then only the corresponding - number of right most components of the class name will be - printed. By default the class name is output in fully qualified form. - - - For example, for the class name "log4net.Layout.PatternLayout", the - pattern %type{1} will output "PatternLayout". - - - WARNING Generating the caller class information is - slow. Thus, its use should be avoided unless execution speed is - not an issue. - - - See the note below on the availability of caller location information. - - - - - u - Equivalent to identity - - - username - - - Used to output the WindowsIdentity for the currently - active user. - - - WARNING Generating caller WindowsIdentity information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - - - utcdate - - - Used to output the date of the logging event in universal time. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %utcdate{HH:mm:ss,fff} or - %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %utcdate{ISO8601} or %utcdate{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - w - Equivalent to username - - - x - Equivalent to ndc - - - X - Equivalent to mdc - - - % - - - The sequence %% outputs a single percent sign. - - - - - - The single letter patterns are deprecated in favor of the - longer more descriptive pattern names. - - - By default the relevant information is output as is. However, - with the aid of format modifiers it is possible to change the - minimum field width, the maximum field width and justification. - - - The optional format modifier is placed between the percent sign - and the conversion pattern name. - - - The first optional format modifier is the left justification - flag which is just the minus (-) character. Then comes the - optional minimum field width modifier. This is a decimal - constant that represents the minimum number of characters to - output. If the data item requires fewer characters, it is padded on - either the left or the right until the minimum width is - reached. The default is to pad on the left (right justify) but you - can specify right padding with the left justification flag. The - padding character is space. If the data item is larger than the - minimum field width, the field is expanded to accommodate the - data. The value is never truncated. - - - This behavior can be changed using the maximum field - width modifier which is designated by a period followed by a - decimal constant. If the data item is longer than the maximum - field, then the extra characters are removed from the - beginning of the data item and not from the end. For - example, it the maximum field width is eight and the data item is - ten characters long, then the first two characters of the data item - are dropped. This behavior deviates from the printf function in C - where truncation is done from the end. - - - Below are various format modifier examples for the logger - conversion specifier. - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Format modifierleft justifyminimum widthmaximum widthcomment
    %20loggerfalse20none - - Left pad with spaces if the logger name is less than 20 - characters long. - -
    %-20loggertrue20none - - Right pad with spaces if the logger - name is less than 20 characters long. - -
    %.30loggerNAnone30 - - Truncate from the beginning if the logger - name is longer than 30 characters. - -
    %20.30loggerfalse2030 - - Left pad with spaces if the logger name is shorter than 20 - characters. However, if logger name is longer than 30 characters, - then truncate from the beginning. - -
    %-20.30loggertrue2030 - - Right pad with spaces if the logger name is shorter than 20 - characters. However, if logger name is longer than 30 characters, - then truncate from the beginning. - -
    -
    - - Note about caller location information.
    - The following patterns %type %file %line %method %location %class %C %F %L %l %M - all generate caller location information. - Location information uses the System.Diagnostics.StackTrace class to generate - a call stack. The caller's information is then extracted from this stack. -
    - - - The System.Diagnostics.StackTrace class is not supported on the - .NET Compact Framework 1.0 therefore caller location information is not - available on that framework. - - - - - The System.Diagnostics.StackTrace class has this to say about Release builds: - - - "StackTrace information will be most informative with Debug build configurations. - By default, Debug builds include debug symbols, while Release builds do not. The - debug symbols contain most of the file, method name, line number, and column - information used in constructing StackFrame and StackTrace objects. StackTrace - might not report as many method calls as expected, due to code transformations - that occur during optimization." - - - This means that in a Release build the caller information may be incomplete or may - not exist at all! Therefore caller location information cannot be relied upon in a Release build. - - - - Additional pattern converters may be registered with a specific - instance using the method. - -
    - - This is a more detailed pattern. - %timestamp [%thread] %level %logger %ndc - %message%newline - - - A similar pattern except that the relative time is - right padded if less than 6 digits, thread name is right padded if - less than 15 characters and truncated if longer and the logger - name is left padded if shorter than 30 characters and truncated if - longer. - %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline - - Nicko Cadell - Gert Driesen - Douglas de la Torre - Daniel Cazzulino -
    - - - Default pattern string for log output. - - - - Default pattern string for log output. - Currently set to the string "%message%newline" - which just prints the application supplied message. - - - - - - A detailed conversion pattern - - - - A conversion pattern which includes Time, Thread, Logger, and Nested Context. - Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. - - - - - - Internal map of converter identifiers to converter types. - - - - This static map is overridden by the m_converterRegistry instance map - - - - - - the pattern - - - - - the head of the pattern converter chain - - - - - patterns defined on this PatternLayout only - - - - - Initialize the global registry - - - - Defines the builtin global rules. - - - - - - Constructs a PatternLayout using the DefaultConversionPattern - - - - The default pattern just produces the application supplied message. - - - Note to Inheritors: This constructor calls the virtual method - . If you override this method be - aware that it will be called before your is called constructor. - - - As per the contract the - method must be called after the properties on this object have been - configured. - - - - - - Constructs a PatternLayout using the supplied conversion pattern - - the pattern to use - - - Note to Inheritors: This constructor calls the virtual method - . If you override this method be - aware that it will be called before your is called constructor. - - - When using this constructor the method - need not be called. This may not be the case when using a subclass. - - - - - - Create the pattern parser instance - - the pattern to parse - The that will format the event - - - Creates the used to parse the conversion string. Sets the - global and instance rules on the . - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a formatted string as specified by the conversion pattern. - - the event being logged - The TextWriter to write the formatted event to - - - Parse the using the patter format - specified in the property. - - - - - - Add a converter to this PatternLayout - - the converter info - - - This version of the method is used by the configurator. - Programmatic users should use the alternative method. - - - - - - Add a converter to this PatternLayout - - the name of the conversion pattern for this converter - the type of the converter - - - Add a named pattern converter to this instance. This - converter will be used in the formatting of the event. - This method must be called before . - - - The specified must extend the - type. - - - - - - The pattern formatting string - - - - The ConversionPattern option. This is the string which - controls formatting and consists of a mix of literal content and - conversion specifiers. - - - - - - Type converter for the interface - - - - Used to convert objects to the interface. - Supports converting from the interface to - the interface using the . - - - Nicko Cadell - Gert Driesen - - - - Interface supported by type converters - - - - This interface supports conversion from arbitrary types - to a single target type. See . - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Test if the can be converted to the - type supported by this converter. - - - - - - Convert the source object to the type supported by this object - - the object to convert - the converted object - - - Converts the to the type supported - by this converter. - - - - - - Can the sourceType be converted to an - - the source to be to be converted - true if the source type can be converted to - - - Test if the can be converted to a - . Only is supported - as the . - - - - - - Convert the value to a object - - the value to convert - the object - - - Convert the object to a - object. If the object - is a then the - is used to adapt between the two interfaces, otherwise an - exception is thrown. - - - - - - Extract the value of a property from the - - - - Extract the value of a property from the - - - Nicko Cadell - - - - Constructs a RawPropertyLayout - - - - - Lookup the property for - - The event to format - returns property value - - - Looks up and returns the object value of the property - named . If there is no property defined - with than name then null will be returned. - - - - - - The name of the value to lookup in the LoggingEvent Properties collection. - - - Value to lookup in the LoggingEvent Properties collection - - - - String name of the property to lookup in the . - - - - - - Extract the date from the - - - - Extract the date from the - - - Nicko Cadell - Gert Driesen - - - - Constructs a RawTimeStampLayout - - - - - Gets the as a . - - The event to format - returns the time stamp - - - Gets the as a . - - - The time stamp is in local time. To format the time stamp - in universal time use . - - - - - - Extract the date from the - - - - Extract the date from the - - - Nicko Cadell - Gert Driesen - - - - Constructs a RawUtcTimeStampLayout - - - - - Gets the as a . - - The event to format - returns the time stamp - - - Gets the as a . - - - The time stamp is in universal time. To format the time stamp - in local time use . - - - - - - A very simple layout - - - - SimpleLayout consists of the level of the log statement, - followed by " - " and then the log message itself. For example, - - DEBUG - Hello world - - - - Nicko Cadell - Gert Driesen - - - - Constructs a SimpleLayout - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a simple formatted output. - - the event being logged - The TextWriter to write the formatted event to - - - Formats the event as the level of the even, - followed by " - " and then the log message itself. The - output is terminated by a newline. - - - - - - Layout that formats the log events as XML elements. - - - - The output of the consists of a series of - log4net:event elements. It does not output a complete well-formed XML - file. The output is designed to be included as an external entity - in a separate file to form a correct XML file. - - - For example, if abc is the name of the file where - the output goes, then a well-formed XML file would - be: - - - <?xml version="1.0" ?> - - <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> - - <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> - &data; - </log4net:events> - - - This approach enforces the independence of the - and the appender where it is embedded. - - - The version attribute helps components to correctly - interpret output generated by . The value of - this attribute should be "1.2" for release 1.2 and later. - - - Alternatively the Header and Footer properties can be - configured to output the correct XML header, open tag and close tag. - When setting the Header and Footer properties it is essential - that the underlying data store not be appendable otherwise the data - will become invalid XML. - - - Nicko Cadell - Gert Driesen - - - - Layout that formats the log events as XML elements. - - - - This is an abstract class that must be subclassed by an implementation - to conform to a specific schema. - - - Deriving classes must implement the method. - - - Nicko Cadell - Gert Driesen - - - - Protected constructor to support subclasses - - - - Initializes a new instance of the class - with no location info. - - - - - - Protected constructor to support subclasses - - - - The parameter determines whether - location information will be output by the layout. If - is set to true, then the - file name and line number of the statement at the origin of the log - statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a formatted string. - - The event being logged. - The TextWriter to write the formatted event to - - - Format the and write it to the . - - - This method creates an that writes to the - . The is passed - to the method. Subclasses should override the - method rather than this method. - - - - - - Does the actual writing of the XML. - - The writer to use to output the event to. - The event to write. - - - Subclasses should override this method to format - the as XML. - - - - - - Flag to indicate if location information should be included in - the XML events. - - - - - The string to replace invalid chars with - - - - - Gets a value indicating whether to include location information in - the XML events. - - - true if location information should be included in the XML - events; otherwise, false. - - - - If is set to true, then the file - name and line number of the statement at the origin of the log - statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - The string to replace characters that can not be expressed in XML with. - - - Not all characters may be expressed in XML. This property contains the - string to replace those that can not with. This defaults to a ?. Set it - to the empty string to simply remove offending characters. For more - details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets - Character replacement will occur in the log message, the property names - and the property values. - - - - - - - Gets the content type output by this layout. - - - As this is the XML layout, the value is always "text/xml". - - - - As this is the XML layout, the value is always "text/xml". - - - - - - Constructs an XmlLayout - - - - - Constructs an XmlLayout. - - - - The LocationInfo option takes a boolean value. By - default, it is set to false which means there will be no location - information output by this layout. If the the option is set to - true, then the file name and line number of the statement - at the origin of the log statement will be output. - - - If you are embedding this layout within an SmtpAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Builds a cache of the element names - - - - - - Does the actual writing of the XML. - - The writer to use to output the event to. - The event to write. - - - Override the base class method - to write the to the . - - - - - - The prefix to use for all generated element names - - - - - The prefix to use for all element names - - - - The default prefix is log4net. Set this property - to change the prefix. If the prefix is set to an empty string - then no prefix will be written. - - - - - - Set whether or not to base64 encode the message. - - - - By default the log message will be written as text to the xml - output. This can cause problems when the message contains binary - data. By setting this to true the contents of the message will be - base64 encoded. If this is set then invalid character replacement - (see ) will not be performed - on the log message. - - - - - - Set whether or not to base64 encode the property values. - - - - By default the properties will be written as text to the xml - output. This can cause problems when one or more properties contain - binary data. By setting this to true the values of the properties - will be base64 encoded. If this is set then invalid character replacement - (see ) will not be performed - on the property values. - - - - - - Layout that formats the log events as XML elements compatible with the log4j schema - - - - Formats the log events according to the http://logging.apache.org/log4j schema. - - - Nicko Cadell - - - - The 1st of January 1970 in UTC - - - - - Constructs an XMLLayoutSchemaLog4j - - - - - Constructs an XMLLayoutSchemaLog4j. - - - - The LocationInfo option takes a boolean value. By - default, it is set to false which means there will be no location - information output by this layout. If the the option is set to - true, then the file name and line number of the statement - at the origin of the log statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Actually do the writing of the xml - - the writer to use - the event to write - - - Generate XML that is compatible with the log4j schema. - - - - - - The version of the log4j schema to use. - - - - Only version 1.2 of the log4j schema is supported. - - - - - - The default object Renderer. - - - - The default renderer supports rendering objects and collections to strings. - - - See the method for details of the output. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface in order to render objects as strings - - - - Certain types require special case conversion to - string form. This conversion is done by an object renderer. - Object renderers implement the - interface. - - - Nicko Cadell - Gert Driesen - - - - Render the object to a string - - The map used to lookup renderers - The object to render - The writer to render to - - - Render the object to a - string. - - - The parameter is - provided to lookup and render other objects. This is - very useful where contains - nested objects of unknown type. The - method can be used to render these objects. - - - - - - Default constructor - - - - Default constructor - - - - - - Render the object to a string - - The map used to lookup renderers - The object to render - The writer to render to - - - Render the object to a string. - - - The parameter is - provided to lookup and render other objects. This is - very useful where contains - nested objects of unknown type. The - method can be used to render these objects. - - - The default renderer supports rendering objects to strings as follows: - - - - Value - Rendered String - - - null - - "(null)" - - - - - - - For a one dimensional array this is the - array type name, an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. - - - For example: int[] {1, 2, 3}. - - - If the array is not one dimensional the - Array.ToString() is returned. - - - - - , & - - - Rendered as an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. - - - For example: {a, b, c}. - - - All collection classes that implement its subclasses, - or generic equivalents all implement the interface. - - - - - - - - Rendered as the key, an equals sign ('='), and the value (using the appropriate - renderer). - - - For example: key=value. - - - - - other - - Object.ToString() - - - - - - - - Render the array argument into a string - - The map used to lookup renderers - the array to render - The writer to render to - - - For a one dimensional array this is the - array type name, an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. For example: - int[] {1, 2, 3}. - - - If the array is not one dimensional the - Array.ToString() is returned. - - - - - - Render the enumerator argument into a string - - The map used to lookup renderers - the enumerator to render - The writer to render to - - - Rendered as an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. For example: - {a, b, c}. - - - - - - Render the DictionaryEntry argument into a string - - The map used to lookup renderers - the DictionaryEntry to render - The writer to render to - - - Render the key, an equals sign ('='), and the value (using the appropriate - renderer). For example: key=value. - - - - - - Map class objects to an . - - - - Maintains a mapping between types that require special - rendering and the that - is used to render them. - - - The method is used to render an - object using the appropriate renderers defined in this map. - - - Nicko Cadell - Gert Driesen - - - - Default Constructor - - - - Default constructor. - - - - - - Render using the appropriate renderer. - - the object to render to a string - the object rendered as a string - - - This is a convenience method used to render an object to a string. - The alternative method - should be used when streaming output to a . - - - - - - Render using the appropriate renderer. - - the object to render to a string - The writer to render to - - - Find the appropriate renderer for the type of the - parameter. This is accomplished by calling the - method. Once a renderer is found, it is - applied on the object and the result is returned - as a . - - - - - - Gets the renderer for the specified object type - - the object to lookup the renderer for - the renderer for - - - Gets the renderer for the specified object type. - - - Syntactic sugar method that calls - with the type of the object parameter. - - - - - - Gets the renderer for the specified type - - the type to lookup the renderer for - the renderer for the specified type - - - Returns the renderer for the specified type. - If no specific renderer has been defined the - will be returned. - - - - - - Internal function to recursively search interfaces - - the type to lookup the renderer for - the renderer for the specified type - - - - Clear the map of renderers - - - - Clear the custom renderers defined by using - . The - cannot be removed. - - - - - - Register an for . - - the type that will be rendered by - the renderer for - - - Register an object renderer for a specific source type. - This renderer will be returned from a call to - specifying the same as an argument. - - - - - - Get the default renderer instance - - the default renderer - - - Get the default renderer - - - - - - Interface implemented by logger repository plugins. - - - - Plugins define additional behavior that can be associated - with a . - The held by the - property is used to store the plugins for a repository. - - - The log4net.Config.PluginAttribute can be used to - attach plugins to repositories created using configuration - attributes. - - - Nicko Cadell - Gert Driesen - - - - Attaches the plugin to the specified . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - This method is called to notify the plugin that - it should stop operating and should detach from - the repository. - - - - - - Gets the name of the plugin. - - - The name of the plugin. - - - - Plugins are stored in the - keyed by name. Each plugin instance attached to a - repository must be a unique name. - - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a PluginCollection instance. - - list to create a readonly wrapper arround - - A PluginCollection wrapper that is read-only. - - - - - Initializes a new instance of the PluginCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the PluginCollection class - that has the specified initial capacity. - - - The number of elements that the new PluginCollection is initially capable of storing. - - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified PluginCollection. - - The PluginCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - - Copies the entire PluginCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire PluginCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the PluginCollection. - - The to be added to the end of the PluginCollection. - The index at which the value has been added. - - - - Removes all elements from the PluginCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the PluginCollection. - - The to check for. - true if is found in the PluginCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the PluginCollection. - - The to locate in the PluginCollection. - - The zero-based index of the first occurrence of - in the entire PluginCollection, if found; otherwise, -1. - - - - - Inserts an element into the PluginCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the PluginCollection. - - The to remove from the PluginCollection. - - The specified was not found in the PluginCollection. - - - - - Removes the element at the specified index of the PluginCollection. - - The zero-based index of the element to remove. - - is less than zero. - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the PluginCollection. - - An for the entire PluginCollection. - - - - Adds the elements of another PluginCollection to the current PluginCollection. - - The PluginCollection whose elements should be added to the end of the current PluginCollection. - The new of the PluginCollection. - - - - Adds the elements of a array to the current PluginCollection. - - The array whose elements should be added to the end of the PluginCollection. - The new of the PluginCollection. - - - - Adds the elements of a collection to the current PluginCollection. - - The collection whose elements should be added to the end of the PluginCollection. - The new of the PluginCollection. - - - - Sets the capacity to the actual number of elements. - - - - - is less than zero. - -or- - is equal to or greater than . - - - - - is less than zero. - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the PluginCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - An object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - - The at the specified index. - - The zero-based index of the element to get or set. - - is less than zero. - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false. - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false. - - - - Gets or sets the number of elements the PluginCollection can contain. - - - The number of elements the PluginCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - - A value - - - - - Supports simple iteration over a . - - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - The current element in the collection. - - - - - - - - Map of repository plugins. - - - - This class is a name keyed map of the plugins that are - attached to a repository. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The repository that the plugins should be attached to. - - - Initialize a new instance of the class with a - repository that the plugins should be attached to. - - - - - - Adds a to the map. - - The to add to the map. - - - The will be attached to the repository when added. - - - If there already exists a plugin with the same name - attached to the repository then the old plugin will - be and replaced with - the new plugin. - - - - - - Removes a from the map. - - The to remove from the map. - - - Remove a specific plugin from this map. - - - - - - Gets a by name. - - The name of the to lookup. - - The from the map with the name specified, or - null if no plugin is found. - - - - Lookup a plugin by name. If the plugin is not found null - will be returned. - - - - - - Gets all possible plugins as a list of objects. - - All possible plugins as a list of objects. - - - Get a collection of all the plugins defined in this map. - - - - - - Base implementation of - - - - Default abstract implementation of the - interface. This base class can be used by implementors - of the interface. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - the name of the plugin - - Initializes a new Plugin with the specified name. - - - - - Attaches this plugin to a . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - This method is called to notify the plugin that - it should stop operating and should detach from - the repository. - - - - - - The name of this plugin. - - - - - The repository this plugin is attached to. - - - - - Gets or sets the name of the plugin. - - - The name of the plugin. - - - - Plugins are stored in the - keyed by name. Each plugin instance attached to a - repository must be a unique name. - - - The name of the plugin must not change one the - plugin has been attached to a repository. - - - - - - The repository for this plugin - - - The that this plugin is attached to. - - - - Gets or sets the that this plugin is - attached to. - - - - - - Plugin that listens for events from the - - - - This plugin publishes an instance of - on a specified . This listens for logging events delivered from - a remote . - - - When an event is received it is relogged within the attached repository - as if it had been raised locally. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Initializes a new instance of the class. - - - The property must be set. - - - - - - Construct with sink Uri. - - The name to publish the sink under in the remoting infrastructure. - See for more details. - - - Initializes a new instance of the class - with specified name. - - - - - - Attaches this plugin to a . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - When the plugin is shutdown the remote logging - sink is disconnected. - - - - - - The fully qualified type of the RemoteLoggingServerPlugin class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the URI of this sink. - - - The URI of this sink. - - - - This is the name under which the object is marshaled. - - - - - - - Delivers objects to a remote sink. - - - - Internal class used to listen for logging events - and deliver them to the local repository. - - - - - - Constructor - - The repository to log to. - - - Initializes a new instance of the for the - specified . - - - - - - Logs the events to the repository. - - The events to log. - - - The events passed are logged to the - - - - - - Obtains a lifetime service object to control the lifetime - policy for this instance. - - null to indicate that this instance should live forever. - - - Obtains a lifetime service object to control the lifetime - policy for this instance. This object should live forever - therefore this implementation returns null. - - - - - - The underlying that events should - be logged to. - - - - - Default implementation of - - - - This default implementation of the - interface is used to create the default subclass - of the object. - - - Nicko Cadell - Gert Driesen - - - - Interface abstracts creation of instances - - - - This interface is used by the to - create new objects. - - - The method is called - to create a named . - - - Implement this interface to create new subclasses of . - - - Nicko Cadell - Gert Driesen - - - - Create a new instance - - The that will own the . - The name of the . - The instance for the specified name. - - - Create a new instance with the - specified name. - - - Called by the to create - new named instances. - - - If the is null then the root logger - must be returned. - - - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Create a new instance - - The that will own the . - The name of the . - The instance for the specified name. - - - Create a new instance with the - specified name. - - - Called by the to create - new named instances. - - - If the is null then the root logger - must be returned. - - - - - - Default internal subclass of - - - - This subclass has no additional behavior over the - class but does allow instances - to be created. - - - - - - Implementation of used by - - - - Internal class used to provide implementation of - interface. Applications should use to get - logger instances. - - - This is one of the central classes in the log4net implementation. One of the - distinctive features of log4net are hierarchical loggers and their - evaluation. The organizes the - instances into a rooted tree hierarchy. - - - The class is abstract. Only concrete subclasses of - can be created. The - is used to create instances of this type for the . - - - Nicko Cadell - Gert Driesen - Aspi Havewala - Douglas de la Torre - - - - This constructor created a new instance and - sets its name. - - The name of the . - - - This constructor is protected and designed to be used by - a subclass that is not abstract. - - - Loggers are constructed by - objects. See for the default - logger creator. - - - - - - Add to the list of appenders of this - Logger instance. - - An appender to add to this logger - - - Add to the list of appenders of this - Logger instance. - - - If is already in the list of - appenders, then it won't be added again. - - - - - - Look for the appender named as name - - The name of the appender to lookup - The appender with the name specified, or null. - - - Returns the named appender, or null if the appender is not found. - - - - - - Remove all previously added appenders from this Logger instance. - - - - Remove all previously added appenders from this Logger instance. - - - This is useful when re-reading configuration information. - - - - - - Remove the appender passed as parameter form the list of appenders. - - The appender to remove - The appender removed from the list - - - Remove the appender passed as parameter form the list of appenders. - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Remove the appender passed as parameter form the list of appenders. - - The name of the appender to remove - The appender removed from the list - - - Remove the named appender passed as parameter form the list of appenders. - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - This generic form is intended to be used by wrappers. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generate a logging event for the specified using - the and . - - - This method must not throw any exception to the caller. - - - - - - This is the most generic printing method that is intended to be used - by wrappers. - - The event being logged. - - - Logs the specified logging event through this logger. - - - This method must not throw any exception to the caller. - - - - - - Checks if this logger is enabled for a given passed as parameter. - - The level to check. - - true if this logger is enabled for level, otherwise false. - - - - Test if this logger is going to log events of the specified . - - - This method must not throw any exception to the caller. - - - - - - Deliver the to the attached appenders. - - The event to log. - - - Call the appenders in the hierarchy starting at - this. If no appenders could be found, emit a - warning. - - - This method calls all the appenders inherited from the - hierarchy circumventing any evaluation of whether to log or not - to log the particular log request. - - - - - - Closes all attached appenders implementing the interface. - - - - Used to ensure that the appenders are correctly shutdown. - - - - - - This is the most generic printing method. This generic form is intended to be used by wrappers - - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generate a logging event for the specified using - the . - - - - - - Creates a new logging event and logs the event without further checks. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generates a logging event and delivers it to the attached - appenders. - - - - - - Creates a new logging event and logs the event without further checks. - - The event being logged. - - - Delivers the logging event to the attached appenders. - - - - - - The fully qualified type of the Logger class. - - - - - The name of this logger. - - - - - The assigned level of this logger. - - - - The level variable need not be - assigned a value in which case it is inherited - form the hierarchy. - - - - - - The parent of this logger. - - - - The parent of this logger. - All loggers have at least one ancestor which is the root logger. - - - - - - Loggers need to know what Hierarchy they are in. - - - - Loggers need to know what Hierarchy they are in. - The hierarchy that this logger is a member of is stored - here. - - - - - - Helper implementation of the interface - - - - - Flag indicating if child loggers inherit their parents appenders - - - - Additivity is set to true by default, that is children inherit - the appenders of their ancestors by default. If this variable is - set to false then the appenders found in the - ancestors of this logger are not used. However, the children - of this logger will inherit its appenders, unless the children - have their additivity flag set to false too. See - the user manual for more details. - - - - - - Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl - - - - - Gets or sets the parent logger in the hierarchy. - - - The parent logger in the hierarchy. - - - - Part of the Composite pattern that makes the hierarchy. - The hierarchy is parent linked rather than child linked. - - - - - - Gets or sets a value indicating if child loggers inherit their parent's appenders. - - - true if child loggers inherit their parent's appenders. - - - - Additivity is set to true by default, that is children inherit - the appenders of their ancestors by default. If this variable is - set to false then the appenders found in the - ancestors of this logger are not used. However, the children - of this logger will inherit its appenders, unless the children - have their additivity flag set to false too. See - the user manual for more details. - - - - - - Gets the effective level for this logger. - - The nearest level in the logger hierarchy. - - - Starting from this logger, searches the logger hierarchy for a - non-null level and returns it. Otherwise, returns the level of the - root logger. - - The Logger class is designed so that this method executes as - quickly as possible. - - - - - Gets or sets the where this - Logger instance is attached to. - - The hierarchy that this logger belongs to. - - - This logger must be attached to a single . - - - - - - Gets or sets the assigned , if any, for this Logger. - - - The of this logger. - - - - The assigned can be null. - - - - - - Get the appenders contained in this logger as an - . - - A collection of the appenders in this logger - - - Get the appenders contained in this logger as an - . If no appenders - can be found, then a is returned. - - - - - - Gets the logger name. - - - The name of the logger. - - - - The name of this logger - - - - - - Gets the where this - Logger instance is attached to. - - - The that this logger belongs to. - - - - Gets the where this - Logger instance is attached to. - - - - - - Construct a new Logger - - the name of the logger - - - Initializes a new instance of the class - with the specified name. - - - - - - Delegate used to handle logger creation event notifications. - - The in which the has been created. - The event args that hold the instance that has been created. - - - Delegate used to handle logger creation event notifications. - - - - - - Provides data for the event. - - - - A event is raised every time a - is created. - - - - - - The created - - - - - Constructor - - The that has been created. - - - Initializes a new instance of the event argument - class,with the specified . - - - - - - Gets the that has been created. - - - The that has been created. - - - - The that has been created. - - - - - - Hierarchical organization of loggers - - - - The casual user should not have to deal with this class - directly. - - - This class is specialized in retrieving loggers by name and - also maintaining the logger hierarchy. Implements the - interface. - - - The structure of the logger hierarchy is maintained by the - method. The hierarchy is such that children - link to their parent but parents do not have any references to their - children. Moreover, loggers can be instantiated in any order, in - particular descendant before ancestor. - - - In case a descendant is created before a particular ancestor, - then it creates a provision node for the ancestor and adds itself - to the provision node. Other descendants of the same ancestor add - themselves to the previously created provision node. - - - Nicko Cadell - Gert Driesen - - - - Base implementation of - - - - Default abstract implementation of the interface. - - - Skeleton implementation of the interface. - All types can extend this type. - - - Nicko Cadell - Gert Driesen - - - - Interface implemented by logger repositories. - - - - This interface is implemented by logger repositories. e.g. - . - - - This interface is used by the - to obtain interfaces. - - - Nicko Cadell - Gert Driesen - - - - Check if the named logger exists in the repository. If so return - its reference, otherwise returns null. - - The name of the logger to lookup - The Logger object with the name specified - - - If the names logger exists it is returned, otherwise - null is returned. - - - - - - Returns all the currently defined loggers as an Array. - - All the defined loggers - - - Returns all the currently defined loggers as an Array. - - - - - - Returns a named logger instance - - The name of the logger to retrieve - The logger object with the name specified - - - Returns a named logger instance. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - - - Shutdown the repository - - - Shutting down a repository will safely close and remove - all appenders in all loggers including the root logger. - - - Some appenders need to be closed before the - application exists. Otherwise, pending logging events might be - lost. - - - The method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Reset the repositories configuration to a default state - - - - Reset all values contained in this instance to their - default state. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the through this repository. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are configured as an Array. - - All the Appenders - - - Returns all the Appenders that are configured as an Array. - - - - - - The name of the repository - - - The name of the repository - - - - The name of the repository. - - - - - - RendererMap accesses the object renderer map for this repository. - - - RendererMap accesses the object renderer map for this repository. - - - - RendererMap accesses the object renderer map for this repository. - - - The RendererMap holds a mapping between types and - objects. - - - - - - The plugin map for this repository. - - - The plugin map for this repository. - - - - The plugin map holds the instances - that have been attached to this repository. - - - - - - Get the level map for the Repository. - - - - Get the level map for the Repository. - - - The level map defines the mappings between - level names and objects in - this repository. - - - - - - The threshold for all events in this repository - - - The threshold for all events in this repository - - - - The threshold for all events in this repository. - - - - - - Flag indicates if this repository has been configured. - - - Flag indicates if this repository has been configured. - - - - Flag indicates if this repository has been configured. - - - - - - Collection of internal messages captured during the most - recent configuration process. - - - - - Event to notify that the repository has been shutdown. - - - Event to notify that the repository has been shutdown. - - - - Event raised when the repository has been shutdown. - - - - - - Event to notify that the repository has had its configuration reset. - - - Event to notify that the repository has had its configuration reset. - - - - Event raised when the repository's configuration has been - reset to default. - - - - - - Event to notify that the repository has had its configuration changed. - - - Event to notify that the repository has had its configuration changed. - - - - Event raised when the repository's configuration has been changed. - - - - - - Repository specific properties - - - Repository specific properties - - - - These properties can be specified on a repository specific basis. - - - - - - Default Constructor - - - - Initializes the repository with default (empty) properties. - - - - - - Construct the repository using specific properties - - the properties to set for this repository - - - Initializes the repository with specified properties. - - - - - - Test if logger exists - - The name of the logger to lookup - The Logger object with the name specified - - - Check if the named logger exists in the repository. If so return - its reference, otherwise returns null. - - - - - - Returns all the currently defined loggers in the repository - - All the defined loggers - - - Returns all the currently defined loggers in the repository as an Array. - - - - - - Return a new logger instance - - The name of the logger to retrieve - The logger object with the name specified - - - Return a new logger instance. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - - - - Shutdown the repository - - - - Shutdown the repository. Can be overridden in a subclass. - This base class implementation notifies the - listeners and all attached plugins of the shutdown event. - - - - - - Reset the repositories configuration to a default state - - - - Reset all values contained in this instance to their - default state. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the logEvent through this repository. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are configured as an Array. - - All the Appenders - - - Returns all the Appenders that are configured as an Array. - - - - - - The fully qualified type of the LoggerRepositorySkeleton class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Adds an object renderer for a specific class. - - The type that will be rendered by the renderer supplied. - The object renderer used to render the object. - - - Adds an object renderer for a specific class. - - - - - - Notify the registered listeners that the repository is shutting down - - Empty EventArgs - - - Notify any listeners that this repository is shutting down. - - - - - - Notify the registered listeners that the repository has had its configuration reset - - Empty EventArgs - - - Notify any listeners that this repository's configuration has been reset. - - - - - - Notify the registered listeners that the repository has had its configuration changed - - Empty EventArgs - - - Notify any listeners that this repository's configuration has changed. - - - - - - Raise a configuration changed event on this repository - - EventArgs.Empty - - - Applications that programmatically change the configuration of the repository should - raise this event notification to notify listeners. - - - - - - The name of the repository - - - The string name of the repository - - - - The name of this repository. The name is - used to store and lookup the repositories - stored by the . - - - - - - The threshold for all events in this repository - - - The threshold for all events in this repository - - - - The threshold for all events in this repository - - - - - - RendererMap accesses the object renderer map for this repository. - - - RendererMap accesses the object renderer map for this repository. - - - - RendererMap accesses the object renderer map for this repository. - - - The RendererMap holds a mapping between types and - objects. - - - - - - The plugin map for this repository. - - - The plugin map for this repository. - - - - The plugin map holds the instances - that have been attached to this repository. - - - - - - Get the level map for the Repository. - - - - Get the level map for the Repository. - - - The level map defines the mappings between - level names and objects in - this repository. - - - - - - Flag indicates if this repository has been configured. - - - Flag indicates if this repository has been configured. - - - - Flag indicates if this repository has been configured. - - - - - - Contains a list of internal messages captures during the - last configuration. - - - - - Event to notify that the repository has been shutdown. - - - Event to notify that the repository has been shutdown. - - - - Event raised when the repository has been shutdown. - - - - - - Event to notify that the repository has had its configuration reset. - - - Event to notify that the repository has had its configuration reset. - - - - Event raised when the repository's configuration has been - reset to default. - - - - - - Event to notify that the repository has had its configuration changed. - - - Event to notify that the repository has had its configuration changed. - - - - Event raised when the repository's configuration has been changed. - - - - - - Repository specific properties - - - Repository specific properties - - - These properties can be specified on a repository specific basis - - - - - Basic Configurator interface for repositories - - - - Interface used by basic configurator to configure a - with a default . - - - A should implement this interface to support - configuration by the . - - - Nicko Cadell - Gert Driesen - - - - Initialize the repository using the specified appender - - the appender to use to log all logging events - - - Configure the repository to route all logging events to the - specified appender. - - - - - - Initialize the repository using the specified appenders - - the appenders to use to log all logging events - - - Configure the repository to route all logging events to the - specified appenders. - - - - - - Configure repository using XML - - - - Interface used by Xml configurator to configure a . - - - A should implement this interface to support - configuration by the . - - - Nicko Cadell - Gert Driesen - - - - Initialize the repository using the specified config - - the element containing the root of the config - - - The schema for the XML configuration data is defined by - the implementation. - - - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Construct with properties - - The properties to pass to this repository. - - - Initializes a new instance of the class. - - - - - - Construct with a logger factory - - The factory to use to create new logger instances. - - - Initializes a new instance of the class with - the specified . - - - - - - Construct with properties and a logger factory - - The properties to pass to this repository. - The factory to use to create new logger instances. - - - Initializes a new instance of the class with - the specified . - - - - - - Test if a logger exists - - The name of the logger to lookup - The Logger object with the name specified - - - Check if the named logger exists in the hierarchy. If so return - its reference, otherwise returns null. - - - - - - Returns all the currently defined loggers in the hierarchy as an Array - - All the defined loggers - - - Returns all the currently defined loggers in the hierarchy as an Array. - The root logger is not included in the returned - enumeration. - - - - - - Return a new logger instance named as the first parameter using - the default factory. - - - - Return a new logger instance named as the first parameter using - the default factory. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - The name of the logger to retrieve - The logger object with the name specified - - - - Shutting down a hierarchy will safely close and remove - all appenders in all loggers including the root logger. - - - - Shutting down a hierarchy will safely close and remove - all appenders in all loggers including the root logger. - - - Some appenders need to be closed before the - application exists. Otherwise, pending logging events might be - lost. - - - The Shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Reset all values contained in this hierarchy instance to their default. - - - - Reset all values contained in this hierarchy instance to their - default. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the logEvent through this hierarchy. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are currently configured - - An array containing all the currently configured appenders - - - Returns all the instances that are currently configured. - All the loggers are searched for appenders. The appenders may also be containers - for appenders and these are also searched for additional loggers. - - - The list returned is unordered but does not contain duplicates. - - - - - - Collect the appenders from an . - The appender may also be a container. - - - - - - - Collect the appenders from an container - - - - - - - Initialize the log4net system using the specified appender - - the appender to use to log all logging events - - - - Initialize the log4net system using the specified appenders - - the appenders to use to log all logging events - - - - Initialize the log4net system using the specified appenders - - the appenders to use to log all logging events - - - This method provides the same functionality as the - method implemented - on this object, but it is protected and therefore can be called by subclasses. - - - - - - Initialize the log4net system using the specified config - - the element containing the root of the config - - - - Initialize the log4net system using the specified config - - the element containing the root of the config - - - This method provides the same functionality as the - method implemented - on this object, but it is protected and therefore can be called by subclasses. - - - - - - Test if this hierarchy is disabled for the specified . - - The level to check against. - - true if the repository is disabled for the level argument, false otherwise. - - - - If this hierarchy has not been configured then this method will - always return true. - - - This method will return true if this repository is - disabled for level object passed as parameter and - false otherwise. - - - See also the property. - - - - - - Clear all logger definitions from the internal hashtable - - - - This call will clear all logger definitions from the internal - hashtable. Invoking this method will irrevocably mess up the - logger hierarchy. - - - You should really know what you are doing before - invoking this method. - - - - - - Return a new logger instance named as the first parameter using - . - - The name of the logger to retrieve - The factory that will make the new logger instance - The logger object with the name specified - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated by the - parameter and linked with its existing - ancestors as well as children. - - - - - - Sends a logger creation event to all registered listeners - - The newly created logger - - Raises the logger creation event. - - - - - Updates all the parents of the specified logger - - The logger to update the parents for - - - This method loops through all the potential parents of - . There 3 possible cases: - - - - No entry for the potential parent of exists - - We create a ProvisionNode for this potential - parent and insert in that provision node. - - - - The entry is of type Logger for the potential parent. - - The entry is 's nearest existing parent. We - update 's parent field with this entry. We also break from - he loop because updating our parent's parent is our parent's - responsibility. - - - - The entry is of type ProvisionNode for this potential parent. - - We add to the list of children for this - potential parent. - - - - - - - - Replace a with a in the hierarchy. - - - - - - We update the links for all the children that placed themselves - in the provision node 'pn'. The second argument 'log' is a - reference for the newly created Logger, parent of all the - children in 'pn'. - - - We loop on all the children 'c' in 'pn'. - - - If the child 'c' has been already linked to a child of - 'log' then there is no need to update 'c'. - - - Otherwise, we set log's parent field to c's parent and set - c's parent field to log. - - - - - - Define or redefine a Level using the values in the argument - - the level values - - - Define or redefine a Level using the values in the argument - - - Supports setting levels via the configuration file. - - - - - - Set a Property using the values in the argument - - the property value - - - Set a Property using the values in the argument. - - - Supports setting property values via the configuration file. - - - - - - The fully qualified type of the Hierarchy class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Event used to notify that a logger has been created. - - - - Event raised when a logger is created. - - - - - - Has no appender warning been emitted - - - - Flag to indicate if we have already issued a warning - about not having an appender warning. - - - - - - Get the root of this hierarchy - - - - Get the root of this hierarchy. - - - - - - Gets or sets the default instance. - - The default - - - The logger factory is used to create logger instances. - - - - - - A class to hold the value, name and display name for a level - - - - A class to hold the value, name and display name for a level - - - - - - Override Object.ToString to return sensible debug info - - string info about this object - - - - Value of the level - - - - If the value is not set (defaults to -1) the value will be looked - up for the current level with the same name. - - - - - - Name of the level - - - The name of the level - - - - The name of the level. - - - - - - Display name for the level - - - The display name of the level - - - - The display name of the level. - - - - - - Used internally to accelerate hash table searches. - - - - Internal class used to improve performance of - string keyed hashtables. - - - The hashcode of the string is cached for reuse. - The string is stored as an interned value. - When comparing two objects for equality - the reference equality of the interned strings is compared. - - - Nicko Cadell - Gert Driesen - - - - Construct key with string name - - - - Initializes a new instance of the class - with the specified name. - - - Stores the hashcode of the string and interns - the string key to optimize comparisons. - - - The Compact Framework 1.0 the - method does not work. On the Compact Framework - the string keys are not interned nor are they - compared by reference. - - - The name of the logger. - - - - Returns a hash code for the current instance. - - A hash code for the current instance. - - - Returns the cached hashcode. - - - - - - Determines whether two instances - are equal. - - The to compare with the current . - - true if the specified is equal to the current ; otherwise, false. - - - - Compares the references of the interned strings. - - - - - - Provision nodes are used where no logger instance has been specified - - - - instances are used in the - when there is no specified - for that node. - - - A provision node holds a list of child loggers on behalf of - a logger that does not exist. - - - Nicko Cadell - Gert Driesen - - - - Create a new provision node with child node - - A child logger to add to this node. - - - Initializes a new instance of the class - with the specified child logger. - - - - - - The sits at the root of the logger hierarchy tree. - - - - The is a regular except - that it provides several guarantees. - - - First, it cannot be assigned a null - level. Second, since the root logger cannot have a parent, the - property always returns the value of the - level field without walking the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Construct a - - The level to assign to the root logger. - - - Initializes a new instance of the class with - the specified logging level. - - - The root logger names itself as "root". However, the root - logger cannot be retrieved by name. - - - - - - The fully qualified type of the RootLogger class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the assigned level value without walking the logger hierarchy. - - The assigned level value without walking the logger hierarchy. - - - Because the root logger cannot have a parent and its level - must not be null this property just returns the - value of . - - - - - - Gets or sets the assigned for the root logger. - - - The of the root logger. - - - - Setting the level of the root logger to a null reference - may have catastrophic results. We prevent this here. - - - - - - Initializes the log4net environment using an XML DOM. - - - - Configures a using an XML DOM. - - - Nicko Cadell - Gert Driesen - - - - Construct the configurator for a hierarchy - - The hierarchy to build. - - - Initializes a new instance of the class - with the specified . - - - - - - Configure the hierarchy by parsing a DOM tree of XML elements. - - The root element to parse. - - - Configure the hierarchy by parsing a DOM tree of XML elements. - - - - - - Parse appenders by IDREF. - - The appender ref element. - The instance of the appender that the ref refers to. - - - Parse an XML element that represents an appender and return - the appender. - - - - - - Parses an appender element. - - The appender element. - The appender instance or null when parsing failed. - - - Parse an XML element that represents an appender and return - the appender instance. - - - - - - Parses a logger element. - - The logger element. - - - Parse an XML element that represents a logger. - - - - - - Parses the root logger element. - - The root element. - - - Parse an XML element that represents the root logger. - - - - - - Parses the children of a logger element. - - The category element. - The logger instance. - Flag to indicate if the logger is the root logger. - - - Parse the child elements of a <logger> element. - - - - - - Parses an object renderer. - - The renderer element. - - - Parse an XML element that represents a renderer. - - - - - - Parses a level element. - - The level element. - The logger object to set the level on. - Flag to indicate if the logger is the root logger. - - - Parse an XML element that represents a level. - - - - - - Sets a parameter on an object. - - The parameter element. - The object to set the parameter on. - - The parameter name must correspond to a writable property - on the object. The value of the parameter is a string, - therefore this function will attempt to set a string - property first. If unable to set a string property it - will inspect the property and its argument type. It will - attempt to call a static method called Parse on the - type of the property. This method will take a single - string argument and return a value that can be used to - set the property. - - - - - Test if an element has no attributes or child elements - - the element to inspect - true if the element has any attributes or child elements, false otherwise - - - - Test if a is constructible with Activator.CreateInstance. - - the type to inspect - true if the type is creatable using a default constructor, false otherwise - - - - Look for a method on the that matches the supplied - - the type that has the method - the name of the method - the method info found - - - The method must be a public instance method on the . - The method must be named or "Add" followed by . - The method must take a single parameter. - - - - - - Converts a string value to a target type. - - The type of object to convert the string to. - The string value to use as the value of the object. - - - An object of type with value or - null when the conversion could not be performed. - - - - - - Creates an object as specified in XML. - - The XML element that contains the definition of the object. - The object type to use if not explicitly specified. - The type that the returned object must be or must inherit from. - The object or null - - - Parse an XML element and create an object instance based on the configuration - data. - - - The type of the instance may be specified in the XML. If not - specified then the is used - as the type. However the type is specified it must support the - type. - - - - - - key: appenderName, value: appender. - - - - - The Hierarchy being configured. - - - - - The fully qualified type of the XmlHierarchyConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - - - - - - - - - - - - - - - - - Delegate used to handle logger repository shutdown event notifications - - The that is shutting down. - Empty event args - - - Delegate used to handle logger repository shutdown event notifications. - - - - - - Delegate used to handle logger repository configuration reset event notifications - - The that has had its configuration reset. - Empty event args - - - Delegate used to handle logger repository configuration reset event notifications. - - - - - - Delegate used to handle event notifications for logger repository configuration changes. - - The that has had its configuration changed. - Empty event arguments. - - - Delegate used to handle event notifications for logger repository configuration changes. - - - - - - Write the name of the current AppDomain to the output - - - - Write the name of the current AppDomain to the output writer - - - Nicko Cadell - - - - Write the name of the current AppDomain to the output - - the writer to write to - null, state is not set - - - Writes name of the current AppDomain to the output . - - - - - - Write the current date to the output - - - - Date pattern converter, uses a to format - the current date and time to the writer as a string. - - - The value of the determines - the formatting of the date. The following values are allowed: - - - Option value - Output - - - ISO8601 - - Uses the formatter. - Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. - - - - DATE - - Uses the formatter. - Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". - - - - ABSOLUTE - - Uses the formatter. - Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". - - - - other - - Any other pattern string uses the formatter. - This formatter passes the pattern string to the - method. - For details on valid patterns see - DateTimeFormatInfo Class. - - - - - - The date and time is in the local time zone and is rendered in that zone. - To output the time in Universal time see . - - - Nicko Cadell - - - - The used to render the date to a string - - - - The used to render the date to a string - - - - - - Initialize the converter options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the current date to the output - - that will receive the formatted result. - null, state is not set - - - Pass the current date and time to the - for it to render it to the writer. - - - The date and time passed is in the local time zone. - - - - - - The fully qualified type of the DatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write an folder path to the output - - - - Write an special path environment folder path to the output writer. - The value of the determines - the name of the variable to output. - should be a value in the enumeration. - - - Ron Grabowski - - - - Write an special path environment folder path to the output - - the writer to write to - null, state is not set - - - Writes the special path environment folder path to the output . - The name of the special path environment folder path to output must be set - using the - property. - - - - - - The fully qualified type of the EnvironmentFolderPathPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write an environment variable to the output - - - - Write an environment variable to the output writer. - The value of the determines - the name of the variable to output. - - - Nicko Cadell - - - - Write an environment variable to the output - - the writer to write to - null, state is not set - - - Writes the environment variable to the output . - The name of the environment variable to output must be set - using the - property. - - - - - - The fully qualified type of the EnvironmentPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the current thread identity to the output - - - - Write the current thread identity to the output writer - - - Nicko Cadell - - - - Write the current thread identity to the output - - the writer to write to - null, state is not set - - - Writes the current thread identity to the output . - - - - - - The fully qualified type of the IdentityPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Pattern converter for literal string instances in the pattern - - - - Writes the literal string value specified in the - property to - the output. - - - Nicko Cadell - - - - Set the next converter in the chain - - The next pattern converter in the chain - The next pattern converter - - - Special case the building of the pattern converter chain - for instances. Two adjacent - literals in the pattern can be represented by a single combined - pattern converter. This implementation detects when a - is added to the chain - after this converter and combines its value with this converter's - literal value. - - - - - - Write the literal to the output - - the writer to write to - null, not set - - - Override the formatting behavior to ignore the FormattingInfo - because we have a literal instead. - - - Writes the value of - to the output . - - - - - - Convert this pattern into the rendered message - - that will receive the formatted result. - null, not set - - - This method is not used. - - - - - - Writes a newline to the output - - - - Writes the system dependent line terminator to the output. - This behavior can be overridden by setting the : - - - - Option Value - Output - - - DOS - DOS or Windows line terminator "\r\n" - - - UNIX - UNIX line terminator "\n" - - - - Nicko Cadell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the current process ID to the output - - - - Write the current process ID to the output writer - - - Nicko Cadell - - - - Write the current process ID to the output - - the writer to write to - null, state is not set - - - Write the current process ID to the output . - - - - - - The fully qualified type of the ProcessIdPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Property pattern converter - - - - This pattern converter reads the thread and global properties. - The thread properties take priority over global properties. - See for details of the - thread properties. See for - details of the global properties. - - - If the is specified then that will be used to - lookup a single property. If no is specified - then all properties will be dumped as a list of key value pairs. - - - Nicko Cadell - - - - Write the property value to the output - - that will receive the formatted result. - null, state is not set - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - - - - A Pattern converter that generates a string of random characters - - - - The converter generates a string of random characters. By default - the string is length 4. This can be changed by setting the - to the string value of the length required. - - - The random characters in the string are limited to uppercase letters - and numbers only. - - - The random number generator used by this class is not cryptographically secure. - - - Nicko Cadell - - - - Shared random number generator - - - - - Length of random string to generate. Default length 4. - - - - - Initialize the converter options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write a randoim string to the output - - the writer to write to - null, state is not set - - - Write a randoim string to the output . - - - - - - The fully qualified type of the RandomStringPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the current threads username to the output - - - - Write the current threads username to the output writer - - - Nicko Cadell - - - - Write the current threads username to the output - - the writer to write to - null, state is not set - - - Write the current threads username to the output . - - - - - - The fully qualified type of the UserNamePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the UTC date time to the output - - - - Date pattern converter, uses a to format - the current date and time in Universal time. - - - See the for details on the date pattern syntax. - - - - Nicko Cadell - - - - Write the current date and time to the output - - that will receive the formatted result. - null, state is not set - - - Pass the current date and time to the - for it to render it to the writer. - - - The date is in Universal time when it is rendered. - - - - - - - The fully qualified type of the UtcDatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Type converter for Boolean. - - - - Supports conversion from string to bool type. - - - - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Convert the source object to the type supported by this object - - the object to convert - the converted object - - - Uses the method to convert the - argument to a . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Exception base type for conversion errors. - - - - This type extends . It - does not add any new functionality but does differentiate the - type of exception being thrown. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - A message to include with the exception. - - - Initializes a new instance of the class - with the specified message. - - - - - - Constructor - - A message to include with the exception. - A nested exception to include. - - - Initializes a new instance of the class - with the specified message and inner exception. - - - - - - Serialization constructor - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Creates a new instance of the class. - - The conversion destination type. - The value to convert. - An instance of the . - - - Creates a new instance of the class. - - - - - - Creates a new instance of the class. - - The conversion destination type. - The value to convert. - A nested exception to include. - An instance of the . - - - Creates a new instance of the class. - - - - - - Register of type converters for specific types. - - - - Maintains a registry of type converters used to convert between - types. - - - Use the and - methods to register new converters. - The and methods - lookup appropriate converters to use. - - - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - Initializes a new instance of the class. - - - - - Static constructor. - - - - This constructor defines the intrinsic type converters. - - - - - - Adds a converter for a specific type. - - The type being converted to. - The type converter to use to convert to the destination type. - - - Adds a converter instance for a specific type. - - - - - - Adds a converter for a specific type. - - The type being converted to. - The type of the type converter to use to convert to the destination type. - - - Adds a converter for a specific type. - - - - - - Gets the type converter to use to convert values to the destination type. - - The type being converted from. - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - Gets the type converter to use to convert values to the destination type. - - - - - - Gets the type converter to use to convert values to the destination type. - - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - Gets the type converter to use to convert values to the destination type. - - - - - - Lookups the type converter to use as specified by the attributes on the - destination type. - - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - - Creates the instance of the type converter. - - The type of the type converter. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - The type specified for the type converter must implement - the or interfaces - and must have a public default (no argument) constructor. - - - - - - The fully qualified type of the ConverterRegistry class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Mapping from to type converter. - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to an encoding - the encoding - - - Uses the method to - convert the argument to an . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Interface supported by type converters - - - - This interface supports conversion from a single type to arbitrary types. - See . - - - Nicko Cadell - - - - Returns whether this converter can convert the object to the specified type - - A Type that represents the type you want to convert to - true if the conversion is possible - - - Test if the type supported by this converter can be converted to the - . - - - - - - Converts the given value object to the specified type, using the arguments - - the object to convert - The Type to convert the value parameter to - the converted object - - - Converts the (which must be of the type supported - by this converter) to the specified.. - - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to an IPAddress - the IPAddress - - - Uses the method to convert the - argument to an . - If that fails then the string is resolved as a DNS hostname. - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - The string is used as the - of the . - - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a PatternLayout - the PatternLayout - - - Creates and returns a new using - the as the - . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Convert between string and - - - - Supports conversion from string to type, - and from a type to a string. - - - The string is used as the - of the . - - - - - - Nicko Cadell - - - - Can the target type be converted to the type supported by this object - - A that represents the type you want to convert to - true if the conversion is possible - - - Returns true if the is - assignable from a type. - - - - - - Converts the given value object to the specified type, using the arguments - - the object to convert - The Type to convert the value parameter to - the converted object - - - Uses the method to convert the - argument to a . - - - - The object cannot be converted to the - . To check for this condition use the - method. - - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a PatternString - the PatternString - - - Creates and returns a new using - the as the - . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a Type - the Type - - - Uses the method to convert the - argument to a . - Additional effort is made to locate partially specified types - by searching the loaded assemblies. - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Attribute used to associate a type converter - - - - Class and Interface level attribute that specifies a type converter - to use with the associated type. - - - To associate a type converter with a target type apply a - TypeConverterAttribute to the target type. Specify the - type of the type converter on the attribute. - - - Nicko Cadell - Gert Driesen - - - - The string type name of the type converter - - - - - Default constructor - - - - Default constructor - - - - - - Create a new type converter attribute for the specified type name - - The string type name of the type converter - - - The type specified must implement the - or the interfaces. - - - - - - Create a new type converter attribute for the specified type - - The type of the type converter - - - The type specified must implement the - or the interfaces. - - - - - - The string type name of the type converter - - - The string type name of the type converter - - - - The type specified must implement the - or the interfaces. - - - - - - A straightforward implementation of the interface. - - - - This is the default implementation of the - interface. Implementors of the interface - should aggregate an instance of this type. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Append on on all attached appenders. - - The event being logged. - The number of appenders called. - - - Calls the method on all - attached appenders. - - - - - - Append on on all attached appenders. - - The array of events being logged. - The number of appenders called. - - - Calls the method on all - attached appenders. - - - - - - Calls the DoAppende method on the with - the objects supplied. - - The appender - The events - - - If the supports the - interface then the will be passed - through using that interface. Otherwise the - objects in the array will be passed one at a time. - - - - - - Attaches an appender. - - The appender to add. - - - If the appender is already in the list it won't be added again. - - - - - - Gets an attached appender with the specified name. - - The name of the appender to get. - - The appender with the name specified, or null if no appender with the - specified name is found. - - - - Lookup an attached appender by name. - - - - - - Removes all attached appenders. - - - - Removes and closes all attached appenders - - - - - - Removes the specified appender from the list of attached appenders. - - The appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - List of appenders - - - - - Array of appenders, used to cache the m_appenderList - - - - - The fully qualified type of the AppenderAttachedImpl class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets all attached appenders. - - - A collection of attached appenders, or null if there - are no attached appenders. - - - - The read only collection of all currently attached appenders. - - - - - - This class aggregates several PropertiesDictionary collections together. - - - - Provides a dictionary style lookup over an ordered list of - collections. - - - Nicko Cadell - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Add a Properties Dictionary to this composite collection - - the properties to add - - - Properties dictionaries added first take precedence over dictionaries added - later. - - - - - - Flatten this composite collection into a single properties dictionary - - the flattened dictionary - - - Reduces the collection of ordered dictionaries to a single dictionary - containing the resultant values for the keys. - - - - - - Gets the value of a property - - - The value for the property with the specified key - - - - Looks up the value for the specified. - The collections are searched - in the order in which they were added to this collection. The value - returned is the value held by the first collection that contains - the specified key. - - - If none of the collections contain the specified key then - null is returned. - - - - - - Base class for Context Properties implementations - - - - This class defines a basic property get set accessor - - - Nicko Cadell - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Gets or sets the value of a property - - - - - - Wrapper class used to map converter names to converter types - - - - Pattern converter info class used during configuration by custom - PatternString and PatternLayer converters. - - - - - - default constructor - - - - - - - - - - - Gets or sets the name of the conversion pattern - - - - The name of the pattern in the format string - - - - - - Gets or sets the type of the converter - - - - The value specified must extend the - type. - - - - - - - - - - - Subclass of that maintains a count of - the number of bytes written. - - - - This writer counts the number of bytes written. - - - Nicko Cadell - Gert Driesen - - - - that does not leak exceptions - - - - does not throw exceptions when things go wrong. - Instead, it delegates error handling to its . - - - Nicko Cadell - Gert Driesen - - - - Adapter that extends and forwards all - messages to an instance of . - - - - Adapter that extends and forwards all - messages to an instance of . - - - Nicko Cadell - - - - The writer to forward messages to - - - - - Create an instance of that forwards all - messages to a . - - The to forward to - - - Create an instance of that forwards all - messages to a . - - - - - - Closes the writer and releases any system resources associated with the writer - - - - - - - - - Dispose this writer - - flag indicating if we are being disposed - - - Dispose this writer - - - - - - Flushes any buffered output - - - - Clears all buffers for the writer and causes any buffered data to be written - to the underlying device - - - - - - Writes a character to the wrapped TextWriter - - the value to write to the TextWriter - - - Writes a character to the wrapped TextWriter - - - - - - Writes a character buffer to the wrapped TextWriter - - the data buffer - the start index - the number of characters to write - - - Writes a character buffer to the wrapped TextWriter - - - - - - Writes a string to the wrapped TextWriter - - the value to write to the TextWriter - - - Writes a string to the wrapped TextWriter - - - - - - Gets or sets the underlying . - - - The underlying . - - - - Gets or sets the underlying . - - - - - - The Encoding in which the output is written - - - The - - - - The Encoding in which the output is written - - - - - - Gets an object that controls formatting - - - The format provider - - - - Gets an object that controls formatting - - - - - - Gets or sets the line terminator string used by the TextWriter - - - The line terminator to use - - - - Gets or sets the line terminator string used by the TextWriter - - - - - - Constructor - - the writer to actually write to - the error handler to report error to - - - Create a new QuietTextWriter using a writer and error handler - - - - - - Writes a character to the underlying writer - - the char to write - - - Writes a character to the underlying writer - - - - - - Writes a buffer to the underlying writer - - the buffer to write - the start index to write from - the number of characters to write - - - Writes a buffer to the underlying writer - - - - - - Writes a string to the output. - - The string data to write to the output. - - - Writes a string to the output. - - - - - - Closes the underlying output writer. - - - - Closes the underlying output writer. - - - - - - The error handler instance to pass all errors to - - - - - Flag to indicate if this writer is closed - - - - - Gets or sets the error handler that all errors are passed to. - - - The error handler that all errors are passed to. - - - - Gets or sets the error handler that all errors are passed to. - - - - - - Gets a value indicating whether this writer is closed. - - - true if this writer is closed, otherwise false. - - - - Gets a value indicating whether this writer is closed. - - - - - - Constructor - - The to actually write to. - The to report errors to. - - - Creates a new instance of the class - with the specified and . - - - - - - Writes a character to the underlying writer and counts the number of bytes written. - - the char to write - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Writes a buffer to the underlying writer and counts the number of bytes written. - - the buffer to write - the start index to write from - the number of characters to write - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Writes a string to the output and counts the number of bytes written. - - The string data to write to the output. - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Total number of bytes written. - - - - - Gets or sets the total number of bytes written. - - - The total number of bytes written. - - - - Gets or sets the total number of bytes written. - - - - - - A fixed size rolling buffer of logging events. - - - - An array backed fixed size leaky bucket. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The maximum number of logging events in the buffer. - - - Initializes a new instance of the class with - the specified maximum number of buffered logging events. - - - The argument is not a positive integer. - - - - Appends a to the buffer. - - The event to append to the buffer. - The event discarded from the buffer, if the buffer is full, otherwise null. - - - Append an event to the buffer. If the buffer still contains free space then - null is returned. If the buffer is full then an event will be dropped - to make space for the new event, the event dropped is returned. - - - - - - Get and remove the oldest event in the buffer. - - The oldest logging event in the buffer - - - Gets the oldest (first) logging event in the buffer and removes it - from the buffer. - - - - - - Pops all the logging events from the buffer into an array. - - An array of all the logging events in the buffer. - - - Get all the events in the buffer and clear the buffer. - - - - - - Clear the buffer - - - - Clear the buffer of all events. The events in the buffer are lost. - - - - - - Gets the th oldest event currently in the buffer. - - The th oldest event currently in the buffer. - - - If is outside the range 0 to the number of events - currently in the buffer, then null is returned. - - - - - - Gets the maximum size of the buffer. - - The maximum size of the buffer. - - - Gets the maximum size of the buffer - - - - - - Gets the number of logging events in the buffer. - - The number of logging events in the buffer. - - - This number is guaranteed to be in the range 0 to - (inclusive). - - - - - - An always empty . - - - - A singleton implementation of the - interface that always represents an empty collection. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Copies the elements of the to an - , starting at a particular Array index. - - The one-dimensional - that is the destination of the elements copied from - . The Array must have zero-based - indexing. - The zero-based index in array at which - copying begins. - - - As the collection is empty no values are copied into the array. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - The singleton instance of the empty collection. - - - - - Gets the singleton instance of the empty collection. - - The singleton instance of the empty collection. - - - Gets the singleton instance of the empty collection. - - - - - - Gets a value indicating if access to the is synchronized (thread-safe). - - - true if access to the is synchronized (thread-safe); otherwise, false. - - - - For the this property is always true. - - - - - - Gets the number of elements contained in the . - - - The number of elements contained in the . - - - - As the collection is empty the is always 0. - - - - - - Gets an object that can be used to synchronize access to the . - - - An object that can be used to synchronize access to the . - - - - As the collection is empty and thread safe and synchronized this instance is also - the object. - - - - - - An always empty . - - - - A singleton implementation of the - interface that always represents an empty collection. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Copies the elements of the to an - , starting at a particular Array index. - - The one-dimensional - that is the destination of the elements copied from - . The Array must have zero-based - indexing. - The zero-based index in array at which - copying begins. - - - As the collection is empty no values are copied into the array. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - Adds an element with the provided key and value to the - . - - The to use as the key of the element to add. - The to use as the value of the element to add. - - - As the collection is empty no new values can be added. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - Removes all elements from the . - - - - As the collection is empty no values can be removed. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - Determines whether the contains an element - with the specified key. - - The key to locate in the . - false - - - As the collection is empty the method always returns false. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - Removes the element with the specified key from the . - - The key of the element to remove. - - - As the collection is empty no values can be removed. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - The singleton instance of the empty dictionary. - - - - - Gets the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets a value indicating if access to the is synchronized (thread-safe). - - - true if access to the is synchronized (thread-safe); otherwise, false. - - - - For the this property is always true. - - - - - - Gets the number of elements contained in the - - - The number of elements contained in the . - - - - As the collection is empty the is always 0. - - - - - - Gets an object that can be used to synchronize access to the . - - - An object that can be used to synchronize access to the . - - - - As the collection is empty and thread safe and synchronized this instance is also - the object. - - - - - - Gets a value indicating whether the has a fixed size. - - true - - - As the collection is empty always returns true. - - - - - - Gets a value indicating whether the is read-only. - - true - - - As the collection is empty always returns true. - - - - - - Gets an containing the keys of the . - - An containing the keys of the . - - - As the collection is empty a is returned. - - - - - - Gets an containing the values of the . - - An containing the values of the . - - - As the collection is empty a is returned. - - - - - - Gets or sets the element with the specified key. - - The key of the element to get or set. - null - - - As the collection is empty no values can be looked up or stored. - If the index getter is called then null is returned. - A is thrown if the setter is called. - - - This dictionary is always empty and cannot be modified. - - - - Contain the information obtained when parsing formatting modifiers - in conversion modifiers. - - - - Holds the formatting information extracted from the format string by - the . This is used by the - objects when rendering the output. - - - Nicko Cadell - Gert Driesen - - - - Defaut Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - - - Initializes a new instance of the class - with the specified parameters. - - - - - - Gets or sets the minimum value. - - - The minimum value. - - - - Gets or sets the minimum value. - - - - - - Gets or sets the maximum value. - - - The maximum value. - - - - Gets or sets the maximum value. - - - - - - Gets or sets a flag indicating whether left align is enabled - or not. - - - A flag indicating whether left align is enabled or not. - - - - Gets or sets a flag indicating whether left align is enabled or not. - - - - - - Implementation of Properties collection for the - - - - This class implements a properties collection that is thread safe and supports both - storing properties and capturing a read only copy of the current propertied. - - - This class is optimized to the scenario where the properties are read frequently - and are modified infrequently. - - - Nicko Cadell - - - - The read only copy of the properties. - - - - This variable is declared volatile to prevent the compiler and JIT from - reordering reads and writes of this thread performed on different threads. - - - - - - Lock object used to synchronize updates within this instance - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property from the global context - - the key for the entry to remove - - - Removing an entry from the global context properties is relatively expensive compared - with reading a value. - - - - - - Clear the global context properties - - - - - Get a readonly immutable copy of the properties - - the current global context properties - - - This implementation is fast because the GlobalContextProperties class - stores a readonly copy of the properties. - - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Reading the value for a key is faster than setting the value. - When the value is written a new read only copy of - the properties is created. - - - - - - Manages a mapping from levels to - - - - Manages an ordered mapping from instances - to subclasses. - - - Nicko Cadell - - - - Default constructor - - - - Initialise a new instance of . - - - - - - Add a to this mapping - - the entry to add - - - If a has previously been added - for the same then that entry will be - overwritten. - - - - - - Lookup the mapping for the specified level - - the level to lookup - the for the level or null if no mapping found - - - Lookup the value for the specified level. Finds the nearest - mapping value for the level that is equal to or less than the - specified. - - - If no mapping could be found then null is returned. - - - - - - Initialize options - - - - Caches the sorted list of in an array - - - - - - Implementation of Properties collection for the - - - - Class implements a collection of properties that is specific to each thread. - The class is not synchronized as each thread has its own . - - - This class stores its properties in a slot on the named - log4net.Util.LogicalThreadContextProperties. - - - The requires a link time - for the - . - If the calling code does not have this permission then this context will be disabled. - It will not store any property values set on it. - - - Nicko Cadell - - - - Flag used to disable this context if we don't have permission to access the CallContext. - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property - - the key for the entry to remove - - - Remove the value for the specified from the context. - - - - - - Clear all the context properties - - - - Clear all the context properties - - - - - - Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. - - create the dictionary if it does not exist, otherwise return null if is does not exist - the properties for this thread - - - The collection returned is only to be used on the calling thread. If the - caller needs to share the collection between different threads then the - caller must clone the collection before doings so. - - - - - - Gets the call context get data. - - The peroperties dictionary stored in the call context - - The method has a - security link demand, therfore we must put the method call in a seperate method - that we can wrap in an exception handler. - - - - - Sets the call context data. - - The properties. - - The method has a - security link demand, therfore we must put the method call in a seperate method - that we can wrap in an exception handler. - - - - - The fully qualified type of the LogicalThreadContextProperties class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Get or set the property value for the specified. - - - - - - - - - - - - - Outputs log statements from within the log4net assembly. - - - - Log4net components cannot make log4net logging calls. However, it is - sometimes useful for the user to learn about what log4net is - doing. - - - All log4net internal debug calls go to the standard output stream - whereas internal error messages are sent to the standard error output - stream. - - - Nicko Cadell - Gert Driesen - - - - Formats Prefix, Source, and Message in the same format as the value - sent to Console.Out and Trace.Write. - - - - - - Initializes a new instance of the class. - - - - - - - - - Static constructor that initializes logging by reading - settings from the application configuration file. - - - - The log4net.Internal.Debug application setting - controls internal debugging. This setting should be set - to true to enable debugging. - - - The log4net.Internal.Quiet application setting - suppresses all internal logging including error messages. - This setting should be set to true to enable message - suppression. - - - - - - Raises the LogReceived event when an internal messages is received. - - - - - - - - - Writes log4net internal debug messages to the - standard output stream. - - - The message to log. - - - All internal debug messages are prepended with - the string "log4net: ". - - - - - - Writes log4net internal debug messages to the - standard output stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal debug messages are prepended with - the string "log4net: ". - - - - - - Writes log4net internal warning messages to the - standard error stream. - - The Type that generated this message. - The message to log. - - - All internal warning messages are prepended with - the string "log4net:WARN ". - - - - - - Writes log4net internal warning messages to the - standard error stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal warning messages are prepended with - the string "log4net:WARN ". - - - - - - Writes log4net internal error messages to the - standard error stream. - - The Type that generated this message. - The message to log. - - - All internal error messages are prepended with - the string "log4net:ERROR ". - - - - - - Writes log4net internal error messages to the - standard error stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal debug messages are prepended with - the string "log4net:ERROR ". - - - - - - Writes output to the standard output stream. - - The message to log. - - - Writes to both Console.Out and System.Diagnostics.Trace. - Note that the System.Diagnostics.Trace is not supported - on the Compact Framework. - - - If the AppDomain is not configured with a config file then - the call to System.Diagnostics.Trace may fail. This is only - an issue if you are programmatically creating your own AppDomains. - - - - - - Writes output to the standard error stream. - - The message to log. - - - Writes to both Console.Error and System.Diagnostics.Trace. - Note that the System.Diagnostics.Trace is not supported - on the Compact Framework. - - - If the AppDomain is not configured with a config file then - the call to System.Diagnostics.Trace may fail. This is only - an issue if you are programmatically creating your own AppDomains. - - - - - - Default debug level - - - - - In quietMode not even errors generate any output. - - - - - The event raised when an internal message has been received. - - - - - The Type that generated the internal message. - - - - - The DateTime stamp of when the internal message was received. - - - - - A string indicating the severity of the internal message. - - - "log4net: ", - "log4net:ERROR ", - "log4net:WARN " - - - - - The internal log message. - - - - - The Exception related to the message. - - - Optional. Will be null if no Exception was passed. - - - - - Gets or sets a value indicating whether log4net internal logging - is enabled or disabled. - - - true if log4net internal logging is enabled, otherwise - false. - - - - When set to true, internal debug level logging will be - displayed. - - - This value can be set by setting the application setting - log4net.Internal.Debug in the application configuration - file. - - - The default value is false, i.e. debugging is - disabled. - - - - - The following example enables internal debugging using the - application configuration file : - - - - - - - - - - - - - Gets or sets a value indicating whether log4net should generate no output - from internal logging, not even for errors. - - - true if log4net should generate no output at all from internal - logging, otherwise false. - - - - When set to true will cause internal logging at all levels to be - suppressed. This means that no warning or error reports will be logged. - This option overrides the setting and - disables all debug also. - - This value can be set by setting the application setting - log4net.Internal.Quiet in the application configuration file. - - - The default value is false, i.e. internal logging is not - disabled. - - - - The following example disables internal logging using the - application configuration file : - - - - - - - - - - - - - - - - - Test if LogLog.Debug is enabled for output. - - - true if Debug is enabled - - - - Test if LogLog.Debug is enabled for output. - - - - - - Test if LogLog.Warn is enabled for output. - - - true if Warn is enabled - - - - Test if LogLog.Warn is enabled for output. - - - - - - Test if LogLog.Error is enabled for output. - - - true if Error is enabled - - - - Test if LogLog.Error is enabled for output. - - - - - - Subscribes to the LogLog.LogReceived event and stores messages - to the supplied IList instance. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Represents a native error code and message. - - - - Represents a Win32 platform native error. - - - Nicko Cadell - Gert Driesen - - - - Create an instance of the class with the specified - error number and message. - - The number of the native error. - The message of the native error. - - - Create an instance of the class with the specified - error number and message. - - - - - - Create a new instance of the class for the last Windows error. - - - An instance of the class for the last windows error. - - - - The message for the error number is lookup up using the - native Win32 FormatMessage function. - - - - - - Create a new instance of the class. - - the error number for the native error - - An instance of the class for the specified - error number. - - - - The message for the specified error number is lookup up using the - native Win32 FormatMessage function. - - - - - - Retrieves the message corresponding with a Win32 message identifier. - - Message identifier for the requested message. - - The message corresponding with the specified message identifier. - - - - The message will be searched for in system message-table resource(s) - using the native FormatMessage function. - - - - - - Return error information string - - error information string - - - Return error information string - - - - - - Formats a message string. - - Formatting options, and how to interpret the parameter. - Location of the message definition. - Message identifier for the requested message. - Language identifier for the requested message. - If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . - If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. - Pointer to an array of values that are used as insert values in the formatted message. - - - The function requires a message definition as input. The message definition can come from a - buffer passed into the function. It can come from a message table resource in an - already-loaded module. Or the caller can ask the function to search the system's message - table resource(s) for the message definition. The function finds the message definition - in a message table resource based on a message identifier and a language identifier. - The function copies the formatted message text to an output buffer, processing any embedded - insert sequences if requested. - - - To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. - - - - - If the function succeeds, the return value is the number of TCHARs stored in the output - buffer, excluding the terminating null character. - - - If the function fails, the return value is zero. To get extended error information, - call . - - - - - - Gets the number of the native error. - - - The number of the native error. - - - - Gets the number of the native error. - - - - - - Gets the message of the native error. - - - The message of the native error. - - - - - Gets the message of the native error. - - - - - An always empty . - - - - A singleton implementation of the over a collection - that is empty and not modifiable. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Test if the enumerator can advance, if so advance. - - false as the cannot advance. - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will always return false. - - - - - - Resets the enumerator back to the start. - - - - As the enumerator is over an empty collection does nothing. - - - - - - The singleton instance of the . - - - - - Gets the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets the current object from the enumerator. - - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current key from the enumerator. - - - Throws an exception because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current value from the enumerator. - - The current value from the enumerator. - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current entry from the enumerator. - - - Throws an because the - never has a current entry. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - An always empty . - - - - A singleton implementation of the over a collection - that is empty and not modifiable. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Test if the enumerator can advance, if so advance - - false as the cannot advance. - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will always return false. - - - - - - Resets the enumerator back to the start. - - - - As the enumerator is over an empty collection does nothing. - - - - - - The singleton instance of the . - - - - - Get the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets the current object from the enumerator. - - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - A SecurityContext used when a SecurityContext is not required - - - - The is a no-op implementation of the - base class. It is used where a - is required but one has not been provided. - - - Nicko Cadell - - - - Singleton instance of - - - - Singleton instance of - - - - - - Private constructor - - - - Private constructor for singleton pattern. - - - - - - Impersonate this SecurityContext - - State supplied by the caller - null - - - No impersonation is done and null is always returned. - - - - - - Implements log4net's default error handling policy which consists - of emitting a message for the first error in an appender and - ignoring all subsequent errors. - - - - The error message is processed using the LogLog sub-system. - - - This policy aims at protecting an otherwise working application - from being flooded with error messages when logging fails. - - - Nicko Cadell - Gert Driesen - Ron Grabowski - - - - Default Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - The prefix to use for each message. - - - Initializes a new instance of the class - with the specified prefix. - - - - - - Reset the error handler back to its initial disabled state. - - - - - Log an Error - - The error message. - The exception. - The internal error code. - - - Sends the error information to 's Error method. - - - - - - Log an Error - - The error message. - The exception. - - - Prints the message and the stack trace of the exception on the standard - error output stream. - - - - - - Log an error - - The error message. - - - Print a the error message passed as parameter on the standard - error output stream. - - - - - - The date the error was recorded. - - - - - Flag to indicate if it is the first error - - - - - The message recorded during the first error. - - - - - The exception recorded during the first error. - - - - - The error code recorded during the first error. - - - - - String to prefix each message with - - - - - The fully qualified type of the OnlyOnceErrorHandler class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Is error logging enabled - - - - Is error logging enabled. Logging is only enabled for the - first error delivered to the . - - - - - - The date the first error that trigged this error handler occured. - - - - - The message from the first error that trigged this error handler. - - - - - The exception from the first error that trigged this error handler. - - - May be . - - - - - The error code from the first error that trigged this error handler. - - - Defaults to - - - - - A convenience class to convert property values to specific types. - - - - Utility functions for converting types and parsing values. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Converts a string to a value. - - String to convert. - The default value. - The value of . - - - If is "true", then true is returned. - If is "false", then false is returned. - Otherwise, is returned. - - - - - - Parses a file size into a number. - - String to parse. - The default value. - The value of . - - - Parses a file size of the form: number[KB|MB|GB] into a - long value. It is scaled with the appropriate multiplier. - - - is returned when - cannot be converted to a value. - - - - - - Converts a string to an object. - - The target type to convert to. - The string to convert to an object. - - The object converted from a string or null when the - conversion failed. - - - - Converts a string to an object. Uses the converter registry to try - to convert the string value into the specified target type. - - - - - - Checks if there is an appropriate type conversion from the source type to the target type. - - The type to convert from. - The type to convert to. - true if there is a conversion from the source type to the target type. - - Checks if there is an appropriate type conversion from the source type to the target type. - - - - - - - Converts an object to the target type. - - The object to convert to the target type. - The type to convert to. - The converted object. - - - Converts an object to the target type. - - - - - - Instantiates an object given a class name. - - The fully qualified class name of the object to instantiate. - The class to which the new object should belong. - The object to return in case of non-fulfillment. - - An instance of the or - if the object could not be instantiated. - - - - Checks that the is a subclass of - . If that test fails or the object could - not be instantiated, then is returned. - - - - - - Performs variable substitution in string from the - values of keys found in . - - The string on which variable substitution is performed. - The dictionary to use to lookup variables. - The result of the substitutions. - - - The variable substitution delimiters are ${ and }. - - - For example, if props contains key=value, then the call - - - - string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); - - - - will set the variable s to "Value of key is value.". - - - If no value could be found for the specified key, then substitution - defaults to an empty string. - - - For example, if system properties contains no value for the key - "nonExistentKey", then the call - - - - string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); - - - - will set s to "Value of nonExistentKey is []". - - - An Exception is thrown if contains a start - delimiter "${" which is not balanced by a stop delimiter "}". - - - - - - Converts the string representation of the name or numeric value of one or - more enumerated constants to an equivalent enumerated object. - - The type to convert to. - The enum string value. - If true, ignore case; otherwise, regard case. - An object of type whose value is represented by . - - - - The fully qualified type of the OptionConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Most of the work of the class - is delegated to the PatternParser class. - - - - The PatternParser processes a pattern string and - returns a chain of objects. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The pattern to parse. - - - Initializes a new instance of the class - with the specified pattern string. - - - - - - Parses the pattern into a chain of pattern converters. - - The head of a chain of pattern converters. - - - Parses the pattern into a chain of pattern converters. - - - - - - Build the unified cache of converters from the static and instance maps - - the list of all the converter names - - - Build the unified cache of converters from the static and instance maps - - - - - - Internal method to parse the specified pattern to find specified matches - - the pattern to parse - the converter names to match in the pattern - - - The matches param must be sorted such that longer strings come before shorter ones. - - - - - - Process a parsed literal - - the literal text - - - - Process a parsed converter pattern - - the name of the converter - the optional option for the converter - the formatting info for the converter - - - - Resets the internal state of the parser and adds the specified pattern converter - to the chain. - - The pattern converter to add. - - - - The first pattern converter in the chain - - - - - the last pattern converter in the chain - - - - - The pattern - - - - - Internal map of converter identifiers to converter types - - - - This map overrides the static s_globalRulesRegistry map. - - - - - - The fully qualified type of the PatternParser class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Get the converter registry used by this parser - - - The converter registry used by this parser - - - - Get the converter registry used by this parser - - - - - - Sort strings by length - - - - that orders strings by string length. - The longest strings are placed first - - - - - - This class implements a patterned string. - - - - This string has embedded patterns that are resolved and expanded - when the string is formatted. - - - This class functions similarly to the - in that it accepts a pattern and renders it to a string. Unlike the - however the PatternString - does not render the properties of a specific but - of the process in general. - - - The recognized conversion pattern names are: - - - - Conversion Pattern Name - Effect - - - appdomain - - - Used to output the friendly name of the current AppDomain. - - - - - date - - - Used to output the current date and time in the local time zone. - To output the date in universal time use the %utcdate pattern. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %date{HH:mm:ss,fff} or - %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %date{ISO8601} or %date{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - env - - - Used to output the a specific environment variable. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %env{COMPUTERNAME} would include the value - of the COMPUTERNAME environment variable. - - - The env pattern is not supported on the .NET Compact Framework. - - - - - identity - - - Used to output the user name for the currently active user - (Principal.Identity.Name). - - - - - newline - - - Outputs the platform dependent line separator character or - characters. - - - This conversion pattern name offers the same performance as using - non-portable line separator strings such as "\n", or "\r\n". - Thus, it is the preferred way of specifying a line separator. - - - - - processid - - - Used to output the system process ID for the current process. - - - - - property - - - Used to output a specific context property. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %property{user} would include the value - from the property that is keyed by the string 'user'. Each property value - that is to be included in the log must be specified separately. - Properties are stored in logging contexts. By default - the log4net:HostName property is set to the name of machine on - which the event was originally logged. - - - If no key is specified, e.g. %property then all the keys and their - values are printed in a comma separated list. - - - The properties of an event are combined from a number of different - contexts. These are listed below in the order in which they are searched. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - random - - - Used to output a random string of characters. The string is made up of - uppercase letters and numbers. By default the string is 4 characters long. - The length of the string can be specified within braces directly following the - pattern specifier, e.g. %random{8} would output an 8 character string. - - - - - username - - - Used to output the WindowsIdentity for the currently - active user. - - - - - utcdate - - - Used to output the date of the logging event in universal time. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %utcdate{HH:mm:ss,fff} or - %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %utcdate{ISO8601} or %utcdate{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - % - - - The sequence %% outputs a single percent sign. - - - - - - Additional pattern converters may be registered with a specific - instance using or - . - - - See the for details on the - format modifiers supported by the patterns. - - - Nicko Cadell - - - - Internal map of converter identifiers to converter types. - - - - - the pattern - - - - - the head of the pattern converter chain - - - - - patterns defined on this PatternString only - - - - - Initialize the global registry - - - - - Default constructor - - - - Initialize a new instance of - - - - - - Constructs a PatternString - - The pattern to use with this PatternString - - - Initialize a new instance of with the pattern specified. - - - - - - Initialize object options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Create the used to parse the pattern - - the pattern to parse - The - - - Returns PatternParser used to parse the conversion string. Subclasses - may override this to return a subclass of PatternParser which recognize - custom conversion pattern name. - - - - - - Produces a formatted string as specified by the conversion pattern. - - The TextWriter to write the formatted event to - - - Format the pattern to the . - - - - - - Format the pattern as a string - - the pattern formatted as a string - - - Format the pattern to a string. - - - - - - Add a converter to this PatternString - - the converter info - - - This version of the method is used by the configurator. - Programmatic users should use the alternative method. - - - - - - Add a converter to this PatternString - - the name of the conversion pattern for this converter - the type of the converter - - - Add a converter to this PatternString - - - - - - Gets or sets the pattern formatting string - - - The pattern formatting string - - - - The ConversionPattern option. This is the string which - controls formatting and consists of a mix of literal content and - conversion specifiers. - - - - - - String keyed object map. - - - - While this collection is serializable only member - objects that are serializable will - be serialized along with this collection. - - - Nicko Cadell - Gert Driesen - - - - String keyed object map that is read only. - - - - This collection is readonly and cannot be modified. - - - While this collection is serializable only member - objects that are serializable will - be serialized along with this collection. - - - Nicko Cadell - Gert Driesen - - - - The Hashtable used to store the properties data - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Copy Constructor - - properties to copy - - - Initializes a new instance of the class. - - - - - - Deserialization constructor - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Gets the key names. - - An array of all the keys. - - - Gets the key names. - - - - - - Test if the dictionary contains a specified key - - the key to look for - true if the dictionary contains the specified key - - - Test if the dictionary contains a specified key - - - - - - Serializes this object into the provided. - - The to populate with data. - The destination for this serialization. - - - Serializes this object into the provided. - - - - - - See - - - - - See - - - - - - See - - - - - - - Remove all properties from the properties collection - - - - - See - - - - - - - See - - - - - - - See - - - - - Gets or sets the value of the property with the specified key. - - - The value of the property with the specified key. - - The key of the property to get or set. - - - The property value will only be serialized if it is serializable. - If it cannot be serialized it will be silently ignored if - a serialization operation is performed. - - - - - - The hashtable used to store the properties - - - The internal collection used to store the properties - - - - The hashtable used to store the properties - - - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - The number of properties in this collection - - - - - See - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - properties to copy - - - Initializes a new instance of the class. - - - - - - Initializes a new instance of the class - with serialized data. - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Because this class is sealed the serialization constructor is private. - - - - - - Remove the entry with the specified key from this dictionary - - the key for the entry to remove - - - Remove the entry with the specified key from this dictionary - - - - - - See - - an enumerator - - - Returns a over the contest of this collection. - - - - - - See - - the key to remove - - - Remove the entry with the specified key from this dictionary - - - - - - See - - the key to lookup in the collection - true if the collection contains the specified key - - - Test if this collection contains a specified key. - - - - - - Remove all properties from the properties collection - - - - Remove all properties from the properties collection - - - - - - See - - the key - the value to store for the key - - - Store a value for the specified . - - - Thrown if the is not a string - - - - See - - - - - - - See - - - - - Gets or sets the value of the property with the specified key. - - - The value of the property with the specified key. - - The key of the property to get or set. - - - The property value will only be serialized if it is serializable. - If it cannot be serialized it will be silently ignored if - a serialization operation is performed. - - - - - - See - - - false - - - - This collection is modifiable. This property always - returns false. - - - - - - See - - - The value for the key specified. - - - - Get or set a value for the specified . - - - Thrown if the is not a string - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - A class to hold the key and data for a property set in the config file - - - - A class to hold the key and data for a property set in the config file - - - - - - Override Object.ToString to return sensible debug info - - string info about this object - - - - Property Key - - - Property Key - - - - Property Key. - - - - - - Property Value - - - Property Value - - - - Property Value. - - - - - - A that ignores the message - - - - This writer is used in special cases where it is necessary - to protect a writer from being closed by a client. - - - Nicko Cadell - - - - Constructor - - the writer to actually write to - - - Create a new ProtectCloseTextWriter using a writer - - - - - - Attach this instance to a different underlying - - the writer to attach to - - - Attach this instance to a different underlying - - - - - - Does not close the underlying output writer. - - - - Does not close the underlying output writer. - This method does nothing. - - - - - - Defines a lock that supports single writers and multiple readers - - - - ReaderWriterLock is used to synchronize access to a resource. - At any given time, it allows either concurrent read access for - multiple threads, or write access for a single thread. In a - situation where a resource is changed infrequently, a - ReaderWriterLock provides better throughput than a simple - one-at-a-time lock, such as . - - - If a platform does not support a System.Threading.ReaderWriterLock - implementation then all readers and writers are serialized. Therefore - the caller must not rely on multiple simultaneous readers. - - - Nicko Cadell - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Acquires a reader lock - - - - blocks if a different thread has the writer - lock, or if at least one thread is waiting for the writer lock. - - - - - - Decrements the lock count - - - - decrements the lock count. When the count - reaches zero, the lock is released. - - - - - - Acquires the writer lock - - - - This method blocks if another thread has a reader lock or writer lock. - - - - - - Decrements the lock count on the writer lock - - - - ReleaseWriterLock decrements the writer lock count. - When the count reaches zero, the writer lock is released. - - - - - - A that can be and reused - - - - A that can be and reused. - This uses a single buffer for string operations. - - - Nicko Cadell - - - - Create an instance of - - the format provider to use - - - Create an instance of - - - - - - Override Dispose to prevent closing of writer - - flag - - - Override Dispose to prevent closing of writer - - - - - - Reset this string writer so that it can be reused. - - the maximum buffer capacity before it is trimmed - the default size to make the buffer - - - Reset this string writer so that it can be reused. - The internal buffers are cleared and reset. - - - - - - Utility class for system specific information. - - - - Utility class of static methods for system specific information. - - - Nicko Cadell - Gert Driesen - Alexey Solofnenko - - - - Private constructor to prevent instances. - - - - Only static methods are exposed from this type. - - - - - - Initialize default values for private static fields. - - - - Only static methods are exposed from this type. - - - - - - Gets the assembly location path for the specified assembly. - - The assembly to get the location for. - The location of the assembly. - - - This method does not guarantee to return the correct path - to the assembly. If only tries to give an indication as to - where the assembly was loaded from. - - - - - - Gets the fully qualified name of the , including - the name of the assembly from which the was - loaded. - - The to get the fully qualified name for. - The fully qualified name for the . - - - This is equivalent to the Type.AssemblyQualifiedName property, - but this method works on the .NET Compact Framework 1.0 as well as - the full .NET runtime. - - - - - - Gets the short name of the . - - The to get the name for. - The short name of the . - - - The short name of the assembly is the - without the version, culture, or public key. i.e. it is just the - assembly's file name without the extension. - - - Use this rather than Assembly.GetName().Name because that - is not available on the Compact Framework. - - - Because of a FileIOPermission security demand we cannot do - the obvious Assembly.GetName().Name. We are allowed to get - the of the assembly so we - start from there and strip out just the assembly name. - - - - - - Gets the file name portion of the , including the extension. - - The to get the file name for. - The file name of the assembly. - - - Gets the file name portion of the , including the extension. - - - - - - Loads the type specified in the type string. - - A sibling type to use to load the type. - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified, it will be loaded from the assembly - containing the specified relative type. If the type is not found in the assembly - then all the loaded assemblies will be searched for the type. - - - - - - Loads the type specified in the type string. - - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified it will be loaded from the - assembly that is directly calling this method. If the type is not found - in the assembly then all the loaded assemblies will be searched for the type. - - - - - - Loads the type specified in the type string. - - An assembly to load the type from. - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified it will be loaded from the specified - assembly. If the type is not found in the assembly then all the loaded assemblies - will be searched for the type. - - - - - - Generate a new guid - - A new Guid - - - Generate a new guid - - - - - - Create an - - The name of the parameter that caused the exception - The value of the argument that causes this exception - The message that describes the error - the ArgumentOutOfRangeException object - - - Create a new instance of the class - with a specified error message, the parameter name, and the value - of the argument. - - - The Compact Framework does not support the 3 parameter constructor for the - type. This method provides an - implementation that works for all platforms. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Lookup an application setting - - the application settings key to lookup - the value for the key, or null - - - Configuration APIs are not supported under the Compact Framework - - - - - - Convert a path into a fully qualified local file path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - The path specified must be a local file path, a URI is not supported. - - - - - - Creates a new case-insensitive instance of the class with the default initial capacity. - - A new case-insensitive instance of the class with the default initial capacity - - - The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. - - - - - - Gets an empty array of types. - - - - The Type.EmptyTypes field is not available on - the .NET Compact Framework 1.0. - - - - - - The fully qualified type of the SystemInfo class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Cache the host name for the current machine - - - - - Cache the application friendly name - - - - - Text to output when a null is encountered. - - - - - Text to output when an unsupported feature is requested. - - - - - Start time for the current process. - - - - - Gets the system dependent line terminator. - - - The system dependent line terminator. - - - - Gets the system dependent line terminator. - - - - - - Gets the base directory for this . - - The base directory path for the current . - - - Gets the base directory for this . - - - The value returned may be either a local file path or a URI. - - - - - - Gets the path to the configuration file for the current . - - The path to the configuration file for the current . - - - The .NET Compact Framework 1.0 does not have a concept of a configuration - file. For this runtime, we use the entry assembly location as the root for - the configuration file name. - - - The value returned may be either a local file path or a URI. - - - - - - Gets the path to the file that first executed in the current . - - The path to the entry assembly. - - - Gets the path to the file that first executed in the current . - - - - - - Gets the ID of the current thread. - - The ID of the current thread. - - - On the .NET framework, the AppDomain.GetCurrentThreadId method - is used to obtain the thread ID for the current thread. This is the - operating system ID for the thread. - - - On the .NET Compact Framework 1.0 it is not possible to get the - operating system thread ID for the current thread. The native method - GetCurrentThreadId is implemented inline in a header file - and cannot be called. - - - On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this - gives a stable id unrelated to the operating system thread ID which may - change if the runtime is using fibers. - - - - - - Get the host name or machine name for the current machine - - - The hostname or machine name - - - - Get the host name or machine name for the current machine - - - The host name () or - the machine name (Environment.MachineName) for - the current machine, or if neither of these are available - then NOT AVAILABLE is returned. - - - - - - Get this application's friendly name - - - The friendly name of this application as a string - - - - If available the name of the application is retrieved from - the AppDomain using AppDomain.CurrentDomain.FriendlyName. - - - Otherwise the file name of the entry assembly is used. - - - - - - Get the start time for the current process. - - - - This is the time at which the log4net library was loaded into the - AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime - this is not the start time for the current process. - - - The log4net library should be loaded by an application early during its - startup, therefore this start time should be a good approximation for - the actual start time. - - - Note that AppDomains may be loaded and unloaded within the - same process without the process terminating, however this start time - will be set per AppDomain. - - - - - - Text to output when a null is encountered. - - - - Use this value to indicate a null has been encountered while - outputting a string representation of an item. - - - The default value is (null). This value can be overridden by specifying - a value for the log4net.NullText appSetting in the application's - .config file. - - - - - - Text to output when an unsupported feature is requested. - - - - Use this value when an unsupported feature is requested. - - - The default value is NOT AVAILABLE. This value can be overridden by specifying - a value for the log4net.NotAvailableText appSetting in the application's - .config file. - - - - - - Utility class that represents a format string. - - - - Utility class that represents a format string. - - - Nicko Cadell - - - - Initialise the - - An that supplies culture-specific formatting information. - A containing zero or more format items. - An array containing zero or more objects to format. - - - - Format the string and arguments - - the formatted string - - - - Replaces the format item in a specified with the text equivalent - of the value of a corresponding instance in a specified array. - A specified parameter supplies culture-specific formatting information. - - An that supplies culture-specific formatting information. - A containing zero or more format items. - An array containing zero or more objects to format. - - A copy of format in which the format items have been replaced by the - equivalent of the corresponding instances of in args. - - - - This method does not throw exceptions. If an exception thrown while formatting the result the - exception and arguments are returned in the result string. - - - - - - Process an error during StringFormat - - - - - Dump the contents of an array into a string builder - - - - - Dump an object to a string - - - - - The fully qualified type of the SystemStringFormat class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Implementation of Properties collection for the - - - - Class implements a collection of properties that is specific to each thread. - The class is not synchronized as each thread has its own . - - - Nicko Cadell - - - - The thread local data slot to use to store a PropertiesDictionary. - - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property - - the key for the entry to remove - - - Remove a property - - - - - - Clear all properties - - - - Clear all properties - - - - - - Get the PropertiesDictionary for this thread. - - create the dictionary if it does not exist, otherwise return null if is does not exist - the properties for this thread - - - The collection returned is only to be used on the calling thread. If the - caller needs to share the collection between different threads then the - caller must clone the collection before doing so. - - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Gets or sets the value of a property - - - - - - Implementation of Stack for the - - - - Implementation of Stack for the - - - Nicko Cadell - - - - The stack store. - - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - Clears all the contextual information held in this stack. - - - - Clears all the contextual information held in this stack. - Only call this if you think that this tread is being reused after - a previous call execution which may not have completed correctly. - You do not need to use this method if you always guarantee to call - the method of the - returned from even in exceptional circumstances, - for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) - syntax. - - - - - - Removes the top context from this stack. - - The message in the context that was removed from the top of this stack. - - - Remove the top context from this stack, and return - it to the caller. If this stack is empty then an - empty string (not ) is returned. - - - - - - Pushes a new context message into this stack. - - The new context message. - - An that can be used to clean up the context stack. - - - - Pushes a new context onto this stack. An - is returned that can be used to clean up this stack. This - can be easily combined with the using keyword to scope the - context. - - - Simple example of using the Push method with the using keyword. - - using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) - { - log.Warn("This should have an ThreadContext Stack message"); - } - - - - - - Gets the current context information for this stack. - - The current context information. - - - - Gets the current context information for this stack. - - Gets the current context information - - - Gets the current context information for this stack. - - - - - - Get a portable version of this object - - the portable instance of this object - - - Get a cross thread portable version of this object - - - - - - The number of messages in the stack - - - The current number of messages in the stack - - - - The current number of messages in the stack. That is - the number of times has been called - minus the number of times has been called. - - - - - - Gets and sets the internal stack used by this - - The internal storage stack - - - This property is provided only to support backward compatability - of the . Tytpically the internal stack should not - be modified. - - - - - - Inner class used to represent a single context frame in the stack. - - - - Inner class used to represent a single context frame in the stack. - - - - - - Constructor - - The message for this context. - The parent context in the chain. - - - Initializes a new instance of the class - with the specified message and parent context. - - - - - - Get the message. - - The message. - - - Get the message. - - - - - - Gets the full text of the context down to the root level. - - - The full text of the context down to the root level. - - - - Gets the full text of the context down to the root level. - - - - - - Struct returned from the method. - - - - This struct implements the and is designed to be used - with the pattern to remove the stack frame at the end of the scope. - - - - - - The ThreadContextStack internal stack - - - - - The depth to trim the stack to when this instance is disposed - - - - - Constructor - - The internal stack used by the ThreadContextStack. - The depth to return the stack to when this object is disposed. - - - Initializes a new instance of the class with - the specified stack and return depth. - - - - - - Returns the stack to the correct depth. - - - - Returns the stack to the correct depth. - - - - - - Implementation of Stacks collection for the - - - - Implementation of Stacks collection for the - - - Nicko Cadell - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - The fully qualified type of the ThreadContextStacks class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the named thread context stack - - - The named stack - - - - Gets the named thread context stack - - - - - - Utility class for transforming strings. - - - - Utility class for transforming strings. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Write a string to an - - the writer to write to - the string to write - The string to replace non XML compliant chars with - - - The test is escaped either using XML escape entities - or using CDATA sections. - - - - - - Replace invalid XML characters in text string - - the XML text input string - the string to use in place of invalid characters - A string that does not contain invalid XML characters. - - - Certain Unicode code points are not allowed in the XML InfoSet, for - details see: http://www.w3.org/TR/REC-xml/#charsets. - - - This method replaces any illegal characters in the input string - with the mask string specified. - - - - - - Count the number of times that the substring occurs in the text - - the text to search - the substring to find - the number of times the substring occurs in the text - - - The substring is assumed to be non repeating within itself. - - - - - - Characters illegal in XML 1.0 - - - - - Impersonate a Windows Account - - - - This impersonates a Windows account. - - - How the impersonation is done depends on the value of . - This allows the context to either impersonate a set of user credentials specified - using username, domain name and password or to revert to the process credentials. - - - - - - Default constructor - - - - Default constructor - - - - - - Initialize the SecurityContext based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The security context will try to Logon the specified user account and - capture a primary token for impersonation. - - - The required , - or properties were not specified. - - - - Impersonate the Windows account specified by the and properties. - - caller provided state - - An instance that will revoke the impersonation of this SecurityContext - - - - Depending on the property either - impersonate a user using credentials supplied or revert - to the process credentials. - - - - - - Create a given the userName, domainName and password. - - the user name - the domain name - the password - the for the account specified - - - Uses the Windows API call LogonUser to get a principal token for the account. This - token is used to initialize the WindowsIdentity. - - - - - - Gets or sets the impersonation mode for this security context - - - The impersonation mode for this security context - - - - Impersonate either a user with user credentials or - revert this thread to the credentials of the process. - The value is one of the - enum. - - - The default value is - - - When the mode is set to - the user's credentials are established using the - , and - values. - - - When the mode is set to - no other properties need to be set. If the calling thread is - impersonating then it will be reverted back to the process credentials. - - - - - - Gets or sets the Windows username for this security context - - - The Windows username for this security context - - - - This property must be set if - is set to (the default setting). - - - - - - Gets or sets the Windows domain name for this security context - - - The Windows domain name for this security context - - - - The default value for is the local machine name - taken from the property. - - - This property must be set if - is set to (the default setting). - - - - - - Sets the password for the Windows account specified by the and properties. - - - The password for the Windows account specified by the and properties. - - - - This property must be set if - is set to (the default setting). - - - - - - The impersonation modes for the - - - - See the property for - details. - - - - - - Impersonate a user using the credentials supplied - - - - - Revert this the thread to the credentials of the process - - - - - Adds to - - - - Helper class to expose the - through the interface. - - - - - - Constructor - - the impersonation context being wrapped - - - Constructor - - - - - - Revert the impersonation - - - - Revert the impersonation - - - - - - The log4net Global Context. - - - - The GlobalContext provides a location for global debugging - information to be stored. - - - The global context has a properties map and these properties can - be included in the output of log messages. The - supports selecting and outputing these properties. - - - By default the log4net:HostName property is set to the name of - the current machine. - - - - - GlobalContext.Properties["hostname"] = Environment.MachineName; - - - - Nicko Cadell - - - - Private Constructor. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - The global context properties instance - - - - - The global properties map. - - - The global properties map. - - - - The global properties map. - - - - - - Provides information about the environment the assembly has - been built for. - - - - Version of the assembly - - - Version of the framework targeted - - - Type of framework targeted - - - Does it target a client profile? - - - - Identifies the version and target for this assembly. - - - - - The log4net Logical Thread Context. - - - - The LogicalThreadContext provides a location for specific debugging - information to be stored. - The LogicalThreadContext properties override any or - properties with the same name. - - - The Logical Thread Context has a properties map and a stack. - The properties and stack can - be included in the output of log messages. The - supports selecting and outputting these properties. - - - The Logical Thread Context provides a diagnostic context for the current call context. - This is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The Logical Thread Context is managed on a per basis. - - - The requires a link time - for the - . - If the calling code does not have this permission then this context will be disabled. - It will not store any property values set on it. - - - Example of using the thread context properties to store a username. - - LogicalThreadContext.Properties["user"] = userName; - log.Info("This log message has a LogicalThreadContext Property called 'user'"); - - - Example of how to push a message into the context stack - - using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) - { - log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); - - } // at the end of the using block the message is automatically popped - - - - Nicko Cadell - - - - Private Constructor. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - The thread context properties instance - - - - - The thread context stacks instance - - - - - The thread properties map - - - The thread properties map - - - - The LogicalThreadContext properties override any - or properties with the same name. - - - - - - The thread stacks - - - stack map - - - - The logical thread stacks. - - - - - - This class is used by client applications to request logger instances. - - - - This class has static methods that are used by a client to request - a logger instance. The method is - used to retrieve a logger. - - - See the interface for more details. - - - Simple example of logging messages - - ILog log = LogManager.GetLogger("application-log"); - - log.Info("Application Start"); - log.Debug("This is a debug message"); - - if (log.IsDebugEnabled) - { - log.Debug("This is another debug message"); - } - - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - Returns the named logger if it exists. - - Returns the named logger if it exists. - - - - If the named logger exists (in the default repository) then it - returns a reference to the logger, otherwise it returns null. - - - The fully qualified logger name to look for. - The logger found, or null if no logger could be found. - - - - Returns the named logger if it exists. - - - - If the named logger exists (in the specified repository) then it - returns a reference to the logger, otherwise it returns - null. - - - The repository to lookup in. - The fully qualified logger name to look for. - - The logger found, or null if the logger doesn't exist in the specified - repository. - - - - - Returns the named logger if it exists. - - - - If the named logger exists (in the repository for the specified assembly) then it - returns a reference to the logger, otherwise it returns - null. - - - The assembly to use to lookup the repository. - The fully qualified logger name to look for. - - The logger, or null if the logger doesn't exist in the specified - assembly's repository. - - - - Get the currently defined loggers. - - Returns all the currently defined loggers in the default repository. - - - The root logger is not included in the returned array. - - All the defined loggers. - - - - Returns all the currently defined loggers in the specified repository. - - The repository to lookup in. - - The root logger is not included in the returned array. - - All the defined loggers. - - - - Returns all the currently defined loggers in the specified assembly's repository. - - The assembly to use to lookup the repository. - - The root logger is not included in the returned array. - - All the defined loggers. - - - Get or create a logger. - - Retrieves or creates a named logger. - - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The name of the logger to retrieve. - The logger with the name specified. - - - - Retrieves or creates a named logger. - - - - Retrieve a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The repository to lookup in. - The name of the logger to retrieve. - The logger with the name specified. - - - - Retrieves or creates a named logger. - - - - Retrieve a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The assembly to use to lookup the repository. - The name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Get the logger for the fully qualified name of the type specified. - - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Gets the logger for the fully qualified name of the type specified. - - The repository to lookup in. - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Gets the logger for the fully qualified name of the type specified. - - The assembly to use to lookup the repository. - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shuts down the log4net system. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in all the - default repositories. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - Shutdown a logger repository. - - Shuts down the default repository. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - default repository. - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - The repository to shutdown. - - - - Shuts down the repository specified. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository. The repository is looked up using - the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - The assembly to use to lookup the repository. - - - Reset the configuration of a repository - - Resets all values contained in this repository instance to their defaults. - - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - - - - Resets all values contained in this repository instance to their defaults. - - - - Reset all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - The repository to reset. - - - - Resets all values contained in this repository instance to their defaults. - - - - Reset all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - The assembly to use to lookup the repository to reset. - - - Get the logger repository. - - Returns the default instance. - - - - Gets the for the repository specified - by the callers assembly (). - - - The instance for the default repository. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The repository to lookup in. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The assembly to use to lookup the repository. - - - Get a logger repository. - - Returns the default instance. - - - - Gets the for the repository specified - by the callers assembly (). - - - The instance for the default repository. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The repository to lookup in. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The assembly to use to lookup the repository. - - - Create a domain - - Creates a repository with the specified repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to will return - the same repository instance. - - - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - Create a logger repository. - - Creates a repository with the specified repository type. - - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The created will be associated with the repository - specified such that a call to will return - the same repository instance. - - - - - - Creates a repository with the specified name. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name. - - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - The specified repository already exists. - - - - Creates a repository for the specified assembly and repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - - Creates a repository for the specified assembly and repository type. - - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - - Gets the list of currently defined repositories. - - - - Get an array of all the objects that have been created. - - - An array of all the known objects. - - - - Looks up the wrapper object for the logger specified. - - The logger to get the wrapper for. - The wrapper for the logger specified. - - - - Looks up the wrapper objects for the loggers specified. - - The loggers to get the wrappers for. - The wrapper objects for the loggers specified. - - - - Create the objects used by - this manager. - - The logger to wrap. - The wrapper for the logger specified. - - - - The wrapper map to use to hold the objects. - - - - - Implementation of Mapped Diagnostic Contexts. - - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - The MDC class is similar to the class except that it is - based on a map instead of a stack. It provides mapped - diagnostic contexts. A Mapped Diagnostic Context, or - MDC in short, is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The MDC is managed on a per thread basis. - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - Gets the context value identified by the parameter. - - The key to lookup in the MDC. - The string value held for the key, or a null reference if no corresponding value is found. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - If the parameter does not look up to a - previously defined context then null will be returned. - - - - - - Add an entry to the MDC - - The key to store the value under. - The value to store. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Puts a context value (the parameter) as identified - with the parameter into the current thread's - context map. - - - If a value is already defined for the - specified then the value will be replaced. If the - is specified as null then the key value mapping will be removed. - - - - - - Removes the key value mapping for the key specified. - - The key to remove. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Remove the specified entry from this thread's MDC - - - - - - Clear all entries in the MDC - - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Remove all the entries from this thread's MDC - - - - - - Implementation of Nested Diagnostic Contexts. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - A Nested Diagnostic Context, or NDC in short, is an instrument - to distinguish interleaved log output from different sources. Log - output is typically interleaved when a server handles multiple - clients near-simultaneously. - - - Interleaved log output can still be meaningful if each log entry - from different contexts had a distinctive stamp. This is where NDCs - come into play. - - - Note that NDCs are managed on a per thread basis. The NDC class - is made up of static methods that operate on the context of the - calling thread. - - - How to push a message into the context - - using(NDC.Push("my context message")) - { - ... all log calls will have 'my context message' included ... - - } // at the end of the using block the message is automatically removed - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - Clears all the contextual information held on the current thread. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Clears the stack of NDC data held on the current thread. - - - - - - Creates a clone of the stack of context information. - - A clone of the context info for this thread. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - The results of this method can be passed to the - method to allow child threads to inherit the context of their - parent thread. - - - - - - Inherits the contextual information from another thread. - - The context stack to inherit. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - This thread will use the context information from the stack - supplied. This can be used to initialize child threads with - the same contextual information as their parent threads. These - contexts will NOT be shared. Any further contexts that - are pushed onto the stack will not be visible to the other. - Call to obtain a stack to pass to - this method. - - - - - - Removes the top context from the stack. - - - The message in the context that was removed from the top - of the stack. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Remove the top context from the stack, and return - it to the caller. If the stack is empty then an - empty string (not null) is returned. - - - - - - Pushes a new context message. - - The new context message. - - An that can be used to clean up - the context stack. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Pushes a new context onto the context stack. An - is returned that can be used to clean up the context stack. This - can be easily combined with the using keyword to scope the - context. - - - Simple example of using the Push method with the using keyword. - - using(log4net.NDC.Push("NDC_Message")) - { - log.Warn("This should have an NDC message"); - } - - - - - - Removes the context information for this thread. It is - not required to call this method. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - This method is not implemented. - - - - - - Forces the stack depth to be at most . - - The maximum depth of the stack - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Forces the stack depth to be at most . - This may truncate the head of the stack. This only affects the - stack in the current thread. Also it does not prevent it from - growing, it only sets the maximum depth at the time of the - call. This can be used to return to a known context depth. - - - - - - Gets the current context depth. - - The current context depth. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - The number of context values pushed onto the context stack. - - - Used to record the current depth of the context. This can then - be restored using the method. - - - - - - - The log4net Thread Context. - - - - The ThreadContext provides a location for thread specific debugging - information to be stored. - The ThreadContext properties override any - properties with the same name. - - - The thread context has a properties map and a stack. - The properties and stack can - be included in the output of log messages. The - supports selecting and outputting these properties. - - - The Thread Context provides a diagnostic context for the current thread. - This is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The Thread Context is managed on a per thread basis. - - - Example of using the thread context properties to store a username. - - ThreadContext.Properties["user"] = userName; - log.Info("This log message has a ThreadContext Property called 'user'"); - - - Example of how to push a message into the context stack - - using(ThreadContext.Stacks["NDC"].Push("my context message")) - { - log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); - - } // at the end of the using block the message is automatically popped - - - - Nicko Cadell - - - - Private Constructor. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - The thread context properties instance - - - - - The thread context stacks instance - - - - - The thread properties map - - - The thread properties map - - - - The ThreadContext properties override any - properties with the same name. - - - - - - The thread stacks - - - stack map - - - - The thread local stacks. - - - - - diff --git a/source/packages/log4net.2.0.0/log4net.2.0.0.nupkg b/source/packages/log4net.2.0.0/log4net.2.0.0.nupkg deleted file mode 100644 index 1eae88e9d02a1ab028721cff6df31f738650514f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2717357 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 z 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

    PX9$o4ZTV22-Ixb{)srmk!=}Fc3Jfc;xO``=L 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 -lwd~YV$i(N0hbx-x7{aZc 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�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 z�a`+L?1YTe7!#l^vFx`5IF8UVGmOw{2NF!vW$>lu&+1imtrqWVc7A0&@Fy+`> zzUY=veC?A)I&^iA0-2KGAL@sm12f^yFSm9MAm=z2fa^nH zz&i&7CbSQ7jzyqd;&%hCe|V&Mt_)VYe-b2aJ5SAl_5rS7XM0N!kkQ+@)BCVX8Yo2v z7vLBlg!uU5@hy~K8F@H&-N7|xas`9Gg{p6FQRZCD-SLAkPRG^)5Qv7`+oqAV`m4*i zd&T~1EbLW;6b%w>tEHs)N@VK>%P!*=H9G*x`~)=Ivy#E3n1jkMJxR2CsQthPUBUP7 zCoc2%=Zn+=PEVguEgpX}#1DmUCjcY=jrc8emGk~OPWU$`xIfEeZ|)Nl z96a)0kd2^X4Mv6`eF1Y?yXOaecrguCRmrIYRhYnG>vLgOFj7K>g$Ei?JL<=e{Gf`8 zwTrpmH2;MN4IC3XJ4>Dg_kDKj08fWf?BAn875|<5+x5ofdwwASl>Yz%^6D-J6$q=1 zpbb>eJuRZdX#I!k@9PUkAU2EepCVAwJqr*u0`95SaB^V^I$k?OqHa_M5;h0N1wS3H zDNeve1D24l>p(GTpw|K3Zo!L?#`^p}IL3nz?gzde*xWBMu>Vx?J$x>441D~|1b$r+ z+;6w|^e}lchqJiBS#%7!b~w5|C;LeJ09`G$kO2re6YNXE z8@>dSwP@)(^H=m<2#09!nFG858i#<_@81HEcH$;|cQ#Lq&e2f*>Xq0*a`4s(Ie5rq zPY~(e0O;^eLL#8(f31JRN&W9`T|IdgO&--)(v9r@o8=qeJq#fL-GST=&H@oI#4dC- z=aLff7PSb*EV&?zsJnIx)8UK3$$iQ|`aq9Qp9~N_(0j;j2C@Y#c@BOOhF=3NVOqEQ zLu=N8zu$tdUx853G5454I=wL~cGjYXtmCU&tA5CO%?_sLjaxgPgY#=cJGt1wY`=HT zFHM4Sate^h?^j4*Yxj+cV)xZ15Y&37t}7ms`GPYExLHDk{x=;R12NmwV5zI(1m%}|f)D(MYfB7kRm<5W*RA4#E|z(-%CEVL7XpM4htc61K*YFr{#&)8K9M?TREhTEE)F;N)q)jC|4YckI2vS4?Jdi=TE9bu& z?pDC`tde)UA?XU-@I(BkYYCzIySdc|BVEFCni;g7O~4&42&3D5`Vn%UVbrE&WXo=0Nc|m zF~mc1EiN>z?q21G090XqSMdLFbmeg|ynkG}rNdP!*+O!q(1Fxa6hh&v5Dh|D*<6Kc zMv6*06uOXHp|Xx@5l#1@`&_j&rF3nzZQIr!bNrruf2_^a?rV4Ed7jVv`aF|hg&wN! zwT{e{n1Um>&k7lY9{Q>@eUUTHdsP>)bjgNlOEFv(NHHQe&uaU!`)Y#nWF@#b6|o{d zGYLl21}51vrKJ!i)qb0PPA5wpBHuR`GTU0(N*18C{p<&+Enw9PmcQ~kjYcE9k1a_{ zTfudrwCtogH4yT`qQDhdN%Y4g#LWMjO7Vgt|BIsTfH`GyE-`L-Gyh zQ0i9wV+hXCIa+&AZyw2WIv`GeHv!KHsfG$h!p#3MU#0#@aLk{s{39AMNw-0~Zh=9Y zoNq^7g`;ww)Ma72Ud~>kM=UK`y6Cj4E7~y;qpv>JjcT8b&B7L-c6iQo_2)Ci+_A*| zhnU`?7?)&vm^o=&5dY*gwi7OGCUZCD6#R?Rl4ONyUb8|R)JEbVA=~KskF~#sRsEEz zpp=1p!lrW7J@~Rj!boW|9REigy+M0!{H@EHu!McOx(4gW9NkH5B1Tz&yudoyk{l`y zE2zgi>E25P`ZF$pDblyr33t0G>UZ(|Z7daV)K344e|1U4ysQq2xi}{iegbu~cmB5` z_?v!g%l@Ei=;v{@=^mMgZJ3B9sH{C5J}dvYguIGGrM`v`Ms@I~@5#GAWuUWm#aq8B5u@9W^tcE{3cUBT!dbWP4Iv3Av>}9Ki zZB+KIM;YKX;D{eMqSlW4y{=&aux6)S+q#gaqKoxg$ETLPpKSw9oZjV<`G*n)*)KVy z%k0Nc#`Ehk(R{kJ$3(Zj)qNE{M>@O^8Rec2a?cn4IM78!ztn+k2XVH4_k1Gy)=Fu4 z-QeUi67l#j!Cbti1Qapnh!^k^shKRNYtXj|Yh_5w=UFV6u(6X|Ws?e*cICo#Q1R_# zyAwO-CeA|_>t|YQbXcT}#;B}iZ@S|yWZa)48=C@Uwv7v14$4!?0jQD9yJj&v)NaFl z7vv9A5&flsg>qR!MkXB8mrCiSx+ac#EMM}d35pj_y^_2Qbz9?XME(2DW{EQrHBKWe zCq`wnj!)Yn$tfKVR2#QR*G5C?`E2d;ZQqH-H^)HX#5|Wq(xn-K238hw|IPy@GCcTp zek|ma=~?AwR#?^lZV|RlVu}zha39!ls(f19g!Ro509^9FbPko$L>9D5>`4b@VCl zC?oW`=_4HR6J3Y9$?sCdmWUdzas7D`ZV5XH(%^WgIPwUrTr7u7KfYKyhh+D2u+exL zWm(ciYJ8rDZu?#e_p{0$R~u>KX18Pve9sW#LwF{tNmD{cId7lJ|A1T;E$$rkDw%_R zZhCU;B0e+dTY)GvMMk7O^M}f0~p8Sn!U70cyE~DPZ9C6-zqF z;H`YDbl{NKYDHw`&V{?--Mw>PP@7(p##)NAR9e{8$-Q%aMGfXGi_6n4r{XSdb! z8|zD}H+7S$%4@&g{2J+Yc}gUjH8{S^P`i%Z?-^lfJ`~yFdPbE1;IERFbRkX1s12T2 zVY?%0SrOI=;8Nxgu8a!IX4VS@T=)c;*>S~57Dh?gdZwX54sI(D`jeK?2nuz-@2^Gq z018vrlhUEcwVq741`_&f+2gm-GTL|^p6r`6fW#m**pP%(IlLwT;j@B2JnH>K>b&g^ zz20w~ZTof@K*~r+zG;j{+yTQz#E|paIpmrL#S9O!a<+{dhKMsNSCM6o!9m6^q^5B7 ziifnzp^~DLOt_p5Pah+`0T?FZHgf?g_$YM-w-Bk~%{ zneofUF=_dND{>@P)mL+ZDgVobG#)FmP$^Hrq?ar1O~i9F~1+==p6!)7x(i6X71xsvr~gcm_wkGJyJ zl9KhIhQHKjM8Rhy(Q0bqne0u$o(wyP0zSWfbkPls>7V{u$aNJveHyzP3K8B#zrwE)3DR}*yy{=9 zoQLrW_{J7&jJJ8%U}Qpp5-5XeGm!a(bLRSzSgcg zd;##1Q$g;j_%~7NPP&EaghyN^&D?v;sT zEZ?kC&g}-u!=ni%jP~9g^}PU{MQ3kNZGQ}|oz)@j(>qGs)JK^ex3p1DqAsM-cq<@} zN8#X3L4doOME2qEPcx6kudvY%Kzz_^yGrgq1V26teu(;UCy3BQGkaWSB5^*-{zZQRcmir-N$e)&1`0 zv>y)sp6PA(JU7+XBgK(a=RxZ}I!~{`W~3>E(nEU0fU7)|f&x|tCYjR#{lB=YhI*X2O8ZAq8Rj8rPpSAlf7qv;XLwva>3feeY z#smrUA&um<2g(%2*>6deSA8rQBk=Uez3uh>X!tZD7oB7YWrszuI}e~IJ62i4qIM?5aBWUmw$qvOi z(#I1D>4Po`HOsHRi=Meg$nQ?v@VE@ny8Q=NT|3g;$@!u)`g}qv^JUqMDYP!q%)B~R zZVWZOtYY-{Gncs%@^du&G{)2a_OrdYz#G-B65DmR;p&dUv|#}M54I&le1IFkRasT@ zYvYUUS4QB^kdRYSeEeX>#XS? zl@2^NqC42)R(B4JI~SWdp4fE#pVFhd9X7LCM;~;ujJ`ZDI6{Ul+S1~FL`VA3pwQNk9ZU3>aB$Yb8(@qO2@5=7FyNmLM0y6 zPOr{ zKG4j!$WFhKy0e%sj2KMn;gCKP@DPU-SzI6Inm4rowkZZMZkRrD_s)Nm;|K?dh5vke z`81bY@N*pBeDXwHO-AgMas4C=&P$bsir0c`=u<32Ye5mY>?Wui_s#R_sirM{yUeDn z9)C;7az5N)O+*#RExxC+8Zk(EK`)ySFfMkk9+NQgRI}Hvz%o1^@&W&!ER-Q9UKZ0M zY&L!JAy1Mrj{?5S$1mYW;erqE=uhk}AVCV}r-_Ex$5V2)*~@su7H^AVml84=W6n=Q zJ|jG6OcBQ0PrUcU_5KFnhtV>oj4|JXjQsk?%yFI5LrDIH)CN^rtMj{8k-f!P>Esm= zfrVcYIkdFg+&o=$ThYYqLjeV~I_QLEQj3KjMb^pDsKeQB^arOR97l~`M4D@&Kv|&G zZoPhjB(J`sKbIA<+C=^*HN*_ZmpuM55QRcc_5_H+#4`E{v1jkWv&+PX#)b(!5vI|2 zB-rA&w%4g6-_45Lj^^)63<-RNdF0P{rcR}K$wa&9v%A${CB2~l3vtt8i?Oq~cgYU( z?ICG(h?MgV!L47@$vv5j9}4TfE-7a2_!>fQ?ffQ+PNv*eQRr6k&3i$eX35^?F+#}U zIRzzC$uDQaIhieueYAiYAnf6BZzb;g{F67lf!C-tnxHcE8u(6%dPyy=Tjp9O8_^0vB9wY0_j$Kh$D>`4#{i?3~3DA=3yj z?uHxzR4xL{&3c;OGohLJmqX@TZ)5)f+Mgj|mEVu-9F@6poz7%LHqSouyZAxiiZN1O zuX(2V*=-v*y$h0z0?!?%vQKIwArR)U_ac52i4r8-S}e7Fo*K4x;-K=$N-#3Tue_iA z1#Cxe`gh~b2xS>ZScddH4Iu&=>&n;sdO>U23m1KT03~SaQz2OEGtY@<`oB_t`+xAd z+`GG#X|PLsTkx(Y`n@xKV`S^8_Jf_S^`G3NDTg+i>9%3j>Eq08_|ma+oyd1Uj@{$A-Vqv?BAW8x_xTTZpvyU}{IL^?ey$4>fhK4nI{>faVC_32TY{T%z3z$C0) z;buOA#d7dmoJD39Ad4e-uWrmAj zB8!?qM>3`IZyhorT(uO4c*K;5=i;1^hc0$IjpSi{F2qr|I{?*%37-MZ)+B;`ssaG` zV5KRok4rv6^P_KRZw9E5B@Ho0n=8#=XW9-;04bSe0uM$LB#oc{n`shdsq>2y{I`l0 zkww*PjX(Y+&Kb{I5Eb4Q2b6M6r9V>=Ysl1(U05#Zd_(cVmN9+uFxtUNoqo-sY?H(o ztz*fV$zQ{BeKlrpJI9MD;4fg1e$9OT7J~FcaGDBhfFlEp857q5M8w66B|_u}T_w?j z-ZS}N!x2(1A1;Hi**1MSZ*N(Nc^+u<%lU|@oKX}UR>>#KsJH_v-3O0lg1fK&U5y{V zbf&JK|Juw5wWq`m8=-))n=#;_i7vn1sj+q8E(o;>l=s>{n)d4^<~X~$%)U0sTI&P1W38!TM*rVxW>r)^km(y!(_#?sLpr1gj21rotr_f)7Df1BuI|Xk?i9O#h>_JCw2wJIvr}ZW**mk6AGH&6Oe@Ovi6PYdk4UHH-cAV5$ zlZdu3n~iEl3*fp~J0x!Vt-w!yseoH7b=egbhc*D&$F>k2w=+|}56$1ZYD>&~lwdY4 zE;HGA4?7mFLCIZz`{@~kq_+Re5HTlG_AR~jJg2ApN-3ED)4DbnEt;f#sHV}wsG=JS zH=L_2Cfpo51}JRtsnPWMI*R06N$pOfBT?4Pof%N1&<`*-x$zy=>ceR7X&k~D|Mr%q?D5+)Gs-{#6Z$UA_wiu+@nTu?GuMam%E zC=N^AG2Lay8cK?6uv^6V`jWY2y`OINB;AphqP&a5j*X|_O5dBs+%p}$?0-s{a1;>C z#5rv8H+$rmO zUITRd_tYD$E-cYbRwZa-?#S)YQ?EW5a4_C!jJLKOOn9gK%6@C2=G1+Q5=}bKkm*+}r|=lrc$t+zLM=N|(Ej-Hdk} zt%05Y^0Be<>3d~S4=_YH#hX7ud_bOa$t$^wO8DsgeIa7PdM!>eaAg);wRP5iZd4Tb zLoxd;QjRTnjO$amjul8Z_MQytd4YBKQq1$<1*c)EX3p_br!b&n;7mG7(%@@U8RHTC*0 z@z|C-(~llL{LZw%@z?f|2LAS&C+$<{8lG|;WX?OL>Mg;1X5g{EW56>IN5bmy-dx~4 zs8?)SGscWxfPd`VS5~t66}hlkVDcOasYB9^i=kZ$gbW{|SDaHkp1o9%lyO7qfV@mTE-4U;6o3t<4>;5$b6g*nR(zn!=(z;#VC=Y)=92RFlbu$zLGg`6o0bs@MZa}Sr~9VULjiND;ci+h_-{q(spT7sM1E0<}vFQ zbQw}!^X>exiyH%meFrN{URh??Y-(#M7Z-lt{$+1j$=I9mi3;->kJxF~?W|_JCfyOW zgPQ}(--TQjpilSfYwK*Cj<)f~7=bg721g@C{K7 zR^CY@DyE=N9pEVH(EQH5>YViX3YY>1#n<`{jHwouV{$sHjlMA zxf+>UNcFTsn^mG2?AlQ!61OBnu$kmsIjIN<>Vrw6#*kHpm8te01|RGoD?5OuOKq2a z27-81{-t@Ah8ToDax)DCHfW6@77um%i<1BvY^u{*roPpk zl%l~=HwIYPAzlASDVf8=CfRE@5mlw9iNnCaTabLH2L^?vt!+40gFmw2;YWGuQz|8Pz1-~OYc-ebpw0bA}I3Qpc| zGEb*A4L4?4BMUbrGBtO&PD?~J07Yd}Nr^o)K-S*kPk|jw z0)xf6fKONTXK^dp;{AOJ7kq^2Y41CvYDkdC@+t0&X5`pCThXfvHztj(cpE{V;U&p} zD``B|@JT7{#;tDD>S#Kr~QRROP?2F)D8{>CWrV(?z*LjHd@NR4sf z0fosymbp6ePIy4%eyLAu484n_jF%lHTJUZB8uSjGw44r&u-ANSWmSIdhdzfni#XD5 z-7`YYRqlBCe}ssAMrb`VTFSKeqRa~w*Iv>!owhKzuy)`F?Zb#H2Z_4Zp8x0~IH5A; zN%#DM*Qh$`)FET4R-S~H8J6B0*xWRUDxTGYyV=B#BoyH)T$1R||7wvb{(s`2XB61F zPk*fCxuaINjo33Ey>OGTTeNE7>Tg=*Z*U7u&zI*7J+Jw$BI;)hW7V-p6f>&w2x%&{ zG44g4WT7ooH&b|c_n{we@CXg@&NI?--7;@V1z7`7R&*({uXo7w$I%VDN&Wbx6nD*4 zw4)W+~pV zUklt6iTaZchK-R0o&&4viCKa_XHZpBb^O4lH(;FaXUaH~Xy$jO?m@K6?50YiRO9}f zVk7yQ>d-Z|fHyKfMh%s&E|5buogr!WW;Yo*TW79ryuK&*eDqDfrO>iFV2 zqnsYk?Fj%hmZ|uSrWd&1%*ko4#JiIc?{uIs^|Bc2amNl1ed4gkyo}c-iMQx-G<+l4 z<5E%;E7$p_QARiBQ#;(0mgNWnybRG+vtD<2O-H>^+AIkv25AXRKiT4V_d8+fgn35Q zdL$AoO|o&$ubl1@w%=oMNO{qp!GrVp&`u^?*C=D_^pO9Z6EQfHg6Jr@Yu5CHP@>;il z+%%y=YPoe{q@j-QKh7~Dn}$^2IYh?caA)n7{b-dzyo1UWw!P63WIw^w@0VypK)1Q*5!>A3tV3ZwFF8T1sE{ri&slmpR{q>H#7C{FS==x6zk;pzgQ!b z=8<~cW>GMe^Wikkz)AbmgUaYE?J{IQw|9sx_EFF3m_1q&67|(0``hKZLeh4ikERu3 zD_vvo&jjsd77tWocc1AuS1r6EFN>FHOuT@+y1$dHO72hH|IU70yZQa7&dB;NANCQq$Or5A5s!ga<)rr!GjlSxXuW!#sJ!qvWeK80OdjpiGU@~_CZ8wH zj>jC*qSTQeQtam7Z|S;w9olv}hki>95@&iKOKr5MLY7SJ(5s!SU0<@0gBFSBXo2~n znDB`;Hzon>jl=$eu-pzIp8V{UXxoqP6t*pOx1zhz>^@?-^z(HJOLV0^tAt^roi5LE z(FwDfMQ^DLNS3hY8*Tp}r5V0zEPc zN0rR4m%n&st=hT(??C<37{bihm^v+a=OBro12 z#FURexE@^dQ&HP4i`*;iXwnuBL5FcYy~+cV1GJwm;2pi(iP7(dF=J{IkKdD~!;jq& zqgfk+NJi6)X4XLOnW-#8)%o~e7gGk!PP9I|?W%i=^!eAz)(WJ^V?$!+s}iqs>rQ-W zyeRUf+N+5RH}{sCPRQSz_{qDwe` z-Sx?;(u^?aPfcx?>JP*Ne_ZU-ECY0-+xnL@=iqHZuOYFMvyL_|IZLYeY0(a~uV@Xc z-1!4i3931nD{>*Mws!-z`Q*wTl$a2iJ&b{s3qxU<0gvu%Cw-z|DjoKJPi>ThC#-Ct zTfkM!Nya94@tW;hovyF)4V`PO@=?S-e3Z+e;*-x(Cbq{lPO#LHnvf-l;PH48+trT0 zc&&bk_R<%L`dZNm!bXhvF9VC#TvxJ)$0*A|G{RBLpf0+HMy={y)G#@DycuMAWFXyx zmI89_vc-#PGF)kL&9!I^)D-Fy=<3WK2r-%n@jCI6|E6XeTnI&oxZq$ za0{|1bs^fy$7$ZX)SuQV)*)-3P11E6^J1;2t@XXBDqK7}TT*_@ib^~yJizpFgKU?X9P4qMx&gDb#a`s)Q` zNY{-=^CBavb&Q0mYt|zEv?PefmN~|5xiGIJPR^Q|nJ*4oZQ?iaaIvB4o*Qprg&rV0xP8-B z7wQA#m0FfcPAnV-(TB}@N%i&DaUPWm;9pe)|BuYF1GhhuDM$A{X}2HUY5vf)kKKU2 zLl*uVO6oh;Bc)%~J78EJ+@)tQe#DP`BBj0%Sl5j|>PR;o1h)B!PD zkcYZS8N}h9edN(ic_OBeyPrm_{RRL;NEV`qQbB&TQ9}mdL&UmZ@Nk@XSpy({(-wWa zl(hEsC9V6V9!)1#CB661-29YpE*q7VL8Ok#{VYVl2~EZGHoYegRM$);?Eo&sk4E>% z7tSb)Ts3cYI6ldmWVj=xtm6HGl*WzrBJXMK3u+=dvFBT=Xg~&a9_ zfVZEqf{#Mxs`CObdMnt}j(UXdDX5#0{HD@-yMG9|#bv||IcKUDeL6M{CW+#%sa)UB z79a$bpWn?extLFKsc5KMmWZXk9FT-vf0URw`;9qK8paAG?Ln(zrLuaU7#ZN;2uqV< zEcU-A+M!p>{G0&f_9`YL+c4dGkRH6IMi&|J>i8;@E2G~*!4ZuGJ{?52UmTV ztw(6e#r!qXS39!rTQ8!dM&{O_dtBj4s_2t&@1}(WO@6&Nvag%d^-H1?@xHA%qXw1h zB}IcVDtS^>Vn6Yy8lf8H=a{Q}0968eiFpJ{okaF8P{H7sYj69LbsAs$}42O->Mkx)#d00Ur^-xAW6+);_skv-XZXBl10wZ9X) za*56T&i(yWdT71F*#sy$;yvXzebO0L1S$KpImfFsMj9)QMV&F~!E8)s6xY#q#Sv)@_=H|28V%#^+g{_EdDjXadJk zGVBh_^=?SXK!p!jX^(~f@_YhQT$gOhE{vV-~!b&sxKAT)X? zG`pHdiFmPfJBHzVFZ($UIc>_%qmd}*vW8Qe;NdK2i`JC+$CeEAaArlpyO;*xO6+Vw z7O6D(qd>i9SX0Zt4AAARkIx$@FERhB0@CX}ZLE)?D%jSGrtu)j37vIS#E5K*ec8wjt_CE@*Z!=Mf=3pDkpHpvE3s{U)KA9mc{Vir-;di-yrOo zw@KNidlEqDK5BP-hUDrNKHqzUHd{1vx@LbIqw2KW%|Cw~6&m&$ed8t2AY)-xXh?0ZrR&&A*qexn`We%^EM(EzM`B9yw*kxALzl7MB3J?)lcr(N25k-wysHmRJP_H)`A zyHA>EnN300sw3XM=s)J>X=^@!BH#I{9&n?+SFTGo!b3n^99A^mXx@Q|IaCgOp66Z^ zg7abZL(7P)>{5TAoc6NutINTDh1ABWL`X`#PcbfDr%a z@&fVZ+EiB@LNySVq-?00F3y65Siv+>ed;Opz#DN)eK=6S4K6Qh8sW(PpDc^QetVRY zK1dY3%PjpR=&HC*6UTF+(b!AwuTQiEW=ky#A8bTd=!^^aHMD?}(x`qGNNpcRlw=bK z(Y{s}P3pQw1^?4Za*)Uni%Ss=$F5p0xLfiV6~qu$B9_o5z6ofTrkjRiv#2cEfm8zii(il}c7}JIaCz-W+k^ibME<_*cwh5NW_E#iI<8rj=Ss0aYD59NUMk>(`D7s zk4b6f;`l_n|7^wa@05*4UTVTR+hi`_O^+Z=`~~-b_txXDnNNW=@hS#kry{mgIUjVxn7R}_S;=i|vMlrpf}rJWo(4z(AJ z^!?Fo6w^X2h`CROjOz@VQ^A;G@z4k3FgOutV;u2*fIWvykeYEbv1M$X7|04{1M#Va zkMY(@7NLLm&%5h?pw#pMFo58oTv`i-Gd8aSDdhzh1Rh`+2GMMgN@$_R7{`{M;nfkM zkB@*IT?QiL^rhb>(p4wSh$Jq1C36=g(rCj*D-y{!6zJn3!fUaMNbLHPMf_t z1Hw}Eu3dsWIuM8TT5l51Nm3MZp;Ut>ds49Q&MOIcqPpqu*Mp?nrmkmHV(sU^%3q_#S*ou;@|@ zTsjr|*9Vf?i`XPP_(8+;YNqMQQyZk8Rbq5%*_w|E5r;2l#m(Wh%w?a9c<-9~O|u_A zG~f+<#BpfrFf^U%5}1#*Pa~fIym?^8?mKSLImuGa=CaELE_3&~%6B^jAfD%5{0KuG z=MTS4`nXt{b?d;rtgveJ{A8K>eT@*T@Lv8`p^u_8%x5Jpn+4l8yrt%Nt?Zmo|B^}`&DwzL z;)Cc%(d4fITd|JnTZsETYJ2B$mu1G`wXk|ngk=p2ySNW|0Xe6Y=i^aG7SIiIVbjwz z?FB9&m+8pYq-{!Rrn>`!GIW<#oxDk$E^`w5yxU)9kgM@cW6N*as*A7tHWFEx2jM4K zP?(MAx53G`)CcV0=VsLEQWK&?0W7z%V*BS$V)aczTe%Q)H@Fh!m;6LNc)5t51+hJ?xd|P`eH8 z>F9lzOyGD?HD`xG_PL+sGCt)|8vg>51Bk|U#EY#|&8dhUzz1njJ|lhv&xiQA+cxqQ zrEh2dp#AeWwAXP0UImXqNob)!h1quW?AdV+E_Osb^a#f9ermzFmn*h>Kh*G!i>8SNN~~h_#DBh~ zfLxZg$?E1A*sWR$j56e@5)tt$wW`Ku5-KhRDF)wJ>;q>? zoBG$q-2<3Vs{UNtzJ>X#684^PeN)KU*#@a#ZD>c!`u^`l<6YE=bBp9IQeIwJl|>o6i>8ZP#tJDT8vaG4jv5a*Po#=F zI{}JgPA&`@MJkmkZ=HIo<|diRQacmbV6PH&YKqrmD{#iH1AgTMFfuuQp zVfq4EuQV-2e(#gR2KXaLCn9At4gZ6dSu0BXU%SAjy80pH64~j_eS5rkoQcjx6Ax6w ze{-4U``Az3?ab+i9<8P^gi}tSG1Ks#s#c(79H$5KW0-IgXz+T_RTFey114hk8X=iAWapL zz>>W7jL^f8i@R+}!B({QvVoi53VH~3*Y~m`awR^XhaijLfJK^0eZ;&H$V{^M-ydxC zwMlkl5j6~c8I)ba*UFX{6j@Dmw-|sUUcY){KvH(931J2oPj2k>2X9%sHxS-Z->b7d z1-m~aOx@u_p2=2it;)bc#c9&WFwL40v;_XPK*~6UNV+#?F z1n!dtWn`uu1C}4n_bqIVghKW!qstdf3v?xZu_`k}_V|iIsD~o&;QN;yA{@mI>$}*N zl^-!x?8NI+r&F-R_Ww}TVrh@gb}m+%P3*2XfxjM+^#WYGA!>}_j&2}H(e1hvY`Q7z zOuk%nar@Thci7>LVOqL9$jWm9u5TpPnClubmV)R0?qP$cTOT3<4Q(mE-#r|i;CFC9 z=}i0pp|R^8gh~y*?kHJFY4`SU7S&1upvs{@#z6$XR^Ttrs7paTz}W=7LVv*d4FD}2 zpwXk~|9+mGMtk5Yp8`6vN>E3ux@4HKP_xrG!inUq7|No{IAI9sf!`3(M)U6T97^Kq zAG_JZ-cP+Q{X&kK+bB-&`9OWM`mcW30+6h{)8LJIbe^Z&(2yJ5%GA7NQeM-!5*9?+ zqWYU=Yx(ddL$eo5?*Iq9Z~?!S5JO!t$mB>lrG3>14cJG3K0_s!b7T7R-;z;AEhxz% zyd2*lL%{1mx@mLXI_`(wy_kmATKH6;+?JU}_l{0~W(Lc^3M$x^I(Gf(5RI;!O6V;( zSZ_h-IZ1662JX257@tl*6)vmpyVhR^y?BnejZ@fDIIKf#P{{d04#|2b-adD%6uIjEd`(=kKh&of&x@z*RL zv|O!5ht0mq`+OGh{QnJF&#^0G|DFI1pQ2a{x9k<;{|_K`LpB6jDR7OEv5j8lQ;cS$ ziRn6I<>M3)OOIkhHlAtI-l1Yj4veU+U)6C!ir6$Rkf2`}_MZdD> zVWWgxiAqJd>BITZP-83K(4u3u-khaq4tap^T#yZj&Piv_1&sr!X3#`{S|)aHVAL7i zX4V{o_?vIsXb|2d&g-2kEVc!W09T*0$mQdMEVgK6{SYNJ7&@%j#)7&V0Dxp`%f>)Y zr_68Wy^((F{n>S}>E|Ou>US<_q0{yW?nx#*fb;Cdt4?zs7ciQnBeYRQg^(d=?>1}e zZ6hAdFUCgL#1p-JHI-(%T}{wE1R3DlBUF10U4F}+(xsi(Z}w2 z44iSddFzw#uc?pz~=56rN4Ep|Ptf)Sf75UFY|kFDjxKpj_QlQPGa*j;;bfXui#J2zhVD4;;5;Xjg|ER&Z0fUF5zgw zz)hGG+>7_%c@M4FcXEf!qj6;=fcsVNmSshErW{i>5QbU`F`re8UcQ{r-#hNl^rd2* zV)2|!?Zk~2fV*Xk5PFYa8(%*WX7F9Y-7;Jkk6 zk5}!z64q^Fo5FboQ%z(3lB`|NuBvR4>f=R_mq`E26;D28f66y$b@KDNQ+MITHa>CR zWmy9?m(Q&lu69SukWn6Ke_@ms_`KrhOfp(u9PTaR{GNWG1J}c(uTZ58+fXHnZ$_;I zV^#;n50A?r%KF0>;SqetxX@)#__^?O^$LTS4#tT=2s=V z7&p=HpbA}B_63@>MyBzPwg&t#dhL7)e2yGy*lahV zb?cbm;6bRR$I`H{^Uto0h*46M&epostqk#_UT=b;!%zf1Qw?r>L^uTYzGU)TT z`|tX{;4@`l4-m+&!Bxy=%1RCrz>Nc54O1ac^|hrzA_>E?C_&QesBh(P&_9OCi4J%Zi0{|7?h z54}5a*`8m{+AhDYY=mT0I>L zzxrpwdYSObT)pqL18rb^>wLvaxy4~h8G*9AzqQ1pP!7|(|HZS2&8XF^W$P5C2QA!} zLjMsdV}^ch9zi~1n=Lw6%%d(`%a!9$@i>u!>!A(&%|GpB@K!oCb0mO>X=1B>5@h#` z>F>S!L+T^|vQFjy<)DCiG1}=hwqp?Edv!m=%B_ULNP5#Vemg=b^6Y_93y)b18 zW(Dj;kk_M@vX`L(R^&n1&DK5+)>~M$9>zIr=HgN~aE;krQYh$IouiMeyT;M&rgkoV}{SM?U?-0TAo)x5xz> zS^yJ&)`sAbYujk#hBKoc#`d=xn9J!`gJc|w`J1G&(Yvm4J{pUBmTe_1bIE0)_ET#G z7YEI^W^tPjXcD-?#2gSzrIq^A|6xtYz2*IDm zI?fo0r>$G%@M*1JxZpPsYGOv6Ri8+rIsKzTCr-ZkJPJ#F2GbB_<9If zN{rwzQvAnZ;cVfg{_%#yLsE`-Ng;og%J~=O{-}th7;atrhq>dpZ1E*6>$-)9eW-;X zsqnzOhbh#*zD}&a{?g@rT3MCGC-)Gb8Mfbdbkc_OT~{@Hr_ZXft=Q%76GE>2ki)t7 zCv}5%uo2^5Yr?UYABsXJrsT{N>Km$_^_@Hm>N05T6+#@|lMdCR0l5iXO_g-aR(3n4Ff<}B&LrOP&7P*F| zU^jMauxI4i8+pD18tg)cps|Q<^$QbVt7vM0>+BaI9_TScR6mFJt<0bDXSt)lF&SeC z^+iIIvLyPX9lBJAftm3&=gQ6Shha3W`4C5+Vkp3}tA|PpXBv>nnWsRuCRn!!L?-U= zX~M~)`k^jQMoOR{gTVRO8!V>UXS&nh)};0o-lxUUW(#`!5iaJ(t2;@In-N*3D^Sm? z6`OWN{FTbMDrA4n%lwYkhzqZ?E$|SC8M!JD+-?>WHg{+yVJEZH+VBf5tr9Dujs)#O z$f?o$H$NXgIabL`ho;l0%X%#?bF%E@v*3iJ_7!@@b}E5~U+LKSXBR;Crlc}Fr@6Pz z-zQWhw3QFq@fsJ8OZ20czxppoDLa2bO8-Q{I{BbatyW0?{AGVd8f5aDE>_}F9&{34 zIq)yqUL0Vca3cBTQWvwK!SV`*7=?Y-Q~i-k`ATyeln^7k+k1HX?yWt9 zx^i*unHMxtZ~I|R>QKFj#mLFsy0@Vwt$0@=Yy6>uh3hvXqfa9D3_+^VYRcB!0jXGc zwh)VNsbD!U$yRAE#O^!)&twuvK9gUZVx!+CnHM0JTt4DaFC~b-=HTSy$#u)j1`cb; zW}!TmpxXst6e;H zCn6da7t5pC<+Ja@K|14R3kM6PS@|M7n!hh|+h=s#;f!CE9XY1S>puS2ZtLWhPrv6E zAJ13iK;359pTKkwbmjpv3F|){M0?6%kEG$LCy-{w%9T-qMf_iUJuwNMT2sB!DUSB> zzZZ$zpQ{jl{=D=MMB@)=1ev4NOP5%d%-GL$Le|<*S#g-a8t<7GL~*HH)aUAS9zhEf z=>x}}WOi>RM`n!qf7N^?wWxnMSdP0@vhI_7h4Z`z>V_vt4&{TSVuUsBv)-q|l?W^wthHXxY*pOqezN`JlsFj|8rIUx3}`r3z= zB;DH6-IgS)YuIV)>P{-{{x-tN0EmB)e5MbZW*8|6D0~7!##uDA(ixD=$D(Rd zsYM7iRc99WyBL&g@12+|siOn_p-we|R1k4HGmL5h>!!?Q_xVX4*dV3>^cj9S0$|88o9}1-)arjKCnsgT%v9?+(=;RzE66dW4YT0=ZZ$=1tuN#Q1 z)wg-2=vcetu`~(?B_`SfNfoz+~dS9 z1FxlbRXF)pt5>9};w)tLk#Ugdda;pP1F5ApGDdj^uz7Z}HH~|09Iqj1_gkrnv;!q> zJlP_dY5!j!=UfB1{vH(UBJ+z?=ptY=Q|}{WAQ{-rPjeyn)xV?v9=fkTk{aAF@x2J? z$PxGKq|0nIvYM|3O^E1S*9R4P{TtljS)OmHUk=3|XFJ1Vc@Zig22Zjm25{~9>cf+= zn~#opR$%n9L(NdP2mKGOKi)`Fh$Ea?nR7G?I%A-KK90RoH^Q z?HE$I941P~%pv8j zhd#)Ya~cN(noa3|TuyRZ&;hSNDVL{JxCi_{-BG|1ZUs2Gw0{xtPhp7te#SYG8Y(It z;>`=Hm{ZQW+aJU;bNz{1?bIb-NY6?P4BxTEPd>GQ4BS#4Q0Ln{jKBPku{V#0>W}|; z(?TU%d!$h+-xh>4g-jwUr1CA5>WE4uO(jt{M=6voR4Ua}qK$@xLJrwONQ|W%`!*P6 zG22=0$M^TR_jm98=iWbLh%t|I=6ufQ{eC@PulImhcavn5q)qOw0b5c+863+v{Y@qn(o1Ef0>Q8o-iGgBoVa+e^5E{;`{e^rC*QKdmqchSHTw#?*|H$Kjw(nBaTb&C9>F+JAJT0y*k6wURhNl1E}V*Mc%gkLc7? zs+CVRF+2|3YScjf>ibStq#U_3>m)fc)6`}2RK|eqHB-^P0;qvtm1B={0yclj(Td!& z>M4L0x5_IhuMlpM(96|+o2EXTW<^^y!ybc$C+ZU??o*qZ!$nz91wS)ARK@N!U2Yydf8a)!7PNpc9|Bk zX^+gnlg4y^B|v@!s5U6A^MsF1v~~ZjBSb5}SW(53V^!!mSn5*ZLmopsv|G1`0Lq9o z@?JW>R=9i1M+xa+pV&DDZmsj?-2Np)9SNFIE-0AoE8=5tvZRhOXcJRjqSGjN?1%Liahr*s$ka<%mXx@^dN!jl9 z`j3-G$?q468WDJTe(jy8LoA|L*g{!RE_#o=OA$MSQhCYK%3L74Q~{OMgk^+RD#`1n zl}%p8P$+XC7uU7vyuW)!ETY{o!qaw8-8Yf*4#J=7$l1!4a$h7*ro`uf{4=lP-5gT^ zpL-pAXl+!v#CSJjl*jj2)`1SLE~KIYh32H$k7?*A?_Z|2zz%TUJV6;i4!18|X(=(i zpM3UTX3g6}*V9j?EEI68`_bnakI-f7Q^w~YKA35ws{;~#(ui6$iwSN<6){giT!yxf z1wcDA@2>$@&bjR!jM@I%hx@VSES7O4?-YYd`AAHUR7+=dxEukwHst9TsI(pL_)^T~ zkFz`&6Lu@A!5eA|XPb(Te?zqH;}pEKg}wY}*q0?w9WDvjQTL?0;`@{$8pK-_^$rP> zaRRv!*Gh z`lvQ2YXgN|#*XIX42$3s)b{=k!`E9RuGh`FnE~$M+B??=gis&G6|WVA9Q%%R%>oH` zRI4lUgIzngvwx9UhVS75NDi5qM3*o#MG=o~+k!e!tT!K3@!00of2+jqy$9v8=@eBO zUw2}&B*EzT^&R`|ev_cHjmTG4FC?y`HLOfqR_fE9+t@1qPCC-M%dqiv-d!jn`KhRv zt&5P;gYYI8$2k`bVgrA|vCF&J>sZ9}{>NW4XZY&Uny8a+>@4!n)v7SIs2m&t$xBOl z_VHLWNzEW=mbJj{o&M6zb^IYonb$Lsl?0Uo_IC%}V9I#ED)NEnhc`3ZAD`&<8(4&N zypwiu$bJ3)`!x1K@I{~m@toH1O)#rxCM=l1PCQV}?~~b{a)CY-ltr6Vd_9+J?zkEvF;4K z{PENsLopK5FF6ne=uhO>&({r1s>m({#rk}9UnO(Dol;$v_gPYIuK)YOJ&wp_t`+i9 zi5nxI*pM2+uuqq$1eY#bz7zeruitaA?{F!G(RlGy*V-Vkvc)jEYZTiLnk^a2g-Rq^GuiK-uvsz2} zY%OfKXg@jk$HNuAy9f8J)IzGBf%t(Je=O2wW~h`VEG;I!L)MALfgsOpcOq|wcL7L7 z1h)^?Hg7We_)*z0&KA@RXgwoCPLiya*L6$xCZ<8wmT!+d*R^uT69)_%pI9b`0)Sc0 zC$EYLtOVr-bxntPIY^Bxg&t?snNT$Jp>IFU*o{*5m^I^u~H=Jz2E zB~cSsx*A=}`S`X9`t+TLjv7jL{NcWtzlJh%rQ*M2EewO8i-)!>?Ga!Omh4=XmmJzS z_Eo7L=&7R({fJ&|IY_BA-JIPbL*E8GevEB@NnOVcXHICjZ$0T)yur()_zT{eKOyi_ zDI!%erUFd*$e~`T_Yi{;-z*-lC6B+Ko~U_izXW7KYTRc}0rlB=Sl>KUA_f_V-grQ@ zik?Gg8-Bz}%eXRp>${o(K#ASXs)*WX^ULKe!Q5uU$K*BZhe1(8&7XSc&sy1q^_WqP z`Zo6;J@J?rFr{Bc01lDWn}C%G%ONBMN~FWwo_OZhP`sX*7|3s%eHxS|<6g5ayXM_n zR>tL|NY^ymgJw?D|K!s#(n%3(UKm+By+ciAY3fM5L`FC`NE7@GPsm$pEi+gIDH&$U zxPzHkF+8Evk%_QzYj_i4C4E6PZgaLCmNY z|2Vl9BVp}bFT7LLO?XN|`7R-ww zKPzuxoMi+=)WVrDgPBMpe6Y2abe6YFWoaCvUdWJa);>2WcQH(c!{lF3Wjz4VE$Jzz zt|aL^k)zqCE6GRz083ZB&VaRL8D(mjUqpHMX~bgXP{KXC9Y?yImYflJ$)m_SFKru{ z+rE8$C@kU$y^8ImO_+)BzZew66U3kt-GxC6$_##)p|*c_&i?!6xicIeul1NJYx{SW zf>q+=T2x(W@c)QG37?WVl~l2Un%04BwW0*;dCr_;nuHlLi(A7x{H$>1kA$AJ|FG-& z0bC>xU*>w@9Cif$uf z0DzO`!_Hc`;D~x^C8CKMpnf%FYO({IJ0W$_HfDYMB9&qXBy$DxGeM|8kKQ7187(e z$I+Pa^H(GLtlO}X$^wU5vo$4`&z3bU+40IpoJc%DLw`=~iz(O))FSUoLxbWNL}g#p z!`Nxd$SeTAFhB~J_71t%84NA?Sz~y?N~h_??v4J!-^EOiLp#uoxckboc$W)q?*_ij zJE7t3-+FeD&&KP#cEC1x_IgZj9xw))1U2 zgwFAL?#we;HOWxb#2i4Ef7a8;pAic*jGFH;2WkhLuTu<}8XQJ*b$0%lK^$D4^&dm^ zFRF2o5Pyaic7eM`$j>0K%esJKAiPQ)hq^1S93`UH&pB^slYaP3(AhH+-1B-rO3_-q z_p~@j4oLY70QWYG@p4X_eg|mvdw&{0D$3q>h_0B+kZ36?2YjyzxL|o}eiBxJPqY!g z^-7%X*KEp{O(sBWdXq7u3Uh)6wN@9dLY+r`0v)BycIR`qQ;uiEiQ&yYZP@o8HSCd@ zUZ?B|T!Qp4Y9YZ35hGPQ!_WnO{wLe;CS05o%zCfmWk}nQI+XJ!#x)MP1XJ_-b?`X9 z4mKuBINDv#*0=3eLRW`9k5mg3K=x;T=p#m&W@~ZHx&%yW8p$LhkV5aeIIAVku2J+A z&!l^OSL>*IK&}`0QG2?SlBCZrNRT>TpJnjy-vH1N%?X*~q7%~i zEiyv9qxpT6$!wo{p2C1C6NS&6j4S7xEb(lO#Lgf^O+09s3LFp?O|-um=c(%z>8ONS zGC(NWn(s+z{T94OPIr`Vu&O>ZZ-_Zo3*G*wu!LmjMtb}2?w`fd{20G!Hz%Xht0rNl zVP0S*II{KVrhJ3^PofWqzIKn(q=Q6b@HND@FKpSQEDSgMuGeVZV^&b=b)sBYieVv? z7IMOf1R1D#>9_oR_50O=ML_ur!Q8y;K4;|YnaCqGQQ-T3o~7hH?&|&RL|OkeDX85a zJg(A__Q>Q}ruu0Z@st0TeT>S+c|6hW%D10>5WaSxh0e{QdN{cEz=O%vEDOn;#KW`T zXW)}JsrRb9$>q=1^9uu8kZm$my#YgUD7UHpuW_*3DPsnlY2v|Y zP`4_9D_z@Te$W3{x>QscYR!#68x1dlf5AF!z5HX`T6yBuqkn%S6*nfbpjt$f6A?84 zeBV?Ea0JLzz8$E9Fd8S`C&xg#%4mo&JT74$pfYb&7)qxVx$(KQ9+&`)0VG^5Qrp2h z^p9kcgzczjOT85M%(kPtx>lCN;wA3C{+yK90YGpX^K?RY?CCSHH+}J`rYOKr3?Q#n`P$+zpUXZj!|jY)AP#5W!~?h*>UTh zADT!1Eb-fR7j!Q@Qb9wEqEjM~U7 zNZuqBy`104r1H)`Rs#|c_|l5s$&=(+7}Ll-;HE@|^cG`MzpoyaJr4q(U(#$v#$2iI zPV#g%{HCOiR)Kw(C16)*q-GA?&D7U`qho#%WCi?pL@+(`mlN7zz75h zH(k#dzblr~HjYVY7U07ee6$icEw+~0Adto*XGyO|sf?Y&p2YGTbdg36E!mGu{=P}B z>whpi<$RI$oC=*!e3qha*%@o2-)4VewxHl%|+?n;z_(}0Qs>N#jeYVuejN;tXc&zQ3;NL%?a zmk!dG&Z61Hr{r`XEv1&eLF#CCGGKn}R9AC1MC7#C-u>YdWKHW(uAv*g2`xi~PMS|l zsg;-g=R^Xd*PrcjY?!kX1}a>RA`4ugwm>^COF%3823Fpp~j%h$3P8OV9!`o&$8e_1c`^#FY~$stzxYhM7(CE&AL@dH}KeSi)& z(Lysw%|j+s8vFqqFEtJj)A-kZ!ZmG?VH)x*E@NpAse9vjF#&>AkIICQY+9t09e#AK z^ED3;0)zf4kdjy(`uH^GdZe;-K7%EWpfm+hQe6D7mTDdCf0YA|L;aS(RS^XMvAu*!ugwp6 zd129+aj%`n`OqsK;;iO(arYvz9kSeKov!kgNM`{&xwn(Eu z%4$`_xAE^_{(!}c7hJTMotUcOg5Fe70LYoudoMboPRqAKfj(Cxo_!q$ozJ>Y4*&2jdx4! zM0%ZK><4k2sJyyyqb^!_kB&b#J?3`^e@suMHkhry(5s@1gb6?p^0*Sd+}L2?4wh+R zaHjpas!8~H;!+7c^(oPJus<-&jZj{;e&DJGANx)HBkfrPq%#RyX1etmU#np@m#0*R zEC}f{G&dX1QP&o85}D~QGDV9rUBNoqy3(2wvtPy>+B2f6nYUu;nxu*pX9nq!A4BaH zkJGq8xL%87fCUiN~|$5+{+RtZA_OAnNziXJT#^FX=Kh~&B!E;L zZ5ScFJ*%uqG|~FAB*$Qrww0nM z_*ppq_a^C9?|5KrtsP6mpQr4SDQSFf9r9bb4aw!)MKe{bjM<$~2ff7aV<&sTM%?~! zl0z|6wFx)9=aRBXIO|%$i?^NSj8K@Ys&=U{ToE*3Pwsvm)ToYXc-}`cOTfVX@A@cqq zAzfx#kxiamSw8H6moX+>*Sz%zB;Qa^DkgxC@Kf{P(w0EM2y>^D7-A%E=I7wP|A?5D zL==!csdCUzdn5bFuI(&mTm7}Lj*$$-$kpJn`-T?~xJy!Q`=K-B0O#Y+=2aMf&^jvjw>0a6W{;8Ce}h^8 ze)%vPjEK=u{;MFVL_bSR9X>8uD0HP}4x)@liDYXdvST`)MY18DOFgTGIm1?Bau19N z?ui(J=9U(M>{oCR#sI%!s?&SM(j_l}7AjBn5eko;6WNoiHw=NBiQ%vkk{NifO^sYA zbvwZsbQXNrwas%`;r1mhOzSM1N zR8cNtIyXn)23iFd=CmK4)1I{49}QA!XNnVr_i)o&7xIj9gXZgs*;)nIjDY=s}}U12_g01hq{{ty>7mJRYlj?(#vCJg5HjxH0kAw=7Lqib_=NP zv9+KSQ>o>!mp);mjnVyO(#spb54ruhUa&M3{MAD|Q%Lo=XTj2ZHh6Hsv*1>HV!!fg z?=uCGyiTbMn|zI#|9@VipJ#!D0B1(x{a5a99eGRykw*;Jnr8)c>{ShRIbsvS)o;bU ziA`uX`z6-|osiL1sl^m4@TUVZm-Fd)TRigaQvoe}EDh3;UXAvvRG>^rm3+#cnt+^> zcBbZa#4v-ZdV05HKg>q;a|lo}dYfM$nL{>DVvscKG?&wNA2bNkT3yX0=2rfPy(M|D zqkm)Y?agv}cLvdgHeA7#9lfHhChIe`mz${7F^(2T@16iLL`mc*@6^J_J&jmdARrhv zf#wezJS9PI&#l_(6EoSIcddJ!)RxAWwkr#SP&CU-2H)f#KDRRBMRO;}WelZ?K#IWR z?@cPP%}voI(^nf#c*UNy{0iEO)3$?y5&)-#Ry@Sx&_pHAa+$cpiJy#^ys{Q(Eq@^o zxK^>$nP?QYqrFjK3vH1Quv3;rsgm<$V5|EdJfH#Y_C~?)#l(V_jd4ryCl;CfUlZ)2 zAiYVRWwG2^g+2nXf--3#&)A z-H2Z@!JP8--X-cLI25=5iJ}#Msrf^+8T)N3>??%nG8~JowNmOV!5pYb-W2%rx=Ay1 zK~6b7x=)TIv{9qGJck*TA@!H=cNWqAsk(DcU$u+_FzflsK*=Zd_}iF}qp`~_kMX3H z3K$TB(jf;{xmd~;=dGkTY~7Pml{F{Qo%P?bpm4YAHz4>K)*BnReS|WU0pUP4Z3H2J z;_1jhk}$Uy1XE|k%5zMq^Z=+X*#5x%n?UZQUNE|A!Qqw3Q767VW%UXewcTKlLzh5W z3&T7#d3jr-Vu!)i{&8I6-L|+q?)CwDT+zl7lBhUp@2~sfSRKG z$hce7#t%h%%nKLEMG@5Cl*w@`UIMROiOA|Rg4##_Ww0MRC!k%w9-oryp#(JURvEfe z6a{NZLFNs4#@NA?>Sve2!LL0LlN~2P_aJR>+WsAAR4K*!ra&Q^3P)H`T~sZI75NHc zMJ&OSCjR%NZ?Mg_Q|=r6-~hZ}xyOBGHt8oXWk+0-MqgcsOvBC-@5iFBJz-}pS4;)5 z_@PO4sQUi5)+}WCVh-w7*4y8JjH8P`OBXpNf>mWRdTIEKh3t~F(mo&wtiB(~L(66( zLX6VPZ`EtS+tymPZ-a+(RFwpVGeV^Le&Dorm;XIPK7iuA7fGY<2R>jRR)YTGtr8c+ zvB~CH#-!<^@k6NKr(etL&l+B@?|zr_3G(67S2dJ7;?A2}|RRgZC;VS}Nlo`17-P@4QV8u<`jiaz zqf2E@+LltzbdzpZuwvF1F&ue#D}RS5;l^$-l11;A+HpiG@*nI4g&n=Vrf}APElo3* zkVRh*u2I41`~l!<%|tAa?r>|H-V6hmr509Q` zqBv4g?7*uIQgMbzEy7LT^8EIlfw-s0NuXG5?wxIyNC;#Pj7uvQ14I+uvXat%YwhNn^Q+ z2GPR4@venTgwtfSPf?HFz<~Q{LqmtW2h{hEqcd7;25y47^*!mie5m4|;9D;CU~Y{2 z^c|h^jvyN1mi5g-9uG|``U4;ok6Wz}m~@dXVw5rf zV*z!r&>(_2UW>gXnUa3qAb(X5q!y0!^D3H!meKEvSmL{mN6%BI}-!~TT% z4ZLZk(+gTnCFj2-@hsd)fFs1&IV`llu>aJnf;sBFwaUt24^!tpW@8a?%OTt>|M_l& z_*ghq_SCh4-UxLbQkdIi`j*@+ULaXlsPxV0i=U9F{`H$Xsyl6jlSZ!PU_c1`Lc-ki z+wkxF5>XUzwDDEg*6e>2idGhx{AYslk)47n2KfK#$$8Pp z$D-S1t0)a42{2Z^nVSlvd!O^&=|+|31+Fb+todMq0>}G|wC&47ROwC;n}e%Pgivlm zEzmI&GE%T1G-L{XeUAai7lFpPR;#XUCY0`h@g?*m1i)#NYCkE1JcP=3{-hr^7gqA3 zF2$$6>Sa3MI&yH?RklYqfN2 z#ovIm(ihJ)++8WHtaezU^*fE|Zei}FmQTcRP%FZ-g+T^mFG#InT0{ur){B3NXRd9; zynFlOS*oZsaXll5Zw!W6T*U%4VbI=U!f!wevN1^D6|{X$F2KN)JLZzWq4e5r3V;1B zqh)tfWLX;$*})SurEM7Z!&Y%Gk3+@z_OdL;=1%=Ilt3NP(jf~7`i>a9RhG;s(HTK-3ln zQ|gP;$uyYRJDvvpOx?Mxnl0k`cnambR7V!oenz&)_lYKp&ml}nbD0z~eva-DnW#^I zmd>>A%uIQr>ksPcu*u}Oz{#j@IpFkHhBx^E_-4v3O(GN(E+FJu#C4I7zWRgZy!zfn za2piDkVnDaz&&n~FCKC#_8&|DHDg^0WfC+7LU<>4qm{tXj9*8qB;{`_F-3%!WIdiu zHX!wpXEeF@Rj_NqIT}wvK~>%{#-<*9=>>AcED%SYE(#zuo5mWN0U*dL2i9YdMwo%w zna?S({Y5xs@@K6G;#N4sg}L^ zsS5m!@$!W#qw@tn=ihC}0)@C7#$gIXs(e$&V7`3vOq*`nR|@dg;KvN0t<91}Z7!B;QHn{J zkPgBDppysG*R+6c9#sQoVNM#_0msrtXfh5`&lhth3GgkA7~!>|ZOtcXB4s99h?anQ z11*cWG%RZS5(75M-Q_)**r-@K@*Y(J=X>SX%Hls$9f$g-;~X}Xi-m?0VmJT)%rwM9 z6bxImr|cby>}8{L%J*5?e+VBBTnThNThKtughJl&T}T!1GV~_olSg%@tOqGMl&BjD z281Ann?;;O>%lv$k52YInqTQ2jI+=lOQyk-h zY}WP(hEgD`UD{8ZW{F0J)uJ}3xYu24m_?qgTng^My=?oHI z*Ddn*qcxpUs^%|lQcM2pvSeJ291#XdOl?M?Ze&Pmde1G~rvt-X67fWAl_^;Roh%=R z1~)Gp;3e!|-Hj@$kq6Npv?vCfNWgQdW3m0Ea<6cM-Glv9b;dM3i-M3!Syn}@Y+Z0U zTkp>eoB3s=){_hl3yzU2N>V-bA4FVVdO-4F9oQKel1z}&=Gbg2903nQHc6CK+n}0rKJ>^-4So{D39TfrGg$~@3cuk?SKQE96q2@&rDEEq_RPsE0e9_f#D{sX6 zdOuy_YqUs+8?@Chwq=Tyh?w7aLKjQ6MPmSx(Y*sDYTFwt=pdO_n&Xb$55ZE$YG~T> zzL+99;xL?u&c^VJ3??}%P*7f4Agvv%VJ(yQp_+IfQc6dxh7+lvF(9hxg%(IfFeEFx zK1|XpJLu?w0_i+=?0jb;!)T)B%vhq+cnxd5ysy54UJD*+%KLgd=nSy6h-{{ZFYUr` z*uTFvGRR~Jej0r9els1BF0#fxgKtI$2`-E!GEReadM1W%0WalK5mQ}vi^>Qh@aufW zFr27CLzpDqOs9%K)VOwmG}9f!oj_zgGennQD56r|0w)ZQ&0xYIMNC*PP@q>{uuBOT z%IHliB$&k@cz@+<;-_yi$?whd{#a(k$UCgQ-xbmG@~p4H4*tcxOesZEd=*v2o~8Br zI-av&>z?ZpT(-B9z$;&5r6 zENtdJeo_H&r#-uydYGTUSTzjF>7;9RLj*9?SInf&3WJpCuVe}i29~l0kS-b%1NU(} zOwtA1%#g?w)Jk+L^6AqJKa(%d5hf5yr~q83se{&655w!CBH_t&{tq*mCo^V^P^HDa zd&2FfKzT7je(j&%Rcx^q0*L0t(yiz`5rF!e&@x(jU-B#&VMv-TBl7s>!|gnK2C}7r z&zXDfAfgu7op(qgVO={&f~kyu!8PYfX$WPYtgpJ;1jeP{vPP#O@6y)1jEZor4?Lad z@fA_X%@MBCeg=B8-@4#lRu!XPUS`WJ5hrX+mSZpljS)G6|TWN~w>k z9b6c-t~vG{w6J16`HO^=&zW?QuVdHGf0e8>%u$C%={eplMMU@LuZy{k_0iKo-vv8r z-aRvK;^&C7Z_x!>x1hT2Of!#rG728KE|ou?S=%$`j3`P^SjrZ)ohR(Il?2QeCrb>& z=KrSFJA#PM1qBnoY;9J29^-g6h7r9A+Q`?J9^1H(1_(XFjPrZtZ3!q#kOS_f-FgE8 zs5dHa-A44Pk7HLGu3O!XI*MZ4{e=QraV-?_Wdw6KYL)5UyF!*rtA=g+;E$*DVc(_=$Y>SOr|kEJMi|;L`2> zuQFT6@6IWSNkjHU-I};YS`P>~O;S<+?tTU0>$O6Nkm8dARCj!?VJ`VB)dz(%fErxS zC#E6KT0-+)e>SG(WWEPd+(3-mk%|NnHsgUX;CrC4zOVuL4$HIxSfuMj1NK`kL_UF+ z(f)=CBZPE;C7}-^f;Bs59$D^ZRSBFwh)avo!bXPF>yyRu4HDnYt6T_Y{;a2Fcg}$f zIYhI}o)MNesQennX%_{I#;NxjKh-neeK@Uf0`RtAaZt%d)?Gh~%e#{q#RWpIo$ZU6 z#9%SA$orRKUmC*^lQo25X8k$jM)AUZ9rWz^lem1)lRX#kwiSFT{@q{Ddtv|bbfqfT zYNwNYf2ARzM}D|8GS+S1b@)RX5)A|7egtBiA-r6ue07CE>mwG_GSAM3e_wBG7ChWRd%=bUG@p+p%*asm4*fv-Zh+U099=php%J2*3ityS*TZLQ zEN+pRu6$5gRUlkuzJh9CdxV9FVf!QGSI@FV-qq7WnV{p}hklHHe0)-M9L%xe+dkf= zs50Dw7VQ+1JW5WjUesS+Qo0NFNzFGp0;s3wix-vW>ve9$U(_>YiRCHdeoAX#6T7>Z z#iJF|`hcf50nz?>jc?9KJ6s7i3vc`opP0y*Ucj`GlCK3#P zBFrz`ci**R?S}l*9gs2N%{ci-O53v^rKw@Y5^P>PVH~i6wQc zz9~ej$f@grLX=+aC_t#;2rPJO0wineZ8Vw8ylS|zuv?+CQ0N9?$PUOQwf*sy%0 zrphgopY6~M;wwpp!jnlFf1qM$fHS_rAUVZZ7mWrVv1cMNosSzfgfp_<=#LGiXX`w$ zY3<@f-Rt(#?IBgd2Eh7$;ow65XI16%*4smB6`}OC= zx&pZu@e0{}r4$$*ZiBhQ^0rN=K@g#IL&^HhQZFmV)xi?|w=uL2u!oG~{FU+Q>-9w7EK{;-_r8!}&SCK2 z1fUl@+GUOdY2Y?x1Sai4o+=CRG*B?Ksf>blDWct11^IE2j!kF-yIA@cyxnGa;AWFi zeRmkw$MdMA+nEWXQzFB;4-nVrY#=0ca~{xZ?)IyV73oQWyI8N``|r$?_t}XIi6_Gf zk7k@sU4(CHL>*{kZX-3v0aPAsz1XkAnk|XP-Zi9Az3k%qJTykk2Ca-b{$!mR^3xXt-f9>2$|iFSP&6 zlIY*xnV@hUzAXHFeS*t08irVUo&SS8G-ng1ZGx$)eqVRhBM!K4{w~5)l~mdp%~7Ds z9M|+RHF2La+fu&^zKW_kaP`Ba*XjyXtw#J`@tzaffCrr3sWXb^zq-g?DD`)L+|4N5TW~wD4#-@SH33rs{J*c)6t30-2#F9BIS65RYf3CN z)-4>NwEIlJlYn{6meQK3Yrh;4#?1HvHDtZnvLdQ$zc#uc?Uh?L;Lq3nBSR~D*1R4B zsqY+8<<1C@Ob~9uwD)`XYyxDCx&B%V9G~-)L$gQFk>hd|(C(16X*lo;W=yc(%=!ey zykQYKCGqI$G0?FdXU-dJPyaP*;}AOG^?eQDedgU*IpPzCGy3VnD{iF#?Zl27{`vRr zp-xbZoT-s=Ue;2*;6=V#R-Y`Yg!P4Mns3-L(g+t`@QWAg&=09_dBuC`Srw$A5A88) zJ#0yym1jhcaq3HcJAoZT#4Z_b)lt)jzKq4K3d3_xwgyiB=-KMu@(zrK9Me34K3GGV z{BwoWUjAVcQF#^^3ubO*GDv1J4ejxByGA%G0`C-@gt))mC-QP;eq0qa*7i#Y9pgy; zmx?z3zo_Vu-v4trWMVT(kC$3Gr~G&nOm1pq%emW=h=(>GYX2;KRm0Zz`U4t&U>2ff zYR{^(k{WAiOFv0+m zGYUxOMIP1Q`Sh(5Y|)?4_grznbdTXOU1)CAI<}5WHHdyi#ZA09|6g?U^SK7-#|k4$ zFVZkPdH)zEo@TiOjEM}v-e3w(I;rcY|1R8U_L^nB7-Pl<#;yI|A(3giEsfBkgOVJe zpnL_*8J@5FJSiM)NCj&P#rb?>O z7>~Y-nqU$=-7}-((mo)Qag_b{1rR}BTxi#(dc`U=ncbZt#U5_Cr9R#=lJmgOTvz?D zRHSkY(ehxsvxp;cN+&H6o&J}TuK7mgqGi7#(@gH#^he`r&t_E9f-Zrbd25%To=2lJ zUuo*=Dp}xO#PwGQ02IvcPH^f9kUP(`maBX1U8T8xo@lIX@xgjS6?E~P@ty}-ht^)_ z*&Hf%zKMo*?7wier+bhxn1-m-Z|n+W8Js zyd`SdiCJo>cgbmg)(u6pKug!eCBfD*3gK>^rFeFO@LHONFeb!vsSwm+>JXKIsXt|#3)+dbWEfKKfP00q~ZFS0^V4a?5j4#OZj*9QzQv^q2!ApNa!Zspj(Jku?$H(R>wRbjZ zXS<8yTl2KPI04JpjY6c)v6Xkh*CBo3otP-admty$u!I>G5jTN+{Y>4q3b^2FW1mzp z13&IQUT}aqB0{%=IIO4PzntEUJk+ThMAij|p#`f1q8VAzZ#xW`-=+XR3g-e$lS%C@ z6`z7GX?IvYX&C$Cf%+9Lr1u`=M}c@>Zy+Nlw7+ByVQw-o(sb*tyE>~*oSF1lf)th5 zcCg}T^(;SkJ4?juI5xX{@mN#Bt9mjS<$$DvDPyiS^@xD;?_D@TX?n|+72)X1$JXu& z=YYlC7OerfQ9O`R)y#@tT%e-_{`vzTpLgHh%a{Pcu#?%oibJ_L_w)rFDwPMXTWzn$ zmU%6I2(l1#g}qJPNC4lMym(V;-~ahF6a+XDu=Mr0q$^4?pf}PR`(_}Opo%2pj?GDv zE-~&vPa3KZrmb69Vr%=cW+_qj%BQSoX{TXK%)d^fir!cMQ#HTXdBgKU;{*BTpc&b2 z*q*}PT>t%DG=QUJJvqs0UzHLrOLO3L@vgC!uyaxOg}U;;>M@Z0ShH&Dd3&vjmfszk z6)oSe=2e@v#SN+T?05u@XoHr)G`?1RCcMW%Xg~H2mU_7`^v~bE*6Tv)zzgF3xh%;8 zqwYZp7jyOnYYIzYv1Ug9ktGPt-2aZ-*H%1TMHLy=G2iE)%Y=y|-3jMtXnW4<7_b5P zB6!E`HV5xuxoLM$BosB5jm&!KfGgi}k+AR;EYsE8H=MIcVz_N( z+}f0*k%tsX!~FgZ>iDxuGXr;@X*Kxg<*pD(&G6Cn*QTJ}ucw7;D7wp}{*<-sU3(rY zx*#O-?9p-V{!K!Tj<<>cTqH7$>;v-^2+#7 zW~V^bcC028Hd=?tY=oLu2Aq|l1r5BZF%K3^J;t168K5^tzv9+`7+)SkXtEwUWjccd zQEgsECD_ae>530PSf$~)eVNdI-pXRi4QSn2@0SF97JYaJ5Gn`DX6?DOIBO%q((FEL zK2b3=y{D7f>;41#o|*jHuu|fO80vPTz^hJ#vK)Z^hgBN{Q31c8=cy8i==*&CT?1_8 zPqfbxus6|HY)7nH_WA5unYq^F&PkcjNn`#8(w1+3XX zj;q=Wtl7~OV<6iEG<*&$$fE3l-2H)CLU!bUge^_k3t5P?0lP780;vR){L1s~)RZT) zG^lmw)+1b{+S7g0q;kVT3|aZoAiG802Z27~hQl|8Vv6a&NAT@WAi*S_6mhN|-c}}U zJ4h|{nLFOio4&|8aqwK<*ZLY``B{34ZO*PnPtPmA8u{QylMBkYO40mq&Exl zARcH3C(%BTM`S>hHiZch&?t01;9knfNaQEUM#`-l{HIw@KN2#6czgV-&9RFV|72$f zly(NH9R5gc)2%`cdUp9@Z0}n;Kb>;;C+^^bMkcZU9H6(h5X&=XZMi`1tvFs)PzvsM z1Dr;d(97BmAaqjDb*JH`k+llKVVI=&%te;TgY<6J_Ur7MyA) zMnbWmKLKL88b*wSVMMBUl&R0VY&=f;S9vVvu=13w6}b5Kr9Q?SGN4s@S_8IzG9ka1 zMV@W^?DP-Zr$#Q3D}3mJ+F+gWR^B_GZ8BjGXZzj#zP{V!R7*X{k*-4Zo?Lo$h6`CO zzJ_~A&798n8Y-^W15+ZqKS7DzpD-&S77tYkx6dB((QIL!H=z}|^pukBqr#l`F!a{k zIK4mhI{Xc~d39$5{%BXkK;9>E6_{y*n~r|Fhldx9``srIrx4wNd$!lcnKJL;Ld1L7 z=Grape~@agwyGP1dtDFb0_pko+)urt5_?58Gs5YW7||ol|AH0(NaY`40?8n^42aA> zJKvsppnDeael=66V>=rg;e4Uw;N}|-vd>R{E4Y-3W~*Q3GQR&F11zMZ?{_&MK|LZ- z;r)U%q+0+IAOUYVE9->kRj;<|_tB;%hMIBOHQQ@K149?W)V&?<#wNr6Eu|v}m=oYj zK3(`_p8jiKwoG(>rPVDrdVOF+`v_v!`2Y_ZuDLwm$oMMu@+N%U8*i-!Y2yO=mp@%B zCkCQWOA}B2rA9W_)8qY?m>rDctufSPX85K`mrD$@e^Ayir%t7Z1 zz591syrXhi>Nsd2Ue79jb)c{|QVxW#O4?}&nDAyg@hXrEc$OzkC7U5F`@dKBgJO8m znr#)cb^tk;cQb=-=hh54?MxRjuO+!Xp;VXEfI|wQymj|_0!usa~0MsjS`@ig!&*1C5mTOl~7Km2AQmG}qe z&=pD$%VGLqWDsD{aDw-E0vO&Zz@ETxiG;`oxr?P005zNdV1_r5=V1KLHDW=avvV6w ze1?NFH|9(yIalY)RUW*7iT8_NH3NPgUx+G{Xd;09yWz`)T}9>aw;^UM%W-?1zRBW0 zJZ-_{GIr5hLe5`xF<=*qxDfQ`|Dfv2<6>&x|D}{9A(Xa}Qb>|ENlio{WGxDVvSeiH zu|&(95*2AhQ7V)|Wr!NI97&t@QbW05Ioe``?J>XQHM2&7C*lSzTJ#z`cOd(*$Wuu;ofjTfiabkU#oj#pnmwph7 zh2QS-K+k(CJ$$HlLiPm1j5-JSo4~@%sazn{ zCk>1+2rv8#Q87gOy8G$pnCAc`tB!B2feG3>{QRhQtfwR*U@$m zpnP6_R0)v0&7uCl#w`NGqD#CZA;<%fs8lVhh~H2sNUQMh#T{>XVDsHj=12P>FM4eJ zlWLtIBOuY8+d0Mr+JrLpS(F1-@oqxqqRTL^f~-0P>zUpnd@nwFTnbj1CQd876#hH& zba%_3jaxC43ntaebX!jh$?2fIb;7J1Ueja2kKFqQ*v3}Sni}FY=-?DG0WEuijoQ50 zxI(-u+-Oe~2^fAgSW05S2!Pfc_5gZ?ORr5mTk^qob#lk@+-zK>`C593zDu`Zc9@jA z5jVF;1>64{2efCALQxP>Mu=!%pFxN2ja2>giFEAs`(EtztQidQ(@Qq;xD{^R_F|3) zG%GdY(zeoZn6UbKxEr1TFcK$l{=M6K9h3Trvc8D~I1#1P+G4Tne%lpih15UFp-t>} zc$%)62Qk5@&s#X02enDZ;T#5?%J1L`snLl^Hg7;qqmcj*3CWPDK`4L_4-hGW!Vn5k zta0)4+1C=_8vlmkY??vjHXWYDID8MunH z13>(N7LJzUqC6|iD^zK@PScj{_Gd*qY7WrB9_c}KFS_-VQicsr1+w6s$edHo`S31w zc!`5rSBRb;f8tpq^M9+48>(20M4C?ASgF)1VZMG~dsYlYknWp_fw!aW@F0tr7&nKI zZr4E2$b&pn7qo)A`W*rCP6OY79l9dv5@y@-dvrXhQz&=q;8bS4+Q*;U>zVlD$;Bw2btpm_W<*j2w^& z&{-nETfxemMEOD9Y82us4F(V4L$XOrs=L*R|1K)7t!ooMyepta$4hUAJX%!W2i!&g zf6-H!PnYpf@>hc5GtiqwQECFO3-w!eC-4f~No=3(eYi))YirYag~_j|FjI0@A}nqW zcoC}D57i&w2)~75`dLSh5OT*!zNpF=mjW9p3(7_*nH^Iystbk)^S%kUJvkrAPXpr& zPAd_X7^nk<%r8h~LL%DXUH1>y@*?hBmyTxMo`(XVR=oh#-ZcQ<$8ps!_Jm^22;lmT zupNVOv&sx&4T}$Cx}=<3pgf)bi4=3IB#%b8ll?Z*rbTYuFtl!TlC`24*iR8TneJ2m zsm}14-=xVwz*pW<3y;XqP* ze^)Q-hN~()oxH%zUFqEh-TxAuM)vf80FT>#Yp?&E^R>du#y~b3tXzo3he>ERrXYa6 zOK7#Nr-Dg5-K|pL8{%>KRp6=D{rC&`bX4y13WnRVC8ZvO2ixEokydka&^0=Xl zqc)??&*9If2f&>Y&*yQ$qSzA1@Q^T3YL-Hm7H$-{zt%UIfgYtd$yGWeHi80 z6)9;a+vVk$6iNK<>3TfPt#Y7<)I>T;_&h~=SKvV4<~%xSx`^zj?9N%O_}>f>@d0GUBOt0sVb|F^#4h}xyI6It zO&F*~-`V1VxeK4Czsh&YAr>OUq0|njpLKO(?1(6bAleh4i&vdtAg7k6z5*4Pr`Ey^ zEJ4?PA|3f!=1twMiUoC0T(5j@Z3i5NZXFJI(JLR_S{NbG9-9m81rBF9xXsNaa1%|+ zsUMdm-T@0t$b>f2uriQS@*8f@0BYHchl`tj6oW48N2ga;pu`q!fx=#>bS$FumhHnC%z)r zEPs#GcQJyeN*p`sCyc2_$$X#K!NFFB;%f63@bj)$j%_W&ZriozmFvp^rWjXY(&pR( zr}@OjUaiGR;EUet@eFvdb>o^Czq-jeP8G&64&47QDtObPIU2(HLy(R>c3a+?`5ynYdd(RF$*D?1c z-<+mu7NaH?jPAP=sy=e}N-Nn%+4v54wSVK0>ECvi)}t)375)cEK4hsK+<8xM(?=d$ zWyXIFL##)i#%;t_zp8de8y<}qO$<+3ETlxACNx`nWqz%+VfNkGNB_aM7!5UGx z6+&ky3bUtA}b4PBJkXU6A9C-|S3=tDh*?Qz&+wmSO-F`@*@#Cq95-PPKgx#)8 zSpd}gazuBW{jRSWa=~=Q<|)60_>_^rdl%L>X#;erT0#RZn_5zP*wJt-@bXWaKX{`( zw{CkVJVwLQlA>P9krv6>=CG%jNGzZOJl>KF?6#yQCOwEXOTNd)(klVd@qyBgq}<@x z7)B78?JnT3@amYL=^M8JrYjhTKx7#_yub5#9c@7(63pw$JcNb*`5ClFjELp|w#G~v zaSq-a8WlyPh3|xa(>#dx(;AD$!dhOi?>A4UNxnPWa2-=Abcf&m*8^>}Up}91lBo+! z6-2B}D{KK6nzC_;A&E1Yp${ z2+FRgCH4nB_v3#Mdq@?(|FMI%zH43qVR`Tf{Q1=zcE1f_I=>$@s<_utvqQ_O!Z;f6 z0{@psxv=6VH+rbgY6w(SruF+CcHHY_T{(v2|r&|1T}{t%BbbE>0wti zncSI{{6&~M6rTvwgXd}J5vlKQE+XG9cR;PKC9ocLqN>Hk^w7JuQ@ggs{a_Gjgl0gq z+wx-p7^d5m$?22fT@ymq0FE0-IDx3@o(T49Jw|XokGg+GHx$((Dwt4xcC#P!&9g+J zy3$^3fHbPRnd6=xE$dpB{CSgjBguJnIh#AkHBUz)*B$Q|Wwpp*`%-pSQ`jNP3;!dId?7Fao#kT2;RW)M1jmO($5s%TR0xAiGG^$Sw~`#p3hhMicx|9~`o`@0u-ndE1QY4p9~%|r!h$_sZ6|0XpB)q0xwI%Phe`4I#0o+q%BS{L9i z_fm{J&jLY0K;S{cu5vLlF)%`^HbzfV7d)B?_6`o349{Xu!vHO(fPqR+dOtH|iJ`xc0 zzQvm;hyL~xC<`^E4>2Tw;|43f+X8f=S#%@%h-s%xwQGV1ELzOdGUDSNbYvBPy!kS&34)}HDo3j?Aqj=1zwBS zvvI3mM6M&v*j2Ez}JRgom8oO$wpx1^ndhUANrV-YRRRxN(+QxCXTrlD z;A2kyK z9QoGjuBb&dCu|)isblcNFCUEEnm$(=AZHoPJdlkd1-L)Courkps++o`*_9+gu zL;$6+kCHK6x}(H|wjTui8hU%K15e)hk{*UfJ>g;0>mg@-LLfVAOKCue&r72&@KI;^ zD=#@`5;=$j44@{wDn=_Y%(P$&++FG3JG&VLA&v6JO-CPx6Ug;mIFWuYJg@7)?`*m8 zUqm#yEf$Lx^BaE=*X(9?(Eb6y>A-ZFrnED2ZgA>!{J0x1O?)IRLmohT7xXEg_FOZ^KgX{^$^OW%>v3=iU(2Bm?zYUC{6A_)6jHPEzO()omZrNs=q9 zWj{`)EqY%r)NXrvs&pE-TNB#R(!8l=*hnBBZUQW6x9mK1f2%L*MOa5x6U8qBIgetQ<3D`Qjk-oVfHNua4@vh<1`r0}qjREyOJ$+CUE+ogNyG zdKvo+m-7M=67W@U^wJHV?W|tSq-TbI!KCz@2O@l#;48%q)_Jcdera-1S_0~4+*=*g zy3Y7X$V>@(xr1n0`!7(U3&?9q$&2o?*)ni74#L<{3NYlE0JiZSpE2VB0OLsh{t3$N!1Vr&ysKC{F!^^%p-igWw zL`KzITA=X1=5h=p$wKhDP9nmTwciT+yhMeMq2I zZi9^2tU8I2=Ng=>K~%|-M&c#83kbhy=?ldq6j|3H5HZVz08ek+_J$U_%N#RBq& z&5-UmOH?zTvpCcJ2b3^!d@62RIvZMbvu`@QLyMQ`kdVHT&+RA0U zv=lW71Mm*sme=d$F>hTEPB3W1jfhUmEHmdkX%meNmlHq2 z%O^%CxwO$qb_(4AurFPSm(K~B7nbS#8CBjfsuZ^?l(40K^l7im#AdSV@|K_GccaB# zkYbvy(Ijn807?`7PZ{uwxln20i-&Ss$=0*PAUy}sSmefnwqWh(z)!9k;5xKDo1z9> z{e*c{dJD;kn#m{2grIa|GbhYy{Jn`s&ybaHiQ1OE@fyXho*uX>}4 zLh8HE7<|VEU1a(Pyn#*720~aIt&{{1D9xAf)*XvZZA3uWXQN<}whqRvp(fhU3ScW1 zDM{$T!C@rn&ejd2$DU~WEuzO_ zlmVQ<15s1GV5CuQrpGD|xt@ca_XUje7`#Ci@UqOnwQ}KVaQ*2XdklUJ45L7ETgROS z`*LVS8CF8L5*C*l8GFU(R*#FOw}VL5@@>dIrTIZ;-su+z=eT4+z#wL8n zw9dDw3G^C48Wo@$c)`t#nz!*coNDXr`xKgJQ=DIK9sK9VL!rwfI*KS!HFVda2|&s) z`0tJ(C*oxO(ox~`KNeCzud|yuQT-yS+-fXj+nPD3gc`yr6ai-S?kQn6`ygKxE+5pM z(l?N(sD^#*-gvochU8k5}C0?YX!+g zws{vT;Un;>DziU@2!Cf1UAf#sW&%CJe14qGlffjz@MNZwJrM+3fBu($nyx=53f3GS zY9-x1-o}Xa*38_@FevIj@8K1{ z=tr(z;^HeTiYeM%p74qxB)3&#dV&J(`eIK6*eeiwFNgr zd!-rI5-w=M@lV>u-3Y5w_aGLS*gZ>QMrT>P6TRl#f)6D)@?2E0so~sU>Y`UtWUev#rJ~R7uGVJOINj+H3`hrW=8K&R+rb4o!HRw zUaUJ>MKa1br{_y2kJ3f|UE{LCPGI42gJ9k%qa1RXl2M=OJ3g(-4yb0Yq2*-!R8is zfbH(qF}$bp37Kr7bN#OmRs&#QMD?J5jEb9Ay%nH?E_|hHM(@1a>0^wcZcB8iNb(`O zk)$b;=^(y{CRi)IkqFI$skixC99!2+5o87MMR2(U-$@1zN9*iYC?)SOW@3zh62?KYh(dU`Vx9zND*JHYO&KmmCs-ZZSMR z_-UN61&BGT=$wyk_JU?Z+;)tWY>w+k#)YMMqM?o;RMT4y>w*;~3Yz)UdH2abzlPCY z)>+u50ROxAWsg2Ry5J^Upbsei0aHnwC^*t+IapB^Bk^?8BkAi!)7s!7u1@BynY^*V zS9vUc(JMIp4ifn+a{ql*;Nls}9<%{WLp%BN%{3G8OIMTi`i(C5iCU(4NWj-DVJqAH z6)bcCEzL=NY`Vt0g#sL<$0*ZL%H2u(B*IN}>@MYy6ng+j3BatzTnqJV$be0wRAt-a zZnO&mZ5gH+I@Jy{OPg+YBLic1(v;6nb^o=vDiv`9jR zj>|?;q%lR=ZFX|Inm9&S$*A8{`0rIYfP1|0p49kBeM6Mgkq*KqlDYHgGOBf8OS6qW{g!UC zzeYQU;xv`;`Sh)pT=;7fsaz_gYv1(cm^(=aeYxG_E?g+xY2XWvT~LKbThuoF&tjDo z_J8$%n`2c_L6$@vkvzJ;Mp^S8Gm!*sdoR@POW(x7mB4c2{N}0Ncr_iA*4~`CL~K+6 zSa{aK;HPamfWvg%y0ArQh9I#NSgWw`va?}q;>uz(!1fNU7X)xE+LcOyLk~-Q`Bzk_ zPWeTiD?LxU2g|xlXT^6uKUC`{wW8CSf^l;=`OOmR@8URA;e9w6<(e`ZHlZ(#hJT4a>(CBv>Vx90{ynOr1K~*9g z{Fg=#u0B<{c!vD>z3S_r%Tt`%6nH%}_MgKZwrn`Q`@srWm{d{uHA;TC_+2AojURsd ze_SaNpK6u6y^G*5(N)mOg%`p)%_I*rD^0Fj<-3W!euGvD)b0D#i`T!V7$LpE{i6O* z<0W0C608+rffK76&HRRmzlq!Z|w8ez~ywPDFH1mJKPHUyf`IxfaX;Y7_>KrCgkoPfl$&4qozy&l%AC2#de+(gS><`V~4neK3qL6i;6Tj(g8CI(s>tJD+sD!@Q?vuZU4sJx5dNbzSdXFdV9SDO# zKA9<%Fw8QEoAQ~2X!}D1u$tr%=E}Qn<1}nWvme?6(J*^B z(s`7)f27+B){E^=nPq%1+wqCzrVaY4adA)q8*mU-jqdE1*=Bk&ckep+?wT({DYK3B*e;f9!~F z`AhNU!0#b68JL(`K$=w^Ua;{ZAAkdi;p7m3mme0GQ$mq{chcolI`VE(aC*$2uHNRZ z^j5yTlHncv^#)ztPER-b({k8(Qyk&zuLC7vd{qujnOPya4Z~%4Gafa4`s^H6bb(QWd+KFW56o zaHpO4Hp2Q>8qA}X)|3!=BV24%iyACTiN@BxBVfQvN`fCcEE*EW@Te{U2m7ObF6%+A zy&=@wwrw_$+}TGvcgC#6vGg9LGODAsxS3v1Aj>;VxqEA)ztQXwGYfwsy(Z}Mg-`Id zBdMVyHtOj}N?PFN&0+>P9$o8Lhh~N#s?QdvOtyA1Qtd=3uwMQ;sT#m|d0zX|mJjf# zp8?erLjbXNCwoNfFek=vjjbn`10K(gWxv9i7oHE=;HLC+aGT-FSBhyo&JVZkKj9%6 zV^Fc%3=mSdHez`?M($;^$qQ^7fX9$G z+{m5QCM2*V9@r+jZX?`b)ze@>4i?s%VZ{QB6Hfw56U+^?$|y@o6#}BQdW!rmgZo^$ zhf`#yr=Th1HEaSL6Fz`4*p>_T&7iAbypyI<+`V!o7Ss(pWMOr*oMFXGWv>B}-VMur zb|af67?y)W&3+9Vbq>wp9nbgs_aTPTPPe{Hx8F9Uwhay_9lp<^2(6~HY~VGH#F2Rj zAuc)=rpkC8D)(z~d~6z9E0(xui5u5)B-DxwVCXL44AxNMNidL+X-`$Y+wee=g2pz$ zP)$LPxTr`-0kbVIiDDXjhw3N;R&5?j!on;NPIFc!*|hL>{IT=)i1(<|fYpX)6pvZh z=GmjHWsb0_d>3LC?cof*8)yf)_OC(N48XHqLh7MBV9ca`Iu~I{(xKQ6K>q^-G+-7S z2gw4~JBS`qq#AGn5yeZ_U#r|aWhN1V#3&L{z#HR=sp`#`VW@!f%591oLRGWv0(Oak zJ}%23)O|SqWW(J1X8_@`9Xoy&XK?6vaQz4r3Vf!wWx*98_#g#=^GSDG5uM0C+$*)~ zU<+g~yboG|d%O((2Gl>D-bPAZs-uJcKnG222T)@O05PCL3W}~*aVJCDIy$q;U#BR-b(fY4obn`crCjCM&=B< z>&f?(fw0mO#b?QA5KwTJ2}gFV2EsT+z`no`@{WqOc#~rpi~dj;>k0o=^_^xKInU&h zHmb8H;2c;(Pj$8bv!~N!K~&n)X;{H|@HJ9Y4OhVeY8UyFx$VWDIM{E~C)lICW@q0L z3m%FYHb?vg)jDei0O_MfjtmWAg*EqOCP{^C|(3V8a=hJpD8IK7Pm>Z1Q5Ch zgg_f&^L5Z*KBBt)x(r!NrLVtJL*LUrwlNhffW?0FEH^xik~SY_`1*rrv{?2G_y`qG z|4jpZyI|PLdHUe-rR~FjltHyno_|?}hjIwdb7+ogrOgd6m{*hcl1-|!5QRg#TR&Z2 z7xO{3)zT)Rk6^|A;K_7-z75<9zBoSut)OjB2Z^d~Eygge!5(OdeZF zdSCoHepEVaHml^+T`? z*8jye1NI`gO94|$A387+5ADss0qS^u&|vcTWAN61VxA6eK+y{r$|8CP*!zDIWQoDE zr2vKgfy3pwOX<3*cfo+B0`nLFty*PM9MDBs@mkH!c!`%C0&4z9C9pE25Vy!lD<{SS zS58WS@|^8?xLUTTM!KUOGW;P7@NKDp)Y(%3-?9NTI}S?&6LJWLb(KeU5kTD(uk7lF zEBf)Z6)1!!TyG{(eZyY9zBc}5D4JpE($F*b<<$`Y_{r}dwGo5hzlr!k5d6n>{1XQ# zTpQZ?z^L6;;k`cP9}8e;JZ( z7p&iaW+b?>3)~k&3}^~MDTIi?(l}i+j7Ia>-9hV);M0^tCmsVAFv8EuF6XOJIiAtd zi~qgkFEppXSR(thb*f_KY zO`W;YWPQYBJYKSv=U`>~ilQdTp&+7)`NZr^!fG2#2*?89MX;jBE_+8$8|=+|!3OmM zSZ)7>>@yY@)&>K3-Hek6w5{GB6%S1Wz6bzZA!2r1snXAv2d1eyXy5!k7U2hR$DcX? zXXikhTzD1(Mc^K;69w~~DFZYhY1!CIGhR{%2LffHXBS`O^cJ$0Yc_G7&k1zWi?{oA zT^9w-3T>*}ozQ%Yv$AaJQbKnqe}odQMTVM#n=As@pG6(rK$n+H2kxTpKK(zIE>HWN z)?efVNG&Ip&|SxvY_F52p53ea%ihlZjhuKLuKy$RXC*(d@J5_&#xgk55XDa;F&{=J zgR6NY^G$dq^E;39SvL-P8Y1Cf4z(6~=s?1*wr$V?NbC(9QSVsC<7-0@DiI_`neQpM zb=!o?nacTZW%&%8-^<{@X)o|)T#i?u99@i_5p~H|3t0FG`rQqw-`CD8on8+TJw|2G zz=!B7ZZ1s%*Xpt$X(RL(M5B;&K*qI*`s>dqqw@2CXM}PhpVh1L{?s=T{*B-hz+IaO znn=Yld!8J2=X#wjs~L7VZN-0jbr#GEG}PUtJWBCyH2=zWT`VX;BVRl{8cGB}*{`^i zvV;i8=Bf2qyTRxGn_1g?+AzI2f9nc){C z{eim%*#);57j$(M#k9V)F%UfM;`C`z*@01cf;=psat5Yt3o^5h4 z6r}APJ-w@o{PYwW35=}X@wLbDpjl;x>sO@ifj_JCvJO;Gp#j!PKwH?eDP zG*CV(kG`e{Sx>yr`HdFQ2S^q@e?ZY8yJJC5f6Ayh1=7fBnXC0}yb2)DI6#_p-@5{y z#nuOW>hXJV5uOh#>b78>@C+B%#*^R}Ss03P`D|u_5mxe8&+N4azF_(B)C(QWng?x) zrCknBU`*EuHdoqB8R)v?tBy;Vcq|Y=&_joF!KPmV zdMipi)ZKNKc7Hzi)6K9?3%W#J;NIPPy%&T8Rl7EGr_-#7Sw%<$5a5o>e4=c`IPfS- z!Iye__&jkc-vwNrhAFY3e7OB5SegX=1D>hzIW)ZJm(3bPVsnP=I2Q+o!!wQC7#d#i z%Lbl>q22FkJ#rk#c%~67yaK)1Pvx1A8M2^UBJyT$S&j}L8BC*L*{S28icM?e;4nhoNTa-o#aMMhpfM+IyZfip`i&_%A~Vo?(iufU8Tb?WYfjoPrt&8xzmn>Lj$tM@Tb7`PQxir|D!%V0sh}2>3s%2L+D$`qlLoL8b32KK&mNlZhwTJz z01687s(~F~g><8n8c1V7=)1Ke!1{k}_XI46(%y#@?Xdm!0q7|HKl>!h$svYZkt9^z zbZ!8UmmsVNzcb%LV`>m;z=B>#wFc4dgn1e{Zb#_o7=)=09~xF&CuiXVdYCwWIaSVW z3%$rnqA#rS?BB>OU`wJqR(A9OrDXSGJukRCEoAUkruQ_Y`UIso8Bvb@V~u>yJzfP* zk!O6YPuVO{MejVaE^zFL#!W@>`Y>nSjUl~=Bu2#lrwz^6E!E&&vhKc&&)-H&{``F+Icb4L-yD^oSCBjj0^6>WF^1?@mRiC_0tLE}TV4`}SLR+>cn zKK%nb%xQEyZj+DCt4%FfW38kI>152AGnKpHNNrEyh5q{godNnD!$a~b7JONQwjM*0 z8)T>;D(8A~_Bm7;WXC6&i=#$U58Qy#vye~?_UenqwOZVE5YwB?_(T_UAS-Tcwjfpr58KbBO>-G zkm9*-04YSNN0e~*!CvxN{`TePcmLhe&K50X(BDF+*5$bV(h1ewAKMfC_zzwbSWi1K zgnPH}YQt`fbP=Gj`t^~?-`DlX{hv8c2;Y%lDy6@PYd!DlE6r&`ass!8*y3` zC5^0~uyPOQ{>z#G<`9!n<%X1vjGzYLnGx{Sr*PuLfCiDZH4XatQBrhM_Yo_>upr_v z0SR2FZ%EG)#t9*=xlgFF#7FW!)q;O*r6Y8&b5+Y@`m?)Q^M*y_DVF*&Vwtc+s5B5y zdmn%P_^09Zs%Q%84KI5!`%F6p#D{S%MvaMg5^t|d+(g2YVqqE3v(4xhy^O0leZIWP z@)f@Fx)MEYyjjr%4eD?x6H>24OSD%O8k>ZY{OPfm*G+Q(8*ep+#N2g;RY$^!XHXJ? zrqCOz&4?wXyViX`w-Q^N4-nV47i8mi1YFut@^grZ-=dJ>`T;jw_1h{1cOG01daSf+;!3J6%uVjFyeb?&ILm4So#A}_pCnli%4?kohff{%Yr6$E1?q#*h^c9bq^j( zWu^6!E0HSu4$`_jq<&0j>MK8_O+8X`*L1w!+CpiAXa zUEer-9dJdg3WNojc+s9syRJ;T`Zh`}E{c@;+JQEGC;hn>cQ`VOeG6K>*HX!ui^U0g z4xnX?W(Px5J?nzo9tNORz8T>?wCNI53!Wriox#%3%it=Px=eA;gQjB|jIyk<4KPtY zZCfp5wR=G;;yIb`2LO{a!UbCVY>h6l$-jkMc?0i+_n)8kg4Q+ayOGp{nTzfdPxPt> z-4b2Pg)Rg#1@2C&Qr&{PBcr{18Tz&C6Q{YU#PRkY_@Ba;2w8Z)ER#dhm)t4 z$SQ!bYv5JKT+1=Pb!$6p?#t+xvRkyX-Oa!(i|V9u@Q+lbxA& z?y5_~K%T*F3xThte2Kbp3Ld_8-^Ee|zRlOa_jq`4*Bs#1HD-5^0XH(d?B#CK?K$M6 z&Q0PX`ramE<&yMM+mp98Xf%NA z1pzrJ<*kIpZqHW;AVGmGHPG8o)blNn#>WSSTDmC@$#&cz<*=0@w=xs=^#2Q~-Y)uK ztOh=_;8<-vyyWWNpy9D^lql9x+;KPxAa1@6f%g_%*?L{V5=Y!vPfxRvjaqhB26r#| z%Di)aS25jtcjD#r)=ZkrE{P2Cp~@ibW3%12tY%BV+{e1pI;TNiiJuE=DI&TEKTmUi zxI{LyOsOliSMr4$YS}S(NT}k&}cNWai|Tp5?N4 zZ(Z|0JK((#Sf?{3cixZ)1!Pd|v=)_qI9ZL;PVP}?6T(7H!b3vK3j~I9&1`Y7v}dsY zVX1Rh=LN$#URkL5?k@5zpzzrTY-6(6+Yi#8x1x;~K2td<5e7saMIPmO!^wC*Zx=%S zL+q|rCC>(enRS_zmUn3ykp}eFLLWennl@V~2Ws$03K}EkaquMQuIl=$DvOQB^8y}F z8cgZtT9>ew?mzA@Wfl@q8$+%79NPt)#mk9^+|IBTHoy|Zq<>B>XmP>_(Ys&~K~dzv z=s@BjXXjL5H-jmJ-<2Mygy$=uYCdcK0V^>8tHb+8mKKkz4bVAc-9cip{6nil8(#q^ zf!Q8ax=aKFrXt4aosdww?ZfilD0pQ#@Q_JF3y^=i_S?rA!8LE{os;a|_^42_v=*HsYC+PR9QT4WeEXR_lpOchxa33YS7F9U#3YU4i@jUIxX_Tv>LfeEB=hKx`Tw&t!r0ZvFr&_g%*OGkeNtayoy-s(_)KMM-t~& z=8B7vA9E!J{5rSUs|WUtkFms+(BAIkbF&IegHiXRXXP?r^S)!4{T|S56g}B|?47xr zay6;1Qe3q3M-u~x3#Ya5pboCzEKA7dSFdO*$bh$$03YUIZdNn?iG91gL)cG=34N^X zU$`O%QtOl7DJQjC&w4>=dM^U6DQD3h86ptlWM-GJM@Kj5}JR= zkzZ2}d`a+FKBz8`(&jl6%bZpIWUih3xiAy64*ppO``YPW;yTLxIKQPEZb9X~)VmTI zp9E~os$AHhErDa3I#R^vU&WK>SrP@Kb3%Aj4-UmGHr@OZ;7qrovCm#xi-m7omvu&v z7o5R349H;F90oSTs0bRcc~NR&*+m=tmID$Ci1extFSZN-Hm)tSQYV+9kpWz;0Q8t9 zyFZa6ID5=cG|s|w$H`M}{moDfI}8V5U=@7U(x|u;tvO&nzK-;&{3ak5M#Au~W`H-) zE(%pQOd0%RCw2Nm#uo)HA2O#om$0l^Ag95nvWr#Kx@k)%JD&IQPmSm^s)Cq@fibGAD#^UPBJDK$Cma1SgaI|&*fwJ-JSo(gW8 zYIbz;3?U4&)MRoGS^Sa9vd=?OlDbPjlL)=taznzztbma+n8=D0wur=a(VcljkaQ#- zyZ&+B`oHaG8o1j@SoL5W-g$2{6Hnu$W;>19jP&FYRWs|ZB1N_oV_rL~whsf$0M_c& zcTZ~}cs%e7O&erNR3XzyM7!=FLPNE8jw;0mOIcaw_?OI(k(wZqy;z|Q=UBv@GE_Bh z30ph^FI|S*T?^X`EuqW*_nXIq1)Nryw;Rr(bBs(4Pj)u-}{aGQqcD=Xf17H+Gt0+4J;Kik&crWz+Xnn7e`MQe(Xk4qTQf6=*6^}E?=tdz@F%L zLO6lBYPfp%9td+sJcOZ}z#%sI1q}W((NCp@|pa;tU z4y_`94i=(9yL+k6*@m;E*lQ8VUjtNIQ8%^>xD3D-d&vjIaKJQKB(fa_=)pinK z*=6_O&xpm1#klF?M3^fwKEbc~rWrHu`ptN9#@M}_$R6?x_35m+4h*Q0Jj6PREwHXY zV(=yV-gQDN2=J|qne68RJu#HR9%oAY0G+@1$zm<&Ps-1S8}ls;dYenlh-ZXW1FE9X zygy~$dT92*H2dbK+7W0agtOC{p)V2*^DQ3-s)0GQyfk9!+T+=09q!Ns#sND zv3AP>i1f8gXSDf$nVn$8Dgh{bQ^@nszcVGIKZspo1(d`C?@n46L?0t&xgG%8P=HHw zid+vKNG8*Dn_}@b4S;>XtKkPed?^7$ND6qW0JI@T-5fGYT*zl_+Z=ml23)oe1`T_? zQD`mPjmG2*u(?bG2FESsB$XaIo)6?andDJubhks#-xqA$a(IFr=}CD0d#ZK*&>{6q z^zm(u&MqC_N{W}Ip|3|MkAVpvIq}X5Sv*SkBmg~Q+2M3a<6{TdwCFXV^}Uu@@o<9e z^J!ef2^HE{taxtUGa`Q3Jxa6Tx_zNwo*ir+C+~Qz6sG4B@T!MrzZdMt&ZOiaUVEKR zPyq%NJMweJ?R?jR_FYEEF44uurY3kBJo3Y0Zzq31x!U0NV;71Kf;jwl5 zmzN_Jk0HE9E}bCTrV}1p>#}rhmZirtDzXJ3nWeZOXXM7Cy(2e~(#ON~Ms9%pUsrnh z-o+=Av4PHGfrUex^BC=A>FHQS%CKKa&{ff7M@Pq|fy>oLLIao&-=>x*pA5NzjK{FX zcrm$Sbtz^U8D+N8=_-!kcM7A8aWXTm%_G;05-JhosfTRocXw+(3E#XnGiVa>ZPxXg zv39id=rU7%)_wJ=VFTS(7hj9!9~(~${@&>4o9%bfEY;Ghsm-_OX`R>D%_F%SBht%j zl4^e83T0b6C2fL;-%=slgYV_DpXl%_+*u z0sd^4N^TsvruN>q=*!!fn44+t9`&XBlvf44zrbj}^tUPRi&##S>wkv!k)OZ!b$iU_ zER7V6KRd^I^%E#QXM=t`3*MQZqPfC5Gxzty=bG!H=l^uCIQ-Lb(Yk5pFGjbDuN{eN z%WrBVtunCxc42BP$To|W({bj2>Czm_~ zYtGp5McOYt_)nwUJ~U(J=6B~d9Fe=ca<$i-)8E?L8)BBONY@zI-gxAsn_LhFZ{pIU zO7fz&Y`YJXa@D7cbi|#Eg8sR8;-v`S!^Y!`owp7uySuE*VW9e*e0u+vJ@`rEXhx zLp0(%qnU6kQPIGF7^$lIGR*b${PE`yiL#HLdh~gGP;qH;^M%cwtLkfRo-iG)AKT)! zxYOA&+9X-k^IYU}@q>fJ7Pk+FYb$%5`(`b5KL6OzI&b#uBj*2YZcyo0(2@_;ng5G* z(z4C9wMVr#`rrELV~H;(gg;0#fq96Z+nVF8QTNR``u?fv;b(j!PtS4OnOo`UV{yg3U^KtK#v!t9Qhz7*RWm-jii| zg;n>0ax``osi)P)T)0{4IrNinw>YQp%a?&yQ$u2&782d==)y?2 zt*FS`)p=?$GZ>ob` zuRCunJZB)!OF@%XUxgL%;0egt4e0by^kT>CjqX=p3tXy!U|iRRdDsm&?C?T!~ld zOc{5+wbePp_Xm6V%G=&n=uRhJ_o}NW3bYsZ>~M$gj30Wbz}?x`FrD-1XyK%>`*$7l z(^*gFo)xzKA8YUa5M%oPk6V`3v0dy&t%fDpwHc>`XwZ@sW_Rs6wcHN7vSu~w7^S%o zLJ~qmjdLuy*Cru#$)ThYTHQ$9oe!p(nnN>l&wXFl_c>ng&wud!fw^azxewR%yq<^0 z^YMIM-Oq&{7yg|{F3TSbpl^GX&a8+T5v!cikUKrOc;nnBv)5O7uJ6C0q-NJmKDN(; zp>(>cO53|^?(lQzCsgC_C0X}<_0}y}`!Ho%y60wVPUWx=+T({aZ( z`Vai_?6gmU+pAv72i6~&@x6QbH|l+(_ee9%$5O9$%*y$9afq=1x`c^$<}6i4?6`mB z?z5-uVfK5^8rhv+X5_EwHoZKx&Xu0^@3Z!W+mMyRTh}RzCv3`EtZZ0v?yFJn|1Q}3 zqSWQ~|6hG!Zh%Mdb!@pm#`FQx`83hw`Uz|J>UjA`r!I_P?rAfrAH{WVV+xBYO z{b4mfEdQVs^13gC^+2c9h5R_*Qr-Wh9>^r;cnoMr;ab0`f}jf%2nkjy!8uQ~_TZ=Lft_q(xMm;b4iTZ0M*bc?*|vBAk{dw0XkYYU3lP0YwnM?P7Q z;&oO&cj?~Ko7e5WGV)f)>7>M!gttA=*Y9XIt;_1OP5 z|8*&3{q@3s3bqZrw0!W;>kFUk%lUnD_T^doyN*45;7Z<@rNfvYt^HZmv>6*gl{Zk{8zSw9bV#FSn_Jx1*h)Sr5_8cBja=Dbxc1zF(~fH zO23@}{)*wM!w>&iG~2p;sN0<%_I9mWs5)FfI=}wt-7D80Wx3@Wp1gjO(sb~^#yO`q zf3$5!(j&LADV=+MHY-0gV(rGg$v)2yH2eD;8UNduHNxpF5wogt?!4T4{!<+IQ*xK? zKU$~szk6|?d(Tr9JNBo3+w;UHW%3jK?%eMho)k8j+Zx!hi|3)B@IjLToOb;f`q$Fj zTmHG94xV`;_2A&zme2mH`ZkJxG_Ucavs<|Rrw-2f>C?})-TmhCSmV3z!d?3vcz10D z?5NdaPuKPPAHDh~G<&9SY2uK#O}&mDPeeV%k*{Q#Rzu;NyvBeb+w_Ys`8=9y-=5!W zt`3Y(?)cS_m*>ANig$XtE2)3s@^RJuibpMR_ZWWkr#+Kcry0jwRbBdj;=FvL+ug8b zRecY>Ja#f>+0m^f15X=LO~U@T`Rfl{E)M8YSWwZhx_MaNzmA>SVSN|&bkefX%=L#K z|GfCL@8nK#TPwd^Ce!?4pS|YA0;VW`{U3jRdiLekfS+FPIP=L5L!&#Cq^|8@c>Aod zw{1eV6O{{V`gcC7uIs&fDl+Fa75ex(_nuWcME3a85nFag^*(q0-^Z?jIm^nzR*oCy zyq#A)^7RV{`=Q7CS!YXUKA3r#fBv0yW!08$jWKTyyj-T+-SwM}2S@FnUZoh5xFj*> z<8j~j_{#t16XS!XkBYN?WWJk^rkyyuDSFtxUw_UH8Sbfj{87V@tb12Fd^#X1cJ$%M zw{bGpEq4xEXJtQ%Kk)H^^!Y#Es4mG~Rr9FJvNIj3&hFJFrk;D$`aEstC!aN>%^?6ORB4hi0ny_`W6X1@%e+7IzM3c zG9Ha_yK+FmC+AD9<$d`>$O&oeXPwluZVql6F=XnjpKlI&(fRSl z0xS2;pf3;C>J3+ts}{8_-ud5A{pH`6TyYC;SbRVELbsSsFQ<5gX-wBv6u#M?-<&X+3}uUas-XY04?TdV$EHrQwRH})9+P2F#Q^~aeGVnxZV z8N%oj?|h%A4nL(0)=gpU!g*6(n=X~xbDN(WZfut0usDsy`s!-6i~8AICi!MBy;nZ6 z9XMWrv?j~M@V2Ax5<9Nw(Rh8-Oy46r%})yg<0f{knsjBN)9IgGep)xBCjaosvqn?l zn^X14gU<=k&8aR$OA|A#qA9xAMLna@C7GR@HD{r_VnVp4z0R`yi?Ge@b&nf$T;rH& z_JzyuP0~#7)Beg>y`V9lU79Hx%vTl$E%N&I#=ldn?B(K}3kICQ8}@bc-+cDu)vKSU z-2c?4b$ijijOV*-MSuJ%XP$~jf2`V^ePjQR-1LVDnO81#7`pu5Vdh^;7EN%|$#1qt zE~?Co93`!txj#P1<;|{t^Ot3fSy+Dboz`P4H+%W>01r>!t^xaRX8zp0XsGXnn$BTg zNB*w)@r#;>IY!^X`(BQ@mb75$H{2>sNR7p7UEf2+^60L<8xOqeZ1`+**@KPW?^TxW zS&&<881#0`NZHJ%C%zuuy=CE;j+4^f?EJT8YA=~OaCAp)0-x~9!L&_dMz5LMar(iO zZ$0ksIDC4<7d3q^zj*%S&S&K_7jXZs>NPxMt@r$xj2$E9ZCJahV6orXd%I>|N?s6i z`QL7@Zx0Rm=fOYuv--84`+L|g3xzxWvv%ElwdUBMz)!TxdOj-pW8aD;(cb6!TEiMo zyN%nqO!x2DpPrtM{H4Q4R_WY0UcGnS{iwg5XY3oldwE>rn*(3?-1uqW(Sb}t%};xO zXe{lvbVx z4{Dj#eBXHN;uo&aqqq9%gVjH{E!&oHciNC4XD@j4D=zNTloQaSV9rNTQGdwMzjbo(pyq2Ni; z7oLH4oA6{jcYOcc(_Gr>VTXhBzKolD>GGG^e-HUFVDjeOv-$)-?AhSj_ph;O&+eUE zdfYWP<_nkQ6~!*f8vsNF=WL+2vNgm5xE-JFW z`F-wb+Y3vU`uHDtDbrR>ODRiRKD6X-SM%1xrtxKAi@g*xx}As{mvq3j0_zfwp5N4K zp4)o)-abzrr*B!kvEt;~&JPmy|90`t&;j=}4=S`kp zubRq*S0`@l-qY_T>vwm=-|^L_#*2*`s&icK^;7ohcy&hpk0p=4U-BO_XM9jy z{k{Q%gHx7UHkRMI8W5^qx@1Yrm>HqJzH$lmp1-EW&y$xP>x$P-JIUOMiSnxn|GD04 z-}s`7@jn?Get$mvpSP8+J+@ZJ8Z>UXr}Ek-2CL7enhr+?`A_oq4_bO{U*!{zfvNYe zU)TS&=GG&d?wOOhuAVzouRc%bt^7Uq-@C7wy3_ABew&`2nu;^iQ#10vy6VLY?_3;w zQyg0zvgN1oug6xNDRgrSi#xic?)S8v2_YA4L-#h$Kkdw%gh#o0$O#RS+AvLk zl24%jSCpg95)D1akl;0~r4mpz*)|I>AK>M<->DZo{Y<(C?WHD~&~vwD+C!-4lC^k( zL}M>f>SeMp%C#@_?A5hs<=SXU!(Lk0wkzc0A^puz*)2Zh-y25n3SrfdwghFW2}Utro>2crPd?%akE zr{9HWEN^4z0LKk!ZA(6C#$s8PkP^pKtA*W&$VIaz#xqD8BEi$A>nn_`l~)*hoskOC zTkWzouZq@S7`F2CRvYnDkne#6VJxLjHbbM5@NL@hTm4ADEyu&L*j}x53?Oqe>V_C? zq1kqL7N^O#6+=%uYq&^9t^62gayt@$HEUomxB)28tCnxE<_>tC5!-<}Z~IuJZvvp} zoucD>yps+XaE|2-=^gjr=C2orM7V7si+JLX6QKu=l*sFRAvxPtU4$~~9mPmdlbl3P zc?ara?K;JtjNXS{h%w3k^y5G4S!5Yqp0WaQ(_eLaz+e}c09{~ zw|%6=UVL1YV)`8Xw|-PbRx2AN9?GiPcgmzIgzdj{@8J)2~dXc%ZWGi!h;^9 za`-kw=(Wwq@k6#v&JvM_Vrp;FomfI`(-BcaI^UJIPd}m4RwDYE+0~A8@@aMyMJ2tJ zXQb%o`czl!BkE-{C>aNY`gxH_c$HDhIR?bnh|ll2@`#d?JzHt4)k04r`pN_hmZk$E z1Mt%BBC7r(6?0W_zu2{2N0{oO3ZCxyLM;`EdUnmIRJOz_v5TuMcsG^etvrgSQW1<> zYwwXL+d~N3yssT8;6Xqx>>lGQU6$_1)x7WKB?rMdK&4_Uk7+lxG_jzl)>kBY16FM4 zIf)Y0UyZnclBcRxW31GHlDVQjRI|MZA!6~O_F$>QI}&fe$SvI_hZ~Nh(p8P~fw8v7 z+v#W2Zg4ptkG4~(DtKTSdSBEb4!;k+Ux`YKIy_K3p(GiY9iT39a82ysxun^~`xA>V z{`iQ26MNsJ$u=Gmy&WG^Gu^gsC4p^uGJ7D0O`P4EWHI~QX}sdo@z>};k*M!I!su%X zbFi$n9j@vkW#6w4rT!XL|9o~Ec0!+AXml3+H6V2$elFr5)FgwY>54i@&<2j$WCrDP zJua3BI`OPy8e+w>hyG<+qdvL{C(DK9SSRap$8NGrle-{mJaEn}s(Y}jZZxyf5_`WM zHOoGlYtJB`+_P(2J)O`HKbt!!g%=o@nPwIF@%cqN>idr{rkvRDNFcZGge;pakPKUW zjBkqFb3x1!q1w(hQ;bI@g(V>FlC+Y93Kk1pc{W}Hnq)XxIAx)@t|E$7#ro&-EwQ;6 z=gXWYggwLzZ98OPh^H9MM|E+T+-rEdOK}ls$(fl@`OGr$RG6%Zae*B^LAz!Db|ou- zm+qQ4wg??Faq8*gss{s690v0fL6;6SC_1M4BWh0GkPi)OH2bNbyHlI4iGlT>c3Fpx z3?#4Fbrx=68$-KL^LEm)z`+t>8Z!Al{0rERAR^tU`jWbO`9mUW&izSHFA91j{&_v# z?$nkDdImm-5SrWAuE0(3CVPOLKpZ=XR$D~x<;6)l2D?a`p!NWm`6)eWMegGfP&I<~ zdZ?uevAu^akNOp%6XDh?Of?=n$Mkz0j-*m?!Bli-)VGcD`(kYmqYK!b160_g@e*GVSL#d6L9LAHE1z_M5^|fV-WhJ)(7-C1IcqhF`J9>;v@z%bd!r7MaYUyaDxAUS zbT}>6#3&9?A>GO^~_Aw0^iUUNj^nc12Rh^!)b`=PKS@)blPW0Gw zxB*#}MbjPn{$H|?lZ;zmXvtN$3m(A4@(mma#~!<5*JLni9SfMeAE1tXLjmuBdu7?z zNyDX0BePN%V=7qsv$%y!+-}HYw?0J?IWXmg_3sS6@7C9IqJewxj+EnPa$(bE6qCsq zGoWnUmO)m*kbehRMO+7;B?B2GZk3>fp3h}WbvbJTO1(4O(yWj>RQ1f7iM8}DRV{4| zr=ulvhLqr}DeR0bGGjO#><=PErUg(>w>@YmZgE^jQ}~cE#xDC+BXZO89f#0cY{j`J zu;Ih-^={6nP>~SyOtZxFmsLeZi3{wyj!%Peo%X8}ZQ(eVwFQ&K6(v~Y9$OEhLVWzJ z*aFEhrTHY(j>V-@c?F%lHu zd5a&+z=9)>6-R?$&ipQ$k}KsqkF3kbyU2sp@mS;k(S069?btiJ{F0vh%^209H=Vx6 z7PUSfOPu&hEYrf8)rzpS50VBz-(V+mYbX`Yyo7CyiQtf%cxwi>b7D_4z|^WI0_|yT zwMYqg0)jQrg%+|Dh8K6HX5Z%w1v!Zo6L3$O_7F+ufxVrJ64&P=6DJPn_f&6m`wgm; z!S1Ytj!`CEht$tM%ni^9JAEVVFmZ53QVoB~xh=MtILGp_vbOI1pK5b?saW8cA|$2a zI+zkCD~l?*cP`g#ENbMoJwlQvs8`s>M}_OUQnLceQnFbyOB1v(mW!z{uG*j@{jL>b zqDlfGD2!c8U#rb3DGDxT1VZGlH}f2-82Z^UMvHwD87Q<^;L9CIi%T){wd7rk$!uvj zD8J2;ZYPDTI=k~`hstw5lp8|v(w&&ZF{xGfCrRhh#%LRvp42=~;1cK>6FZ#fVoUJ# ztv%3gVve?D;8+r7Q%Uu>PB!E=jI)ikMYS?Cg_xt-m^}3`Bz-1w^5>WgBf1^LoZH&3 zyn#WJ=r1prTGq^v1k^2EjDt#anEo+V78`uN)6-Y50>C;P(pc(Yxs8+3lt|iIFo+t} z)~lL_pzvX|3h|-bRySa7y!R0|HM00Xa8vq4OfEAz49z!ZgxK2DyN=T`)|TEH8vf4U z_;CJZ8?>T;?$pW(yb!D}XCs3Wh&dKCD+oY7DnwwuGR!R6 zLj{-qb#nOSgq$WGhH^S-!DlhK#psaaP1k~0!_2&5&D!;PD3PJg)ubdcE|N5%M{O=j3C1J-A^BF8mpCC4G)ZgvO9lqc+{T*UbGskg>l-t{ zhy~#ikcW=()Z{~$2E9^~!dtk8n{_rHgpj_^Yz%5VuN zKPS*R?el~dI88Zgj=mG6J%bN6vWi2?zrcC&OShmil&s(f^6~#3;Y-rO*61}wj80aG z$tX!DTRDslnrbW5H1kGI$n9$3n;i4j=Ro@#n0R`(;v)0x_GxJ`9Yf9N1;dE0pv%np zwoJakM`AS96smwSK__P;=@$Nau^&w%q33$rdgHH$Z6PWT?4IRI=Abt9`q|`jX*w?v z69=SMC6H7;qvoha2KT4t^!H577Mk$92YsU!f~3U?*xzR}PI__^xE-ybiuO~Ltbr3c zi`){Tf?}%cBB%7Qsz9DY#B%*({uf-5E0!H4LIkkqIRT8)W1(yuHFwwei)ljIW`~LO ziNo#iSbMQblcGeE5C2V@d?JV{9hdkMo!VAt03#-OgD6xp&bO*%7xAq|mX8cDY2Sw? zzcVaoWftHP7wldKl}3ewCcv9O(vog1tj$;;a%$sBtFDYS$BCStoXTggGc_-yf^^x* zu(5$%A`D--I2cbD+iYexJ>!=c7|^)VImUTXTW%`@-tA&zC^}5c2eI9)fz?7}Q2`e1 zw_)^C$?PM&MNe2W>|joNOXhTV2PQcg-hGZOQFJkS#yZ)_aCkmw9TNyngC+ewgPK?~ z_g6ljK!s{e3f9`~WeqHT&yhYT1)Zj01-z7pOBDGi5lGJOS+jg}Vcmy0(ZbLMiJa__ z7ll2!c)Pjc3OS5BTa9vC8u4kVEIO+{h#*4a1Vz86{1Y!~07gO;CQFHq1rkFhBSVr3 z^f~CaOCpD6A;}-tF))=S*zb%u3k1)Wrtu{$K7v;p$HNwSAuwK`LI>ayD;H%#y7ce# zh-b|m)_@B-8I(We!c4lA<+uWqN=9emoIErM1X$6D2pWq>x1$t?usuMN0&Bh+1^!@> z+0(AyiNat&b2Ta2N0K|5E`r>w(6 z11i;SJ$c3G)KC_k&vyga#U;F?qkAfJe7AM4Fi2a(yY*2)q!b44KAH@wxeOLjT{$Dp zKa-E(jD4`*q&6{qXJ49(VgK%tY`;1*6@8Sds7_z=#Aubn@cZZ7M-m7R2JfyAZUEZL zg@Y>xYX^$I5sXE?$Wg0G67WZ{GpP^*5*tJz0`K${wA?HrKQ`zQR4Cc`iu4P_&vt&) z9=e+d`xFfp(#l3fk&CQ5cKy!4Xn`KS~hB9b@q z744_Q&8WX*FE!vGT*iEVSg7V(*ukHmCu*lp%<5P~@AK{<6|(lyK40M+t*P{Utrp;r zSJ2oM3Tc4w%g=ByJ9C842N)IT$0iri0{+UQbX+Vyhv*Cbk2#b?<34{`l@JN%(4lw? zkp|d!Uu^VF+uG{e$~&Z z4>GpZOCh!FfP)sbRHk{sN`26C#a!9~VMva?Jy&{5UjK0&r7Ie_ajjJ3Yguryz7Riz zpMxRJZpAz;Ytu6iaZy9))4yp8>LbBC#ly4IAv%Rvoa+(2%|lryqCXRhyjn>v@sj=m zq9MY^|5YR-+q2d9kG(zu}Q?dm^2dVubk1IWZK4^X-}_k|v>&?(8L+4(YTjBoG+NxQMZ zsZ|C;Xil%_EQJPH+kK>6ZQ{oxYvTg6?*^SBkL(|hnYQS6ns5C>?6r>L(N_3+ph8{Z$Q2r=GE zGiwl-dTFJNS3u8*c{ZNv`iS;mqaH#0z5u|9PSlSsU| z{|qN8GVxoxW1;w}SKh;iXl6dh7QNM`o;$8V<`$Vm4c7FtJncgy)Q=v-Nd@^zajI`< zTOK2JU9{$$+ZNvo3)^%b0UD({(5hDhTyk90>z`1~BiiyDA6$WX)@gs`|9|%m8*Th$ z_eL=a(}-b4@Jb^aEsD4R$@!f$7@9vuq55+4ot6#`Uu|@NJ#Wgjh8y^7oxk-=C7NPg3bv^*OsG@M&l}q2E8LTW;;SM zB3aI(!gQlV_xRlb!TXC?lr@OX28pXeG$EoQm44m2?Fn^n!%7>^!*uSaQYXIwab@Ck z(Ov}0swVlqO=&f`N055dtp{BryfcxY$^EDROH^uy+c9*|w^#VHMSH*4J!h;ye2vfAcE5)hbHU5Q{ckimc0bSMz+_ki!OU&bQx{4cqN07E6>~(pwh+^U zqMf;q^{sjblC=P|kwa+V#UZpWu|uaQiTgh*=v)1c8#Dk%se97fGGofw)JR$uoBduY zQk0}cTEClglCfCCuIK9YZQ&j3w2$eudI}H0J|4XDaQ3vSFGwrNgcrEwi@kh z08FZ%#UWoCAg-BE*mHEBy||GtvRdX5OKqPcu1`-$PXE;8n%nfsHhoWO*KXU1P+gGK;w0v&%^fH?kDZ8AZHrS#U9Z(J z*_0$Izhp_0lD0rg1JTQ&&hf3bWRFoZ#-qb%< zn=*(i(%0wn4GvW!ZdhhUtr$N}r+vdL@P96&_o3dacv6ba!wE0ro(VLKC*hYRg=y`R zeAqJpKY!LFr|pXApK3k_m^n$B2lQfqthxkODsfO1 zQ5o85PZss>ed(mB*4V602iI%#Ac~Lm=Hak!C~Uft^W8&JgRR9V*Q^}859e;UX)D(3c;R(nf%X(Hq3{2_UCTU$Ev)3lbx4&|>_E|PJtf{j~@6zwF_8BExMZIGJyg(j6Rh<&`2q0%? zz>s0sBzc=&4OxooqJA8;AEFWrvttQc`6CWJO9v85tgZJ6u@1hc2We^%^?-Jspb^ig zCYE|F?O3miuNd*##XqJ^x$IXv0K7ysiR{A_KAVmZmRwo~Z4P`Qe^t=JyGO`rKRR5~ z@t&vnt*}T#WvI$4jRHFMN8q*)P5kky7#hivX=`lCOd(%0raD1 zyt9tAqlQzw8DJDnp*e>d%@-3E7DU+V#--RV(r<_mbSXKWH?fWN!)giNICVp;@ z*Qg7gpa+!1f+~ga%fZe>S_@h(hL+VLFnh2F9EQmXLYYy6SWpK?s5Ay}br?W9;PHu6 z(gUV#Oa>cao_8NQdAK(?zwa8dszjsHOCi|9w#=m0LvPF$zSLG2@uokqCoTDgrPn-|QuA?Wc~(EAcEr3=uBhc{X5 z0pDl%S*4L!iEuUl-jkeh!Ll$Kp;1&1>SvQyY80Y9nQ9J6*lGc&Psf`%YrICW%&I1u z=a=D{QT-_l0d2I{Jv9#<3p5H*d|)vN6!q9*k5njZotC}`%0L~;r3kv+$P1tah@j|T z6~9)}zB%nINomt7OhE_+q@1V0jio~(S!?O<=;SRM%s1~9>Ge8KlP|L`S#-VU9`N4Y zm9L_0>N&0h?O#YF;J1SoA{X8@T;|bEG+mXbJP;M>j$-*$3zMaFeUjghm@oU3rB0>3#%ao5@m1$f7D?HNZdpjlc`P{e3Lk&u3#kJY#))X0SQ7GZ5+gND_1>BUH6 zE9fRg&r(3>OtPt7bSn&96?zPao}X?(Z^=9<(`!L$y+S8^JkPK zCca-jYHLSlcv_VHydAIWI@cP{lbw8sg}WU@#!L3NT85Uc3zuLwC2uSR(C?v%n}R-K z!_B2baF_MJ8#p;s8}zYoYB4|@hrLrwr!aX0m5`z6$NX5x;Fc0|eV?PSCyq7#C(#@w zZKl2G^c8_cP|g6q;7(IvuqF~<-mOyr7#BEJT3pX(IaqRLQAC7elbWEqJ zf*Kake%cd~fOF`B*C-OQUBWse7jQJl-cu9m{*bka>4}mnKpzLG;HfF(?dcJqOZVU$ zd=bsjltMZcYC7qhp!s<1926mTuVoddv#Kw47tK1-hMU#XP>d-0APb5i=&Rvd(*2f-ccFh! z8=4t-Np$41x&+m+=p>m4k?LN)qR85O9mLhZZMlM^>9`C7Qkw-ZqOnwRyXnfmXOKm0 zfzd*Th*=2(4yDRLkY_kf%xZBnogkUx8yVU^!s19+X^DAwV+N#ntjQ1zR^=Yy32ctA z7RAt6RM?Fr$GPW**07#fa^RwyaZVO7C-MZH#Rp+Pjjz;NKx|+u&3D8sFJ@2)BpjGd z8|=Q0Pd%+VncaIz8D9yll1=g-z?^%NzX6v~0i-Ljg107@@lQfcT&A^I0q>xZkISE9 zl4f6IT2=R8!`zo^2(>mhvY`UkNoWa$gv1a@=W8m{Ll%0gz*!nIV5OCs z*g#K|f~ORvFz4Sb zKLL@h;G0AeplOj7aI+hX5$eM-HHB(OFTF?-&2n-Ou=9SB>jp`u5C>qvI~~--_f*ho zAh(?miem74_?nwIx0s2W(p1eVtemwoo(G9u$Va}5u<5o_;gsJoXkeL0eg{lAY#=IZ z$be3EkI}wKP(usNwLQjUg1G-;;MA>Z=^6Hx%+4Sug?h2Hn4zbkp)cL3Aly3;Vi-#w zTW5&;%@_bSNp4Nm6ov!Bv3a0lS&&Iks`V1L6o=YBNK5#0$ASI|N|bh@YS`How6DNj zWm-W*;Y`JRyPS9{Ae}dZP9$sTEI}7r1$&|~#&BGrwtCAzl1lw;Dxo`|tVU=AHC>E9 z(C~t7^UMS2?y4qRJqJQ)&>Y4LvE9VcL0+&nOrbU}lmZyBPuMQ}-9&flDu<5je20lO zsm#i!C~r1uSN&>a&iVVnj1|?ZS0ULwU@&6(z7ndlBt6ZCa$yG*|fph2uBuyB5j(7Cg zoLkFcF;tRiQsC{D93*8!HDEanb*ls64`w30MpWUNvK6geBC%=q!@= zt)w;>5=^c`EHBw5*Ia>9Tc7|?MG4Mv1ADX0jAwu8j2+sZ90kei^P9rq|4X33|4aeP2V z5S@bDKy|sagt-duJ)CF3L?r_l*rwV(7=e!ey`9DFTo^3*iF}>q#44E7^lDgle23G& zO0G_V%k4DKRcfjGyTy{L-X#A^1v1eeKHdbcVE5UNLQ>!nm9%3zuuc@oXounyn6P4e zU)#(cKAp!@6hWi6()aKRGZpF!gn*u6X964dH06ilkE}+xhg-xv4?xf{cRg(222ofyb!3boeI_n{9n=X35yaK-Y z8P3+5GN3x0Lgrl$N=OXxG{sK>hsB=AH#1P*cEzUiA$ffBRmSdolP}byYYk+v6arS? z=?x~&`DSNp8c@#w&yGYf=)16G1>_J@&Gi2DwLqX3Yl+?iWq&wwbGRtpFYGe#CN~(k z*s~Tz6Zbl71pnc{`p_gdktpg)lgRFJ+R9Y7xzw>*A&u?@zoQyouqX`Rz&0^_GA3K? zoLowymzl_)`&gX1n{q|hAi?F^=Q5+}sOWfwo)tH6P7!3(UhBKQC+lF0Odj;{e-bbN zFwhS?HOdB?!W~Eq=s76H#QDEG(r8Eq_4rdOhgN(b2q@lSO(QEM!&TlWN6x_Fvy4L5qHwWR4Z!ZBEg#b3L1semtg5J;_g$p`VjQ!vVc7ins_d=4p zsSNxJajw9rgcdN_?Pm7t2#X5=s;sa>Regn5E zY-#jg2>z<@uHG;WH_Y}{X7)bFoox9QNeT3cTx3x*ytPK#*`YNCCq7_Or z>3gPHTZ}bTKv&^xS7G4%$%<~o8_W>wVXAn8p}M@D1$ZDuI~qy7@G}M+wh)6$(QCfd z;cJXsiGW}RDN69HqhpcC+1y}+r_jF@<>xRNL>#`_r*32po?)Bpa}GlzgZw5&1``F% z7{Jay?}PH$8`M7fDBq#Y#82Bg+}0gl!2_Eo#{W>I1|Mq)Xd%%<203e#jHHtycS@hn z{4)jV93B(-iL}VTADcm-r>j)MVqg`K*M$oZG%1`RZ4)6zrPOTioF573(`_TMc$DDbj0AUIgTvj#7tllpRL^HT1 z&ct=N)ZHXTX<`rrFK#w=<5!LWSpZywI&c!AZiH_%#XBG3ieAO(-!LK;9V4Z_briHl3b_=1NDSWp{8m(@$)OEs{~ zP_5OWlrDvm{Y zDs_J$Vi@&sfs;kl%itE$z$ii1ewVMqxllu=m*P93IsTn37?Na0Zp%3&9SbGLn0g*Y zU*<45-n7mabg5o+ohP+08AdgkNT0E7W5DEXs4s%-yTnv0Omop-Z zbJ%$khf#oX?eCfG28aIdO+9`f5c;S;A%fj1e{tCHS2wR3`I9>E1iyTZ{lKc%vZJc; zqf~(h`Bah>Mei4Y#SgUgN_quB85t{ePkKecQ3(}XCS9cxw`J+c4;JwisQz5kbp!>6 zmjyR7J71|$2|8SivuK`Li6phaDbZ-Mi57vb4a#E{Xq$kt5-Cm}XKv*jgznF%M?wQ7 z-oOJ16t7Wm(Q<3#?v5?sFG1R6MGENc1iQoUjEXSSaA152DR9o>U@QTj1CB)P0mgsQ zRa6%TsRxI1#Mo*?PBJ$!wB0kBvE)M3e(j3_Qv5c3!1B#4hr5%Zt+bf7FH&L=`wXy^rqlBcAzB@o13_uR=v0cBRm9_YBH{KxY1&2t`%7Nj}LT@P0WhJGynFprxi1) z|2YJ!t7L|2G%DT2Fsx&3o{b<@ju35v!R7l`5KjTOiLJ&T$IF0~b6&e{3kkt>GzU#x zuVDeM2bGh>?8KzUk<&iVvK2CObMep1Nb>nw*3!n_VUeUff1FG_g8M-zZd}yL%?|Rr zV}~hKfH7Jc>hK>R9K8T6;yQ3XzZXO6xp%fswesh+LAXv1v3do>FH1yoa3eDhOzTTL zKNOu}>_G*S{~18r%K!pXY6=q-Pbx;>)~E*+QHkx=_D;P98O6ShD*9#S)~Aq-$&3|w2OGrj_b4+(2nkYaPr=E zi2iaSfq@5ly^s$E(eDMXcIRXIipT+CLaL(22dlTnBBy3|@NI8Vy$7z#9Z+b@Y zD-i-4G9EHU7(9|yhU>U+SX(O*^hhh3mtUkQd?f>w=1X*qGA~~Gy9_)NJFvCVNk16P zGP|!PldtC9(Ur9<^N+E>TQC z0KI`0XDy_bsWx%5=@6UF`L+F&CNmh9VF?{Mg3A(w*dX2;!yAt$Re1}EfiD}87=A3GbuexjD-n>ZdG`U|bYk5_`UfP)QU2DTi<(%zXSpy(=v z4K{g6Irwq5cn8>#ez{f;Y~m2)hjWbc{4+(o#e43y$pfh&*XlZX&yk}qs_h}!?X7Fp%}AA&?BlWC&I zkuee=;x2bSn}Z5@u;DY;2&!8EO|1t0>yHMPc^Y_~F1QQ>KO+F$Fm;GXqzPke(aY=L z`Xo>QQX&05Xqu%4*F6LM^xeT{s4!V{5dad2F~V9p0@f1m%?WK&`ALCooD3p}TIZ#r z0DmiTc+mnx^%NFGthFb}a)PK?3DD##W+*R3J3Ab@WVowlc`o4KtgYzBqvm!_WUX>j zE6iy-H_1BuSLa&RR>%J3VD%2)~?;zz`sP6YG_Ocfw@NeqpJ zp`2ugs6j_x;5z;{Dg?t>VP)ll-(p~CE?Dz(l8%?m)Cza^0+Y9q0E*K-@XXl&t5X5J zWNlX`U86@CW2m6}?K?yrsAsc|q3^OCepeD`@<3j?0;@0uNuxi+?ZL3_t*sD47HbN% z5CQ3;94K}Gc-oKH9b2u%sL;gbGN=`zhDqWWxFI7aUL{?O9D@6N1J*7XHNOl+E$kh$ zPqqAHse*FbU<8v8VYk9=%aFK{gBq!-q^&w?+gwhCDDVhqG-!VQme>q|7g)GX%?wNw za1&q}9q9CAXR!ASXksuu3ZYd_%z)DvWe`o@iNX*L04E&q60=$%I>c#~-QU^4#&r_C z-tpjc{Q&)VIWfp8Z>*GqS@!_-KhqsnABF-67NWVf7mTQ*wP2Px%anKwex8cX7d_5H z0Z}0a<)N{`0oqS{PY~dMJ|k&R+fjsL_`zF&&IJBGWTTqvGN_TGD){0v0(qS-sF}5y z^dph93THD^MYguHe2b6O%|YGLk3|=8Hg8ougFu;fLB(Kr+L(q)2A=CUV@ww^3PZ!; z3+<}oDBaeQ%2(*E-UyobffZ7>hDr&wyei8ciX;e9#SCEFwXl=H7mS1;R7@lqBc!^r zd8)dF@Xc+c!Ex4X#wZt@YFJ|cDq^WKO{fP}KENmepu-N(j+-Cz|Ww zr(j(L2o09C>p=yaBAp8e=y4w**T%{^t)igYyE}d%6B7Wvf(%*$eO*o4eXLMY(HXKV zBo?OUeWpbQKR#|LN8nGa72}sdIY0u|D=PmXN*J%g|6LsftW=8YrK2J@$&p_JbZ3Id zXd)@pj2X!vK6^l4il@jTI3S!@E4bveD#U~$I$^6`5g{VTdA(5R{~=nCn0-_L(2!}j za`XnZIes-Ad|P{yLm$~#8z&7naC(UHS{AA4k`RJ{tHf+b1sYibo=G2E6W=q& zSR42Jr(tdA^+}SfI0d056ob?oLeGVhB5-y=eQj2>BUmdZ9g8Yf3u^#EDN$j9gj|DT zQR!iT)Gc^t0QQBR1q>ebZ9E{*OWY%Lxgs7Gy^{V7NOrZ)ExoiOz**Dea|20l0z4u4Qdn(& z3E4()tKPg=0E}wDQs17}Lp8#3D)`0{Fi7dPG}5)dEYre6CZw4)s~cC-c`ZBiY6g_a?)4;LWYElEt2Izo7R+#}{XYWkAFHn=UkhLK0*v3lm z?r2k;BU@O_!?QwxL}?qd!j9m;sTFc8>ee91U9W)+o72cZNtX+W8F;#A6AMYhSh^U} zI-6!8sRfrH@H@&)u;}Is>O2MtVV<#ONac9H=c}D@hDfmX`GTUD7y9lm%~sFaMFDp_+VnDCGMgfuc)(uG2HqlD4D zVAG5M&&j0g-Vqi!>8^5LG0l-XbI> zC2&8yk#qfD;s$a<9}+h&W2Gc`vJ`%abe(pI;2`hOZ>nuF-1qlEBoFIw+e%2-6o~hifL$M&GCSCfo0}d!#VphI99_t6p?q)emB4kZl z0vv)<#R>5y7C_*9Mu!09`Z7!p#VAPkf2kS?xc+nKJe!WUH9(2sQb-m-==Hy3jr!U< zGD<-zxPOpz7v;n<;b?htQz2_U#M}K(7L|*O!8b57Vn66>$q5e~)B}A45Z8SLmk*y5 zUBEJXutro%X<0BU&dyJPwXGJk>zr|y+by0bg?~(dh4eZUr3?Tw*8zctToNdCpJcU* zi--T;t0Opf7bD=2rqYhi2~9w?o>2$=~jnK%nTOD*T;Lgi;{)GZID2Km(otFa$X6B&+ubO$r1l>;*j>fQ#JQ zK9Z)99`>aMRbO1fc%o4r`x%|S*rJKy%}BZd^N~mbZBX~Hgcix{jf@H=J}nMPGp;r< zTFDj4THK@shH|wOJ~Zz=7d9Bdwi+aytOC4wD7ukGr-S6#`2^fD#LSu%4uC3-H$wg8 z2pG=_9EX=07|7>Gz!tmo8ygF^CI@F6uugM$%g}gu@JDDLxd)5jHxjt55`?0tdzL+s zK&={QO|-J{BByOrHOaKSkKU1VTi3&MP8Ak}Z%McZDr}scGu8;40Dg#C2JUYK7bYqa zaF$jqV9fwoFz(C{48vF7#Qb7#B8zc0M0~%S%4M*b4miPjPe&bw&l`L_P5}iFJxQ>U zlN}L1`!E}s9@i)oG%1Vm+iHMG9p^yX3;`gI&nUpkhfQUWD4Ki=NsfYMhtAacpO>IE zLjkMWfAuybvgX(~dUCTyX-y-8?Pc2I;`g|uA^xPEh&7O8&H|rtP!!TY7H6@e>?wW# z`6Uk?Rhr}A0xWQ+F(ys{(OsupgK*=kt=`Wds zK|Q}l?UoPA(!p}AA5TK{?z~?HRF6>@BpVB%G3BQfYJ)^ zH*@%VhQ5j86SC}`z!4kRp*}P?I94 znv%qH@bKXMTzYDo<^N;qTfm|!-v7CXsFZa1CJO4}6>qpI5`~woG_ADg@-52S(XW*j z=~jj)$c}eYLrhar($(-%nXcxA6k#+kNC=3xRS*sc2)M!m%U;hpGyl(7{XNhB;bGq0 zvvcOm%z0<#o%j8`@6^_UZtfZzuU}3CConXlh%BFe1rk=^aucLM5Wb}R*+^(_lvus@r8wZY|Gh?4V?g3>Z zJQe~#3}$rbZmYU}u=bZ}Yyk#>I{^Yl-3PK=0=EsM&Kme^h_I!cWaE_tYoh?&W)q%O zFy)uN*(B%WZPhf!V`$vus)|)?Z7~CfDDn8QQSTDeqxO2U=~ff3 zi;=A;CR=PF?aV{T1%63__CAfpOJ>dFxvmc%-$Bc1@o($+1qmJXG}q$BrkMT*Ma<=V zEj{(PR-Oj{{T%vWTH+~Ew2B&FP|FX1#T~}!%lB-Pk9K|2&?IJZ4;0Kosz;SzU{6hl zx#FU!^DK2?;pdp$2)%KuNg)kF)qW9YC5awIIfq&sJ2|OklTc$#+9gR-cNsfTgD1+^$4t@LFHe4()DG>6&4{@YPSAtK< z+7dJ!8zuDQJnFb{5l}cjNs!CPQ5G-@9--WgXSK)3>jlXQWWW>?X@dATnkZUY9ZwyL zB$cfUPBXJT?vxLxL!0eoE~_)a$|uR@^c5L@36k?ReIT2m(9}Uh?+fKJkP2`v)Yeiq z)N2wlteQvN`k$0C+Nl45PSm~~X=T^v(F*-&<>UvfIe2c#T!gI0)CF;{ew@@QLQTVa zd(2|{qppg5f$1}rK%vY9>PVAv$`)2f9n($gY=X3bzaQLUW)qr(6PM9Tud6d+CSiIx zG=w@tjPsQxyqCwKsi8OhKOOt_e`hra-~X$V(kjbT0eBvL?+aD_oy8~JGL4hoo=T`y ze*&i56XL{{dt5#)HiV$cR{g(oT~8a*OAgZal!R;*N7|;<2w;nxD$N-)wmPlE0f4gld?`-q4VdN+s(#q526Kyh!$Q|? zQUE`r*1Pkt_|%`5=Ng)F=(bhvd{!1mh6W;Zh?liTARi?&-5EfSO%3C<)b51S8WE$rOfV(U}eXjP$>KNQeCT=WntMcI8?ag zb(4ZINh_07jgLt>-0P|iqceb}t#Tif%f`^OWzKqNtKT?q#yBgD0OB2lDgvP<)-?)&bR3<0&t{S*L8-3*C@E5# zzEm(n`6H(&f!J#7gN_2m(**ghmtj-eQdH%a={yj)7K0~6si&nzTLPckRsoG#ijst{ zm?NM)it;p<@RKB4d=_e2dO1_H#4D2s<~_i~hzx5yyG$_M)k7zCTy$w6Y3GP{Pwx#YP`yd13VCS|v?WRk^K({+XzF0xz)|s~qM~4KlXCvHvc19>W#+vk ze$AxJTOul1)FE6XO30rPtW=On-s-iRH<*;6@0;5+{3MTJQ|3F;c^RMAQlWR`oN+?M zB1P!FCCXOnC{LeJNId3+XRQoIi1fBRX&z?F0;$=ECik`G5N2kF@S_`3qB9RBh9+`P zY8GVl2Yv*Lsaj@{el?i1$$$!zd+9Yf{0C8rH#F&#q(!zClTt>ybEvh$})fNrF93ib3gSsaZtn5hz_UGZBw&5~OUoq9TbmWB05yH|G$i zc{r{sLJsb6f+IJ0jjm$7JD#=@R{{^4RR{zYOGnitXjAxAEo_WfdWvDT)1Y0hddl^( zk(JSs{N`N#$jn}Zj+kS0cz+t3Hs5W;Ea&V7O)p8KwQe`E@-o`m3#u7Fn>5pL%Y8FD z>>kr-rLL1C$y7(|3D$v(`9CWgP?_!4JO9e+hZ}VHT~kZT45r#jnb4FX@@R&YJI1woI@{@Lj#tXk z-P*lX9Ba?LZ^p@1hzYa3um$?ID&zg6HJ};s;4^4H;-9?@1tkN#ny8@)@?2?TD_3LQ zIC_50>rLa#co@fmy9lcU&>=(NHcSh+lE8O6p~tCF4=s!B2u9`|LIwsTygX2N8&b%pxU35xb&9MktEFL6t9u=5unfLOAe?Fn5 zCL7fH!U1(hMlR})rf{gK(#WpUPwY?F!|2=ZLjp%#>(imTG_;mO(RMl2Eb0+c2`Ev$ zPjC5cvWvb=Cs^t4*KHap(Ma#Gw++BRWqWSUQKqw4@{{)&ELgR=-k>tzisD1F`*80o z(Aj0c!nzIGiKYzLPV|bUXM@1;9-$)tFZU#QA@Oc70N<7;EimkYmUIa_MT>9yGIjZ^ zYAZ+arF$>bW%EQfO;RT-Wu__{1fTUjrrPX=YJohcQ?>J&bzT3pLegIZhqdS4VY?!o za-h}%j514P7sLzp&A`ZD3KZm>uHkT2#gKyPmX&AdY?;huvYD_7wbg0dnNT6sx39;^ zC(1=*TV|y@@nJ;Qe{sC=ai|w+F2%|FX(PU6V|REg*xqcir9dLt zBz_0zSoZENS9Qx-nUc8M`0w|X3J^@0%}VSCz(Q1|&|(c%sBd(w>7_}$BOg#x9#d2E z;ro)=Bt<9}i4^uXt?V5^FDpWQhArje(^59MA<^Q=CHK0IR}%9Upz|6`YZQyl{kBGq zC3_VMWp4)qE(A+P2%83Ak5IEnUb8KSyJK)Z^gcP`&wIUCY+zf+;aeErjnyXGO;xfy zkWO~#-kkowTeWCYCU#CcdjjJGV<51~z-cUQx5!$LIbAtI&+8p2axA@-9q_NdRgLCz zx7B3ZXxF|AdDVs`{NvLpZ5H`k#gZi=#6i(+IX1nd))d!}3*HL8L7ShwdXN_DozSzC zTCtxwJ`YRKAu{LbIFsj;uQycdz!-aUa_D}B{vpOyELGPAA zQSf$$qfcf6UiOi;PTMluVR>W`s?I+$FU=w=0*?y^p>0~FcKjAPe}7|)RP;G5Htxqy z=xl6n&n3D|wm5k9yjzG1^cpUN&|*lz=Mpce=f|v;1CBs3RF7~QcrQ&RTaH)#*lRwN zRpmmx^S1R|qMqzJ$pVg~U>ciK_S}qkjMUxO@y1LCJBIOq!3^Rw4lV|OX>^&O6PEunW^p96leUlTh3WR;k3oV`mLJf=O-{qH`?8{m<*4x(X}D-*`eKQx*BV zDMtexm@CncZK}-`t8R%<3jeP#N0U1Z_9~Zo={Zr^`@>zWJ8`#RfVDbDz(9BvQbk=b zcqev6+gvbHRgAO>!*eQ7`VWJDr7G0E{T6I-fjpK2n)l$AI=6ibjp9RuI9eyiO1i;h zW}c@XIj*ZUFNNqm$HbNZfpVK3oz%XL#R4m$k!Qk*%P`0R7j1AvB(fIJQv0 zGKxtpa9Mm_rm|4?I#Cc)=wZ?n>@4n^?|O3UOuF_Y$sfYbeY1P(BS8mo_eYFB7;C5U z_b^Z$(v_sbEWL6^W4HYINKix7iE2X}D#Xbnxf5bZZk2LeO{nKVC0Cn5DpP z!HBhL5;dKWH_m$R#Rq10e!Hoz)ab}m*5d)P^j0BNZe<%D#kms=Hftuu;!{)NN^EWc za)~@J*$|*=q4&Hq(lljRMV{eb5l7rROmH4 zg5DLdw{LS%R>Z!Q;wOox={YmO?3(@*`)BMOYN!!ycD$?jGMcwc(WVf^VB!bGM=%iq zxr6DpEgq(g!6tG^?}&#ndK7jt;JpeHPe-PcM45sO0yGo)SrEtEf*$HtQN|~6cFHRY zALvgkVZ-%o9fFp~i62c=Jx^AVRfHFrTt)0M7UtWO>6FP>n&`o@HVvR1e;q1FbUJJ>e4wp7pJ zSZw1@b-*Fd1m*?u%4+`HQhsm&;nFJ7Xl~=4D!x|c!p(;f!aXFjmxjw+NsS?f4>xj*~GxQE7 zmf`i)49A+vfAAW31h$o5H`%Q$mM)ybyluCd-9;_{$Iab|v&3@}+m?Fmb?bQE zd_$Bm7qVETIT-wR0g|Bf#f~gpO^%8*##>v?0*nnhmWcDi7B5pWc|K-w$43v~f7YyN z&r~1=0A8-XIq^-RU5n(8CY}^Ni@FIWYcwVUh6$_>ckjLbQZ2<|8~YfpQ5T$*C z6Rf21o{)W$CI)*Ie9NA;V>`K~cj%N@jp?bMN(^b-ZFY|XSKg0V z-oyoP!F0YdRs8_Or^F~0&3@`;^D|nk`*g3|O7Ci=M5emhF7F_>3G+^E?;!=~>>A#U zV#3}yyv`H{=!V_AbZI0Rr~D44G0BOOberj{>(K3*Y_LiEZuEe81Uru1`$0~8T~ss> zmK;-RRd-rRhe2h@_*Wp;?ouxSJE8)*# zDQ1J*&4Tp1Mv8<8;!N^n)#dW`gNBVzxJrrqCCFIHO+B9u#ceZf&p*?utfkH5DtWWr z9mdY67L2F&SPWT0hT-JxN;x2bXYxsOJ(Nk~&e*22&mG#2C2W5vIBb+HAE&{Jp)LHfQq==5HnQE~WF4I)_QRWo(#MsU#ZN z`XhA}f)imEW)|kqW>ed=W_E^eGk@zegRA-jEGUP5eEzPISOPh@>Jj><#8|uM5kFH; zwybJvH09ivWq ziSLjK4wvvK0O0OdSL@ww9Qmj;J}@1mb$3k?!jq8^7nU&#gCpo{hm79palK7&->=iV zfd!Y~Ql&%+C=Q$E2PsfXxB*ml7zdNj#G!`5c-pMP7%!lgAEwZT>}84t=P$c0=?K${ zTb@@r9p_0Fv9DsvAYXe`F-f1q&OXR*TT|OJ|E6rOb*8c%g0?hC^#94|Nt_=1uhUSW zYb*KYU4tkj6_A4OL7l)T-b(>OQHp6qXj2LO)RgO#@MdPH8&*+m(do93WUi13tTKB( zr3()c-+uvlx9}N(aL{ElXB9S@B>mFJd9+#Yu0OpUy)dRDSpd-h`bcQOfb%FJ6+2V} zNT4WTE&%?09<-M%SA{P28#~B`TByb=vC*mQr_dhHQ~>zX$=SnD--p`GpWKyFxl3$2 zNGeD=&|EKt!evv>*T^B0SD`FO=r4uNkTKST{-jUn46x5HY|Z?y-Ij&QC9f;nA;F1F z%peMm(X%P{@8f9BP5iabtM$^;=w`h$qtoXUCjrl6+kpkE00gboDuuAMCwDl-?vWK< zS5qyW191#y+)qFl3o8~%=WMM!S(YkE8#!%5_`tDtJQE*ZiOFI4g50t9K z#&!#~DOgPOERVx~J5%|v;{%F~RRPNAPn1w1>!mopoghB%I^`AseJuz8Nb8K?$b}?L z#>PC4doT#W4cP3Y+v1c&Vx=F=W}(zVUynrCehX)*JWZ&H!~2K<+$L`gELgGffN8C` z0&f%a@zaJ9D^EhH&_HMKUuV4Qp?n&=nP zuQ3I@G=`O_Ut-#XzP;2B&SXXDfg$~wgoUF}S7TO!a~bA0bS7g?+&=&vkV zX@}F{8F&!hHR~+q)Nt{=wK7zW>`%ezyoOh!t2ZlfM}-O?6Uw||)a9Xo2hOFpjFRO= zk6Be7KzV%+gX~1$r{Vl8Mi*9AC`t?4O^+mg13LjgL5$3PLpIX`=t^q2t#89Mz8@}4 zs|$^Yt(mTR%4y|90`%hhatKzQLUA_p1khW8%fc#E1yUg4qDyr$OoDN#ROHa67=Z}= z)YGh05>+6-YP*KrS_@n7eXGDjfsmAvVC<-Ia?Bf=Y8bziI?OkhU}OF>gSBC0a)s4t z=VxMl-enW6d;@Qg%UFC_3c$&(cz%YKix=O;G*Rs=M}IsNoZs^;BjsCIm4=cZ7w1fd zdck8ZwmMs~A*@u04f<{m{|R;{kP5n%KR1Jw2~Ml(enA~(Mc=Ni!fbnn=ZnMMU0x`* zs9dx0LY-b#R~ph_I_7LI;fJw#P{#wS73Ml5NEWw5uw@s;^3W+IG?;{Xed13%)1Tgw z11K2vF#D)PujG(JbX?1H-Yht?+4N^W!)wPHA}Ob+U9?#?K|(b$PYS6xc<+J+VYV>G z0>&$$zL+~=cFP?pgOGp96Y|lsJWp^!r-+|4MEMM3k4gM4Ox;inr^*=@KSYd3N%wD3 z)q2rm1;=L7qO@uamN;zcRo2ZAIUFs5(a2v}B6o@hRL>WS^H(dY7Muir7#dHr2ETy! zSLPvpWQEwShX9PwyBf#?V<0%WjuW0MdNfL+@Gwc(Rp~y=3ox-+7f&*lBHXP4$sWke zGmT=ONb*V~KP@<0#l7#sJlJ5;0W#U1%|gK0Z%t?4+-wtAA_S%n@}#uR52$R(I{~5V zFux@@^*~+J!gwMp91DR6F=`B~F#EBS6p}2~QQx@>M33l6EOD!$B9^!UJ;MjVkXs^mI&oGFEx!(Ql=7Y^aXZiC<{t%0T1y)yv6(UXjgQ{G>+hg^##J& zuI!A5EU+G8jpJ}?)+T~niC-MhU} z9BO^jDz#-e*l9K(m(*MBb6Bltx$w(lk$Z|!Sxif@@XT5o$+7GN*U^ayGL|}Vp;v2< zFo~Y%YZoB=v(MFYoWjx#85#-e7lpoEzy=tq_4IN&s070zK~>X-$u@EhdlMaI(_M)B zzE8^o$O&z9O)x?tS$L~CwHQ!r4*W|hn=+{#w=7b* z6QRi-(S6%hHEGD_T+u5!eukIn!ijQFXD>8Z1c!w!;(KJf`BN_Gm7#`;7`|DyJ3j{y z#5R;vl&a9+8+X%{7b&D5V43(J2~op2=G8RzUNZv8*WJ}4ZVcj6Xn&&J;n!tOIj4Gf z6$w@>4hj9YlDZfVVzug~vS0U~9<12wA*}((7Zjmm+`*r4mLDDW-1Bfs5%%GDk>XD9i2E z*7j`oF##~jvXk=DBv*`aLG3*6soUU`FqX_Sy#l7;Ao=Jh`ykJys{e7IyP2{-w5kjR zbxy>cY4T-wg%x@C7rK^9dO1_QplL5DxMNg(g^TrV7G)7I-`FC*O>#N(3Gpb(fM{Xn zp?s;$Y;|SAjjvKSkc=Eoab&dhE@fB6wrrREbMD8s3~I}k?HC=eR!YaeUkQx6le7pQ zr}1*b1r#au0zx?Gc4M~Neu};Rg&V7nmL<~)lM`;*Y8aWmJJ*TKEcx%NYZaEY>97e_ zOwKTQ3L46y`R#&q@40c^Wq+DkS;YkPz5Lf;5945$t9 zVG^^y1*D|mf5|Wj4@Xm>om_F_uvnYqwzIC-@$B2)XmX~*Tjzc|@f3~s*wt_^@rYns zOu-ySjzc`k60Awvpn#RL@HCq8rif5um0@hk*&||;Il-Qz`_zF!Ny|;ngN-RIXAIeb zRsVpl#!6#yIv@8>l4NIt(Za|05S8vY)d5l9pf^Xz z27uEqB^eUFgke(P7gQub!W6#Jk;g5{Zpeo=L?x#VMX8pI@StCy-@NsS%&%xeG(EBs++PA(k$C~G|H}m`>>mVL(;&aUx z;$U2j;cJ$7#69#jKenpv21X);#)3<#10Xcw##wSPZBnyUkiO&Om)k4K@s_s(;RI@C^{(#K0JG7r-^FFRlRr1}YsI2` zpo+JddCFEpIqua#c+SWs9TmF>6V6L}hZUQk{mN)FS7iTm34uc~>9m%sv+gBY2@Xyv zO@ck69E|ji|UyF zjhB6t9zR(;87QXNEFHplI3`P5)X&HG<9|NfS~6GbflW##SfgsQrRPa5!Dwl7Z4{g1z@rh8Im}~; zk@Q7CKWD*_(>!9O~JZfv9x4MHw?MJ%;L@{baVl9?&ZoSv{L+>Ps3)~0geTd z79ai@HV&Pw3PyX67k)_KV<$v6RtVv++q8=kNpi-JHs5W_IE zr-OqR$&;1E#BFj?>`ty!Yhbs20V};z%(T9<6^Mv(Y-^rb*%q%Pi>CmMDi9P)(W4|X z4Ood}vRP>^iDMqYT5?=eAgjXl2tH%NVpseCVlz1bLf)q<)HP;HnV71Nkko_nagqb1 zY`I$lKU~So3sE(@S%Mw2CxR*_1CBqy`=O49k07GaH37zfCbI-LkT2ZX@?s*HoKV%I z8_e(nQpVtYyvq@E(0mD-D@Yt?1M939B$4jsn7;?{c0p3VnfBD_ojRawf0J|YG>dr* zc=~`G*kFPV)w6XY)w**qFT8;;fE$UNE#V7&pC?azm+i*z1S=nHGb&B$7qi~!96mRv_8k#)3Q~3pj2|F)=_rFN++x#n*X-y ziOwUNuZw*C!l({+xwE8ok8<*gNtz97$k;GLfGheFK^mI9lCs7_W>-X(#!O1o$=|z`Aqpx)e8x1_ebL(#^MKsCAGrcxo3JCTrYc)`i@C{7LSkA|>+Thwa#J`w$IePTLu+MR@6);hCZRR&r z7Yf}TLV%E^AiWN>m=K&RJ)`SC&&cKNe=nV3nDXOy)fDuurS0gSXymOLR zU9MYBxc^zTSf!+n@V8j4sb1u>nA2DlhcilMetLeLOj@#OslDiqA(yNfPi&D@Qwqh) zHH-FMHG2FnyPX#(_XOXgeb>`}q*JE44l7G8jMwX=ORgmBBu=(3a#y4#7y=_WqUm2U z%I~wJ@jQ3V*`(w*d0y6f{4d1)u$ujEtxwaCQ&nbn zG>c%e^E3S?Cz_4<3)uT>5lVVR*OiiD{yayvd_85$XZn51Rh}Vc&G#?zE1K?x*OFIp zCB`k1%)P0{DZdiTzrLb4_>p{l-gure*43OuDhY;wu3jV~c}iR0-l7oljBQpBbLaB# zWy62z_pMpM;*&Sgv+S^8QKm4({>QT6RR6G$o8LIWQ)Yy9|M%j6Iwf3y`Ac|3k+EI!Yy>P-XJssb zho-H&5aTY0aY_ruFBQe=!9Vs?_EwavIaDXoHlfWl@mib2+t;1h&OZp= z%F}eu(kaU_1#2)E`8t#l74;>1-;*DZpA%lb_}+v_sY!W})$>ZtT9HqDFlX6#x%1h( zEnB%e*kWiSON?*y_Ti!9!i}9is}=Q1waal{vq^kCXg!z9ad6>=ki6cthLpXBUDdQ+ z)6DG0M;lg4ZcU{!gKb;(leJo+&PC%fHSIB9F3GAK$X=MW?e7;B7@E%MG|BN*B=?S6 z+de3qd*=SfHKCuf*&B&F(;C0;k+$yHf;$rT+|?C?+K+k4+1ED7w4drP+cedNfWKs> zZJTZo4C!sAtAEcgC7ILMrXTHvKo_@a7#NDqIk>ke6 zlHKK4=iYwjS@FHkKM)y^j4Maq-E zYBZD?7P3TfXXVJ6frUe8u-iXdKltt!jZ<8czsve_n_M(3I@5f(e@XarkyLvp-Z};T z?aGEG)aiLP-n-oVxd{_M1`GzTY%Ef4=Dc`3+!JotCn^@x>D& z>umfFTh6h=nzklVr$_~wYrSf$g+_Td`C-*^Q5~MnY9hAP7is+G>umWx<+_LIug+?Y z<8wD>NI?yvz!47Z@BLRK@|ARE@C}wUs+KgQH?poXaR5yykLAO!M~-qCm66TP=QkZ7 zJ?0M3uQ)|-n_5Y$6-M|3xS0XXSflG^eB-<2>H>mbi*cu1;(~?l=I0`V-Orbm3Wkcr@Fs>w32T@l|n#NOtk6S@-g_HiF|)b9I$h zx-NZ0WYgO>|K=rpHSMFUlTu!&YeZBWn z+&cH(vLftgjkTr96dADQNUmkQdcxx{lsb%6vmN|}9&#G*a6(?dI-GOQJgxY%S^x~{ zj6TUMkNE9d!XjSTAbyjn+s&05f7c0@BKbGau~ic^mAI!=SlL_WA8cQ^ty+oKz$##` zq?*58YYjdgCx!9#&Cb0$l*6afu0FE5A{b^t{VV^K(;B$Tomr}<2(y_fhtiP>k2%Qs z?RGBiHb}b~c{=nyE1446a2(r-CGLb}?Fskx@>$mpLLb-KL*bp3#Md}?n7-lWC9Mf# zFUHUZ2_ET?P=f#&TTu$u6n{gJZh2l|r^S=L9<_4IvyXb5-;EXErfKOrB5ya9vYi{% z5HcTMFG1|SoCe-x`s7AEf}jGHJ?jQ1ul%hbkRbI$laY#C)5uAv!b|pZj+m7icv22% zw`pM`+UIrPVrM}P7|GKLHz7+AW_oxCBJ3UFP00&x){B!;nM&SFWxKo&P{tt(yw+0j z4e|c`F}uUb^3{J_8aWy9bE8pt6*%aRLnqM@~fLhPQt- zDYEiVaJ)NHaOxcqZBpjS-GzB)vS+6B6TzE);Ar?r1CC*UKlB$i{jrqG*;k za+aXLI)RWBY$tW7y1_eEj|E2#!4eZzO5v+aajHgV91Nf%?K$klc5AEEV||xDwhRT6 zG@Uo#sRe#2r1>2{o^Q3QDl!tC?LOqLpgXJNvi5>F<%qc*A;)qSDg#OM`TPi-qHsX5 z4w1AUxY9LM%3-1Wy$ytX;(-v`c&MVgL9wA*kT~31O*C ztZd#beajg6&i|o9*5RZKEU0&~0mG@$Vlp`Q5Y|Y;EmLdyhoZaJCbvzODM8Jg#`k;X zlE8M?D$yY#Tl&K|){E5$H8Hcmqrm%vcdSH7_#vKDTU+K0UBiFS&;xOsKH?p7?fP_l8G1 z^-5Q4G+7!6{GqujL>b(np3A+)Lx};FNufS3^;CXcJy{{Ft2#Ub5Qnx->sdo|1<6+WgU-CbMnmx=$^63tp`@^ddbc4GV zZ&!lKk_WGA^>R|Vw=`TAW?3kxzkV$4TRuM|2mPY|=?msCRCz^q_vQF}H^>$4&6}8s1`+Rb%RO zNqa4uzap8w!O?UUC=o8hZr*3%`C&5LuXX0(2H(qxIO}@7P|y4RJl}TL`t9Xk{A1;} zY2{th$Xr{z9E&IfIb%qel2aw}J!6Pg33>^a)EJd}MULQ<9TlbqrEGB0wqp7k^zJ>< zJmNl)?;1lYO-nHa#w8tT+zL>Ma!jwRYj^7};XD%2qhj9b&9A1@64M-};IwEMjm}e8 zRlvc;#?uTsf=6bzV`M9EOTmZDv{3u2Lubo*gvqJds=eM`uMAfQFFnE=1#3hnPAzIH zYMVO|2rYE1^WS=%(vA2!&nZ4o>+eK9LECnAPFZ1 zj2U}f&G@{Q0_A?G16CivDGe76O>PvG1RfGhN=}6TtlP%WZPsPcZypzH+T?ey(dDuv z@08-{Y6H%{%G6=UKKDA>HFY5AdUDy~ldgcDTj3-N5ei85YgX1V-alGr&&y=3&Ijb z|AE!mX3dwSMa-Ea7px|vkY>x0<{L#*N=YbbtDnh3+9h>JSlg{)9*4KNnLZG{QSd?M zu>4glC-UDDwwx54*1x&+8s&HGT3189p+cy?p$@JlGV?0@5n$3U7nQ6rw7DTLD}C{4 zrP(BH)#2B)b#%C;KyZ=@F{^}EE9*49I8J%6Zir)5nz8%hn35_>LE|sM>pFEA6GWIp zI8MOOCby(4`wn74NHG8Q*Q*-)DqVY)Zs$=?kj|58D58ylU_s|(zLW4^7VD|ixX;rG zmxC6mmw0~%W)Q}@pC?qiygpUZizV5`&)Cvy7dG6%e_)wfZz`z}Rfo9Sd^Yh)@Dl!c_tB*pRj z;!XpPH;ladJ8aF$C0=7)`yyS*b}79P3Q{s&&xV-PTF$OcrUg1B;Vb2-lX7&c-jSel z?{FYQHL18;^2(&~?wNcOj3_L+9B?gJ%Mx3g1UaF%@~iGq65mK>-pPV7%ss{MKvkPP zz(m^dgy1wSafK+&fY_1ddF-L6=m&N|zyd3GMUi|f3q~J%<{1>hsbPsDe3m^PA`+p$FHJOhmH z7xGOUrU+5kZ{&+l6iH=k4k6?ncdckm;k$#6|_7b za8~}^F2%qM?+y{M$}DRgBUIa>FZUS!=*zItzGG)XeL^tBpx8wuzHAd#v)^VuzMA= zrmLUg_7ZXnGwE45>XZQ=ve~Po@-_lL>X4;PuvVMgqVg)oSvy179{x3uQ;CKmor@kM zBR^2(*p4(GvJXOs=-q+*kHh!PTTbWL0=Xw?6UoiMv1duehH=Zenx_mFSMX0U(f;435Uo|mAW8iq5(WC*VInKL(=%5ix@NEjW4FoE=3+sH# zI-u-ynTjmzVGz&=#^LqK+dXQNi*IJi@-e6y%Aw!4#5a`ken}v zth%kxO6~y4qZFZ}))wxnjp5P!lKCywm}jY9ok7ESKaVq5zQD^%jaO%2 z6A(+TY8b?52{%1Wbv5JZP5=Bn?&xXRpgq2I2ZU^fG{uTjn8J zV;yPNAKgd@&g-+f?1mTaT8>w&dsM1mZaka(hQ)YX!W+Dw^m4h9YETaA4k#7GD3E$Y zGh56dl~$#@E3K}Lh6>$L51^~6s3WJlZxp~ZJ(3qTLj>1Jxon*XU5OmVe&)XntI+X$ zc?Gp#I+e@GQ$3vXfg2go&6Z9tkG{OKgbi{zgxG zq2n)s;}8wuWW4OD%EqcCJr6;r);!pd`o=_us?BA>^hok&w1@W8?j-PI*-kh^N0X-b1ZMv zNYkI^axA&0{oA?GpolDe)hV0|yiLbc#d*CZa6!u@jZ-g&CK;4R>5{ZXuv^ZuHMkwW zlbf3S<8r>T&^h7=4?N}jCL0p6!#2%MXCFzU2#S+~Pctw?+L zwECunpyAA!qJ_4I`~BTbi&^#{Ezmz>eJQdH=jGcU48!au_8U{)5Wio&pDsINH6+CAid%< z4Cz&$kw~xkyomIs&lse4d|p9XT{?1T75hFyzBd&e`lZn`Y!eFiFZT=bT61?6<|neXT02@YscEA^G1w-`TfF@9?HC4OpQ%ly;= zmiwuNt@cw3{=rYpzuBArCvX0rz4?Ff=HKJZzt5ZhH*fww{nXAl>bESQlg|mi6-fW~ zTZ{Cp-$tb8{5B)K=(i2&6~CQGullKtzUF7d=bL`}klyk89qB#4BS@?Kjw7x0`x|M4 zUoO&c|4|+Ba{Sd=z2vX9VywT~idX#AR!sC)Tk(d!+KQ?EYAfFLS6lJ1H~$Q8{@LFA zpL+Ap_vZh~oBwNX{_ni`m-wr#Smv*`V!6NCiq-yVE57$vTk(Ux+KSEoYAb&7S6lJ3 zzuJml{MAs`nUoHc0vA*>Rlgq zRPUP6(VM@c+B2VaRCCVns51Lk9aU!kx?=-2 zswICMI0}RE`@r{~?&@O?&|YYr{|D9)2ScQ|8yFSw0kEV(w?2B zA`S2KA=3VxW+5HaX`39p6%-MQs=Ws$9674`by^qNGEn~ zMfyf(zvnQxJF9hgx3gN#e>*>qD<5~BhtD%Q_r&Mfoz+@>+Iavz&+j}8=~ta!Mf!E; z|04aaa{|&Oofjir)_FbB<(;=9UETRO((gMLKL>8?toGiX&V5m?ZR z8PeHZoJcQrx%Yy<&y_BVZMXB-~0KF_R^u46esxl z_UYerxc*naeoyFx z|BqUH3;NB)cZ;uY|5Z<}XL-Me4N$3ipMRIf<@WPZl=IZ%=MDx{>y!25d(9KN>gmVz zDR@Tx{oTH+{^R2l8nt%ls&0?(^ACAU`#qsmVQRjT#eeN0zBp?gQE`TiQ@^VZ|%`Mjgj=>FkP z=qpd?>?d^j6T0UKJ@iwzx!=KRp@sFRk@8c)W|Ku^fIPEe0boygjJL56! zGZXcH{{7LbLDl+p5FXQgPiX%+Pp<#(FoLG@RComb2jhPz{{4J@ z^v~<*=d;6`zS>d!eA1g<@}^&O4IS*~6VOw={4#*XKoy;-0=6dTi?P zQx9X0{XGu#IM(B2kLx|^dbIR#_V5qw8rm&1EL0OZAarP`F7(6Dl+fj&YeTn({t-$; zFNcbu4WTWe{$bCAg@pAC3lAF=Ha={2*u1c>!q$dmg#8+JAnZ`sv9Rp0+^`E_SHeod zZiZEcS;KsKcI^37&*yrE_MF{oO|MP8cJ?y%`n}ijURQdFy&S!GuMc}q>piFUyxzSu z{WOC$(V9t`_chZsf@Z!(ui2p4uGy#gLu1n9X)b9BHP;l0C0 zhffZFC;Y$Ri^8{r?+rf~ek%N2cyV}rcx$*bJg`sKKEwKq>+@ls*?s2sN$Rt<&*nbH zKKuI|?(=sa+NZQnQy<^HfqkFu`+VO?eK+*Y?fY-v>wW9{y8C|HFR35tm)37jzeD|U z`d#dItH0PkaKM}a3kED5uyw%M0ZjvZ2KF5|ZD7K{Zw49$rVadQ;J$%}2L3gW4!k|^ z;lS2`z7gFbVj|v+5F!>vBu1o0tcmy`VrxWZ#NLQQ5r0MGMBIvKifE4*J7~h7DTCGz z+C1pjL4OW)Tk9WrCc|Au@qL_cKlkmWmJa(jqph~LmoL;o{$@X!%Mrw;vmXwuN-Lk|xCihv z#i8{>?L+@FY~-*h!{!c47?wC}*|1H+b`RS(?9i}d!~Pz2ZrJ5v*M{94);dfX)*-S> zWJqMM$bOMSBcmf+Pa_i|zl|i38zOf^{uxOluSMRDtcrXPX^-?B-hH@c zc=Ygb!zT`ZYxu0;hT%UBKQ=sXc>eHv!ygVGs{K&=rFNNin|7C$YHw+)v@Kdi+hxSF zBSJ>>8ZmH0HmWAd5@m~W zM+J_4W_0N2QKKh}P8^*wdd28Tp{!FmAs+Izp(TIz>k9v&eG5RSs8q?E82HXKU{NLU zkw7@1H|PF){?8ce!+Hw{gyV+|!M%8RAGkI1F-wlj#hgAe7xRCnaX+>Y;y2H`PfoQh z5P%vif*LFazDp3eF5t?b4x0$e3DN{%!e)q(gZd~#eN+gm2|Ea)1TDfE!Y;yEf(~IF zL6@+Bup1UDL&8SFUifMsL5g4rUs}PJ2MJrCU2=rugl&Wqgzbcrkc%Vaa+*LQoPnIq z6I2PVunD_F&>(mL?eHdO1KHCh1QPTJ6v!1J=o4;0&Jlz?gc!&@4swqt7!wi+=7c0D zA%$>&@B~VEMzANOK?&(l!V3bK@DfUS1*K#YoCtY@vxN7AbA%5BX97xafoC(zC8!b03A)7Z1bt!^VGpquc&kCeKH?C;m^e%@ zA^stl5=UUO_!oGsQGyL|jBt?1ARHo&6OIrk2=>HDf)kNRI7gf&I1^a}7ve0zi^wK; z6FIPX zdawTu&*kECZjJbA_^M5O9k@O7?!oQ(2F$yW^KR_4&AXuFe;w zuL%$c*XG?I=|Ff6lb%bnO=j*ZlFVFL`ZCfmLri64!L^!?IX3T}nNM>;W;?_`mr?&8 zcX~ek|9uYs>a$1I26Bj!b@?CnKWlqYx)S2A&AVaJb@2S3Zx_nX)$?CI3l!$+FEsCN zn0H|+v+;i&_P0pTQPMnCPM+jZ>5o`UTeSYZ@?^;kM^V|fhlVTvez{jO5cPMXtEtSk z%^=NV-tIMBJ^v@~KP2R7-qT>c9oX-+3%+y-^tVr2>*qnqci{4lB_Z z_bv`W`nCDfa0TAmS`_-0=ggxyPV4^S-?Mp3S{i(&}GiZ6B^uFWA460 zCIe+D4zrN%O>nz8Ml3-Pkv42Q)>l3=QQ?`7BZm^{fmG8P9OHA*3Yrwg&8OU-0npeS zFat5bxe?hi!+?8ft<9!Nr9Rw{S9+aDWR-7a+=11$a5f2NVK#>-sch|=|y1^jND*asn zx9LcP43GOQ^47S5WZ=x1c@zs@-ern`enG1S(Z8(U2YH)j`Lz+ftWO5v`Qa2jIZ1td z0#9<#AGD!(V!o9gm7ql*MWcv#Q zVzxq=I23xHec* zgy-AfHT3!id^>}0`5C_kGG@u$gLlE8Of-UPsq69blLYDz$Xg5mtyG-Pn5EayG2OaN zfFc51PQ@VHZQ<9AP~47=aVf$~M$d8&%0xT;EP~qsQoEH4;sUj#H*ks0CuKc^pXTR?fKRe$DW~arMy-odYLqOU0O z$1(u3n?ylAGl#hWXQD5=scjDoI5nCR)f1l1*v5g!+PCWv9t*BhYpLH6wWd#(;2Lci z3d$(3#h(N20Fr0~4Z+wVNHjXCr6##WLg~?>cX2k9I=VKyW^T&VvBMBG4oeH4MiS}2 z#s`OlQ+Hou>hcHf);69h9z~lyaZAKAVA2Ka8XBqN7U7fhUuH?4SA7({u*l}R7CUg_ z<8K~20$+qaXWMnHzAiTVlxd7$!YG4oGZoe|M-3Y8GgqxE)OnGiQ;^&Ab%ZWh>rG(7?K3Kp)mUR z@mtSsbmN?jJZ=?5gvW(sNQY;bCw`eb+PnPN?y4K5nbp&9GvbFY&SQUB*tmW5W^G(p zEnt#WH{OEmDqWA1O7?d4BWUFWTk0#mEC#!K;)58YYe3nR)Tp41^HBzhcg)coDeZC; zY^!neVdDMZ!7VecjDfWyxcZa)N!m8f^{l`x(4Y$1_N$cRMpQaK+}DsWP;m@h~< z{)~^c<Q{ySc#I!iiN_nTeW#=8U>sBz;F18%uK_q~ zG&YB#pCfd6;Dus1pol?~cEXqMfUXF{e4EfYDCXRpw4}>VG2r5vCj&92bgXm=tccA) zB(9yCf&>8K{8$plmrSdlXOP~G&%sOaLL}BcJGTI*? zWB=3>U&CPm4vr$^HV=mcpc)|I5KxwoSU(7mzq!b5MH6#z0}$7s0J2YTry_ys=7Gd) z7(EQ*LsLLx2at+P1CT?2Nb;;ZFLr9Q{9l#X0L?L`;s9}iD*s|@fbGqzq4Qs%U|rK= zhzVNj=K8?~a*Nf6d(`;~bbzjrhCxJezOW9!joDBm09yea*a1+4o5g%xxQk}CegL8# zKE;Mk7KRRGw(^r9Kgb>O3kE4UE2>mIsy;(zi8=nAFJBUBE){g*-0RwNr>w|xk;KAuuT?!7(#b%uHZ z)JFUHJVsVL>^JnN{vcAfWMuANYyRsovD2XDPJ-Tz0OIj)qXJ68xm>;kYbcrlKY9RE z*YPA+!z?;=zV;vte1lRqOWzg-7PmBWq77t1}W(> z`d*n?$P|sfG>_H}{pTf)&;1RM3Hp#q$2VatDZa)s4ogbr*BpGA%F|dk#WjHCz#BCI zP_K}B_*{<-0vR7}Jr5AX#4!H9z~9s&Oc z#(f>kWiz1Q;8{_57BIMB!~=FPxDmy{0BkVaR|2*Jegv)+26v$vlu0zjh57-(0~ zz>jhITKf?M%r-@2*id$3bH-T>BK6H@=^%y8iw1kH59d3S4))t@;co%CQ-&1D7(W}X zpriG14@f!O%FBh6k@G3ZV4Lsb6qf;v0o0oT_Vw6P+z2L$a%pU_MliNEK(<07X6axe zko4SUYyxE=HE5E4`ygV#*T5|}eMG+H3AhAqp5hvD;UC>96ZSLD%{J$=RTZ1##1E3g;Ik= zQ*eKn-Y^jS0U?q|!MXoJTnNQcaKTwR0zZQ_9F080`Cvp0hkv2~Uc5e@0qhy<*V2mt3`0C)nz4#)uvQ5;lnFos$9ZJb{RNh0;x zb@SLdz==iA5sA4ZaL0RYii-dc5AfEsR2%F##zJuoL@scSCBVT#RpwAM9*N1R0Cm&= zNUg)%XxqSdz_kLgM4;l1&HU!#YYfX^4))S`WmZhGbJy5xkr{0@!Yp z=RgKrI@sz_;d85?VX$BeQ$`sO2O9DNfiK|XAqaR_o>~wu5!Ozy&F~07rj${bMjMe) zAr9X+6{+yUelFr;pC-@_usFf-WwoBFN4e-#V;BfO(R*0nth?3};~ClCdQ=MkX*b1% z&D2zDaXMlHvRhVEgxiYAO>qZ#3^8;@%8XhFR0CF#W*T3x2?fkQ{$z>)D)JC*KDUU> zjYvZf5Cw`zM^Ipp-U3n@6#Y+t2ceKDMjh`bva^V5`Hw;vQAQ17<`%TkIgkNbv!GjPC!d?i$@a;uLQ6L+llu;D82T=$?JEOr%!uYn}LDx0Gy9Dqc1d~(^LMh-u z2nc&FgdY2`bN|gF7YISIpfVqYVh14v#STIUiWP$p6brUF=r%ZZpUj;juC3su!^V=v zkAQWl1H2{_AEfbZRwv=1nA}Eegx561rCH*u`;lZMmIAzbt$__-VR;O|xbZ@#Dom$H zm$@`1=~f3DB)@dU@iCqbE+6O>hj)UiJ&#NJICq%FWHc(UhRHp1 z3ZgUUz!>!zK&s7rEFP272c5}hIDC+q-HjyUkMws9z`sfc+IhVar+_MGU=Qe^8iF>= z9GoK6{G>7IPA#)^27pI)2Tn%Mb4CFm4=gpzqV^#8Q}Q4Ji%buBFb+_vpwC(n*!rnf zcFYt5kR!b992N}_!WwzF`w%&&3Lt*wDDJ~!fZ`=E+gm|~Zi4wq2W^xIeFw3V^SSc? z+f1{b+n_N}9+>@`ssO|^(6TZVx`P7X451&Rm%3(dXT5B<(#&}MxomK>HHdhpTep zvIc3~Pe5=%ea|PLj?*-5FMzX4@pQmf@2B!qc#IYrSCy~J@c}fNFVblH2I(K zk*?uzU8`^){{*P{1?sN z7{zmW3A(uzVs@qzce51pFQf z%9KiB?GD4_Mp+|Zam*jKiVdl&aqdhj_slS0;JCfRbWm=i(3l^`V~9|S3?A!$ggqYs z1~VEJ42} zF!IXb7^jEE5`*Oe^cutkSwQnahPWRl03Z$L<^d1zeBc3KH4i+f*fe+mdIS(KnGIk> z@L&LDgNKjsM*-VCKC-!svjHiZqba(SqB)wP3n3t7pFqF@hRY|U2mw;&51~gKj{h)u z(hwe#D0ndNM17#Z1=t^8S4|-qus`Jx2?|PFATkJ(1ArNK5c)P`jy)paT!*&WYoN!6W?ns2NFdYYz=MgXz zL9;>zK%1eBgWy5q;=lt?Tq_Kni4i;>JbVOa&Fx}GaA4y-XGicl@TNxaopWo^G_q)J zQ^=X4$)NLy3KjN8HTTt&l?Msyfl2#nBhckJifmbn3*nowO70|H6`yTBY^wAk*F z4d_|Wo&wwyYJ^9rLw=k2Tuv(HKK~$N>wAcIU7%;4Lfw zT{OG{ih;_4#)Nion~sZe;x6!MI1mF6MZjNARUDsZr7FpI`7r$(yl6tJ$oLtK@AL>@ z@c^q1VtXAtPREa&egsryeVVEOCRK(4N+MVhylGg5K{^kCKl%&-BRC8x=7<5T6>Xqh zZEo4(*A3APuvUEcP^ZB}t3f&)U&x7*9cwjsLI>+KKvJiH>qY-@ROoOk4hvZa*b)J@ zIu!|#f;Pau7<6p|Yk+{|cIZn5gilTN#J6$c3hT)r`i0fiqq6QO1`D=9IgT+=%oj$- zNGl!)pMY|TO?)`P;m|V>{1zE!!M>xHE)7&Ck?v@LWAD*Dm^%*Y${B3<3u~Smur&~9 z)-a7d(u4v(E%gjRVHX2u6}}*65s!f}Obkv1LqVc010iDxz^a1LNnSQcmGD~QVG9eg zZpR-E&Yg)!!Qlf~$?LEUn1O*MJWTh*{ZL?Fl0gMU1|0YK8JOVupv}aC14=Jh8=6oW zrHK9r3j~GT1HegOesg*I!#5h=o-)ade7*+up4@9ZdAtcVt$-ndrBu*taD8*i11vCs z2Q|#?(*kZInFsar-Ri^2=S$Q@)1$D!B;L<8QW&Me)AB8y4i?f*qus!+@I26NDIjSl z!JFQI&22!(H{dO6V)#C2#YPT`G;2+90gq!%5d)8FO|gRo5F+6RWr9jBm{;zUXqYGl z3@!G?VK5=5#fDRbL`pO?$dhfo)f7xmd!QB2n+%TiRY)+X#m?SVz|D981_9hLwS~;N zo$Ib3_6QHO)_mas{v5gEi0PmMsL2i_nare1$HVH$_B;qey&y`lvKr2uc&sI$9Nrxh z{P(rYzpt0he~mwI#7xkEKU#bRN++6be*)`|qjN;DRD*6RJ__*b?hb@81A;tco<=mC z-`{)-Ikflz23rwcQl!3l%CY z0f={CB=$^|&~93ZP!5&-$#;KaGU@&y_{w+BJJfC$+_o;~Gwqhj2u!i{y6ldamir?Myem1v_G zGq-XTMkcelBUML^AFlFrsj?r=(|`Gg*SaI@6k1bNm>r9jMNhM@pAxGI?b0gG{bSta z@S>Ya%GEjEr>sxb{APaS=yYP?sWnwuS3K*r$~}&YMf)Ubz3!$>=%LkBq@3pa1-nna zpU(R>k@z0Z9Wx8=<7mpWYGcQcI|8DkeN@~A@`gJ;c zY@+PT4%xt*G;irc7Y81Bo!GOpTnjA|`<8R;tQ<~xpQcZ4X;$}?z@+yobMzF+WUc2~ zE7?p9;ovvLEe6zcO;5j4^{lx4V(h1{Mh{~W>i#qkZ#Il+Dmg*8^i&%sQG8H*r z`<`20XV|&vWB?wLeRnutCs}rUjMfJL{yQ?=y}<5N8}ECtbUbMRV{GuV^Q>f zToIn~&1f3#!?<{G)dQs)HC^`Ry6tKU53FVPmPaspO>eVDGUX1wzL?WU!TlO^s%Im7 zbTf7-r;FPV^!@Cu=&$W;gtVS{PI?WS54dmf?UJ}0hwiTo`plEq>?;*#+)`L+cf|Ic zbXugfjj>W)sE{k`ox|C0jd@Slr1VBd<(z)J`{%dczNdHdCqoI1jH0c*pLK*g#ne@~ z>iC%D(-!wt7mV)Z#`P!2M_gO_y-l?;1EioY5r+FU;vY!Amo@rY5qD>Z=u!WrAza_! zRBdr$Uem|X)`P!&R-7vh6H_danXGBz=^c-I>$!iVU`wEJlFv-Kii*lH!M9(jr=0r} zBHujyqp#D;QrcN}-*@U~CQmF|=+I%bOk7)nT2;qrNxNgeb0W^D=k||VH=d6z&k73* z9|<-2+Wf~e^Np_5z8~JKwOB`3#roy33hLU&Q|#{7iM8+i^rmh2M(w)HC<9elnGl(X zch^{1)i*L&!qFv{1dF?Ub^q@8x(QvJ*4F*9XhX^RlHv08gv`ZwUm=~BQ1d! z%C=A=^43ZUHt6iuc47&pR>Ucs^NjbES1uhUh zEBgfRFHjOh^%B2)c-LA)y0(r>U02l|e(K=@?Gdyjm(HCPlGqjE+Q+`(sevLOb71rF>7w@VzPvsijDP6Q>s(AKQ#mKDKsJc$G zOUd1hr!bAa;26uQm7MAJ%)i^ue{?a>PC2KT9#hwkmOY-C&3e7=X4USp14=qIwA0!&Py4VgZ= znXfNix*G71HYxAvN&i)zx*;Za_GSG2#E7$FRG<)q~?9QwdA8Ec$Kk(t`D&hUO zb70KO7Bt8!Vw>H*OD=&Prt*}d$_u}B#o27Xe^QOHfNkykHn8Ya_IA#-fi0FDlSe2A z)g5m%^}kDCm*)TZV{KgGrq2Wor1 z7Wi|Px+@Dsb{-)09nI#7js&e1nmOZ!p4w9IH;}ShIrL?p7$|uBwruSA5e*)zDG2|5 zPyf%iRqMy5nK=n(&xxSY`2w%g%yQOn*Sa1*=(wY%;_Tf*b7~U~3iZAhc)rmqa?Gqc z4YveAg(AW4G7e1`57xbo5Dw$^dnE`GAN1w;HSK3B?9BONuU{7@Hkx!M>!(H}BT0pp z`ClQ3;Tk4ywjgMNsgwRV1kW0nAM~W{#Bt>1!Tl-x6XTZdNW#L#F zP3}Mb*m7Et!(1Iu+Z8gqweF!eS7WR3fugLVT?+ge;Vt+%@BMt91YOze5-mX`FJ#c% z(DmzjP4}7%ViE5S+|^dM`dS}v zAg$T^a+g@fv!r5e(XO8Kb!s+Wa$iYU?F-mbmUu(!QNnhnP|iX0ZuG`GGs~7aMMhM3 zZ_UY>y}36JdD=_5*FR{_?&BPxyiU`3J@Pl9qUZ9!<`zBYN+ zOS>GIj~W!Vk)Nre;|Apm$D<6cI(KN*UucZ$^S4f^IOYBxdsW2HG}=PDhk-@Z~<#pb(1^Q5lo zQSV=u!c`3}p1{c}cQ#ps#pMk&>>t==sk`{asboV_Ji*2F9rGK5oIs9E?d)NBD)YWE zsN7rjJj`3-_EXc*tt;LlRyUV)z1Uo8hEj^te{4qx>Q}J%8W;Av>K!kmR=n?A^oaSw zS&y}HA|s&b|Q4^*>(L=es4iZzkb)>k30WOAM|r^YBVrisjUoEKZK7Usjp8 zQ!8!a`0B-RHLjWg3Rx539lrx>|{v}jr%Wq(VlY7 zZCS#1m-DT8m#zEMRyDnp#`_Qbij|+~Zf^?Na3*-!#$|?iALLa18jRq2Q_pl^sioq0 z10oz=>cu#>OySjJBll~8N^;#}X_u;}=Q3~fozmPKe7IsQzwGLkmfH7$4&TW$+;0r@ z;`iyA)9annn|oN~#|LkIOI)EWhT_!wN!j4M8$Yv2Pydo$ zKNiJk*_h%OCcfV-;`_#ldlrT+iv!+|<(!TP)loY8@oVLY*`;s8yZ!iim(iU!ex^Ak z{w56|UL}2t*kJ~0_a7q-OIywd70Dn`F+;f_tKS`q8f&E6y;pQvxY))(+}byx7tIsYxFh5r3m$#7b8R#e=S<8(zC@+tnH)1#s%`HvoEWln!fN;rFA z2-H~&`s}A;`q%A`+D%PJ6t^wfY<>T)&T&kFo-AtNRDUD5O%=0Ny_KB0|J+2PmGBo0 z)a7De(&OuU_pq&s&u(xgy9c3dV-7p4$Hfwfg725&hkZt-dsB7RcL|+7)4M)N64le+ z<n`u=pQ-SDwk?p=zl)!CY30T0rv=s1-g`2}D8k-4DqNr@t3IAvPi7{>kwhiVebzE}ibuPEzfDwL;Ne)9Lnwe{oo#x--l7Q8An=kAvZ4lFc$vvlMt_ zTljY-@6U*aQz0o8wH$(`zl+@H*}9d6NBSb942mP9Ry8!N#Lh_ZgsrXBPB&_zhHmdC zaOs8Bv>CO8tDiV^etYoqpE)xdwx@vB^cRN<~A^#vDI}`%dvX^tji#catr(va@WBQ?K0}!lYvmRRbB4bNdaUF201B3Ds8eWHu$t?!u0g z!ycAZvbl<}Gwo}w4Q-oAk(<9RC$qP|kChb4d+L~fEK6)M-*%Uf!*<2$3 z-j=#j>@sp_muV;Ob+lWQ*bH~fj+h*Q16kb~1{@cv6z4))T zz?HxEf@~U&va>FulMyay2KP$0{WKjK9W>=+_xUbt`o8-<@;tkKfkI%>MIH)Nh~!42 z2=hzvAP?k8u_WG;#p;Vl8#+77I^q&K4W=t)(sO6}oiGg&NaB z+~+W1-R%54XcZWw`*2hF`-UMGj4!Kb`2mz{i8@?8RwD7;)9UKepAQV4QYVS{9VF#M z{(4Vr#&S~L^`Hpq#EZKA{-bf+K}q)y=Sox_pJm704A~^MX3BT*E7a0EMP^t4b?9%J zMWjWK=cld^M|-yoURIZ}-efC-Ccd`PdM~ud^U234mxrN`)@Vk5`rW@S41b_HuKYYt z0_eY0|H!VrD-SB`+^KdSVAU#?XeSs(uTakQ-YXt3waB%{_kaRsb9ejHZW%#TBRrXZ ztN(%I&BlN;_>CIFE7Bts=_&LJZ=9AnZ6%#ms#!sTA6X{<+Ib*+V&A@cinjQ_=&s?vw{N_ z!ivt<+=|B(vqA&*440C7T}@1q3UwTI#EW(%9HuD0s6Q54uYUGHBDptn`pTVc(k4qK z7;p~x6QC?X7*d$BHe0>@maKDsIIk^6iqpND{gz}fRuy5>U%udb!RBpCJcm1Gk!y$J z>gxwuBxw#_CIOwZv7x{V2!j}HeMlRmdMi@BKhB^Jq)~-%HLd>7V*bXdcd=+hIg9yHumV( zNV@Zty%yI>uiiTRRrmZ$A(bSLrPC6tC}$|AHR?2PWJGoOARqR<$rCa2P@+?g#Bnw# zfB5V`V`>!Zm(est=A11fS5LrgYB$gbCQbBB$QfGeC zLM5m4)s=mYG->WcLS0xZiU$<$Z(LbQvnz3kjL6e)KOMb(63k?EmtO5yNL4jD&9kZa zxkON%9}%DV!gqB@>u8>i@)yAiE$53jo9)~9IXL(dCw#YeT%W|n&$iYdo1OjyDl@@0 z*|nLbN7Qnvjn~<;S3H8%g#~n1o#~j}cF5uEs8^2Z$(@ZG=*pGtkB*+cvgwD2Q}%TD z)S9pZye)+@a;_n{-qk-vx70s4+PmM)fp{Z*N7!bElz`KZd#cV|G<-^@9gT9j6c+H{ zO`55Egk8p|D1mHedGFHV_%8xk-;f<=d8JF#(ZwzD$A|0Q^@nI8g-#2UjCSgA+;6!3 zlF{E>Mtw}`vnzf2UF=Zm2NiFnOX8Nr>ZD%ZWhrLn2goJ{N_y#iXo0Pv+cN`F!W}Qk zt%fn3V2<%-z^hB^yigtO)MZK=hV3Dgzm$L{4HUE`rgs)x| zGWDFMcy8n6WwI{M4ounORdOGN^)6jnR=E4xsyMS#MLB0PhFDch(tWueSGZJJ!vq*# ztwm3#JNqj(dGbT#q`>uCJ*ma1u3zy9-E;3G*k1~qwsTHbBD)_~QfDhv)?fbgfjoOh z&QDqKR~SndDL!vUPk&=uyaQSP>HO{^XCy`i&l6i0UyKW=_Rx`fvX-YXP+x}Mnm*j3 zp7vAD@I5lFRVL}Htjaw-TV4?UbbJbk_X2v7$|}9Wi?R~lNXYe5F|8Iyn7T@>!ve|m zQI{9ZP=hqsbnp78W5-{bqT*hWVjIH~?e@FHRKkc+SJ-S6R3?(1!uux%8J(!-{1HB1wgW*Mi# z;$)3lH8-;2!dt7FDQ&&$e1c(rBne#uI%TBss# zb|LDD?Umg%^9r@g=1k)7E=R`h+Po8K*gkr7gH1RmBuzbRXv-wDzbY~ zzqC4~S&CGpF)5HWyZpIF)Kc^q?JKrtWQnutI}K_D4ZZ6j^Ydvz+WOr0mu`uCUfV_e z;+wiJBI2*3KmEqFc$c2W>q2ay_yx0n&5tkW>DX?w!?(GB|5Td!V zE}dm6;<~>UlwC3s-S|y7yZFRK$%@PNXE%E7r9KoJb={e4Mr&toPYijX!PC9fo!4YV z9*Nv+6kVH)wgpCM?9d}jz zRdl(fK4|j`!y2ngZIudSl?s#nRaR#xiC4YZe}0P|l_}Cn9LnfUu>{54S+zeLMp*{H2mHu~}EmtQ{mhKdfmPg?rRT2xtSbEd=& zn$_IfE0%27aTE^ky`57z!b_E~fc-x-QGarvJ+p%%#E`*^cY1?bvz=PV%VwTNv7Uio z3YT2ApiWJGru8_)pM*`Nxs8j)rKYGzZ{pID~dnw z_BS-ii=x*0X!UH1Yr2^eXU5)|e)-C|(WE+83{)@nmmda>(+bo4ZRpW$T@kQ6?7hRF1>(Oov zI9RHhL9xK@f_JrH>JK9alN)3D1OSjv^aWStiJ`%Lfdw0_u~UX z(gICGjxoyeDe20Huz6T$#zASxnstgZpNvZ$gddRF7rf6bYb$rT`^>iodLA5uZR%+o zC}Ez_8zSuTD)MShcZe*%#JxEwqP%QvrNau*j4hIOe#Aui{FvR>_q}>8;PH~0tddy2 z|N9T=J8;M^{f3U(ud`PQ+0~J= z_-V#&La$kllInF=+b*u{E4zZl8A8T{g^AK%?k)^+6fwD=8F!XprYm7?e`M)lmE7$k zJ97z67a4v3pUBeOzNWQv_=?U)9K*YJ$_P2;`W|iEKeL>8*ch9g=;h9?Y6#l)N$TdG zw7W>ocGt9XwVq4;+XQA!L;Bi6rXzgVEXP(t7@VTABh zL-&y2(F$L^tzPrq)T~}5m z#SSU0Nv?zQl7fOb+o

    x9xZQeedVT`8%6A=t;qI#XR?u`F#`KCAZ_AtDKY5a{t-# zB3zAmy%#@?uqE9Gk4gTWB`N7W5X!#dDpciu^ofMxr4~6h!xNn>kytBn_m#Bu)_v=2 z$UCSDzsY(|s5jpEMtiq8%kFOD%e@QPgAy*{FFXoPBb!~0ZU?WzC= z$0uqT{Wo%-*R*MCoeUDbT(+&VGGrCIN~>qaXmZ8y^P_t5OV5dCpK~v5@r?FV9Re7pm%V8PSePJhN zDpd|XIiqQ?PiV{jwgctOizN7mMS~{AG8VY)Unk^WIsS=u){>u)JBTryIMOer`;v!ERguE$rbcr!Zg;jP(oHeWpXuRDv2t=! zC0U^^f{ezJQSCtHC~11y#icIq3o}=YljtA9i=yqvglmk~ZOP2=enCBxmStvD8&b8%JJG2*pS&fnHOlWWax2zC z10Pzgp1@-jd%yoA`lwhX)-y8Jvyg7iZ}j9Wkcub$vcQ==dcg|3grrU0qR!4dT273dJmjN4@+Zj5=3V5>7)^B9%5A+R`&?xeIYEsl z*wuk%_ni~!9$MW#ntjK3aGe0#t5NrZQd9oDRdDrupB8*VQ1xoekKTv&dsf7m*7Rv2 zFFoauw!d$cS|_Rh4LJ1@b`u`^&5-?Zsl;8nwDQF*#8n10LBUc_?Flz*&CoKuw9B7R z7J1g*X|gfBkd<+mc13u<*nPqh%{@WFOBa6G^q}p6N<~-XRrRQxSF2x~a6Zy<&YAf2 zS69XVNXT~i(>^r~U-82EcSnXbqZq9TIofL9!F1-6lT(%V ztx{SxY2-}WUV8NVN@*{5&A^O>mvZwwLxxIkp%lHjp$uT*QW#KQ=oP6zKLa#%g-yu=Tk1hb#H6UsQ5_ ztq)Mw?$&GPhr~V?;;mC5SHHbds>$xF6057#$N#MTbPdH5!9YNmT?Q#7rC2BM8zPAY zR3LYeho35>3iT*HyhXT)O3&~hxtJ5!*J}s6lr5wPd}VMXa;Ia4Tk65p=;G;%f&1&ZPd2t~s=az}ngzB6%2RpPGt*L8wO$PsQ z+WRqcz>?{8D{sHo3$qhj9UY>lP2}4ag+It+W!%-4H&0y=rhVt0zpSGwr6l@qkYjV7 zH^toZ(29?%2D1gG^Ous(4jss2tyhOZ~pkmV-?9H!=mX zkO6`xjjG>9e@?X!BwelEE^_V4=RO#h6>?D*iNrkCZh zrxT?uZpiRp^vJqZi-qs3j=!zQzw2XLXud6{wU32K6gUvIdJ11$*ZY20V0v1hP=WG6 zU6W*9eIcXr_7r-Tzg&20XWH9kQ+7=EaXLr$Olte?=r*-oyW<4ZA3u|y6&jW6chPTn zSEDGQ`f>b>5~DuICc9Wqwp>ZzZAVN^@rhXHBi4IA4EXIj$Cle4*z74Cx+it*qJ2|0 zXPr6aG*v#I9Csws;<~fd`fDli1N*$pBz20%kSm-&%?#R2+&6+;v;&Rqx)x*OJz1Y! zej2~}`Y!*)%a%18coLGI$9t$D&KeJ^J+4)5j(X>u;D0bT^z=DD^R2P=6`_)1Wp=~J z{r3iMRkofq-m^XbG9unuUbyxvv4PY!)^YktMchd2$Bih{;r>0rb|24OFW7t}(&%Qk zpGeM%0s}(u#WgaGw`B#qPr6J09YTnskB|K_!{nqs@3U=m=yPcK9kMMY`bx#qmHbth zle5vnuKwk*lQ|`hue=;p@SOr-=+$(TxqS&fx*%UF$+7ykQ|mDw0!g`1i*l&6xVvET z)6#-#ejMK4P&zfrg4WeWM+1ftE7x?fE<4^};ve%PG1uRx(NiL`a?&S$=x;l3GhIb~ zdTHxjPo_evLfQw3b)~H%=0=KxXB{a~M@Mg*lNng|F#=3YOjoGd^P@eb&?pRQ>>2fN|*K8Y|3$O>&p<#rH9U5&Us_`z%g&2-7Dk> zi5c@p+h@e}P{PDx%O4NE>{X$88}-^{?YZc-NF!!*tCx{(PEmTre}gQv>IY~QW%ZR<)Tw)-SbzXt@TTSuuGfjSl@2Ay$SKjRJ%XKz3 z+%0o%F$7chb61=U-bnyQKO~}Uqv~20RUlhbbVaStQON6{CF z)bJc8c`85LsUPK;zT@u3_3vb8lZ(#T)uxmjzixd}OlX;f#G#k*$FClTo1cQn{?oUm znu9L9*WU9~6V$wGoW8W1Vm_Y!?Y?9zAmilP=~+W;+GY7m2)^A zcxJSl&q*;crshnuQ;af=OE#?7dYVHHTCvjo*tpl5=HFrpk9?mOUc`k?3Z(t+wDf8B zbd`60M87Xw(iFa`a*fBZPs?dUY12`=vx`1omF|@Y5x?DgyErbw50iMer8;)g;^c)3 z+#}u2F@>heY}N^{_Sz)9fA5fm(c_|CdSUpQbvDcUC+|mHx`S-=tmB`Mq%$oM=B+Y(dBjFUaPV=U{2{wT;UIPdvjTlFoqXN4-$ z?nCb!Hs4&9xrfB>Y5hHQn(zL?jq7zM_4X;>OUGoqBB~w-!kAH6pP8>* zUsJPOBXckfZRx|k+2=n$=+)Q$ftaEZzrjMJ)O8)v^}}brRwJGkvj^$ul)C2)Vpc4JnU!UH8r=%OL|vX#;;-0-rjz4V!-aIcu?%ES3Zh6S?N8So6`Cp zhy6|B*NqrA7#@k<+$7TJl9JQJ2tT)J$wZt7=y6`-s%KGsqcUo6vDm|X$}aZ1MJIa*9c6RRaZNpv;HCEX8wa%k;7FVbCQ-qgG+50+N>NFaFV(&BoqZhb49B*E|WG6|T{di1K@NxJ&kEO0D^- z0{uSW+_8#XP6;y(GI?V-P$DLh zkot0`@5R|5)zqbDyw9H5{3I>x!C%ju58rgY1#+u}1<;)156Iyee-CI*uFc*Rw^BZA z3YA_?|6jaa_dk{Y`%h$KQ+7mV$PS@nkC1n180i>=QVvOEoV#oxLPmB&+d*Wz?Y*Kx z#<8;3;o!{s{@$POAJGpU(j%Swe%<%$dR@=wbzRRVQvT_Gc1`#wh^=WmZ86o?4QTp! z;i393vW|~!80K(+P)Btotx>pk5vstm2(=dyCz3hq+VEM4pLoo}BK zo`J)q7o@Ms@z(cR@jbg!ezoX}o%r6nb2HDT%ijNNbUNd(G&nY_Br^Loz}*@$Ym0n( zfy?oAW#f@0J8ywoQ+t7qyK z9t6zA*G#=RuXlB(QLN{IQ*WvQd50pZ+gr|akrOqg{ZvXrljU*G3jZrd)JIorY~IOc zRQRaW5YAz2N@7u2LadG&s3@=)U^V$|S<(-BrWt&o!Txvj(F|3t6nR&ISAC$kK9<9r^!m*2Vy}w$lq_0+Dd%kA)s3sn2 z+9DAr-gYl&&|>WJJrR{dpiv+8%?FS7|Dq?%zIc|^``L6!@YhSnu8_<9@}FzGuk(E? zvoacpM7<$gq7*k~nE62^yFU`@&Dxe)2GR3<>}CZwG~^HB-$Dk606i#KqI56ykb!y( z=|8h}xM3|Q?}PaKL-sy#VL^Ame_i3|UBw+EQu4fvK&Yp>t(|LKDbYr$X+WuB@>zPt zP}H9lmctu+VN;iNY<-pBJ8^}p!>cJcRVI}W>Y!Cc9|Oz6t7EU@tG?I|yFQk7E_I$c z`BPW-+>y^-j`Y^@%KW z)}7S|;KBEJluW@iLzNX{9!E8Y(kCy@Sz>m~ z(%&il9J$+*uY}E%t_dV(mj-IR=cx?;GjN0b0ahK_J>uwGdMf!p&lk5=Y-P>kmXgfP z{#*>x(}cC!!VR)VlzI*w{+4{c!0O}$=I=US28u}-=1;zR?_yi}&-z;zAEiHNDi1sJ zKo(38$$cSs$nMVXP&?F8jf2=fbAd7bEY@X76Om9 z2hTv`-ze#==agLR!wmT!$M-4El3wv;u!cBEceKC!=+ra$c|z^>3#df;2ItjT{f3VZ z-6GHmIsm(Kii*ll{nF5<3=(#-fmlaFt!=MsZuIlI?a8s$T8VyNCLiZl6o7yZ0$BY5wMlDYfDSeoB_Y`fEX5n8_PgQRlTli{EBw zocuw5v*u$xO_BUOhs*6}Mqkg5>b^fDjf$C$;0~_dd3rMXk|F<&;Kh$-KYhwU|WZln~6x4|*=Ylx9@-Q^#en+=!Vk`-rBH@T<$ zPkQQ1AF5ov#S)Kld=;3{bVuEmmQgJ;Sx6jJ?JjPXNqgzKhkx9VvT>Ot7dQFeZ~4wo zhbrOCTxgbi0mCKv^K_5gwWpuLE@OHO?!{ja#@bxmu>fYyxkb+K3{sYBCzGp zFtc?Jhv#uSX6;Ps;FziIk$8mOI=U#@@BeJEK^EctTy*U2_V3^R_WJc&{_Wv5QvQ0d zP5Yvx^A|Ku(=og!@>gY%583A?kId@Ijl&N6ytbvw_18TgR?GQa7nxsl7;%MFgIyg+ zbG?ejt+n=x&Klb4%zF0ePt`zvYBoB7`J?b&Dld!bW?!}+JwE^S-DV=?U1>ek9L(F| zs|t196uS93&=>QBw7@Yg!exHm;?F?G3sn3<6O++tiri`NtZaMZUl~>5`#tg>OryC7 zj;98m(y)n%0u_4Y-*dly{-Pf$amPp9FmuSlSg7^0do!o0_ZRoOHn8X@UzpNKjkfL~HPEt)~!P zk+1oKsuDvGaHymst&f`gQfc7^J8U_f^1#AuT#P=~AV+19dtb2WyR~6ZU)2CFOuwJ7 zd$b=^Rj@t{1U~={T(?F-J3&*y&pVXeFgE2EgJN4W2n2`H-_&V1*&lvpDHHw(KwMy_ zu-ccp^|p{Y+qmvn4cOpwExV9Xl(;wOWp;DmUh#YHc1tT+;l>+BxSc0WJ^E0Y`sq5Z zn*QmE;hnll6szIz=X>548p zPCN4btB1+r?U#jO#%!^dpbS)3Nec@_%gIGe$LAs&>aXVK^Eq0Tyt9$#?u|*S)^%SP zVEeKf;UP@gv{U$OeU8<%v`@jx%m;S3JXKB|iTGI1Tutg=@4uKwW^3fnkR8lY*UOje^#8_9@a^2vwB+b>m}ESHTemJK)8>3}J4%Lgo;V{F^``sww~qVaD3x2S>O1eoM2})VeOAeA zxxXknkzV@?&;It<$`PiO5}&$??zk6=@7fjIUNe90Ltyn?&QxpG-P(qXwzoS2&>hz&F zEIefA*XM8A;NTXp-`o^z+ETKH?E80&X4vNl1T$PuRgh(V=kLg1(gr zYsy)=Ru`j`{P6SN=F8~e3q(=Z!#%G;POoSie$}nVFIN4q?=E-_ApVuqP9pO=$q${! z;fF(EeSKc`A>Zb(o_PY7CV>MlVo-C#EPtXdT`Qk2%3}*rt@8cyi@yWD|AjuQTjg6h zc)Y?e{qC3Cvc`LgK78GM=qV1 z?@KmTLmmSun77S&^WsXe?_A|dk@5E01W^!X!4}*Z9s&om_c@JPat^a=Jlo1h+*Kej z>)f-2zbCF_oezIgJ(m|iv2#VM9k<46d*y$sNotN$uR|v65!YD}U%J&nyO~Y zV(3Mj$h7(Xp7;!=vZe8!eE+j#1~g|<=Q@I?Ne4}NPYhy{TqxLB2uOw|X7P`zr`YV= zt>Mc;<{LvSasTb6{FsxW8@Ms#Kq8=Ec&M!jE;xcAXvast5YhOWKOY{7M38jKV@ree zkt#i~gMkkD(4H2l3h^HQZBa1ddT%i&`}yq_`xhGBc0#?cLVd|w=dT*3W#Id>H?T?n zVm7L6={?w?M>#(_{jUGGZ9XdtHnuBBZEYX+p$)jEvvX5g=8QP@eEt^+wFaKAe0?T# zA~A^eFZ%J9OY``jE}h^-I-3&dS|^{l`dzm9pHN6$M@LMfPdg%E7+{|ucv}5`kM(%M zplPS#yx!8a(--lPI;{F(*ye`=Nr>(%TLksCC?SgdlQixlX`;7J{{AO z^k5kI@7^p0C!{}K7eVZBq3JQ6CRR@RwNIN|!reB3^O7-cCO#&gr!?b!DF4x%yzuaP z7*7<<|3mzdAa7bC{M=(|xaqq7=~wxKPg&ZIZ6tB!?~tO8Q`b-X2@(s&WMg)(a&VPq zO&yK+#-@Alsg|h39N0eAEn3yFMJ;p8AD zjTxd>vKx~z=c!t4WA(eWYM#YXCly8*=8p$Z%sM@s)T{63AF#hG;uzZ&KIbcRCZ+G( zatmW8W;l}^CSoR>y6sa^L_=G|#Op@#K9D_oUVJ20G?Q$u|2?8ec#E@|zYJ;;;&tK9 zTFj2^pT$W|N{*2{e|RTvYgozz_uHs0G8!;ohUlXXO##R7_K?{v!s_UgGc4cH!#Of0 zar1W;-Fv{m@SQV=nkiqZj(h$T(Y;t~ zxK=lOlxU6?q}7eREOEK^1u6uE&lz4hJk+GwTyH0=`j$)?jr-{I0rt`3;orBd$>SF< z47|&t&?wV(*xga>u7X_*)8)}==hnAmEocVM{-E~14=T)(Ukd>H6qRwsd zOO$s~LB+R6^xem*<>oOmS-j!(<;@%)j($=h=>^B7Ugu#aXuYA2sAv=23#VA4O*r|- zBe&YOcE72Va$&HXgkOz5cdj0gjyF#ZUf%T9-dqzEqw8LQ^+Jn}J$Jj)$nX3&J^krq zUfTKNMQrf0t&7<1t+yg0G50ix`SSNJHM#G%-HRRYI6!pj(&?F$_^0(|vUg1{E#{$3 zOie5~{6|yP{sm@wYSj>A{$pE|k8qv1o5iI67mt2X7T(??cX)68V(gQcyhLGt@mw1v zrY%8a?uO3@Q}9nZ2h)##IG{4u7CqxXfGHSPjX*{Q`53@I(1@l|IodkJ9`#gy;`6q9P#& z3SWT{?T6s%L}S&EWna6*7LXt6!KdGFKfPKBNu)wR9F8csGdMK#p1*LG;{p;;4?A zhkpU5*|8>pV{5h3h#sw|Olb2%o>tc@pTBqGlRdlK`m2wG)M+(f1&ORSoi;CyRQ1P4 z9B+lR#6^_c@xEg7Tk9v;w<4VcHW?YK;3@MDpj~1>5r=KzyxxhT?DX%lQuoMoGR`dw zQO2p#3~MY8rimnET^6)Bs;(k3&+;rjaY^xRom6-nCU+${_HW)aw%6rou7qFAbtu{O zRY1`XrruErt<=S&MzbM_`hCcJm|g$!j!?6+NzpQ5hglHxCnn{lqIk#BG}FhG3c40n zFwK(R;LHx;hVzSyv@$PqJ!tc}#%0Q9YvGp(`*!VB)6)+@$2oR+_xz1YF zy;R+uPu&tS*iPi-mFrO=lAgc&M${Zcakac|$iBRt$No;|#dh{s=jiD=W~$t|A+2UJ z(3@LN>g_-^eyePQDlk4X$|3PwYe9TWq@Zc<_nxSjGfyr$2ZD1BPgr+6Lrt7#f5?8z z)Gx9xE=1mjCZ?yGeB)yqvY+~XvNg7^DGi^aFzSfojqaThJg zXZU;tog1m)7gzWXl87p&*-3RP`<+X}ch5JNiFD*rOylV0mDmgUnO1y8*}vLU>4T4^ zyu4DxP>;PAIZrpZ>JzwBr;nBLzg@F0Cg*m(T>YaICQeKL@oaDZuT=+Pd;jE@di_kx z*%!u_hD{j6_GlFLd@sRh&V!BEDC5?WTNt`XP*VV?tDhD99NAtXAoldyXHa+NYUX#9 zRal!@`yMP}K^w)9$8CFgXUFvFY4dL4(|zWJpM!4e%G!|ov7A!n53Z-~=*oE6)+4TVn%|^y{?pKpUWSi47{?UbW-;%C{%e09n zdIvGIM2oT%5ZgNnGG9(beSNby*jRi2tv99aDiiT4YK4m}b*z!D)!4sb>ZNV(Q=N&PZzkX*AMd=3y{fO3MzQDQrT^gWbsWOD#EG^XEz(+DB z43??i6PhuWYi?z!f=WR0sJ^k)cVAef6WmBhd zPX}Fw4t*upX~;;QeF07mb3z?i#n0NeN_bv)TO{D~sNm(A|EcTm9z1#2eAGq@$9%EI zRY5I2bX#yvyid}p=lv^Vh|Trq=o?P!&pCnf1(TB#h-NqZ8lUrR%Y^eez?mh-nxM0+ zdrHXuo{(QJz@FB2@`AI+X`6_q_#og&h0m~$__-@DOM9pXQqL^g+JOmSRo*A0Dxn%y zXOG!vtDFcmu?Os3esD9luSp|muAt9beA#U_8D~;|u+jQrF{?)G`%!}%&O7xatwiqH z>@Mvz-iG*+iYRI%L@H2jX(tyZ4?U9{065u(PbOZU6!~Oi>HFJARfp#SU*PK*wG+nJ z7t$=;H~cBPjyy>nwHu}!M@P5zX47_#ui!Nnt5AeB8!M%vp!O}B?0{l%O}y4qx9%~+ zXY(^GQ4vTEuGe@=Q%2>;nCx3A-@f@`26Nwb14AX-YV9h6+T(xJ_IO${XO5a?K0Ntu z_dLOw*a*)QBO z|9bAL%gL=v+pA}v^ZBuGAETA{F*in@Tbq+Uc8tZNo0za)w-yl9B=F@&z)#L#)=#8_ zka?q$yFwnP9)KOK)sMs$FI;N&GnhWG^}9aCC)wt_*rzzNlM_Qjr~}FOWo(BG%XD4T z$%Ux)s`BkAra5;%IWQxghPlPw_er>y2$HzPg)-L z-$2#k80QQ1-lmS_H)RDLOHefH&%6IdJ-O6=>aYP1i@y84T1+;_2r>+Bk#{MK=%Z7- z3FvWM`S3+#c0!Q0QTmrvfyZ3-4J&g{Jff<0Lf%!4K*ExJEW;A~V}2q+{Dmmp4nOSh za*hY%i#LkqMGKfF0rm~@fouRZ*LDC+gCBi@MNppdNEzA)5psNk{}=5|hlzR~Av#6X z@dS@Yi~^CZgycHPf6L=}+y4a4Bd=S~L=9PzQ+p%TROjTpu!cfnqYOo-iJom7)xvu* zwVPj$;v?QEFI&P{{Ab3X%`EEgR`smjBP=2r6Kga-kdBUh$>`Lq-E4|h^=yj=JuTASfXLC6z?7tPfyt~j+G=hNe; zI_t@9aw436O`MkiYqW6{#7#HNKLf5?c~7HRa!IxyN20{GS&Wq$Q|a3qmkT#~{!QukPW zGHbFr;Kco)pPIH9>M5-ir}*E#+5>(USdOZ~GZ*AUu%B;F7E zS|!e;yQRNu6Xy?maR*vGWgsk$9 zdk59C&qDl0971gwKt3#@%Fr=mWRtvt;pmI*X1}&ix^K@DUW|QtD{4NCm+kG=G}h2P z%-!Zz`F$i+1qwo&HNlg=h#h zsV$9L@rUQXMwFRNb(N%QX+GcYis`UZ4abn24Gq*>2-#wh@G;N)lv6Ocz8~=#;v5dt+&p}F|SCpXb z;UC%Q(1*iupmi?3-x4va(AuYqUi+S^25Ak%+@8AhcFok{&TeQJI`C8IT0=$Cob1g9 z!+eqC{4r?JWfMj+ULtqHCSQ5Sw)LT?Eice~v_dMX_6oFCAc+Ji*95XpT`%e(1oj9j!O3dP;qhEltCl0khT6|Xv6A9T(o{w)CSsX4N zd|W&joT2D$(X^TU4S%j<0ih1cZcEMAysFV;R$P$ruxt~}8PV>`2X|$m{|~eWXV)&H zy^1cDf5$Oex<0dAeweZ0&>POLXbN`Z^&2mX&7Ig09}>i5(J8M(qW34bZM9<`&1ppEFP6sM*8JjU4rF*(HF0XtS?D=_aN>kMd2d}*Yye^ z-~TGSTfKOP4~59D@|Xby2%aTz7VsKO55WZ^TO>g|C@HuRB}e6?!={b&B=krSsvBQ$ z*_jq*cC$y(sgQK0GT4j<;jIy`ZV04S`}T0xXEMQlI!xjnytNx% zyzbZ2@?*kiry*lVAtv+C%1K~G`=LHUTJ0A#g#?g%U~y>&xJ0SL^7NHgvWCss596O^dTE%L87g|zDXX@0H z=e2RzO%44Y0R=RosMVqr&JfF*&b=E9S|`1IYY zaVwmCy86?KF&osl)IDvdE>dB5B1d*2nsTJIi-_~bWh%G-t~Qh0igFxC#D7ux*k3iu z!63x2<~C^~@AY8CYcg$q!l6L1m>#We1ukJD6vdAOZqRZ5{%Oj`vpee1e`@MD7cQC- z8geN9*XHOUl4A$Hqv}md2SUS}URA3H$bzMX#l4sP`j;}*>KNai8`Y0fVT(l2j^>%z zzS;o(l$o*DXNT%AS!W$8nZBB?{Ww4|E64L952$jG{F_3L$@it&f-{cyuSg-mjFNO0 zL%feCDdXkCzVyz1JHFCevZMA1@h0jA=lmZVKxgQ>na9s(&m!~ywtL>0;OyP(qYIX) zC?Zc3+wn7{tb8Aega$B9a&?6be=#Q%nz-yRMKA2W`mZ!%IQSokz@;buiJ&EE+?e)k zBHo-4EqJ1b{x4=zr!hi4dHsH@FmZ5`$N10JYC#=GOPb-Y20TwK6Kl-Q8d#WZAgKW- z+{tF<>Ou-wfH@4y5CO+(E62ABAbMU~8yvU8j&8~|2y|*!R`a&F5O~@YHbq$d<0HhD zG0T4t{JSE|HjxQ-AofrzxUyZuK#28ucXX@VU^gMOm21}i(b<(M4rXz#6u&PYOz{0j zj&O?O92G3jEq}zGUJ+8W?nu$ou+5_1guX<7EElfY<75b4PA$^$a1{u>vxv3tD|}y% zosTKQWwRqY`p@I5Gx{zV%2z^mH}To)VmlxpYk6lhMTuh)foPSNZfbDq-qy4Ze9CdH z<7xEaGaj(4|cv9$&6_tbrO#? zIP^U!T#F@%t^}X@6|)NbcHY*K2Z8nvqs{-=b_Vq zlU3pt)TlpZ&n+j9TBZ}ZN`e?zgGqvES0FyhhG5#g)B*C|2zoy5&;R02*cnQk{IHlt zhuR5trPy1n1y&ciCvV@9=U7a5>W>7zWiOnaRUgUiB<>UaH;H~C{K3I!N@1QYj5+!- z{n`vt{L_wR4}4dCVVLS;pMw{#xJke}wC3$38h%1lcWbCgQL4js2hOe=*UD<~XK6Jr zJ|X5C`KbeHG{$u#S{DnszkP15~7Zu5q<%wteur%!S+e#|L>oeALL}( zxM=eu!P(YrFS+K&nPnLL-{5&O1cBz3n+keLQ<2%Zc6tP%+p5w^z`EyM4$+8?^RizrCT!0qZm>mTUoYkw zGwfus|4qBk$i-UvTL1WjL(FrfDQ6}D7w0^Gsuulkb(_Ps?^p~WVs2hkOQNFVtPx2I z2#`Z=NB!N_~;Q_vb^C-3A5aTY{nX0_r2c3c5zh>mQm31SP{Q-eKa}WNm&Zx1;3&Rn2 zkQcWW6cX4Twe1#wM9@>RC)`|xMD2OSQFI?mKk>bUZ=D7T$SISE3OQyQGBs&8)QW)} zD(@`UiTw~Wko_n|+6-zB%27qi4xuBxqLhV~u_Fj68uSqRUj;#C{f5cn zmRr)enuf05)>|k1rc)nt&yQSfq@q~{aD>n{fy1i!6i;d5jNmVU@}g3u@e~Q{f$Vu! zdKG$J?xr8NRKW8yQuH(5dGCiI&VtYK9jgc%x`WGG90oTvn5TY;Que7T!rYFZkE1Vy zJx=_B*lRWwJlad^^P~KWLTF)7N%kq#khDMix<9W>2iYd>yJx|)Gc#xB=TeKRe|dYT<%VSKHy$=eSWCZO zK1ExVa|>6Mz2KipoQya=@susflLNmiGg#!N)Hnt^Bv|K*nKGDW;mg)8g)Wc@vs)cV zQPr&AbyDlE@VdXs0paHS&vXWPUP4eF;lRGwGKi4cNLM4WoknOqcZ|~or)VAS44Jw9HlOjskzkS4W|Ms`crOf7W!OG4#8X&n6GL>XRW*^ z3TFgcIRnEm2hSV!W|XHNti|Q>9r454m>KHAwq~!ZI|D#^;L^Hs-fl@jKr zy+L(Co5iQkb;{>OnoK@C$2Mc6^rRMkPOMx%Z5ES;+EEpYkzciz(uvp+HIcoy9>}pL zd-*?AIWoRO@?5rCt$_}~oOR-_(tm;?N^oEO!LQ;2(`I&Uli0Yx-aXO8w!Rm3Xpt$5 zulysoD~p)vJsw1#-F;Qt^BQX}UgGFzaD$6(j>Qa7uwACicYEW%Ee@v#y}h}{Q=%$e zduyHV&YV?$)>!ne56P4*a7z{IvV2n#9*NV1yoq-wGarlxyhE@q+Fy95#G4r#Boqk5 zJP-YkZ5YF5$qZZUjAQT{h>1dq8vWHlayGXM?MSt@J2jr@|M^8j40U$LsDyhIH974bkflNNgzL0ntXhqfixcG`;Wrt$@zzwcvx%d0^3nA} zld1R46Q?l=m&~L}sO5!sCUy8d-qVU5Sq{BV*Ed#j;4Maq8;OF63ISH8B$3&OwsgH` za{swE&X2{Mso6NUx)1+${VfbC+_B;M0rZw+dXJ%g|0xx&tO@;s$ER8W7M*Vm`mm!A z)5B?K0~{>qUO3|3wbC5X`Q;QPFMROYww_yNB!3p@v3xK<+rrYWZrPSTv-aVYl>iFt z$FSDT67U_=Bget936G4%R!aW@!V~Vd_f}Hq%mopG z#y`)v>a+kr#K#1;<#Gs$b+_>JPcPxOh&<*RlJ^qD4}T|V+0;%|yCeKUYuHn4W8_Aw zmY6*AJB!a7{lQ^_JM&%(Pmq(2Y|+Lz(DZ_lDq2f~aWBG8v>r1*;hRxL{98AlxN$DoiG_jgQ25uO|wbb54VtK^LP+lFDP1&ts!@h0Udl;{262TLETIp zC$!=w=*9Z^t%j)^+vKvPj-%Rw-T|4ZUO?1kIqjkS2?D_+kW^f$y@^KmAxMi5n9kR+ zm!W(0vVNo5<9?6Tue@65N84w^yl;I{sTw+5M42#+kF$7Wr(dq(5HiJ47iQXX%6R=0 zMv_H6N-kKkn2kxj;(AbVWDp?H{I_3Qg#a$B^||H_GRYEYe=hGai)bY8X^i#(m~c)s zf%F@3JX)Q|@SFP4_w)V+8*Lff&QbF&rMKK=zPd7uW)_%j4|ToHnzwLOTet!}FL+90 zm3qI1YjkhLfl)lY;4FtAV%5d3V;C18KK>1D@-w)j)bz+}3%(sRyn-XhupzBM9_Sa2 z2!O_7-sS_3x@G=w4z-;Xu!$12BqrP}t2lMx22bsPLU?y1Uy``)9Q>PveRHJDksnI&~{*$eL)(Nrx1n#HWxat#Kk8Z~+K zRu;9Y9Mc@VH7rGX%-$zPs1sboZM_&(0`AfbVq`+>%-=3;GbidE*%e{_>9)-0l=XTf z}%CW5k$9q?=NA!(daBGHNwF{V3&m+YDRdZ@Gqke4zB!YRzGO9SX zx|rMV=w<4lk#^^-k{}k2fhbz%6C5Q`Zah?*E3#vSG%ecRe^uT;c}%zgxkrM(dEBdA zk0WPRqX)lpS9buj#(_-vPX z!3glg@-QvO7*S%$Q&=lSiUZgvrW3;7TlDqN%P)wzCd-9Z&JY{d7hynNLY}Yf_DqF@ z>Xn(le0F?|>?*IX^IJyZQ=HQc3pj=)h}w^|=4=!29R@omYWU3?ulzQSMY3B{x~GxV zB;yE0_nT>vl>6{h>C!BKO~MK?M&6d|rhaO8|{&}{ySsOrPH>-u!9_3|EN zCzvTs7?HR@sz(&!XiEFr|Itkom{*51IeUc93O2w$cnvDs`1?x zc4;%{J+WVLhyCX41U@X*dpiM0IzgdL;rtO}W4^U15vz_Y$@xh;X%U_i>lTkvu1NRM z)Oe;57q&eg{UQLI0Z^SFShtnaW+0Y2FlrJmGV0e8?po635p*nijAjVbd73{t(-b0v z{rsy2$%ajShz;EXJG^piAHUi4{&H2Wg*Jugx`Zq{RN%*BhrgKz`4;z-HR+PE+_4iD zce9&ZV^8rpi*T9q3S0Vm4#VJP{b>)WlMiT!%$QRzD@h^`L5)D%a0Zt~zcb#}F zO%WP)4Wq7Ehas(^&v*FKm4xqp3Acnntx1j0LhX7j2Fyb6MRaf(M z1kEUxJY9vLy@UxKIoe{8wow7C!x@YrAk7#1L19Lx9`E`X-UL!1z??$OB2EWHAU4(| zE+%`%_|RRSxRvy)A+v$RL$;otWfNyPPDMF41<}tNzW4Cu+*IH3rPAVU!+o(qhhkC7 zINEp;V|0!Di6Otz0FNw*G?m>@w@fm|LPYF zX*4?f8owmqo=ReJJMa)8xy;;VxmbaFbd`2#aSoOlIc4fzie0n|IYpmps* z68N5J3vu!iM9>D#qas8}KGS z#6ZYP<>z)E&xjE5ebnAFvWupUjRQi5Z!=!&;3^=Fcb*!y!1ld)wfZIIOF|8si$RnV zxG>7o$-W{Go970iX+Gd>TRgaC&IBxsE&^28Qw0T6L{2v@O)%Ye%J>OAO^)pVMr1X`k%M>|E|Dn`H~7K zzyNb@_hOpHXbi)<5{3Y65!l8@p_V(7i$+i+3{@E#0+U^LQNXqYV!0VYJYq!Q6xxw6 zgop7USHo3WZSY4|Z#cz}8oP`beLfxB!>3C^QYovWcEDG>JHdGYWDAFKXr3UO$YK;# zaCu$=v5jrO&;5&F`w6m|XS(*~7=CNbLTl;<&|AE@rr4ZS{6r&7>-Rr7Z{6$gMbxtS zar{h>wEwtd%Pxjl%90WQ;aLx)j6??r7Pbm7uy z2MRm`k@vO-aVq`TU0&|HQRphtsB)oR3(6VsbUV<41;Az;^4`4y+nX`|hEcjRo7}3d zlw6q9PkxC{`|vCo%P7^qWm+(V0mZ|2MEy>Y4@QRtv5YA+HGsnqY~K2EpLGb=437AK z0yiOLEZf*ZP^ukPj`9*FS0bNF)??_}vN=Z2!y<3q{@T4uCSm)ct|eGTk=?ECfL*Wd zNt$C;G%6t;_A2_t@P?E_3n5*pueLaV`KO)=hH)8Zhr-0`Xt4HjvuGKW=z~krNEyTSv1lesQ#${OJzukk| z!?Z@zRJ24JEu3u%UGS975l&ol69T9Iw*-HX&AO9=>`o(!544CN-;3qD|NC|EO3Gf` zC|rmV<0G)pXO(z~odOVvlj$9PE=U`sF`4i3a}ecJXHZv|$lTFL_p>wU0lNguyn;&- z#HOLGE%tH>_aulG0c%Ky;vx#tB+uJ1HURv>ds`PxsJ15w$VVjskUVYoJ;TX{2mscc zi^tQoF9K8eIc~~4u!KI)CUIgDP|J2up6WZ|`zGWs>BLcpbDMMTl{83}Ainn)VnfW6 z=S*H38^5uAGK|@AMp{13_AW~hmtf>p(1}<`wUCxWb6S2?N}UomyX1s?=)T7aj_yp` zM8eWu4r~PIz9GaG(b4@xK29mr|2_}n(EPP`I8>qoww z0caaSOXy^PR0U?Uz@xk14i%3$9y@^fu@8Q&XGEPkr(zT8Q;-My0Sf*nI-GYO~ z!2Q8)A6N{428%KQZkRTe*a65jL3+OA0;^s)v6!g+RGqHeNV3feaLqmGlr^G)HF!ux z&nDobKvE@QwW#{;4wXs<;NvIZpk?Y-C+gM(J{oN>SROv%v0XqvCmjcC9~>MYx-=*l z0xa<`3ryhdm4H>J>8R~NRG%`;4IN0t+=MxYexS}2&uXWt(dOUs0SS1qR~y=}GIHM% zD6AKq>`W^Hd4I$KkN{}(8vKz-oW*?v)e4{yA`80}ms&5|vBpISU2V!-_j!-txF{z}a?Fk?efC9QC_h9teAe07$w zEkv%AlZ2c+F`T}TN%RL`yN*7T{AY1&P^RSjcze)_p~H8d!W|Znzj9BMZoY!^sO7o3 zmoroVNR@*$i~ZYGvz`8ZGSCQ2082s@lWI-7TAr5 z65f_5h6MGTk!?ZiG*S-G_%9J#h{GE;c5s_7Ca0pdS20aEUw?a!^<+i`NcHjcs1@x) zH<62KqRetbt*VlViS@fV+oez`dhGy7?!!gSr?U+rh!({-idqJsz3(J$RW{pSm?l(Q z;;qU!0g#Q^3bhi6j~ZJE>aak`qE_DE4gb&t9=nSuMD||S-(^E0nHqnJ&;QPKl^Wz` zQh%->=>T2i{s+wP{cj@xMtWTx8TqO{B+C2 zX&>P1S}&d)G-u`INwdYi$H#lUywZ}a2E#`wl+pR$okQP)4jphqomq=;)(}m?V}Kls zm6P2=b@UDMQ@ItSb>)eJc}mF36-H1s$Rn{-n1v~I@6eb?n~@A%iPLWI3#(E+C!&MX<6jGAa_+w zPG=5bW7v+)42*0MsPI#e4Cd?4-7(!pLS?gG8$1JSjEcY_Z3poVh3Mo{xe}+0XnBM* zNc#SE)jLoxfOT$aebf-z3GzBqJAA_$^0@(R_IV9|xED0e|>AoZ95!V+`Eumhj$HnO%e99hR#|CJ?u`nJ)pb)iCbETPvLgaMf0E5lV{Ed3(KGVIDm%QO8-F9M&cl>_pf%p7|Ka{#Py?JXeg z^X283ayhF)nEK{Y8I5G{x6?j`Zbtyu#i3?EJhucdCPcF*EukVG!jF$7&AdSo586<6 zv0Q9#&L)59uaFo|Cd-rXI`@$87)45p9-Euz-1rNXFqW6121Bk67>`43-s88C;`U!bAx9feNRM!DJU=3Tlp*|rB_!LSi{xM%~{k9^TZOK0dtV8rc$zQNqDXM~Huq#E%>!yC1Pj#)WbSDr83Y}PvgAm>%Q&`y zH{SA*;pmBrBS;3@K4AA~cL%MOoKDPndqL*iv%u~mv9Rir)8-p#{y$ z5icGjbmQDmY2A?R*rl!-UILTtD5g)El4OKTv|U)xX6^&*-cs=%R}Z$zxTpughatsB z1+b#&3UU~3iz4tBLcSqj?F1dxCUau-pjRfdsH~R*K&O4H+nNL|XEzh(KMxgG;GDn`OWa?-u0QpI~qflPgANV3s zE@?xN7JmrIDW_gEQS)TRpge&8Virxd;~T}K@C|YX#|kZLlkyy7vDYs}gApFN_!;e; z(Rv_uRt6)2;@v7hGN4H5#ZiW9KQ)S)Q2bC-L>!tucRL4e2KC-uMIs4l0JEdl983LQ z8n>>UA`wp`?HLMI=YSeAE&!5lY8Sx)_aMct6>6S$F_zyy;BOTw2TSEtjR&K|E_AJL zNk9K9QJ(}n8fVLB^3Jp{muOaBcORqj>GjxAI2ve0z)PDQbbD^yZjRyhw#jc7>MJ@0sAuVA~0pW*k?s$PC#aaFj9!G>ca)4$ZeHp1iEUz|8N5G^{QJEdy@ z0)oP;rZ;2y7YBJfT?=8pOB~~c=t#N0qbXKoEmgaei@*JWF;@9xp>d>j5gEJ#Ma{6s zAo`tS3{Xgy#|R#GQ-WVh{)7cQMV5j4P;^n69MC2~M-YV<>;#gu$-NL6Mcc$rK%FqX z07BDN05X2}7mBI^Td%=q=u7ZE+(7Ase*$}G*bImDr~HyY8_<#gG6<;1`O%CH5O!I{1X7+N6oi#C?#8Mng3lfIo#Behk=?y8$v4 zR)%*hfNeAs3$Mb960~-BrvSpx5DzFc&Dr-VybSDE&~kt+kRV6*g4u@dL0A z$X3!=uQNsYoV)EnvkEVJ$6#w5Kph`L@FTpE8UjTqxo7ee16O zjK&cxjaWxRN9YRzxhyuwrf2Du2L+-n5qOzg-wN!B&ZU7#AgvO6f)W?FEtXXx}xc#4S5BO zj05)qW$)!azx3IJW?>^EHHAVnmKarn6dccG^BVz&*adMr+4JW7(h??QGdK6NaoMBp zfxQ;N6Qt@TznPI{JI0T9(k=!U&CU>oZ3#uCV2v>Yq0>q?FWW3I+%r{U=zeoe`^=|~@MY;(Aj-hK11o>?~G!cmTekKft`rzC*T%trFY0`j45KJKU6o?|a zb;N$cDA|G1lGDU7-l>rrkeCT}rU!ZrQ!sMlio3^%r_lu?bd)Ipon1(k6dM4sBCea~ z){#o}rR5hitpy5G}gw^;BZ(AssIH?pHB8(Uibs}cIr=VIG6 zi--c-ujH=yM4_v#_>@Tw%l{^&K=VGxIlm0S*5rsFV7>L9G0)dQed?v4Q{Xc^X% zzkr{n(BCsap8PJxdgv%dU)I~7n^H}(fWFIrJSFXz0v^~W2olyqH>T|)Q~~~oV~8U^ zme>ssjt@2gM}06JD4O8(ktjBFVJI`ub*Bf4lZhoZ+!o{TD?q;8f6fUWZCFPAAd$US zSIh%o96HXWl!ZlH7Rq(L6ZlMat)sq77^Pe{gQbb7dKWCH?tja8tP!%DAg-Bf zQan;?+EdV7eQN;P6$W6xk7YXwN#$c@$G;di^o@bzI%O(MHc^xfg8PYu`i2pWU79@= z&g=+EJ2dQ4F|Rr1k|GkzX^iSh_lO1%1HCxFQ51H`s-I&6ZB>Q4Nldzu{vu42)gmR35jD?Dw08DirAH5FH#8t-uvW;h}}i_ zus?w>qqq&}vE5PYp%2jbf`WKQP<4KdnZ3rlt5QAm8t6EfeNM9o8{{!2ym9J59$=w1 zeKDwL@%#pUmA-~}4fJR?amhe#F+-7H901@vFTMN8CUV%~->x^$+tXZX|M> zp%j6U0#Eyjx$IJB?8H^St-TmzHNOb1OvIK%qGCRM0Z`u#?f5(K0;yZtq6oF_t`c!a zpQUr70|EB}V6xZ^uK!h&o8hLp=gOyBv)e?v32A$6NdCu~V~_nq^{ z9r@>nST=MAJOg2TRk%gVrFqgtC0b&zV1G<*Gjk55ijJ6igB&^^DNcoBgCSqUHe~6a z^*e5Sc~(>h248eq*e0~^TphNB=C;jcK8aRaovNh|kmg2Ep!G(3Fxqrg_ zIN^99@J#32#}C-moC7QC6U6`&(=($LUdhUx#b`+*=O zY`tRqy9y$uJgP3N`@~YQ$I1Jc6ea<~l+tB!&@Xr4R+Z zYby=itWY7-P(T!7k5sr+siE4^XE1>J9`fb{2h$C_$7}qpL}2w4X?^6UiSWp<$dp9A z2TD!ym~T5N7B=p6ennNB6dNGX-~kGcpZvBfUq;%Z-_f$yPP5X{xtkfYJ) z4j8J9dC{JUu{yHCU{hdlI3uwg@-<>J_~9mh(JTv61NHfv8hbv`*)EFkZxR5PEu{Jy zG9z$x9fqd%AhpSwd$9B7CIk&hv~U2D6=Q`~E{JCwp90q6-pGT+fAq4e2lfO|fX z80^vr>OCmlt)FF40M62aYm<|^g6y(32)S$Rbk1zBOOefhY!tzWwEBt7E z5>sORme#?uw=ZvqFltO&Xf}|D=RxC8;ycA#1#mA4%b4M+Ky&>`)QOv}<%r^*@EuUc z6DDiy30v;s*2()gMA7oeUcUA~Z9a1u<>B{GoBS3F@=&+`vW9qtBeTJ?5wSlStv_Q6 zW3WDA2^&WL(Im#IgumY4wu#Hae7}wy@OR_8StKKCK;;(#g{oM< z21o8GNYCX;%!#6Bqgs9kXaI+bDeXSGx3DhN2Lj=C9YCX0-e?my1*&?Ol9J@#x&;TF#fGYB_A8QCBiKl2*6NBcz?AVwF2L^H1CLvt6>IEahd?2-%W z?QZ|=R}V{@BjJl6f%VZ_(;zNThD`@&!<5I^eJ2og_A*Nx*|YlT8DY@S>A=Z$>L;^(Xw=n6o-aH1vsk6V|e(#mRVr2x%j#fd2>k{B~-h^Gg zQGbX~704*4X253--dioe9rn!O6h-Rqctpgjg}$}nBe}B9YCWIxiDv7szq`Sj7X{B} zT<&XIEj^EzFl=UY7DI!lAR)Jp1AJn|zl)g+ur`NM3X|h>jgf|{W^b|dqZI}9&d)H? zhz-R%@>>r??DuV!^Wy0+v=1zv1~jzj)6XxAb^hLR=L(Opiqv6L?U5{oRo_JU7(Rxk zwEBQ>XVY)-`}%yMcATCjOjGRTLpMYS?uWqtgU*;KEfK&}mzYnuA9APCoP_`eaM&ee z20%=C6ZKuifzRrGj4DD_Ijcoc`$rzI3abbOfh`Sx%&it{9`_Qkrok|40u&1Pzl5Wo z4n?E^1=Z7f92YK0?y^C+)J0uWPeL?7lZ^%}7;pTI;EljVL3Q0P*A%EgO$lTiC(WZ3 ztZ`aC<+Pgtl@Ob}8zLJ-e1Fc%t&Q;p(YRzXkzV7|fKZJXMvkb8?N(?^VImMM_1Zu7 z52F=o7et^%);P5e%xpo}VEx-msdexdxDMh<>it^`xn`464wU#6K9l=zCJ!;e45lq9 zw>m5`+M(N*+8JbqQ70E*ixBYFwy^h4XtHW8>p<(Je}o@M=>X-eU}Y4*WW~#zUKh+F z$Q^M=2!z6~fc&2)3sx&WsxTWi1YKf*CB{BUahfkRs*9PoABciDM67F|N`cQs#AbIX zcqFwm7SQ!1XFeKKV4ru;eW2k3~LK+dMH(*SR$W@ zGm+S2{LMj4rwR0fJE&Q;`YiF1k!nllxUBBM^hIfWWz!3}%auzQcB3 z$UJNUr75E0Z=t}W|AsmsI^_6?`2%hqOt%Lq6 zt=`XAFppC&rQn6YW9Ti!V3ZQu@odFMBYNr->2V=d@TfFU4T)AT$H0V%(4^Hth~W*-;cDr!1Thy35n)GE$_676*1J!EMF|qHmmlmn!+L!{(KE-v8hNpwo-U#~F0iaJn;e_^ zGJJEx4`_vcj=N;+rAMV^(4Zx#kyxp~us}r>i1}jOhn<8cNk=UN6AGKhI8zDe5uu(2 zN+cu#AFJ_vdj}`-!64F$6+`ZV9aw_%zmGKtL?iot_MZXIggEypmZP6Qm3JNprG>bF z6aZ+#CQgfYTTvTqjkog1;{<%Hc0i+N!bijNayg?Vs%P!(jLfD_I=b_l)w!eMwIe8Y z%wP>(&uO9z716YPMPrajL)~|tMxPH#?#3wIo+45$D$zmzqxPDsxZJ_l{cR_P}L5=K3cF$Plo_3;*GhBqrlYL~S3**UVkTaav2%59RoLBCL{)fe7mny*>S6 zWdj)+>e9Oj3c7B?{tEU9`A?I*1Y&PIG$RJYsox z!1jqzyoIB}kKeN7RdGx+6amOv1;7jBt3J$s<32H{e^AOt9fJg<# z+=lHshV_*Xu}wf{8V`HmS%8&D#0?KH6@pdV8DNUg42^qjt#+H^cAEsKNOg=tITVIO zfu=CGK-{Uup(cPT>OVrY`2J`qjE8g+5-UzV8#X{QEH)ZZ7i>UyfvE-dLfGjecI6wV zKqd1U@{6?tSaib3#u?VfNby3%eJhzP{ll!&yQmBQYJ9dEyQQ&RRCgtBwQV?Z(p z11A;J6ckG(NfE+T*Me8?n0GJD5gtq!2L6M$HNfu5pxr+kNw6Uv@LrZgx5UMncJ*me z(?S*0A0duy!FmCuO?tB0AMzXeIMM{e;IrRK(uX_m2GlRcEzkDta7x%a&g}8=Wchgs z#ghMZY$prI!kxs)G_+TMOU@eMqjrp~Ckx(J3(7_4=X3L=?dMzMVEVrMXZh4et;Vn0KN{X}MLt*yk{gp@1Dty1TPJ9f2e zo=qYZDlk&`1Q$K`mtxO;Uf>pe-QWG}E6Y`|A@;60TH_j+%5s4~Y9WALySQlvM4|8T z5ZJv^7TgOIY_ofKIaB^3Vfyp1C7L0@5%U~z1mOgX?OS)@YBwar(XA7JPa3J=uCU4duxA9m>DSxlp7i@b0;oFrq0X`cmSF-A5k6=Pws26_a`Zh%$3mB`w zI;)te{w@9NA^{``9(u4X_HVaxjc=rceV%Dk5RU&(L1jXKX zin*9ReS68sljb^?4ft{?H+l8pRXCv=??dUq>?si;2<%2TxcZHK=K zv{ulDExEFEhko%L{tq_ZzPb%D>mIef*wt9AMTWK73bZVZ5T&^n{kW*pBXP<4VVYOb zS~tmUnUyAMcrx54*Wi!1tWOgLcKtf2i`Oiwnw3!mO|qUaSI}ctaoUm{LNj)9;4P*C zBqO2*jY&ba07X?YW}z##X|gNbByZgt%|koYQiVz11&pMq zJ`;AMgOb_$d}Zu^`eLZ`wytJY&2-njS+4OwZTRanhO9X7ZKvCE zgq9<>8LpS$FX^|;us@x+b7EyC`X%RxnQB$E;2lLSk*o` z5IdJ>)+vMLj-iGB@;AJ-1u^*{HE!++VQqyK`iCn*A!o683Z|U&(%VOlvPPD*=tD zY;a4=#Ftu1s!!4@IFP4vmJ6iT32H%;6W@w-b#5QEetT|kh@`D2l?Z&JEcd-O={bH- zk8O*>(!j5 zfo{4wZvmZiZ@FhK!(9zP#eg*3g`3&dD(sNsf^K-^O#O;cXE;wJY&-vQ$Q)c;Rlch8 z<*k2MY9*IXG6AZy^q8^b?_!FToy%1~(Ok^XD(a50Pm#y9fegB^h{W4_2{LD~+tSOj z+3J(Mla&Q1uFD3`2-|&uhQkkzk~hsk;G3VXqDc0e)eDHcUC1|MlUUSdv?59vI48O1 zoP{P@qWJ))!bQOBok?-)?N+eDo5R3Wf27zZLVJty{=q2*L5r33voudcUQdS)KTi2@ zDxZ|_@MoB0zKk>eN(-Yj#oH_$SXv*YSvzc}r<+ zy9OR-5mfj2q14=R1blI;@BI<_5?%F^;`De|mWU$UN~G7I%lkcBw%$^@n9QUi$9fnl ztMNgy^E8d6R%QKU0%h^{&{;HEn+nk~Df|K?4iC_?UB7bOwOrha=eO7IT#1-Cfw}s) zNj?C*NjP^kQ1oaS$oZ1qI7;*T^sRV3n-pD9cSt1SKrifiV={-Y8PLgvCoS3{X-vXE z-$!Q|1j<5h!7dv0?W(LnJnNV{)pr{Er;F#|m!t~(um+_5>5MRGXqyl3oT5CRGnCx`jO+^~&t@K0{{F`C@g{ZJ zo${wo9@(eO9xd&^Q1~#hNX#-A?}-rmDkBJXm2jrlGQb)H6{mj*iO33wGR0tDkOF7WYsLpW)F`KkPvOQ_}Q?@Rxr2eVZY z9h>m;xJq#Awzz@amj7?XnQNHMm==O%CA%V`ML`ja3ywHPc-iiFeed$>_fz33@?5IS z^j1mFqA6kTe>tg92&JqouyiHFWn_XirIBnde16H{m%JYedl1BO#BG=MvlZT#YxF?1 z`?Xf~`!oAgr4J7y;<_37!g6(Vd5Ebp+2lxmDL;5J%BiSv((p(3X=pB~);>M(8+8Jd zZYLVRs1^S^HA;voUFiN7uWBMhr4piq9e6)gT(7LW1Qx>zTVd$_2@op$bEB=r0HGIJVl&j2 z!p&gksi*H9pNq9$9wFarQkKk>){&LaCzh1b-dB0Ewq-zyvJ{|!*Rg`yyH0u+HvZm$ zWk68+Dm(Vq08?>x2bE4rT6_Lnb*{1+Yda%0o)^OWdJ|R&xwVuw`3?$Q&0aarEA zkA`K31Q!4x&r%$-F9Izq=}{ozo+oQwi!v^n6{x`f!fqIguT0d%o z=XkVE>_Q8?zn5Ha=YozqoVW;}_VHIqgwP!6MvS$4c`4_W6f<|k69{NrPEmsyX#T2) z4{Y;n_UbV#K-wt$0jXMte7~55Y3X*V1hyYR;@|SaxRi_Vd?Jt)N#5UJDE@v@2A)b*7)V_&y(XnVR>0T^gpt*|^Nke#kdo z-~_eYx1PSh%=ztp#suL7@92f&+L`TUcBBSK#NwGhn*OdCYZv8t8==;<_)fk$yv_UX z?l8qCiDVno<@QvUT0VOzzF>WhxwY#`!ymODI%#zAt;E|OA5O@aMLv0yd1#h$fmPUI zYFX90?D-Qmsr`N<_ygZAuKmzc;{Smw(d-rHGy3AC#UR3x@`rh4nrG-SLOIG%FO-c; z!5k9m+^QazLT0QlM)H8Ikq=)tptPc?t=c-joI6yudyaGD8{W^q^dSkK_Gn1I;{4j~ zjWJ82$Ed5=u<44AuGWBvO(GXA73;Sk>*>2wg1MX0G%346Rjvc~X3dkj)ZXfA71q`j zi_zOtQob&|XEd5Jr%_;>!sA4{pMEk!M_8LVa7o_Fee1n?GmPK%JQ)0-?lKR?qenA33&mbs=w^?VBy@U53O>wt%0J zyc@WC>cD0rvSDfYE8K;-ttzcnW2Bdir;NPY6eAo5+DANW`mESS=eFVN7r69();p`5 zw()+zXQQ5sYKNM6*Ba}u)=rV{KPu9CmqXepKTeLx0#IUD}`=+n1l zTEcAvJdUa%J080nS+Uas*0?_Dg}1q5vUP45DXor7BWo3uOdT0VWAsgRsvDb)aJ35ybN9qau z;aVuYP$D7UC}VtNuQFuY4A-9UsNVE%QjDVbN+@H}s{YZ0wcL4BJ+DYUHG#i2s)12d zwuI5uOXP9g98)L|Te5Nb@P#X%3Vi>p`(vT9GJNr2GGi!eaZjNoQBy>Mq|7ADm^#XiRwufq@{brEPuR)e2f<`=9cVeb3riM4ri*4riw=kw|;dQm9G{D zrkf>AI`3V&(r%eWdMTs1@!^cG@NU`aaF9q_96DpS8rIQJQ_E_hYOsTP=*!P5F7oRV zFYAj!t|$Tj?T>c^QMXl zIwn=w8f?;s{Jot9tn2*1}7w@34CAN{E(q|%z#y~ z(4XB+X41T~XyGtWtU~s$)-mw;!1kZj@cVn?GCAPS7IX^Y-=2C@zDn~+=l6g}3<*EN zH}0CkU4wj{83|_N?xyhJb36;?YZ0FhSFuX^dk`_#iyfV*T!&D2*QdZdU(2_u8hcBVh!2=+Al<^kWEcKf9hIq*kj9zz@JuaW)-eUhQaNp?)Hi@D#emLmDvWeZl<}RX>vOfyhLC1 z$!a*x;Gt%cjLS5%I%P{_7o2C|D*!=9Z~SH*1N|1svV{VO=}e9@Fr$xihP>W#*j>pK zXZY6jz_tTFf_MU_<1qw1dLP5fj#+11_ZcPx#YZ9*ji*LhbAJ!k?4-YJn;XX`B8kZG z9eDNU<7;cwyXw`fLu)sOP`iMpL(cqa_~lEm6y?EIHJRzR$il$^iDR>?pe zkmF8I!@ID;Hl}#d)z0*|K=gM@9;+SmRo?Zdb@|e@Iu)M8KAC#Z)ui8wx>GWx6;)RI zAv)X}<_ti(ItOs`gDnG?7yaI~Kl*z(`nB<8owT>@0Mph;s_Ed9oclZQAELE+CM&6G ztKy4l4KzJUG_iG#&yi`}_!C|{Y-d$Ccje_@lY(wlTf};-lv%kqC~zUS_gBBR^dw{r#OQr&uQ}pV;y+R~ZasKMJ1(%<$nev?uJYCc#B> zo_paDu5(>kw_=W^U(z0C%pgO%tT3$=a@+4ID3t7e3W#WFzsw?M#~m|y@C~Nb8}KBk zZsy}ww=DhP^7*PSFDc7NT#Kk8OM^q2*L``LI;u*Ikv;XtJzizt|4KDNqMUdXk z5LYBr?9lHbkFZ6EjUjd`;~8&euVo+JD4L*@m6qX7!u)tpPq}Q%)xTqlvE=aK1#EigA_&oA3qc`L9x~2w zso{fy0V#7&`F=fR7av~gU_l%dAgNjV==EIw00e27#BK*G2HdcmoRdxzIUiLDsSug6 zv$i`x+d;PD3qBT+evO*p_ztP6`-~Rqh#=cco>TbM4Am9P_T~L(D}1#^Cz-y7MiXLI z@5y_i+!wHa%31HXgO@K7St$0c2bmbtyHj7By8;-V0^^5>LMX6!F6FemFweBzS@`J- zMrI?K+VuRdR)^C~J>rHMWjbZ0Ttq4=%V%7_I=dZPG(~mkcOy0E0oOLnXEkr~98@gt z|ME-LQY{M9YT%jV+y7As(uaJUx-r(F(mO-sIW!F29*x5o8McGnEd?7jPB){vVeArR zT1A2kX@*R0Y^nz8&wv`RCkpAdGJlF`w=Vk4Z0*m61wVd$ZmsWc$DvxHeefno?+9wc zN6sZEsbKq+W9AtT30=sF`Q^4()urorACk~z50iHPFOeUY|7fFZ5)L77fCJmlFhlp* zlL+6ETaHOI$0UGp5^Y-EP?wy*Co0P`YUpr!s@+q3GhcXJ+dGxwKIWP|Rm;yFJjpMo zUdWyg4WNtJ{UY{6A3f~^ZhX&k!yg3nlK_|Q`) z>BlJic4?fxkR-67?YCn@WdIzwJNVtwsOM(T==#FdXSK&Y3|*JuZDp2y*~7J1^l_1( zRGPn%ewR7vgVE*?8R2cJ@u}q08A&IqgNH|uv7T=>AQ#v(b+DZI_-{z`HL>?vy_D~$ zpb_}+jdJPW)2cyqUDpop`)Y&Znp)>KX3-m3^~Bqt=H`uilXxrMUmB&Cra1?!%&o<> zGcz#hO~u>a5V)^aUp20d2rBTTh8LpC0?lZ434T{WhT6sh37~=OqyjA5BzDp2TdlZ& zX3q?;fb>)jC%GA)N8$kVxvmQ3pSLYQ@2J22T*TJ>9^R9LaNS)Jbd4FA&`G;H_FF+Et5l_ohR%Vbb zD|;|r>apMF@=wND+kbzM{@x!ze3#)loI|R$|5fxc|Nzxk~)(%Wh-}g&T(Cs z{}g2z;N~q>)@zE+dni89=_+D?yobLxd3QBW^_hYuz3+r*pHx5`7JH>l9xtn6EMVr` z!myB(70K!IRtZQRpld}As-H|e3bXvYh*ToqsPd3szU*UyNr*mf zJh%HMKi~$2ww84*%6m$C*KK&G_+d)FfGG# zT6l?Wi8Yvsv5A}{L8*^Ib61!32J^d0>GufMzxN}ew)LMIW-*CHEW3B1VhR#L+WMPJ zM#Yv2U)o*rB;cCni^$wX&%D+}ybNELm!mOgMKvTD?$4Towj=S){IVxk<}Y$yn{R0~ zjKw!Brn8RB&mS^L|FCY>$i}#Nr=(4*b$9)0U_7o<_SucOI{wLMEPTJ|u9-3AS*nz0 znrjMo5i&r5>z(Q6%G!4{4pL>1({uHXgu#7-`Q6RQzZ zz(8CT1H-KOO5ZXd4Cnw$>D!oR!`IPxdDGUjhwhfTdWzfw)8C#kKkN@gIA1FjWcwT6 zpifpSx$+uIBiYAVUq8j%Wb@s}2wd>De9+5({kn%`RPFD%vOo#2C;E?; zE}h-Hsm?3CRtN4h6^r}#A#_q2sayn*N6h+kxGE=yzt+M1U7p=N-b)c80Ao|^e4CpfFba_|z}yMO31Tv>ARjZDR`maef;?_lse^n8*io+^y3zq;!;4 z@G?-tm|`Ozn};6~{~bDyWQRqyx|_RQRMRXqQ|-yPu5b^D?VWmvC-0@Rfcr_@o_5w3 zNjR1^ErXan+SKMz(wCIu*k&b`J~5&$=cD&4T|$l zhKix*ECUi24x!-=QD5dB!LO~U&Rnsx!#*Cm0CY;XemIECOK|mCpX)fk)Lve8>W5z} zi*eqNa5Z&F`j4xKf;DBhr8DO3efh(NU;X@GuAH@3nY49!*fRVdlJ+?H&2U3$g6Np( za#i+I35h;)g4h%6VAO$vaeR9Pbm?>SDOldlWC-a0cdOQon>Nd~3B9MuH51Ia5B6XF zIaAT&@S~%aG|mGLAay++|2&Wg-2|MXG>v7mDRh?A3}B8D;z7JpXU6m zhe@xQFvD$Yl^BXKeJ5la$9ddZqN-BeW0PK5dur7vgg4*siiXx?vW9UfH-EZ)6DK;+ z=RGk}4*{PyI(r!y-F(tZO5D`kg>5s|OGf={6OzGlmrHeSmEXSIDQjP$NKUwycq#_- z*+NuA>bmclM18_9R0vb+sd#?$)nn@NRPo1l+u<=?YI7??X7>11(8nohB1d zsn&1CmTQHmSEtP-J33xBzfj*5q?_=&KN9^^W0UPjSM%Kq6|q7SE9IHL%(oO}XEvMn zlSfuI8Jd#V*gqlZ2E=83{4Jl7&=Li1-_w%%dLkt5V8)q0)5t4k4#-lq7aT~y8~^Zw zI$K0FJK54WF1@VZLCcFz;f?=1f!wuoY{L5i_;UTqbATqxk zHddExS|RLFjWyp{bCx3$kh-=pEnH?*?YG#= zuVE>GHy36FRNv#}cR%F%CU1sk-Bf#va19_g&ZP%hFS<`JkTIiUo-5H9b3w15qb`*m z!b~;oaI=I))`H7D$(OxleoMBE2`yO?&98g{cSo3MA6*10BAZ8AyK?6V4n1sHNd3oS z`rr%-E5^F{!aX*IWzi`!85Yi@e^7=f|6Q03%lJwA$uMD1@-#CL<;&x{Ba!%m^B~B) zY0+G`Sd)W)LF$(Zt*+{#sN~${4bR}_&$Sfm(TOZ1(>RenfxQJKG?z+m;34wy?yd^) zN=MMfAL_fSoRlo3jD3fg#G?RetB5Ock@$Vp~-om%cTN6_n@W| zQ+>@xWja_D{He;B@qllKF2>9R)m8lrBga+Y``3o?NgtV#4-?}`u z=!M>h;})~L_iL-EH-O*Yf_Y!KsX7* zsM%U>oi$D~QrS7dx2bsdnl2r4{X0KC_L{!m}|Dk2$8Q%)~NBm13sfI=- zub=O}oyX(O%UieAN+FMQ4b6v;YESoSfW?hY%hiB1fl@!eQJIpEj>U7Z9WvkHi5t-JkBf_Xx@p!^i?r}T+}3KwF%@Yt%(VLxA~TQ~yU zxbv~$E;NzyeQ0II8YFvX=+rJRW^f*&_P0`;Y$kXD&o|z^Q|si2@jlHfp4I5Dmd zPmSv*Q~>VkM2+QsJb70Q-_BX4a^xK)o-;)k4ngG{d(N6)cIK7`3nKG+O_10UBL6gy zp%U;}{n=lB;~FEIV77C{-PoxRfWGv=>tI=$4(0q}S}wksVL|6(W?Bw+|F(Pj+E@XcVez$e!%Z?h+fv7DgqqO!Qt(sv zy=2vm!TSd^<(pu7zZ+G9)L_B9XvIv4o7%G18S>y?adwp8UrjIjlGjegg^Z_Hp*%~M z7j;JgE=A#dtH3?@?4|#;5dIf|@~Ksa0_L0V-*@M1jfiOtQadb`p0T7>zM-NKg4Qg% zdP&6(A6E47#bjTJ*k>)#PyP9dm-pDJF>=LP43oD5sdqE&d!)T5bQ@quBCAjpz_cEF zO8@=j4~38+WvT+*eyY%zlxj(Pm7Th$SkI>#Qs+3qBvh}Mt?m3w}-v;6lO2CJ^lm`R_DCda(;uIYqVf0O8O zwpwmK+QFett+^8d>yK4LEW)RLxtMW9oSdF?8_0;9=RQ63Nl~fENRbfcx?7yn;7o=K zTe))Ooh1FTGLsPsB5l?;(W^SN()H>kVB>B5vdL7o6DC~a($b4;PGJ3f2-8I$#Vi} zyrn?uSdlSA@3-~z2bj2L*Kf&WJE+!ulx}{qt|ZK6<5j%+^tJRtrrDpHx-qG4uTu>X z=oP6fT){8CuIvGDvw=j_KeESH@m*azCVS8*1bwIH^D{{8aI!74mZc-$d>UfT1P1B% zR9DFl?tE=VcD}RhgCh*<&sr0-Ui}4{4XtpMJzs+_ria)K%P!qvQXgVkg(&TW#yzyj zyC+6DMzx1e-RE8GG(=N`cPdtR*Nu#b_{i%eUNPKS?5D^aE|flFyJ36S!gu3fMjgc* z_zic6lA96@RO^Xrp=JOZYPi@`*UsebE+TKZ*<*HGR8h3t3gLz1Z}rVG59MdCUOeVJ z$ifpk`1B<-L$E6HvETT@+Ese*)eBeMIz*PK)`aPf{jA|=k$WcH#?Vuj=&hH{PDo0j z)%$(Lff*d)prVjy35lu+hFMMwN75$X`zm(%0QDSY+rTqwPiHDuPh1fu@2ptLj!*u}C?zp}lQ)8V(pRiGttz{n zJ$_4P%55bmcHBr_+#`#OUVc(ZGczR;MNzi1=7%eg<|-xiyhOCqCrh5sIny;X*XEw7 ztqJ*SSCxmHw+z4D3;K!F_xPNRq9GJd=k2H*{v74PeoctOM7Vb z+fVC}nW~N3R+NLhJSxff!#2?-IpEPzl+{AchUHle_kN26u5?v}n{lk5^6Pt3_iW9W zqS@A$?RvW_N)-mqufI<|d|-qRA5oLoR5Iv-_4wUUhJAK3PRz7P$Gz?RbvJIh4Ivysw0Hu2~-ihf66-SMNZ+?^!qJwUD}7bi$4ju%03y)F;U5lit(Z! zvTva*Ns|q9c80#3%B0gr6`u}ee)bTs;T*?{9gegv>XhgwGkUKQF)YWmIpg6?>8S6> zx3<@*oCWSc`ybK}E6r-_w#8EvVM^IvX3Iqbt!c;^ojD*s)*(UKplGeD7x1gV*_~t& zm3G+T>{z~xwIqFQ-n10!Hncw3Orn5#SP5Fsm{_1S*V)j0v<0z`rcYDZffD^%&x%h< z{Bj-)4@mv~Q-azxiYqQVB|%{Fj6!ueAU=DJ_K@J{6QM!2uSLVSXr4>%>NUq1Qa-?oi$mE)zt z!Bam`n{}e?Xo~w7Jsj})2mI&tVUt{+OPAbF4S(`6l|k<;WZRb91KvN>#=|v(=6M-J z(jEHwS1|)E1&dD>dD@NGD2vQC8h$ir0}2yaTRoBU3It*AS<+KwsxJFl;-6;-&jm`V zhZAsG?z_I${9_c(Q&yO0#6cVojv%Bvjxpx+0ywP5l*d6|HJ)dn(Vc2j2R{n9DH-vZ z^NHScZut)5FMCvE%H-JyMp}RB$}N0_6R0+=`QS%-yJ9anw&8!7i}lcF2YvC%xIk~p zEkYAblgJfp>AvAtb%z2S^1S4~gTy1yht&>muhf^cpNBAdY#3(n(K>Y&SI%|X)LXYQ zXH_+xS3VV%=bi~t*?*l#8>E1?itsc2=5J}k>%ttz3EB%owsH#ITUT z`OI{~9>k|#Y`puVp`feuMYSJie!raKJcKl&;A78RrGT+meR3jf$6=y5myN^!ZI%_{ zH7x&Yg0&xQX_58yyN|loVJp1pn^kt__|?-#29x2burj|AUOk>UkS`c{u&9M1OER1gONqE%>fk>k{gb2YHLmRwlteMGi>2ErNV;uq6r5J<1}Q$(j~w$GWwwnx_|@q1OB%?}iUQ4i231YT-uS z;fCgHIA}eKNjg;9is zI%*XxSL8BF+HtG`f;hNnL5hp4ru3~hCgR{{Ajo; z+Df(hSm4E7@v3*R!0+`3vP>ZY4-yNjUsMN5s?UUOc{Ex|osBj;jn8Kzehl}c<2;R1 z=6;4?JSX!_mfH%1KTBtkMi!gy-(aP1qB!yj<6@V=NAq$y|2gOWRn+jyJ9JAJfam*mL0T#589A zwQDl|xZ-&Wq}hWh$UGd}L)a?{yt>m$wJ!B6XwgL8s;bD5I>4>V$hE_TD}63Jv^Xj4 z@x`+pAYGg!wDlPjoGbtf$0Pj*nIxwoGbe`_7KYRC7w38Uo3}JJ-N5_5dk_PRJma_d zH?zpP<3L}<06{ilD8Ov>IcIKkgI0rv%p(MDnb#^is)Bl zDrgb5_y>_QKHJ%FfGH;T{bWK&e2y%t3(~KxhU^PlnG8qGS}Q*l-c#|5Y@;IwG6(B{ zRC==JAvoPi*~y&zjcXz{A{tk9`OBorA+;&;uX^IZaE1NO8_~;xiWh^9Egy@@XY}s1 za+PX6&3y16x`)ROw)^c<^Av{|2)FpgMld;0q!(AUFHyBj#DY>;{8&bUF666vz-GAc z=8af0bSq3ASOglUsTEc9v%zMg4i1tb`>;o2^Or57Gs49R(xHDsfmV~}0KmB$l@C!FIbRm(<*O+~M>2=kj2McRf7i$04h zMr{Zux&I%U&blG0|BKct(jC%BgGhIGOGrqU4W z?!9l}{PEfQ?6uaj47le&HVi#Rzx6ggM7sM%h`+RJJm1}C8}fAd8EBlHm#@}z3a&r- zaQb3ariV*(Rll9*l+LbaZjO>3N)4?Co;U?7F5Sbej((MVA9&iymK<|`Y|~wsf!!4r z)UXI=P7TRf86{}?0Up)?x+roQ=cw}yb=r&!a(}smvyN+epGOYG`Kl}>fxFa7ZyXYEV)fm zGa%fDkfP<~v*Fa8_#6il(o3yO6_=4M_!6cS*A;vA{59C_rm_l(f1JZ0px9~OT*3Pc zeW)ADRo*q?Wi6bw;rQm4m^gTI1ZbxbzW;Z28tpD~gzPGAbq+~^W<*>6KL;l5Cup%} zCaY+skVpJl?)t0C{Z{9*_rc~?rG}f!U$Y>?*FNW~C~Iw5-hXeUR&T~ndUNq~v6r*g z&YhqVhu)ejrC*>-rD9kdZ<$=ul)0a6`8YL^Qg6PjtOX%P)J?~(>=xu}Cb-{;vOMj? zdR*b5{@7Yab4d|R0`OBu0Pu+&xH4DR?oKdn%Wt?Su5z_m1fn*K&ZG`#}WX`QB4t_ksMybmCB&iKihcg{KJ6`~o;5$oK&--8)|YXR&pQy-~Jl zX*cv-Ap-k*k3F4D2`?Iw`Vq?gMNc90XvJpqqvt|F!VsE*s&?BX@gr}gmmhecd=m-w zv#JMk%!ts8rQ4#d`OJY8t97zAGP~3j@XKVSWf`hHm$K2cfD8G4*}clwfL=^Id+FKx z?JT|g`}#r(@T2Z1e>H6n`aF+ZgMFRpMjAYALDOvpC@$G0JS++flqg{=!e~|`*yA5n?3yXDjp<8zUR2>j!_#H^b5&a8%8Qo|I2dXatP3XW-fB=O8dfL#916uR%#M z{A5m){@F!HCpY&X{%{5Q^C;CVa%i|bdzGRJRF|(PVUS|-9}fP+QipE<|Hg; z9r4?i)+i3q<7v?4e8^Xc975g$%gF2z#f_u#-f?PQWA*^MCy_W=|_surhB;4ubklI{QxM7WCG6 z5g@sYYJ>|EQg&j+WY5Wob)!?mVR8x!v*Vy6Nh}pIKkCm*{2^SwPb7w-bp;@Dj*1{( zi*w+eZBo^>PIQEqC3~FX(dNC90w7p^VXSE6B=#p95<|B{X^N-Rts=eJm$~Sfg%f#6 z8;YMtvBuhnXlX->Bc5C`n zXxdy4!tA{LbG8RYjFB2s=5l0Abiy`4^0`Sp+SOxT>r|S0OiqN3CE{~BtycL_)M5e5 zIpR7>8zY%!LTt`lfjCuo0S|=pNg6-Ga=Ub!q?gVxEh6;^3@v{2 zCimHKcY>1#b;fAH1gd(_ZCoZ0F`i=g-g82pl)it{ZGd#IxjIIqWbyeLCHE?K&zLMf z!y6q#sSa*ZR9TwI$tkVtpvGE802cYhFVtOQ-10AmFWN}qv!3A?(-&bM#*P})=VrY?9Wxu9Ow$w+?7qgE5XhQu7A%M8V)7fl8+g+@fIlU z1GjKv#u$C8b1bKi&FXH0+olM3y7d?Rj|%ZZgLf&0SV*x5Vrjd;E4xsR-U9!@+7=$T z*qOPTf8V!M=P#%N^SA5e=n5PG*6+<$Wp~8&!IO?u+!}uOm)pc^!$8y z2T0xKt=&D_m&lj9v0jsBjI}T?$bh*pX%kT}F;bBwNIV=ON!SnwP(W8NwOd>r+gl?T zWXS?7``-8EpVci@q+a3l{^JtmC*RdqWSpkjp2HDcu71LWIa2_54SEUvr=w*|`Ad1|8t&-rA1Q=sm^Z>^nZy61n~j0(`6oUp z9bt)%pzZu`Jb2Xy{2mo#1*6PxiBjwNT;|$x|1rrxsFLG;{fhJc_IGX zkNbYu1r_7bVk%c@-PDTEqh0RvOU$^@%W6!X_H<;o7uvQ?x`AAut37O8KvMU^=U>P^ zS2ql}`(eU_99T02tv+(GM78IzE@PfA=Njv7bpArkuYT~`yXl>n>$9*|bjv7BAI!c& z!+qya4iT?k2E)}EzkV8*&RU8wNqFQhr{45UdytC?_O-GPx%bs}b%t5|D{28ZW$Z)3 z61AIyA4ROn!Y@}QlfGcs7)^ckcCWS9{ifTLe5vis!?Pn(Kk4`}`_g{lKr{Kfw_j4(!0AX<(^uUG8ns&0W>pjneg{-bH)}?^Y1ChR-gWc_)cx9~i z)q{MiH52QIN&p8P%e&hOXipDEssH^JDWa7AGot|c^yqD?lAEs=eTLjrI>gFh`6+)a z_|<;g8Gchw9n88hvv)MSh4?56gT|wQ2~L4xFZfICCbh*X_Tzmt{lbhaSUJ_)?sA^V zJ-#~fkeS>LZgQCZRh4XC?k9v;Hixu8orla6aAtM2=)w$!gB@t>Df-UNSE)~W|%0s z*@9l+GeXPUp^gi`1U}G7DXNJ&2^2UZ;Vtfw)~DWT$OPoR6)k~{e1x@{XtB*g@SClF zJaR*CPx?A2=>zuQiBFxLW^t1}(z zOS6BBDkNGNgd`OiO5WS1R0=Hpvjug6#_a!ckT;j8EMgyi;L$uY{{g8yymXcLx9GH2 z$DmwRSGKWxTR>p|0Jj#QDO}T;sk_nf5v%33%{sugZ;4#E&;{u;J0;#dM$PkAR^Fvn zBYgaKmnFzo$K}lDe$g*+&Qxx-XR=l`|NDGJ0D@1cZ(uimlHrTGeDsCWK;p6jzVc!# z8w+b(sQ(Di-~hjt{ma~yR)QLj3OAJqYo>ulO2NBnD3h-J=N$ceSY=B{w3d-l!uk-J z(v|ycQkk)!&14Q4keDGPtby3`!G#PVubeygSm=VAU7SXtiTPrgS!rG8T|z$N|UkcU1F@7S&^Qx zG!WgUma90Oj}@QH)JqG|W;VtLvR|L-D3aYx zuf>Ukfk{hxbUibE9op~xsqL9;5S5T>R$XpGc&tTvnN_6x@E06@)*(Dq{6-2ba0eag zJblsd`0{1wMRVThwfmBZG@Frk<8Q;XBq-T&P=kR2verzhMCaT2SCG{oKI2o*NZ<6V z7pqPQY^}FY?B!mdsJa_zhFb}azd9HZ9pRr1Tt1CYpC`nd?_c6`6X)w1|D_1~Gssa~ z_^7RU=A`D2OeuOOjd<{uwT6n#u;jF*L}`wZK|ZrfDKVa^x2<_=nB(J^>f@B1%zIk# zuOQInl5E#K0Yp@7hV$vPu*vXVlCi(x`Z7)!UuZEGdRq9uc*Y#(f#@9}+CYyD@$_la zv(RCjaE{qbvv{u-v|<4bVv0g>Y*H6$X*EOd>c|e1HLCrVr54voFpM1@yX_X_<@vZ< z4gm&TAGqd(r4#=%E4^+{3)ib5blG*5k%RBC*3?KLTlZJ>ut1LM%F$NT5KojPxXZuX z0l}A}stElq9{p}EUd||YYKN$F~1) z-%XIdxzqpg1&M*9Zp+y*9)C%1WN=UGN^JukT=Xrp!$Y^Hw&QLDrEBn#eBihu&}23U zp`(=XYJs8?*FJTjIsXshi&bq4(Orc$(>h6=dPXfq^oqpf(iRiD`T0^WuIJI&_~Q3T zv`D}xU&qmZqy?+uO&~G#@+t`O&nV$rMdsn5(8oNQ{E6}0-L%=O?I(=;m3~`%Ev*Uj z9GlGh53mfvN9G6=V-NNXE}iR&fOawUU)DBG5%x1WisAhvL8svzTmhEdkVq8HV$7L+ zWPSRj?j)~Yrq;Jbs>kioyE9Ec!{p~CA}}<2BB^tj9)m+Z_&q*!j0-+9F@9*Y6=BLv zt6TwTkav!imK?3zv@gMjpnh_#HtNgl%4^c_OdPjNPAKNJpwH?2&h~q%JGEJv$Coo9 zb)T$y6P|k07*jitw7+ymd*ka@7(yM{>-pz(=Jazwh%}!s>=h|VD)HOvtLd*5w5x+) zV?#|PuSlUDrwLdi6j{GST_fjO-tm#^DC7q6FAUN*|2g=o?VzZ&pAo*>gV zXq$u*Xztrff{VN0+O~YZ~%rXWib0 z+~?mc3_A!1|JMyW`+Fbmm!BBVRlj=-3)z%f-I0I zE@QS#b<^VKO7&bH>ml|tO)X=~Fa?Y;dmGd2+CPO=>45_CJqSpb{*W%){PJLZ(XWRO~ z<{TciozdG5O!fr50O@)v_wG^lbtn7vu>F_16@DV3b~9`}8f2r;``!;nnpwj7UH@z^ z4!Cxb?W@5ua@ZCA>wNX+=6yZsWD05zDY&cq=i2GR#AD;v5A~7!wAG>lo~#X4po0U# zgX)WXrkXDD{soVOg;?KM*}pcb=Mfz`X>CNVFG4IztS-X8H9ihY8&+#-td+&ts&we^ z_-P&$Mwy>W=F7z!@pgY$9uI!fAxmN!>V(9fqO3vK_q!uEyfDPj36^3Row|ksc|~e~ zKYyN^Vy*HvlS^Js>-R=y)u!% zbf|jY20YJRdwKoSxDS-OoOW4rx-yT{zMfX#{XPM~pQyfCdNR>}U9}YKzP}deYRsu8 zG}B@Mg)%NbqkiMnfxQYu}8`M!hGnT8ko9->YIr>mBps5;{peE(gDv`(yN z7M0vgK*$C*ven%#d{n_b3LEbx&I|8@LULEOyedXRwVMm@e$IPDnI&~}QfX|Lgd8NN zLTdc|8{rM#W9JkUZAFs}VzqHX;LVfw=i0KmT?D?^sN^M5&N?BCW!OzHCYHri)+2)FJa1 z|16f5vCpU>@RDC(%=yIjEe213-;cAuLvUFSLy~jB$UWoX+Exj})aRxk4O}^myS-cI z?X4y19Y-`rThL8J_WID!*;ud0l=X(@HJH;-*csizVvQ)X`TH<%@UPReoz_Y;%aFVy zI)%CVj3a{ya56%Pvv{~oLceQMF7-7s$p(W@U6&kzjtMdJHI*OmE&>X#mxzlLrL)9j z9rOUfzcm=~_J4#8Gh4+j4%K6}wOsIYxs|8NU~VMtPMN2vbgemk95U--RU=Pxe9gkw zu5n7E#=Sw`A-yw0n5>{5Gc?k|TpwaNZ+to9rzB_TqwvQz!L^Q>?xJN}^Icb_;T9FL zI_JLwm~A|0DSjc11%5chjm%|MsSm}9g)=aRv0(1?E@0T3#Z?Ov%NDG#Be=Xv%i$_Y z6~LjNaFDGZDd`7^D{0gF?AR8dhI6KkY8W;zkk$FZ@x5e0qIT-;b5ad)&QnZZj3-7H z`Y#W>4Z-s$rD#)s0#;)0!Z@gn2wHQm|ESoodl|9UqW;|o=DtuGJ0uApTue0-dR4mF zykv8os)*v5DSFqU$P6Rm(fc@7Rf(MGvUotEP;$r`Y$Wds-%8w^HDOxu_s3||l_yCp zGb3(@zecPjo{g6S2PJ!CmcuC|J1g#*=5I z3d!43Ly|v=Wny}8rcmTz(7i+!kCWT3DQmx(7N4tMLRK+B^JxnEMf!%@oCz=DU08+1 z35B)A)Pnz6o1q&w#h%FqZI{Nyj7j=D(5x{k2CP{-ymfC~JUS18HI`ck&HWC6x5Vu2>!q z{fL3LZKPNlvj1$GWPb8LY4CEXuCv))&k?pnk(eJP z=xYuml~CCv=D#0Im-Ez!gGeuV+x*3;_~cX*g^wwh=TJ5dKdu+-LH0V-tZT-RqN%SM zbd5dVJjYY%m*R&;Hpg#|SUvVmIY=7B6@~9K7D;^M+52%qD$Z~5+LHO@9{l>6j@;3S zDoMxrq)U~3)By%)HD}tVJ?5T8XvUm~00#iC;6e0JV2sgp4p9E7!Iw_^9CWF(;;V?X*HG5Gnc&Suwb_J6>$ViH)UeZj6)XlxfI9m-kAx%f=*G z4=qWQR~^KJeg5R0Z20NS`yCL1nrUu#S3kmk-0BM#xox%Xgr8o#V?8li#MKeCo%nH6 z_~S42kK|*Kus32VSMjy?BmST1Os@CF3NI!sRzK^dYeRmW%OM!@4B z%^8Nsy!SI7mf!^m8(l!XWwv8&RjJG!kpZqQ3iUuk-M;ZB8Lrlcs9s{dqMwfO0oF zm4|+;{luxQ1BNauUQ)+A+;VR})$bjEyuK-j4x=9hjWfSY3pTv z0k6$^zeDU~RX!ir7Tq8^&eV~4aY)Hn7V*=BT0h3Hz`cfdBE);B6GZXOoopjED;ac6 z=o#l(HNCw)HjN5Ac3XA{w1^m7bdoT=u@_$Mv}5g*1$%BB$3!!xSVyK&vs01Ux;D@| zSZg{>F~a(jPF8d7*hpaFDSwFwFkIUgpX@Q$4)F5&Jr;J6oDP3YuOZE7f^G0pNCeZ# z>ApXDbX(qYE~I}#QPnU9DS3va)?QU7AVG=0-M9q_*%%tJmf#Vw41XD02Q;L!P^cpr zPD)7Bb~rFv&oFSN37{#j;n;8)x*y^9{|51_*wp_6Ks2G_M^Y}`JC+psRExE6*_{~M_|0aDBVH~r=k#|Y#$N-} zwA@pK$ex&(7h&~(ry!*UyOjm7`gDz_+DvuB=E)rtbCraRg49NA3d%SPV*wBmJi3Txx{SEvuyV8K4}?>gIQqd$&?KGy6m zR4h^Q8}*)ze^k#5y;K!c^vcsfE3C=K(9-GsjODk3Gu3NKLfDrVA);qU<@V%MB-HGv zF{{o?_)w4$L7$l2T(&CkJH76G_H7MJxA;7Bvt5h-C{2$eTM01)O>45Gzs?fX30G4? zJueI!TGr5zAXqYj2^w1Io1) zr%J0UjtGT>m>~j{@BzZEpI? z8J8O=-$hFn+t1xfbWOtEv4-a3AjX}0#jgw zpkF1PW4ymi`Fqt&8%56FG!qy5D4wTwMDlw&ZWZqRGxhx@AYs_o5c=V@ivvdYHLmmt zDDh`7-cpnG>P{(J$@zMT`RJZ6@d+C%d8&+M8m88xH-$J@Z4_&i1x6mv8rgQg9!_KD z%NHXUNx;#J@t!O4=Gx#YT{xU+7XF3x{<2|+B}HQfUp>Ry|tNMg969H7yt(O&DMsqpScL?u$Rn7E0abHYPGF`B`;gRZ%nmKOTB z@*}McYK35Qi~4Uk7Sy_svkw1YU9;Y*iMQmDO#LwXBF};9E{y832Y<#ht21*ATgXDX z{%ie-OeT~jZ-Xu2wlPnsAi-6}RdrG*=pF4rFx50i%fDIGhE;x@hxv*YEaPF(keGm~ zqG1)OBUU$8253VAZZO&b2Q{w;kFpQOjt)R;#otc?Pfy;EG1cLk zxeH6dyAO8QR$hfwu{zJ-D*WcB6yhiR&$s&&G$xGyz$G)!pTFs}_M$2RXx&r8JWP_EuE?IWT#inMe$j*;%+@z_l}e?M>ap z9>yPd#(2dUDFDm??5eKL>-oa@Nv>sO7<}?ay2fXgynY9D)@ivc zfV}8pG`9fX%U1weL zS$Axo1CTGc@lIknO@4Wf5Ui$HNiC2(R~EAgRKkoQkO$%iN&Uvn3= z6~>)w`l!JJAN5FU|1ydY_$$W33pUziDji%DHU{OwN7=0jU#`(dleiAQZ>$!XA8q<# zya>qB-rT4BlEF35##GLjqxQt&BQQGpL0;Wv$u`+amPo?cwAg!4$uKq>?|S&8Ihn|k zf5$p&7OR67E4HLK-Pn;bKqF8X5d=pbm?jX#R_g`}w?SIerAELFQIkRG`!}pCNY5=? zJ(A8g2vTj@B-pX##S%fyG!=&{si4WRY1>j4Phtr8+mSb>Ae?6(%ZI zGkMaHI>>lAZsheG`$cp#>NM%~Lsf#2HijCLKV+tG2*$5y8Il^!oJmKFGEKn|twoBJ z*(=H^+io+%e+(7P7m(^WPU5jFeX?5zx;P+U*&PTJ9^J`d!gQ42{fzbxqK^Jlb+ug< z)&(p{9TgqT=LLzOEr*17{_6QrFe_h8g_9S)5A8eqJTO)wQ{8t3vjFrAvc8FJQ&M70 zG4eZcdNR);K59lDQ7Ilj_{wbZ)FNnAE3MaP6ngMO*!IEFOL*N(BG-`0!dtWxwyzjS zmYo{e%OtK?$jcBT09czRT)+`E3`rAy&hBQgZ*OY|OGr-CuN9wY9fm{XjuoDp4%&IcU5Iw*Rw z-U!#k0+rbx+jf7(q>-(wfwdbKvL{z0qf%T!=+4SY!sq*d7%QrZ4oa_ENrRN-Wa+2Z zv#VLUZNFB$H7CKV+;BvKQi@@cWKbyZOTdpx8{N>?{fLK=n*`NatEVkXysd+=?>suY z8QkWH3^NL?Oy9(@%gooK1rjA1+TMb8Y1u_`XxzgqN0r52QmnT^9+}=+mEf1^;j2C8 zTxn~COb5FDh&wty*gZZ`*7VstQf^>Y8~UC!_VfiHxSKiT>4cMmMvz+1NS(e+)trK+f!sb>Wf1(v%7xJyJn&#r_4 zH=So`ty|AEWAPu#3F+xw$j7)$CWXl#h2uX^nP&s)PkwNxsL|xG<^b{}{2+`_~iF7~i;2EM_jbzGxy`bmun~R35 zl1pW-d^6Wa>)8{N_*Fy6o3ZdR+xZ#A4{ROfnR246=3#~2LvPf|a&ooGD1 z&!9)<@%Te$f-2P(N=$N#i<`uZ$}dgEjYQ7hAW1M607HQC_Qy}(MVA56O}>e53!!ogp3iAnA)CP0XD>(OI z_1BJ^Vs9c?4NK0X)DLBE%>iKDBNdQRCYe=lkDInmgNCG!{nJuThMB*k+Q*N*HGb)- zU#y#p$D>#`vP5tO*UA`GLP(Lt10|4?Fmx+NOh&%ud@++`q}4^jN6<7XY=M;V8o#hE zFc*lSqX-)1n5e+GeeUV}7JLa7XA^2J$7MFdHGc;=!ATyRD`VdKZ^Ap8JJ!+|z8}t5bwg4YJ5=IK zr1&is|FUC$aqk|r*V!3+2LcWFM&y0?S7;6w7dLQ3!e<)a$TL5ew|1v3FdOMEh}K_) z?ReF8uD_PS(1jXhRv^9OuOyv<)}?bCGY$V7so5qoo2^um8BRBgudDFOSze%awvX#? zTmlAn{nH`O;`eeQQ1Q~$c75FcgAVR;Rb4Fs$fq)7{X)dq&%9x#aqyUinQxNW{}spz zPvV5>21a%A(?U10lgy-umFtdH^0vye#$e4+QBWd~_GqzXwHGiUJ9^uVBw6(7@aQP1 zTBHk|E_VS0?(jKq7hl(7L;KO~Tx?7!WP96u1q2M_lji6+ZCBIdtIzc{Y~$RqSK=p` z5P7s5d}1Q{dv%e)GU(s{?|io;i~G$dVdOkEgwDb7ChcZr`w&^&!#mZ_M~IrIEb7yv zz?*Rm7G*?)(2Mtiu!#lnhEqwC?t0JH^&R8en;>RbWrK4Dd^b7ldZ!f6A3su!dd@;v zdB4S+WC;T`*&k^5+?1t(mAVX+=*Hg`E7guIRBP=b`Xwe=ndXHXnQB3tY>bC*kG$!( zdIFmp{#wO%zphgqLKix(}zUrl7*`+B=|A z*qc@p(tAHrqB|X~IyLY8`qU+bxTj~klOorLQbbK^Gj+zo1~^}fO-^7LC3l5|*BtF^ z3@jt#6jJ;8(dNl)m;^K}>rv(W0ThQ=*$z*EU5KLU4@ zA4RMnkTofGEd6R0>Bfa9C4gISzjzXMUNFp>vf+_%(Q0O^Tx;#9SGC=6OjTl;oC-=n zc2&U1)B=pNR&VSlm;OoFDVZDBHePONt}X%!tMp`cNWdZFRfjH&07o;j_z2c({Dsdv z%dN=6*}}cP@Y|zhd}W+4fjCW8wAUz|z{9y69r!PNne$0+gr;Vxww?u6bDnURfm(q? zz+uGZ+CT)lqNKt3e9c@}5D7^^6 zY23C_VLL##PeR56Nm`!L!_d|%dE?Pff~x35$5FX0+W5y|lAj~WqFB?@>ImIO-;1jg zYO$oDrq3+jKiPlA^Yis;HCE4io&`pT3idefZqO3 zwo+LYT41|$^CqcqUO=I`Ni)*M!)w^3utJZGUVdWFCFt>aaPiwI^;36td%}_|j9Qua zL^QwW`M%gtLrGonn}O@Xp3)de&CsSjO`k(D$?K6_L{9o;D76HUe` zybBYukVcrb=zFhG{w;{rdVSrWb>2zTly+d&>Pn_X`YQW;43NKzh4H-scZQ70&c;n$wgHJr9b;PcJ?TU5-g6GygU_njRT+cH=mpgsz>hW z&LcM-TmRng3U~o2Gp7Yb30i#HThelw8OWFM&TgNm42GhHy!_x=Hgxk5)7w|_y(^-q zhXmBbQn?MUoD-Y1_;GriN!B3@t%;PV!5^_pYS~t$c?y%iMco)8t)*`VW-&T=hc{L;qg^`UT9IUIB!3Fgz~}VeJu*`0dm?P<>Y6 z?FM-@uaiG;TL10piR)kWVe6w$4r#)QNxG}&Su?_vwZ}S~=0*cyiE?)<9TA5?tHjYmky!H3lL?op? zH8N10dDZbYOU{qrv^WP+yy@l+vB8~$U`&VsFc!>kK#fKXl(n;3*FFeH^|!FwTJfOYl&R?;K5?oD`1}SSSv;X8Zt@G#jcb`#G7qg`?{1jhJQG z)nZl4&hr>lRkhx={z_OZ;CkhnfUrNLdXkLGMHzD<$KB_I) zuFBAR!x2Bc#ssy|+V})1QYg^96@UbVt3JJ=a;{ofZr~|MNj^EqiHg_($5B~4WvwmJ zjS~L#wG_L>K&TIxv$zYW0p23E*6cAGXrBi>tF-Lrgimb>z2->^yGUxRTzdCC}lw7jIg0~y^B{c(o=F5s=( zi)*oh@ z!k7Yay)Z|gsu-ObuII$%SuN?L!7X?SiA_-gHHt3nw~Nvw0H$B}z9jsY{pcg`FGF21 zgi#8QqLpoB=Mm}Ke(D17nghsi=%Kq7{Yk0d=B_bq9qx7t8!xvngiG*d?xC}VWnaZd z%S4~RVLe`@)tnDqO8zUuJMLpC{{6DN=w2qo@#$~#q0y6SImTlA-s<4Fvo&dity`YI z@~ewdt*JV#P0KT-;Yxu$(Q>b&s6&*yPt>fL7YXw854j42{y_Ut#sB|Kenx}6Df}=j zA`R!Oap%U!X46Fqh#Di3(>tNY`<}bXJX)8;->XlK*??LR@0>2j*{(msksh+&uZJId zV6LOB3H!BUPMZ;b+VB5&Et7tH#@4gdibGfyI7o{+`kC^$K);f`V&gFN5lTWUU7vXe|y z_wo0EN7SiqQ{U9Zyx&0t*4a%uhggM=Osoq*_8OSj998@Ss0hc7_gjC6_c=qyCL?T#TK0 zLj9YwE8SeU+q}}`C>VJPv~kp$z3H8UYn5=*2T>gS zTd&3hpunjmtgLZlt87RLkCCPcrnMzb_>|HLlo0cF`u;!X;4wU+W>B_!n!oD%gF=Hw z6S^8(Qh>gZPw=FayF-nXWx!W^GAHgX`*43+=UvZ$I1Ur%FS$+HSQti0d$FwLCKeJH zM2#8}BzT{WPzrRl=<#k)eup`GVGTt^ixg~^ur<``&*R2NoIlYP$5q)qNw6eB|ZUNQe(J(7FPTBQ|G!c2(@nO5{sF z&hL5c+{5d@v}#{|&6;MZX^@gie6ne-pku&Riwsm&ue32e0cfld(=?u#r<+ct z?6n!Prk>_gqA)U+PS`emNtumrAVDUGSf$-7X7Su7)}d2d(Gd8*@tHXzasZ>6KlHz{ zps$x!`<5Dw!{<4GE=wUG!CsuYu8lCmwH+r>bNcK1V=QXUg2)cac`)wXZyT;D?G8kS6sU)&XO`vhQ4liD zyT{kB($R?e_)&ob)Bnz%4KIRiuB;N2%~4H$BYf12cQGR%TV8FGHT?DOw-jyA5d)b7 zAR)prRykOyCEi6{@@MswgSHNc&(X6Hg#w&-MDUYi+)27CLoIPi#6?YK7k)ik9 z)cJG&b(H`t#N4a2^ra{2jtzD-cv1PYk8ZaBQAQn(@}-*vlO+LmP+7UT{>J;5Cd$o1jUQ5PsYzmHGQ zB^9Pi*CV}j5e1KSiRSE$H?Z)1;rpPqBS&a3T<{gS( z>;n6?*$cnn2qBH%VoVj!Zca>04?5!I=WAoeu2_d$viL%o%zXU zE$fCTMXzc+8gu%i0$-GM@g+^c42z!M7ikYE`{laaxziIn2cdlUK%Rp*BWGe;h1Ca=V)mFEZK&$Ti|M);_pWKexSOLv7<3+il0#5kRr{q4j z+++3o32<_?Kk8D$N$?hiB&2LH#y^ar5@VAtl`;)D%-srfTPf!gJ3jr)z_av$ix4-& z$+|wqvQhmemNC|RJj!*_iUZSQZ+{+YgF)*vXkbe?-*u&%z&f&|o8Q(n1w;uVOSGHv zy|ED<8ud*sw>@KJ!|{kC{jpuBO&|Lgu)q8M+Ecr-piweIVoeB+C$++y6Hm8WxUDlL zhaF_${3H@T(9GDA7a7OmY8o4?xo=>LqNyJeVQ%oQbPUdR_*%<;$7Tb6HY^Qhb7&orPVN2ZrryRX@!LQ$5D5@tme+n+2LqxZ#{&Z__5(2$s4`f z+YPn*?I<}L+IV(GgC&HR9r)RHKNTj2CUs=_>3dM)wXOvEoVY>Y><|gADxmZ7uKhK1 zpghZ>a_np%rg*^TmST|f> zQS-=0A4xL<6+)${Uaxq(iiVq^GOX|vc%D%B-WdP&i#RkJ{gUL#E|b zSRxmZ&x1R0AY`#V1>KAsUynZH&g+mbVR~w^dZWbQH2z#Bg#oueHZkpJXik1tEuSPs zu4cPGha_$N;Q>kvZ)s2q)QGul`O;DLVcPMH=>h8R2}2!rmehk@JazUbj}$b+pn^lL z?=4*9S4OFlE{r{IRvblhxLk`8T&7kx*SCix2u&#PlyBovH+1(yc9ZZxK>L zK?~Exr{LV_T&7Lpuy-p03myB41oMO>p%acG9@0H7I4!0J7Gmq3tL$|m6>9$awi~?p zkOa7QEfNc@nU0Tkb=9c`eUaD6^C6b(XsWCXUT7V^C?$Gl+~Jtd&)crvJqC+sQFSFax*b+24 zpUEMB4gpD1BgqOs3IttQXdn`}S>uukga^D&JKDXJSw{{aMj~)+G@N23;K!8lN1B;x zz&%Z*@1*D2_|dd=f_3ONa%f&j!zRfsbP!-lW52T*CLSM!4kmi$7Rv5%WMO0kt%Dgn zG0E-(fbBX=0oLjJVdnba2V(Y6$eZCiKZ}OhlNhASta+lz#Kesra4BV>PE|7Q-eyHt z%*P%Ou3nC&E`nj49xL;EP<}Z455%&lNlBF0?`GUVo~cDbdrmUvWu#3(ZvdfgklpnC zD;6CJy-5bMM!nj)6DT00h|@6Asg@MgDCB|pqghaEU4cq>s8dEu328JOO1F^FjL_?3 zNA7|VqrfBS2bujE_Q1QGySx=fBEjB$Yj8g$8>??A&ZBYR{byUAcn)3#{7%A~XDlKY zq8~u3o(9E0@YL1 zE=yCvaJAltY06Hz+boB!mrC3xD_*?8wl_5v*30~r26w_22F5dfLhDZWgS-jbn0sw8IuS_9+MsUI0cHI1IsQHZF4QapR`pt3SdgWd3DU) zbV0tOZUn{9P4>(X-O^2Es7_+$4-7!lI+WjhBI#aXx36W!|KXL`3&F#W6Gr6!<_Y)3 zMSDa+O?F)uf_yOqS4x@{GENlDp-^#^vf3V?JhC{m*74jdF{djFp=Lmv3=h(7fq$1C zir;L~7NhK|7q*wv`#I2uS(ci0`{h{Lvxr)=2IU0f#VExTb~=#PuLCOhx{PjiS&I** z6Hk&$Om#$+HB-E!I!M`Tfn~v>Q=U2~C;?jLZZQ=zh$k5$MZ>%WhY~cEg2{@A5@|T! zl)ghL#9{S3nav5E0ZR?&8}7bcq33>Hcyb68?xQ#DMMxWlTpFLoL#OdYn|q&%38|^} zA(mF-Fvrn9Df=nBy+JABXar>y!2A2ooXj7uW-WKY9q>2lfyQ`sbM z{z{92W$`SmNYP(xUS|u04}aV)l*Y}5=hHeCzF?S?4+0*qSMXB5)u285W%A}|Xp91b zh3k8_=Cl4%GmlFsM^rX2m}bfK7AfR3YLN;*8#CT1lo zi2bb&Tv~N{pZ(!R+Ne3rO@?BqJJaG;kxM!r_W0PrffXT5pEcv~=2a>iW~v;y?U&|Z za9vFf@{OXDC`v^)*~a8hfWWU3_&16FdH-skXqSwSic<}ru9!c2_J5dq2kyGwaO*p0 zo5off+iA?kwvEQNoyInIY@@MvY}>Yz9cw@NpL5@V{Izu`ZkSI?9yua!jyU!I7jvq?Xm`HHqTNVM>3ctsK^eNLt&z5?1=4!w`E0V6C@v-13PzaT?K?GdVGT2&=0!oY~w3 zd1_TLQeh1KG)d_yqe}Pb`^gB`50tNG2F5hJaqEG9j#l|$&njulE?)3lHUJ6k-k|w> zC%pOiUT4qBa#~-$kp%7)g^+5bh|c=Ebcg1$lJWoafz#FA$1Erg-Zmzul$aXXqRdK6 zE<`dVd)(JbOeuVn@LKvBE+rBe-<7SdF0!`TvbiX@jl}8Jo84Hb@<;w_X@T%}EIIa! zr?r`W{kt|yA78nkD_2M70%sAOwl3!=KRn2BdXxR}NlpsObbVB0f9hh_9-sQj*zc4R zuv7OOi~?=lL)=;Gt_Ywrxn~Z^(<=8&R!6+owxR{#KvvEx*NGYF1st3~hgNfc9%3s# z8fv|v5Ewdus?Rb1xFR;D+Mn4#*rM+s`q!2)*svFy+XC&$*LgqSPd!TE_b0jL>rq4W zj&f8Dj-658qUqR%X^8DL&~s{HF%1Zd=@2}Gv(fnsMl&`0K=Q&feR%vc{pgC`#gMTX zAU%L$w?Cgf(y;!bH|}{xfMqqRQR~Oo1J_qR$+$q6+R`T82)XkFZW!;VWW(c5Kf-|6 zkRw=D*WTa99S{2ryB@G)1D6sEs7Jy@8||kHGb9(!j}N;Zx8b^dXt;L(7}7-{zp)hmknhC@*71tlqlt(W7Rectp`XeCaSdhAC<3ho z_Wr=&N!61h5v{nvWB?TJfxtx;`rmpy7K2$Cu`%UpJ(0a54U>(2%B|NAFwZl#`#YUO zZJWQQu34p$4#Cb(1JfKi0I~qoR~10zSTn`Ix#vA@1SMk-$H-I#04I()!zoc6y9vx? zTJ_2C8qU~E@M*E(xG#^%qnoI@(HuF8qFDr#r`}QH2GV4g`N#(jr;XELMK_Bn9G&4j z<*=dM=G48o%IJMXQBFN`6;T}+dA14JUEJDNjxBC>0P#iD{#1FLA_(Ev$@T+Nb3Y%3 zy!0gAAnxAwk-yT84mUPaxM#;JU~5!sn39jM)*#7{GrqD75;)M(v|Kju$w{i*()nVc z8PzPI$GAH!%2|k>EdLl|uQJn-IaFOLbxff_7_IDh$CC$?tlM(AEF!a(=l4KOSpRm3 z`8J(qFrwN~5$kdfY>&V_WEqSYxb8jR_+`SMIt<2>Id66vEd@UIPd-=Kh5d@?MK)9O zTTTPpmn1R&oZs=%Vh@LiE2bJdh0{b>&^nhksZI-gMI2Y+Wp4!-%~+K6 zSQ68QUcX5Mx&>fyD049L$!jm*_q_(ZguBFhQG~Eq?FIqJA}VkG*2zk&)|$!U{M}d7 zYHz%3(h!kZ;21EQvSm9TxB^G6R%qX1qvxWykpq}N%8SO4(U}{T)HBuR;^d*LP*`Cu z(TNo^NL9TvN^gG_2>#R9XQ>482`jisJ7%V*l3|d!PNfhbnUM3Xml3NA2`eCWA_TWE z4oBT3^gZXrab--h`3rqC9|pa0)OfcGQ<$1d5QJ@__a-S7pK+_BJ>e{T;t%JzApma1 zCacvRC3G{#BiZEBaK|wZEskXDB8{cYJnyP z^~@#=BI?UK(+I3d5M$(m?J5%`C#4B$S02B~g1D+!0LyD9fqyfXWz_8$>m4To^C6Y< zvxmHBTll>^O;Zw^D#K0fs@0n(6#hsYSxtkmQ8i6QN{g0cXKS`5IR4RnU^=3n$}Fb^ zBdQ{1#i+Q^AD%|{6%7#-A_6GdhrL?75#jvksax>F`G;0nPku{1jOda2wqv2wcHO~~SGDlJd`I+=HBG!$$)H5KT4Y9jhlIEqhv zfMD=%29Kf!XIbXqT!OSG{CiJ#V#|WYrI-aicF^8fc^a-rPmH zb!KB|K-9m>Ag3Hq_8}T>WzGfE?M*}DD|hc!0dfWcRs6n3 zqo*pMb1@2!M;zL$LrpVFu9cdNu$$}Yj0*zaVYf zS7b*cQ%OGh7l~+x+RL)%kk-0qf282>W#e_`W)2k$xlxLjRm1&b*GjO2#O!R8_j>cvT2g(t0d(9h>YQhc_IwXZotT6=X0=4$LIV7K3@;XId*U+`MXB6cr!d`} zGE&PO3eFgszv@_XYfiK?Kh;zGr5G00JBvv>DTD5))TTRO`{4^Q}#);eHstH{&L7^ZNAGyF^Z(JnH6O_^OA$^hv~%P zK2*8~1|lXm+lJvrx)Q8X_h;!fnyq8*uNnp#t-^%`TUko-?o9WU@sK5EE(T*ufg!NFUVMyR! zh03(#@fRXFU`LG(8Cf0ckqA(~_DmN)HOYy_!tz@J`N`GzkTvl4RC^g1xgcajoJz9J zoZ>hI+VGpHD(6IQgEx5rb*#22sxLc6Z$+lYaf;>k7ueX45;N7KBpN-Ar13eO;Cn#< z7KbPcg#At5_4Qx4GyWJF8y7XT-nHBY!_iq^P(}{X`pX+72*H^XLu1@9E1R?}Jc>OR zRWXs6rV3k}#6T-Fvso@j?94hbb78+TEyNSJV~R)_M#+wBxw0ZU$#=ZSfH%WVnkGs> z8jonEtG0T?SG_8K<%+hqMoo-QL5*5AySX9lwxJETqCM-Q=uA6fw|n6h!q54Owz<0G zam5YHtI+tOL<0&d69N3!scg|&?ivQ4Ct{PwjHc%OPGh09OovanE3#Mh@Q1d%u$S5W z?=dFy!K)GHa*57x0gt zs+ye%n-Ba{8rF9TE{6nj{Vxh4Qnofsu*AC+IYwiBb$-vxVC19>M|yK6i~I9ZqHoTRdqh_=r{7R45IZCA zN?bB{MQ#M}brzw{JW~C}BEyywnl4v8<$=qf%7ri04x5xX1Tu#a9}I&m&z)=rc;T(kVR_@rZJNlZKRWXxJHrw16S3)uf$QJ{mps0 ztS=u7jYg$$RMT@>e$WdDVp9H+-VDgxi{era3>Mx$vXTnQEr`_iFHT3#PUdnzs`-hN zoyWi?^#11|DHt$NzMmOGc20fQ)tLZ{@9jq{3}bNs!RUxvSY-{N44f*ZY8oPx1Qp2T z9xZ>LcDHsc=V@{`$jOS7Eqb@SHFaJ{;+gyI89Vpsz~-weK9=w90C zM~N~R(+&>fM5!$7IM^FoT#oZ0m>Pj zfVZDiSUwdA66W0#A$?_%2d3ZhKY(>u#Ya!X~4i{XEupyAW)%0H<| zDQeXcq~jGXTp(}F0@~hY+8MG+6&-H>tQSq+>?&!6w4-pyjR0C8Bn{^lSPcWB4#FnI z#oGT`STN<>fQ=OMnqU~9E}+f~yQuu2@{A1gC>G5;VlGYd_&em!W>82^#fO5Li-Y9* zpFEsM8GOk1l^+qDj8{xhZ0Q}ABK(6V&8QxdSm|n>zxWYHIO!ea{WyiE^?;?O9?t~O zOv4P<*^_<9kXxE^t^`e26ZfY+WQ|s4TAmvc)mwjCP@ChRKX`3pyM*?Oq`w$jfj-N> z(k|hjpD#J~e1N-Bg&HV#Xb{FQ;2JQ;ayIFE(7vg~fw;X&t zhzqQ=UPjg8zC)n&T8`Q_35Ezh!$6=!-&5!y-V6bH%a4=5U-Ki_IKTLI$#w^3D4*Tf zQY~v+x$6B^D$(T&dKBo-aq;GhBYqEWLLyl%JDyg8mhT_Nn!8ckEfo1BB-`{4l1-)abuO6QCSito|;e~rt8(SsR{?&S>YwtZ>LrJt(`+d*Axn*i ztW?YIb8{kpSm7;6zA5vpqD35c`r^Dt+wYn_nxsk%oRU^t{AT%gZ|{K-$ngcaJh9qG z9mbYMm_;+lnt+fvXf=K-!#gLL32jCu0nUE{NWK#md7T2MX1HRh6IA2Nn}5W%WTmyf zw~R9(2!T8GKJqoNA}i~e^gNnL)CBbo|0OMpVC#b^t8`v;Y#58yM{3smS) zmx5T!t;^u`A}%=n3o*-!_L0ncQ!(~`u(ZehD_qIfV#GDnCd&CeC8+;5%gnfhZ5m<6 z@Yr8y$6gxC>wf_0Pmo-*w75j?riF9fqD?9CTf-ok)96SuJeMjH$o)>Led$+pI1$K7Bm9aaG^KuG3-*C= zCqvit>Kjjw=#?^1@h3KO&3xe}tj8QcLSXnNG4mR-0 zv%iT-nRBGrZX#4)&KD4Hy;fb(A=r_OyHmOt-6D=?)nFp(Sg%)A-Zr7?$V0nAR;sM$ zb}9HoaeRE3m6dk1@O4C}OK7SYFWZI@7EUf*uob6;gLEWkYt#IOo6t@85^=&6B|xKz z-!&bbgCybnuCkp%=KxV2x=20Tpk~g*S2Vo)0K-m!Bu=Mnq%GOBe)o+x^ho6oQ^8Sl zy0gKhM6Yy(aZ`DPZ_0LxR51V4Vnem&|GBKlNU7-vw-%81Wci1*HkBQjGrVyvJW0(s zVb2@}pN8TC+Q|Ll_+?Jc**2dBHFvBfrH5F>`Ts!n^kdFzHf63>+NccNYi2cQ@)muX z5MS&qeJ|M79?7bK6crTj1qDV%8+i?p`K%8*QYy zm!{9HSGd!f`A@)b#CxN2N~0z~www)(kf1(P?FB2drY!k!uua$|l6Bjpe}ckH_$-!s zScx&H8_CQe7qxCmVlko!;=?b;+QkqWi@{Fl7dpQc$=zn&_=UTk{v1xC&qmmf=Wm$+ zN~{LN**+0*fUc=%x~!Di?iKd1LC7&oa2pHK73d{&2efWWGN?a`ZH~&3E?-_gUSIUg zqG8lhwJU@y!-Q6fIf9Wu)0`=w54p|uM)9Njt;k|on<_3!@_J^*ZNk#1h}w+bjPF(* z*A9AtF7LaVtDp&~TCwEYCvW*=o{)ze`uj!XK@8MJRQ z`W%O=dzQ|gS0E2{1%-HG&IH{O%pVsXro)F6Ts!LSzRFE}=kLAZww!xL|nwS|o!hZRcL`8bujK0b%5Ja~K_Tro* zT)p6w+j{yH(@tMteR@vuj~zrPq(bq$!lG^ADwx*|_A-468eBU>Yg->>EV%zB;QgC2 zbi2uRr5WTXO2shzv%EGpC@t(&l(TmlVFh;RPDHH+agvb3!tA0`yc5~9kYlL=3gl#C zYSHu!R%!2FuPVs2p~A?vv($xRW-)4;D6>oM-!BL@)81dMyJ356F;wfG#-;JYlUtaw zJS3_^Is?v`!5cbQnlJNrdCKE{V=&EvzEq0%Zi#j~ou;SgTlpugJ2gFvgZ=$c6H@_E z-TL1}`>Wf0WKm10pn}k6v+QU1J2pT1;(|*;N&p=j{_uJ2I;kc#HQLuD@(MC=eOcFW* z_$L2F@^(*%Qd-L`Z58N+-9Oo)$w!3`wnb64!6^4~4!<5{%uk>QCd$JiM>?6*o=9q} z^4Bsy=*WdiQu)8&Qq&$h^ct(GlU>eNIdBpE`H|!srhP+9jo~UR)L)QySB2OcjpnUf z9)lKn(3WSs;KiA?RgCaUmSnd5_A(CJM;f=I6CnsU0d7T^{{_N`_%~voPTq+ZPdp@7 zfWoGrv zY%qVJv%#<|KV@sLES2}Wh{5;!zPg}3&jT>I*0%Vw;QKMO`4fno%Umdh%PN`Uo7+=% z(F34!A{Bg z#9ws(H!~6=>8pF_L6K#Um@djKisIJfzI#xe~e~bh;Cf32)FYI-It2DQ9m-w)h)4%{e}P z&qbVeGNedGbg!OTxfD?JVM!}rE1;)o@{xS^xxv5{7XmdJezGACoWC_!>~_-*S0}8m zaUc3S%tNScSqk7c*EBoBmbIB{aK_~=xP56hbb#&r39LPKEL_lrpYyIj>JNUb%-tHq zd#7W}-rBdzo`Dm3SIQiIOjGdOOVH7+Tu_s(uhJ`x6xt*`ORE~GsgBi~q4SZeX5nhH ziyU&hpL1VZvXOh<v#BjSdI@V=g zfBuVVrTZ_6S_^krpq<~B-Y&EC7XXtsc>I#I9%eGe&1$7B^{1E4e9zbRJg_LyrW!w7 z*h-38$gq)Zb~Y#?t@O-UEi>ncjaVW|a)j2HJ_CiwnTCm1R?EmK4H2R3t1QArH%g6z z!WVi7to;X209wkuv+ui0Bcxw7(sHEXOOuqmM03&sBH#M|W{OGdZVxyPy6;8WMLM|WY!3N+isYp7DJR}o-sjRV5fIQAW0Wg=Le)7kjpJMLINf6^vnTt`iM zMrrzPP(WfOzgFWjCuu_`ZB23eajEl4re8_+%2j6;Wa95Vj-^^v28^Q*eVVRlD3yp@ zH?_lTR$5!bto?a~AC==7m#0wi$K~Z)hDs^VNuoAMhZlEhET4Ass0qaoGVs^uZg@3K z7hM;;E19Kgy1M4mE3;Vi{Z#t7yCA&98>g9;5`~s##4wBo%~AUwYa%~=ihST-`*L1) zLIX_aS-&u4O{?!ABMD?5l2;wg_nvn;pe!Lq9e@w&pE|Gnu6fz{z0g;NWlUYNbcKD| zKYUY;8lL?g3nxtv-FWIB##lgWHk2v3g5jHgu<13@gtM;e%-ww!CO9&d^Y^xKpw|ml z>0ACHv|OZl{1;d>1|AusD$EVD0{nyUqW?CMPve3okv3x=KfVkfowc(!Xf|Wrs*mvO!lKY^b<9mw48rEvv1GycAJU#WQVGVyx51 zp<7)kHrJZtF~$N*zI_O8^)pYVI9K9PZeD|4uC#;NZy&{1MvVbxk*XfjF~W1+f|tP3 zE7@lfq(VB#!W!$|vmb>IYaM)3#my21Tb!q<%|9BS51PIu*Kb)3t zF~uW5a2))MNp4bN(%VY*8hampgwfx3q~cQ$=mBJ43uw|8L6)7FWnR1(UEZQ+UVC!` z<(){^CkP?x@I=AQyDFc+w8kM3u{l|FE7srtmzU%x+4*+xT%S-J)b%T8BY~cZY5M7g z@dz;1V4z`)Hp)b^>%x|awYrX%{;)LwAoc`Qd@M5{dO9m zN7S*c75fR+r1rbzKDY~0&G%hakD7~mNKhzTF;PoGF)f&+!wnk?-V%b`IpFLF z@7TFoEs{6x4?Ke-{KY4>r73FIw4~qJwZ2zuATPAMk(K4Ow{g*#m9>F!^Ne6c(~-GA zw709q{Ob{3OL~;S(KOPZBm-wJ<$1>bWv$Y?J^VFFRQnK##}-j}?r@d&+#qGfO}hAt z9{GFEgOblZ9^vB5CWJ?^AV!9yl&~zfWfpGmYL&}`s}sXErqN2g+=y!K))?-k}NO zaA+~dNGj~<#Z6hP%WW<@iL^$?Zw4x0sqI-`7u$bf{C?uNw3>BbU zA~Lk%<%!imeIypEWD%1b78%2!)ml(4rn<{;rlrlG@oBHD=2lJ&Z?dhA6o`W=$&H#T_kQ7|$5y8_nP>GIDzUJj1K1ua7SUS-@WuBa{ z=vA%X-3;_{K2l?G?~^*IuuR|sRvSv^_}2f#Qn6#bMcv|IkK`XWnN3T)nW#*Z3OV>G z9AXm1I_~)u-%B-+un)=Z>cl&`^dLo9oa>1(Y)UfVwKZMCYq7gV)nJP~w^+`+5dH)v ziC!~y?rE_7kZ8WroihFk^OFs z7Wyf+l88_Z;I2sa|1#&7Mr14HH>-X@ziWiM+3b;(C7Qtc#}!eBl3!L)={pZPKwyFc zqlIza(0WpEJ)~v+ii9$Y2mKY}0WLJ?mLSBJmA!|4Vsb6BN|~~(;sLc9nzw?1_10S8 z`Hr^E;D95Lcg;`iAF!!-xNcMgqeD-NKcWtY%ZqW5M!vs{@G-^2?xZ8`EQ`Koq60bM zYfs-NwMD&eM=7-(2$`>8r$hx3)<=xY9|0mTHf^aX)+bSqwT)0R){xqwHhe13TZbl_ zvu%BIr>2#a{_AQ6Pv3Iy1i~@5CANQR7lIjNn%o1h>?v30Ag{LeT~nmY;~= zs{Z?Wy!|s%cK+gS;)1x^8Y919-p2!_gqr3(I$K)BRD~GqS|}r^kUg1OdXJq4mS^HD za9o+x=S`c>`3p?;K-EFZWQuJ1U!NTVW}G8ulgW+wUvDWG$c4z$eB9hfJzEV#uIpzn zzn6&f4e$OIyywZ^FjKB211lqG(vG6-f-Qn)ygEQ#n{7Q)inc{*zW97hnm9AlaMRwL z{S15%EH;o3u|Bp#cCO#`X;<(yp(19yZeH7GHY4VJ0W>no%lnwr6jRrmXz_8HgZgae zU$zWiy11m$j7Pl`gjnR+kwJYTZj*Vv8KV@1wxJK$nj7ORoRU!8g=IE0Wjo174lf%z zvw3 W(>wPID;PtQ=)kLxK#O`VmL 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

    EpdT>&!m>R~ckYZrB#JS`LbDqb0FSkJL5o#O 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®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

    IF0c@YFM&8?F)^c^RwizxF?8X*l4-%$<_ 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

    p^f;&nkek)wcp- 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

    +O1fQVOSL?Ln>(NrKQ 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 z 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 z%0D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%0DLt(oHI-j7$_DEAEc_d0Ne1<` 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�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

    v~QSL~z1hZ~xW zY+;Do$W8jo3%wv_)zYG&V1~l2#Ahty*~FNA9BSuZpTp4uyADImKtJ}30J7-nwEP1U z-pg=eZUtf%&}_l;uOdfH(ftIh6lRuFcFU{_6}+u8qUXEe_r&!fg5o-B*2vznp;O=bT6%ZoGr zL)M{g<9JeO!bPFf6^Mf&pYHd_hLR7)L(~?e0dll3hjb56C(_XYcrQ z^4PNWDRzho76W=FhRW^MH6E#02>%HoP54|`cUA?oPq1&R3Z`A7>+OXJZzh~9x zobCB_h90R{Qxj4^_ET%sg=5nlSun5{QM0|b;(l{nFOtp)yIXDnmN%gkjYWnr$e&I_ zxqJB}^n!;(5Lzr{(T9-^C^E0`kWq|2(s?K%GO7|bMrq!G4JlduOcmUWj`6~lHnp@b zA?Eyb28WFj)T#z{i2%3_-|!2#<-bVt8V$*F%hazyi?ByFfO z=oh7)kZ+3zPX;A+F%MN9T!2hBT~32rRQ6svElxH9!= zX|Bc;Rbi{HH+Nvsj|yOOlJQ1T_auJ6YMJpMc+93!#yduesGYrh=e)ZW2xHW;eNR0-L}{?HuBrIZ&F_M%?J-zGWe=eqi4_ zDlc`hAPG(d5}=MMY8=DjhAG5%uMtWGEV}n;yT`*XvkyT|0K@557VfSNoE^TcmT;+X z{WImRxMZ*x|u1uCUr9`M3bXkKdq_TT|XiLsS`wiecZY`QUkqJ_=mm#)5)&}6ya zBHW9Ym8H!qA4ep2O+k$lAcGLsNM$=H1&1reP^|jX8s4ZFC!w{D1a3JOUViflO(t9~ z#!;~gi-;f!QCT+6H3S7cnBZ*{L-gwp%e_Jh=s7Qb3vN1WB;z#WG0ng}5av)Iz+yi^ z)Bi*PjiUX5Z)1fkgSfx)#H{_^gr}b%l_V)`<-J$Y6hDtOzQMaBU$;Vcqa=XjE2l|c z!9I*ZPX-Yo)6Rw-fg0l5|AYVvj!q3HB|Q5|lrC=RrvIrqGyb)4cr%ml8Ii?M)%gpM z_ePn7lpy+|CywsW7rU@fb?XEp8t~oZG9Sb#($1~{il6$%q#4G$fUIYg`(2T%(>2~Y z^WL~bMi7k$0fo-Ehfmu)7C`>K6Ak-$mw1^)8)D*r&~tsVPnp{BzWxE<&{L&Mzdy*U zn~Rb2p$QxFvIT3T-0^T1MLy2=3;HFFyg*j&N#yO-oi0ZA*q^jRwDGJJR+d9jbs2yd z{XV$^fA;&m z-h(q>Vp?lro#DL7@X%3%k8GVc2hHDIv3++nQ~Y~#+{(Kf?4y!QFHo?b(Sp-_a3%@S zHG#bCS7A-dPVB&T`%$x>%uWm+RiYMy%M3qQo?9G$1nLJYj4FWR*E832&a$7emX#M) zs>x!A?r6SPCB{fRdMS3urayq$ZuyEREXPbPG{LzyF?LOAVFUX>SaRh9kfJyR-q@vr zMj22Jf;a~dFa~pg&DfoBM5s8OI8`%?*A;-G9hVtF`r6{3p=MAQprWT|;RN&o2GG@k zBEGh*(^nXGGUWc3qR|O7d61*hJmao3IHzO2&sY7Ft%aK?NlC|EYL#_ z5_a7zA@P$Ca3X|0e*-7scFur*KSOic=4d>nx`_*i6#+CFS#DjcDxkWX$LG5D^qqwjC2a4v--np30 zxL2q6V%kBFbr6Hx%#L3`2x@CLE+QwHjJ%Otin#R*!55OE(VFoVN7eo{W*{ir3~-*PZ$k&Jb8yhq4z;E7(6obXaXc?FFnhMxmpvqQumUiKhU19L zuyL3I!b5N(nyChdHPXD{dBBHBd<`>*5a<9?@@aTz1zZ|dvj%CiWpOY`4JN>C@Dh!8 zoYny^0c0Im)71b`EMG-2-EkG*0-jb1=eE#x8Lrzzm=_q&9e{%1l^^IDrkXW8jb6td zLsQiN7@WsI2=@5_Z(x{2Ml?vlKtpgcdNzoW2>ht{gJRl1@xazPQwJ(0u3;!aM=j#_ z(UBYz=t0buxjoHF0y~*dHaLW*ufPbCft5$W4wOuLeO!dC5NO!u0-TIs-JJio;e?{s zaa@kdH<`p4#NfLI3i5wP@ke#x;T1Q7dBUr!%ZQ@<(?|*)XB@s+L&`+pmoe&NB{LfS zgF&9PT1kx-_Zq>Eo4%K9K-OIbXFn(aK+i!4-?t$`!Fo&amqC7vuuWe^?fLQ{7%>Yn z!P^q&y)}&er&tb-IauWx9-n+&R_in$7?$jbl=};!fp}co{r%=t;=wg)qIwg?WKZff zlG-=#72+QPtP$`M5?mpg&=m00gRk3w#8sWb)l>Gaf_#UsAM*H%OGHypiWiutDQ87c zx6ZP60Y%7-w%JtD$S1G#tut~MrpV28++x;z+46n*ZT0~uc(+c0jZte!MkfR|qkCZJ z$4wF^Jajdi77cG>P%UsNP>M^+J+I4-dRy|V(>f9s(P)bm9x8*5j7I2HZVM zuVNwdJd~Xbj@FRq$55zZ{e7j#1|x;NRLMEn=e3-z@G*CBSsC3o;+bQ8oc7AqX8fIX z)x5Ib=5r9pb8%Q1$yrfDHq5LZhQCwIlIXF0?oQ#6kS*V)b5hS4c0hl=9`x^=;Oe$E zt7{TwaVXH`6Ja(J5jW2+k@~V@ygPPpe5B1|VxcHtz_P4XS)qumxFt%A_^dP83>1-L z)SU@b?;qh4BaXTkFz*#THJA;XD>}pD;ncCY=IB+343*aLuCFcXaqYo_sP<*0MHnDrX!_P=-$^y(T)#44O+q}^g^!+QyPQ;4`%xtgG6exUOpGtK9zP@x(^ggn+3V7gregoUSg zbrBN8-D4WJg`Qj0fsGprwiTitqW4WooR?wJSB4(*N#d6KI4%J}!wis)-|MhKi25A0 zV6;Vasipkb*n>YC4PezQcg8z zzt9Rl0?2y<2Jk;TqF=$rC$4WLY4TCJWa-tx<`iDq3c%k!i=kO{KKDdo^S5=T(_BMg z4`^Cu7PWvbojm5Nec#3BH*o%miQ=+x_8a1q4xI;Q+1@Ni)Bd;_O@K5vuLZo0zj+RZ zoc`Iy>8^h?lbJr)S_m)VQ_jg#s^-cr(GnG61z*N<%-w=|wNT&~KEFThCzcHy4S#ZA z9&6+!*e~S<8usXo?XhhFd$EzKIPY?m^id}5lh&@7+aXbEGng%1^{PZ@pK!&Md(KB6 ze0D_mEVe4Ptz;6caC^N;1f=3&vG}eVmFMF=tx|K;J=jQMnhEe->Z}eWSy;_cm|iXS zna-1S7(l~xBt3)g8a>x2daIBMy3+m&9=GY|c^QOw9|~!QJ*cy43+3$?Re(XwN!LCA@rm<~&ilB6xSY%oXO%HXZS#R^Pr)~h0bm1JET&GgO#s9B zH}$`$s;1`HbkjL6-w>%M<-pRwHWrHO{56l-)RFaP`$|J{^3l8Zjc`T8nIL3JyWleK z=R}0#+7|~G055-OW56eEx&8OKyd3r$j{Q|B2YKA z?fw+DTUM$gQ?M_7Z4~h^P&x5N8_;rX4@qs#Ier^Ob7ne$58V(fBwB2HG$i$LMIVZR zxP8g~I@T&l+g+rp;-0jN$a00)s`Mo$2IijCpsj~fAHl=O9FK4a34t~;>q$MR>nYRY z?-BU=Z`K1t+tn||zy4)}j&JFfbF*eLk{3kBtkqDG0sj7^o2}O+`%YI}zArgX6dWdF zW$#Pd(`uFhP@bAWX0;dung4QAt%PxWAnjj-^=7X-EBhdEeV%cnZliGHfg0(@HGXvuwtKjR3}Eis)Ser2v{Ykog(j zL+fDMx^?m)JEk;jAo2t~2R@I54Ss(|&jEspTNs!J$6ddXKU8z`5dm66@M~c&G__cs zoFD)j{ulwRVSd(c*kUatN|S3^!hn7>{@d1Zb{akn1uv#ZTWrQ5sD)pNfAA!*g#Yn) zS0|F&_^rmw81X99fpjh3xCoHft|hpq=?G|_IrV|h8Ur})z(}dn9O3eb00~8`H{vo$kB2Ab7yQ2E%c$ z8UHBYxv=5E1!xM4cOOU3)x=pbt503pK&r$dU*Mb#9bjqw``fQXiDab}q;l&CW4V-Y zX8V$s!Gb)k;CQQb`70Qo1XzIYooWU2-{hUf)V?}6l?|4?quWpcLKTjZ|{Q< z+tHdMCPYy%+ySq*xkQ(-Rz|JhC3}*N^c|Hkerdu+&|yi&*3@QNO)T-_0zC&V40_Y? zznZ0c8b58%ZK}5O`u=6NeWro?hi;Mrn0oIa;0&fj!|{di?ZzQ%zetzE7*Rx&NWD zAeFL2rsw1n`TZi`_xE!;mB%w%heK4lB3FZ=?$cXRSxdB?Xh@0}G1|bW4)LMaxXW+G zG3;L{!>32oflkzp-gF<){CSbjPUDOk5S4ZW6ui2K;06$0`DRucGl{p7M4+cwDy;y_ zKy8R69Q0>z)9=ELy6M$7Pmqn>2KFVvd;VnDE1WAjk#cWvO~+02 zaK6+j3Qzw_%e@*j)`%@B9V9*r_ZeZgkozo zaH~kY`uI89bSh-sU%Z-RrVXr|+_Mx--zHzDDyt+_WgTP&he@ zNgOCz7d{#B&2S#u6oY8WaY_ziw^oKaK(U9E++ddniHG>#GK~QVTOLq4Veh$rTYpEd zE0e5t^jn6T#-5Kjl_!r92ElRsqZe`=Q3em&{;g+wyt5B=Rp+|*Og?NidQEyZ)*hx} z&mL|m^QYu{yu)Q;U>&9vMbigL!!di@egk_BEBDXqunDo6iE71-T3XDpQ+Y&>SHrow zrnF?;d^1L?jG~61KI4h)J=pUur>0_e}W@V@L$ehH9IM zK{zIHzn5ldkk9K>&Wth%CbIJAtQnht3$jvp&c_=VxLO!Pxdbesth>9()Ru%~Te;7G zFB@b0QtMXER1gi7u?MC^11rQc%qZeAfhK|c!>c3Da4O0wuUd$!L4(#GyfzVQ1hkG% zp+$A2KGC*67H|B!5YCp6o+2fJtP^)~)AtP*o+s9;P75@^ zanOMi9Kcc^!|9J6^DJx#GR&p{q!6SQ&RCoV$eeGRh#~?Mp0Rs0W1rluAlt9hTt0!z zUUNEBo>Bi-sd<@o&~3-mQkHy$1YE!3Z{g$885dZ;Yc8kt7C|)80N>&eforbb$vDk zmWFmw#`Qb&_{?ToV|3OO!qBo?2H_GVMEiQN8_t8@6zhA5RH2JmkTWa@EMbsD_+PZK zk-7`E^4nwHGt)%ouf=0DMj zSPr_^E6EN#WheG)C7F7cEDvmeOgZnA*T0x#z8AO@ZFU!Op>vnYVs-EWpAi@5qRiyr? z(r>yAJkn~Vi+lQo6=ZT;s6n_wL8oGmj>TRq+4rL465^8IPT(m$ICs%O?3v43zHocz z9ypr|LOKQ9pZ5)6QgkKM^AK*af8 zR6SGgV^CdBsE5OdJ~ZWWeH$Gtbb=hW))cia<<04B7G8-#A)sWGPucMPQBo>_CJ8+- zi9)C`S+#{4Sq|FTd8;#*&&zD^G8b`33&897rzrYI6kWyAi>(hUue+c2l=1OqvMEcRVR0$-`b z40g$_aS)Lg&$C;ZPl}kmBJoy$m0O?a9r(Eu|BmK&+EFM2GQgLe`*lrq=rpK2^`f+{ zj#qM$SQl5|G5NV{VPFCo=y+<@u-z`=UX3Zczm9M3`g6AJ_dEA%dQ`LP>Sh~AfB%-H zyNLepgMX0~-@Zc<9SYCf7O58j)J>Yiq+R5<_&-?QkbW!BMM!AtG(&8&=YVZCc&nW=V^Bu|6{P=UnwCjqf=jE-uJq@ITz%E9XX%ME4BQut$16xIlW_>An zC^7c69|B9k_T#iQWU}2RA^0qiKY)x*4blf-{1zI*L~i+NloKxk zNbb|VUU-);g5h*f8Epgb)RWRd(;eTR?4=a#?-*IdEaa3agYbqzCngg^jfq}lA7i37 zXlk)`jAoGsE)%HvIEkiUt9$~vXOr+H{tRvLOV1Oee}j+}$pNB|6uTMCv>a7+z2OiY0^Bbus!pbX)FsJ5=ZHVSc4yjcqq~vXzw(E?n~us~Qx%a3tt(y^8}C5c`lblM6yM*l_6{nf;P)A&)MdB zeAEMJ#^3Nr#alF8h2Pd(rIaMM+fz@ONZ)?FA&>@P#zUHBht5tG)VCttgadk0;PY`c zuF&O6GOaf)XO#h-)(Joy$zu+Kb7YlC7I_B~@j_@6{w zf9-x)k%a|@FIwzj7hqvy*~b#~@Zy=@{VANB(tB9`kdCm3vWTU$1^}vTg5Bz z_HDJ>SZ^)lt!l8}ZK+qnEJq6jSpL6$RvS3o#Lb_}E2#N>4+Ac2Um#2c6z+?3bC~g?~%n6Q@n>WaK&W(-fRVo<#%6Z z4%*o(k@2Qnbtf}~PEmzlSFAtCM!WW7*e3yJ!waNe-l&F<;=An~Wp<4(=eH@r_6?oR zTZ?9sWsJ}&SLMoI9h@mXd7rn+t+>3>Kig%$t}5?Qa7<6pyZE=gS^vF1ja-qU2GoE5 zQyzCduXN}%8tjq!EBRUko@A*>ybETgUmK8Af(|6H$4~$AUj6mL=!2DV)CYscT#ieDzi5Wu^{~cleF# zpqHC4@!fm-kO|imy@>{{dp>xFklJ&}YTQu)9ZAOOYBz<62VAjl#J(LfX)C0ZzZ*Jd zx9IaxAOGiE`Ec#Q87hHFp8+f0<5q1=1kE3z0e{$6sTAuKRZ`+?LE znTX0S^nrn7tMl)kgfhftJ3GDcn?82@1W&Dzvf7*D;pXlN_N;y?-*xXvl77~*4r{); zY+bPFn2D`CiQyY6F{w|2%9{dBhI|ZVIRv2azGWGaYrO&QSIIFGf;<$~-)qgdou%zS zCbPJyKv}t z%rAon_Je@cLQ~8(XYOYcNlE1h9+h1CMMhXqyRjQ0zf~zWy>TqwDMktJjr~Ed&t!{NI;YHBXS9u8=ppft^>Z0ue11{($Pn! zobE3@(qs2RMa_^NeV&YP5m|_HJK8M`q(3f9YG-*+M&p$M|L>`;Cmswl5CRX`- zEXfJuwH=T*9Md+*q>DA96}{gdAdZeP*p{w<4k*l=Rl3VuvmRYf4~L%C3mR0z6cfX! ze^wJ`9l*Zbx@(bK%O8~ttI z9e*&22>t$FaG%<8Icq6XD%|N#59- zCl7+R;y1l*(7u%|nZ>F2PQm{5ds-FJI>LDk!4b4SR-rpHJ()@$akcVnx+f}6+H#4C zGz&XE0Mns4(iYwtQ|b&VPQ!HLD6{4DvCS|tx8ZTpdxrJ;pc;2b4fg1;otxDJ{X4w5 z_qXJ^$sI9Pv-NHT!y311*z+x|K%A@i{WY78`5ya^Uf6W?-E4_Gqgq8>A-}a zg}c3$Yd|KcC`E{yR_bFY354Ttki`w-20eXyiRG}TXK&)fWJU|r2M?F@f0BK+n>^sd zSBK3$@O-w>{K9V{wSAvP%y=K0gsKcOcY(AWzhPC`BK3f%C31xjo*ocs2P1!wL{yhQ zI$dC2x!Xqn!ZVirEseIMw^CWKZ^c|A=b6B-Kc%G4YLA!4j~R4%g*Z<3ll>nb94giR zI!oP*E$OS8*RsLP`S+s-cStT><}}nq#_RA(Lv$Z&A0n^g=epomUGMkpzL8Si?O!En zcZ^cg1q)=pUFk8)CGwTMboAz66%!|YNa30t&AK9cKXEyPbnpRcRRNPyS4C}pap|CO z!*%nF=nc2zGfxhO$2N#IhrY0|RNQwcO$xo?Dv+FR&s_`AOq}A*0Oq4R6vT6B29=kJR>yyijCiUB1M2~ z*YG0#5%y`HYmU@dTDJb*TGN1Vf72VODING_8|p}jf_41r?4r@m<% zUbDx~k7@N84UDH8k)}(fWhhEvpF_l$a)XAvv>=Jx%N=HE2d8$XfBJmC6txb?-LdxN z;lI)tV#SPTU?<#rSsG&7JNa|3a^8!q%S&+5374hE?Ja3$myI%BDVsW6ni~sHH8Iy5 z}}n-6l|SE)@jvw83Hdr@R> zA1f;AOJ`_CaL`K}K|RSmV=K_HM1%>dHA+}z$Rz#edDwf z*vyRO*S`t1WkUL_@;0%J9AmEwah>5=1Ectx<=MYK404F9AH|lTM_=5SIXam0iH)pW z!PQ%KpWo&bn~;Z$>gdt_UtX-k57xeV$nPb(#ce<4AZF^~VP~JBLb+`nNri9;0{BB8 zZ6*mgTx(S7b5S4KK0*r6y%ctk``lN9Z<<%_3g?rxNv8V}e#d(?IN6yn{1>`UD-tuV z4Q;);JzS7#N*eEcXZBX5@$>Krfy0+xfAX4tqc1KT&%Zstzle77y8VTVkym^o@~k`q z>lVHgbxe4KkFAW%D;;V%+ov};M9F#+V*cQoq2H)zrO?D7%W}Kt@=95&^>z+TZ+^84 zv&@h)GLT^zFFlBk%gzH^@bLY`EcgLi(1KMME5?2??Q3#?_9He2fr0Atk1&z9DdFep z$D$10hSl8pz1YtCTszUlZv0EKSDBKVj#7}d?C{i1$;HoQPih4%*`2h$99ii;Z66^a zkhWrkl<=opXv5Li8Gj)W}8JQmb?F9k}mu#3&hEF-MqAUF=nPF{>+>w5VF@-LhxM z;c@-Bd)DT;W###rB5r(q*9-St>P#9oduf+u=uz#IK8?w584Vo#DHO+5E*YStZ=ub@ zYY^*subb4j(|v9RrQ?6K<;(of@I2WXN7*+5%X@=;6*%HF)aC0{o9BYu>e+{8>jtL` z7Mi~~sU>1QnX1Md5FgvvdR64tP89cZpX^Exq>eBGEe7-UswPxP-Tsn<)tCNas(Qy_ zes|7!Q8ZyzI-oA%=nU(UDe&>qfp%SkZPrml^wPY_mf?5$_GyEgy<$`rV)MRsJN0}Q z3(EU9#Z=wp^eCsynjhbAS(h50zP<5o#QUA|8)uKKI~}3rccsMxbMHx^ZcZ+ETWz1r z`|F20^*v~r!-sR%c<5V>!T5O3v&;Mn+Lp?ud%pj4exx^5`B6r#Cbx7~?u35H@h_Kt zB}+vIJe4VuW*_N1cJGzBTFqWXcjMp%-$mKc^W#yHF#+LyZP}Y| zR0RqH?Yf3HqJ+I--1)oN+slX|stFuQonmnjO=k)7_N;Cks}**?AIG4zCPKs>Pg<{b zJL_*oRvgvH;os|jf%#tSgkFJ|x1Yw5@?r51KrS9$KWyTyWJF!wXn2-;_AGVmaH3cU zbF4?VfJENKQ}wq-_b{2;c@uUTHw@ztGZd|qXwmt+q2W06H) zHCL$kARd(PHv+pg!X^WszCn`I;?X$t@ZQKXf3pXXHHXuWCfDBi>Y{MJ%W-Mwak@}S zqnA#~k0|zr2G@a4msRu64?N33gyGSc1ZSZdN~Q*whY7M#k1f09JM!+Qd+V! z6dKZfMoU{GcID4&6kS7f`CP8|%sFX`%cU7+(z+|hn>vkLuq8xc^Ti{Fq;J(&`0ke^ zPN?^H1i62ra_kcfjL!dfSTw)OMhczlFLU#Bk3((V=t`jGYrWs*Yrv_N`Ja6mZHwG?dXabJRVo01IffuXfz7eEUsWlR2n=Cj9@dXH$$b?-AiS=h}!R=6v_9<~HJFMrC{8v^K$>R^m0Z~zw5 zglk(zUC8v1H7<7czwvV^;SclP!z`GB<>h*K_w*iOK_KJnU5+z<4gyf87zOyK(=U|# zMQwec+w!1~tU~q}aHikj1NC2e#xk!X|Jk?swQf zTG&`uo_sa>l3+KO=?Oe-mK)@$aBTNEW5?1?@&4obl|6i4H_O)}1gLXAd{hRWMvhFh zbAWLXv@zS>j;a^^t?w36uhb0xVCUote|op&+Rta#otaT@C(~D)Z{7&O1bkSL%Xv#B zU+L4~`!o0Ufa~+m?`Sg4gEK2hnZIqF5&;X)eWCGvRA_FEc-)D}+SJ%UsM=A{X~ALg z==8Dj9NjXD*SGg!)2xV-kNeS zbz5?|?j6?_@wtv5Wnr zdQs7v#}6pR24!)czvFmq++LE7n!ofp_2WCwp2qHdm;^<&M!V1#&wTG>KXVuh6pjnG z5}fMeyjIg#G^%MBtDdOu5VkE{qPGevWEQ*`bGcPsrq#L0)CiaT?Psrt?WprU>F@7Z z(ks>NDB-FoS!&agArLl%8&qN!{Sv=8`Ivel^OPSO$F%&ma}~U%dqrsF=^z8?=!2_X z>(58?@}9xeDQlQtxRTBz!`gNE;3txKQ-H*S^1)|w4SFIgyECpSwEX@rI5^6q3; zjN{L6$=Ti#_ybz4ov=vN^fA1mF2;42qX762S$Wj5vwi8XrJ_08+oi99MD}O&6NSGI z{_WGObo+X2|Gc%?tn{!v@jvu@-x7RB8dp@o+T+uS#`5CZ0L2Io=Mn`YV`a$b^0TCL8$ zn)CMmIww{Ty$HQY&s59NPBF4gzbdV^#l1OyE_sO&d-2!%Cx$lMl8r^n6@2wdY{{)J zV~Mzv=gS1H59hQH7>k=%H9EBl6#R76uQirsj>`n~9M?C^mB}Fn2*)fIYf4x{ z10K{W1K~U}-`;Gdg@=UO#ooR|AJ%rqxldo}l(Y99-*nu|$o^x0nG&c)t#UpPNTPES zCv8#2IZ8#uFTcpH&5RXBLuOm~{_D3?`2qzkF1`Ku`&*wV>%fjdXWRmMw>6Bl80a|!Ms58t+U{JE1#`Sn92mn-mn zO}~41NdOgCY^`>@)VSMvX=lqDJK5+H3Y9;-<7A&fZj>L(dp5SWQ1^I=$fD%qCzod1 z4scMCZP!osZgAByzbY!Kh*c;J1-t+nd;g559r+#naA)70sS2IDohp|QP0zE1t;b4R zq4N5LqtS0|*4~wQ-m-r#GPWi?ymv47AFU1tqW;S;nWZL^Pgy} z*CwywCp%OO6_dkqp;v+Sf{T0mOObBmAAx&`fim36Ci^(q(e0FVNUktlhu*LrCPxR9mId zVFmWLt6JyZJJ%lYZk-z5tp9SAQ0{Tvz~2%za#&v01k^4IKlaLKVvtceu|zt`-_^fq zAn`-$OaBwy>Td!2=udC|h!?a~LR**Fp$rTnHis8c$%84quKM&%*`3^+V@$_@n|Cx{ zHQ7PghqbzEy)|qYd)SwH=-VTQvUmkkoBwhyb1Q3+9&KOXiPJN(RkrtRlzMS_^1W6c z9aldlp&w`wvc6M`SHNX4Etb1vP$j=ZmrT`V(e0q0m)ICAR#4T3s=pT+1KX z<>^}y8r}luH6~6DY*uL#vT^kj`b6u*eVru7tTDzJo|#f#gK=`RI7$1&5&S0Rlj_Ys zlbZg%db?=xGZ}o}FU*wjp7|rTz~B1`XQfIlxc1SVm2)A-gM~Y!K^Zr2T5m<8{y#bLAP`90FpW2C zk7tY~p8Rw^C4yC$rmKP$VmG4K@A5{uh{Wkn*5~KEPSIn{r>D=3zk2@W_kZ%$vuCHT ze*f2JKXrOrDWP#1`cD{s+K}b{Fvj+Q0-DiV)9YzjOie!~!_l-b9umTJ`epV&oRo7? z_x|qQrX`xMp?xCBvtcU#_>?fcC0)-X=S+hK*DUiZvW`ugVPU=>$VJ@pK`fwuzJb(9 zOc-C*RZCn=vtlNXLRbn4*BCcPjU@%w6dq0(0YdKU%Hhw#yllO`ZrXe?eo|Fso-ObE ze{P;Yx`hs(h2e{J(>}?c74LG2M1YBAIaUOe7q5&f?VGm+y+p<-gnbSeCbQ8N3m6bu z`J%tB$v>|tA!~B{1cLsW3FaR|sl6t+GDud9l0_ZMOfS9(Ui(IPY$)_)ENSkB=t`5M zHcbq=QT?X>5M=(2@-^z#>153Ek_d)0k~jrIYJ6!xb=h!}&oRv7^37}FQ{e1W;t%q= z8l}ZJAHy|RVtIRFfTYzF`Sx28@Mm2}pOx!oeoLX`wqh~XH6_4X@=Ik@O559H!uj*t zGbHy3C9u3UbIU?9&qz8ZIg!?2a4UMoT)U1}L6hjFisbL>vc~hOX|BN)i)zNMp@=fc zRokbODm691R|SRcFTQ-koXZ4YKK`LN{_oE{UsJ_@bKK;sXeJkvUa9{3NU@Ll5y zi^tvL8nB8XB9{CZ!!$c@b6F}07YB9a14%ci?k+T9RwSF!uP8HDev?CBEyIWc%Z|1a zlrck;i&;{JkfOq3No^@UYID{FJoaUUh=arV+pXNh#Tbs4$rB6_2a5@$sb$HOg?LcY zeJE)(kTUdP?fU-?VgGV@LI(A=`DkvNhC!kUaeL$WV2R$?n^^JSD^jBbxoadcxDD-x z*)7h~8a0mr6icXXwLe9db39{UX1<}85>$0vk10m^{}$EHA8ZAh@_BV}L2XYl*4ui? ztcz8pIkliUgUxc)!|7>tGgelC_I1WByzkP3G>{Gu+N>Ug3I^IRlGgPR0 zjDBkKR-6&Fhdt+xnQ)8adz1I6ZZRdp{NnOC!?W|f@ALeG$jNNof&W)6ZFcOuLcRu) zMM`^Ch_4`=^yoHJz@l>6UayFmf3hmcFDdhS_^HGafZZ2If~p&+!Qhu)K3yqlKPC zO~+&89zAYhTF#5QY5ht6i1iD9oGQo5EDdGBeQ1J*fKWyRs_Ko{3D>;MG8Y9eivJr( zv!h#+%NEC`y38r#Kl@=AkpK5^<8APLUyh3|Sl)`mEu1gzGt19rt?mqP*5B&rPo!fX<+7vSBRr6J@P(s#@PaEEESN$%_$3Km>a92mx;= zs%Mt{bOGMXs#)oW4ZNx;=J1k1eftmsWe>an1*X*^m*8@glH_Y2`jYnGEeKiHJt}n? zrhb@4Fx)Frs!?5cA@UpNh0b_>PC3J2cRLojL7Sf!B`MOzEl%CuPVwj8km5G292&x2 zA=o;nOx<;`mZp43?CSWDHG5}izv-slZl&xy>YaM;5sJgt9)q~GzFx-fXP-~bH8#H` zhx{b*LT-i%9+9y#ZLGqOY4T*gpIdlO9(iItJf^F5hgFX#?4NzI@esctd4G~W0|vJw zpBLH8^0K((a6-7R6Ob6P-9ol*9NT+owCC?(Qa;a-Sg4`mXf}|PSxZ*O69!WBEtb6l zi$mhX3hEZ4IASJ{akZF3C4Tpt!H<<)6Q)q{Vw-CEvV9$|6uS;LZ2QUxbj}JHqDAV;bPi z`=N0|#~-X?zJBoM%?2?^#cL61o4sW{wW=Cgyt;(VZ}W?;BB^tdGPqDC09|D7ip81| zdTZtlB27p9h$K^58iTjjTWiibtA*)zO_1=-42|TCyuvAkAEU5inxnkYh+N!?835$6 z_?2Jz-(<6y%q-y*LNQo-&dO$1C4BDh?!8YsG4h!z>u-!gs*#K}FD3ig)kh?Y`7c^$ zC7SMv%34-BE_MsCPE$>%>sm~0zy%>Fv!vr3qUL%zo!8Z}S~ujuZ_RSxjJK-~;|8O6 zJ6uOr@asa1AkIIRe^s z6NNF!`oOf|kPiQbF!pf_JGl|zZ$S6EAl-=5lmew(mZ+igI&>^4s~@>^^3m5<9M8W_zNx1@ z#OA26{JMf!!TI`7t?;vmNnG52R>j>VqB!9B*^qc&#yi^k|BVv=vn~){F3W354ZY0B zBgjg|?`hU%Uq>>GFXpA)DB)322PqA$HC!6_Sm}&9>)4?%A@?B?vMKjsRuh08b+iG+ z5GD}*e?`8AvJ)E5P)BB6sjJeN=h^)CCL)C9W<&iKCO&(e4RKCZlIuOw^+XjU>XQO4 z>XxK=ku9fv6>`hi;PsHe^+ab(tooBxNz7H|VAD{@o@tU8;>9Xvf#g)NWc&~=-U`8= zb&(@9zn*x3H8rQq8q+9MnJPc4{Q)xb#=zLnm8Sh%$UsbC0)%gv%X?871-dz~qMSuW z>^CK@&v@t*GtZ2JF%?zRwI0)K)vjwdfC8>DFO=Burpt_OW~0p53)8@Mv>ucdT6(eBeO;f+VQM%|J+!jD7tNqUPXo0W6PaH#az-GP-Y*Jt<|9XL*@j165vA4Pj?O z5+wK<%7ZO(F|3=NvKz>XD1?@Hs@cH$w|b^bIU1HO^=9X-E(#F~ofjADTF`Py6jnoB zXykxmJw5%3QjX;Z;|+ck?0{O>m*QFQswU~OH32!NrD#%xEkR)e&I4Xn9DyO>+h4%F zrJ+8<^7ggO5)M%W`Nu^y<3LZm@xF5V5PFzsQi+mXkOBC*%Jv%&;4haav?z1iHG(fG zc~}=S5nDnMCQTU=NoPRfui%P7n7?tsWn`P651L8>x)gWM`*67=-ul_}n{FoVZ3C*? z5&vvS&a4LUnk=UUgDN1#Z4D1-u+VV`tdEYY^VEo$L2r>Bgn)~$KZi1ol=$Btip{PV zUr=x)K?~9BrIzbDyS@b>0PTk}>&LU%OQ24R8*bhQ8rz1qWdZ`uOGf5Bv$(86@O9?j z!V(q;K+{T0w}%g&|DhpNlstidTNVu)Wh2+N;n#Lbzkx~hMEUh~)8>mYLb&nS)5)7U zTQ(W1n$b5P<=?G~RyCXx#z5b#8;P7r)w-^|?Bv&Afftabv8zO1teMNXJJUx zQF|w%orzH+2y}b;1{m#xQY3ADV%<8UhTmMT@{#`jx<$_Fwwxvq8w4Jk2WqEQMbStOwvf0#zzxliT%u-M#h7AFG^U1iZV==KQ%F;N-Ot}| zP^d;?oJ$Rwi`>Kr$KMjEVsZ6G+DbTh8*AcFktr8sx}T=ix?QbXvmTSDukxlUFFhvG zc0%c4i5GT0{#tx;RkU+iT_|QAh9tk}di=8_EdwJpLL-0up0|}0g(gb5HwH)FZg->J zCoc&95wgOBsjdMuzgK=8w{;&TL$2!!*Eghq*AklbYE{*6VQ3uV7pHI1z3~o*kn`e# zmPbBJK%_&$0M_ZFBl36)e4LfO)ut>`Gp&n>@#bR8v6&$wb8(Ye`eE^#sEAu~7onb8 z_JWm6TYB9nkmILc@&u{T>`%>mu|>>BOGvt4%tcl42n?9GmL!p+PN$63)GiEa>tE{MlZZX>W%VcSb~5*Mi_*!$g8%7=T`XK zNdbNP0eP3=Vo47F>APvZ zijk7?)mRB1k#w0D$b{cllp|=#y^~A;MOpN}@pm(l!~#if!cJkr+~vz@wI)MUs|U&6 zB;He^L`BlKIo}BVh5YZ!HgSp%W_I7p5S$PhMCbzN?c*j)@eg`=V@aIbrI{W!UnAar zb|WPhzdzX^RT;DQQ#8-Y>_T!avto+n6=IevWMfQ9DYIH9wyyP_&6`u(x12AS zIg<;0pH=9WHlJ%_s@qr!{`~fH`Ll}M4|86ce7YumdTqV+TThO8lXEtlM-je7if&aG zmqnRVB8l~FXW{c}S?b#iX6A>Xw;##v<62G?89RhvBLwDzuaw+huu_%XZ1{f`=&kp=_M8Nc{LiLOcs%`CFn5N_#J+Z}V$OBoJT(G?Zf3yd()1t&tBT zAAVS4>`o4n3GXq|?(6>_8t;2V@|sTL_!eEge+tmP`okM1%lMo3)BLRMb#Om)Eg=Zs zepcQ%B$>WHEKJv(C9T_Gd#2uL1J{t~>+&uhEO8qV1~I?gGN}BGzuEEG)cTjp)4Hze z|DO$TmQw}@^8B8xc229Q*Xb`>Q^tVPTR|!>=t6RRw-^n79(PT@LcWvM*8sghl#3)Q zui!CVF-P^Ro7)RPc&m&(T)u|S`9A5o_cHXHr9{MIvX!2r(oF-iC80EsJ$AzyU+Si9@0>SP(%p?K(9Wc&J8n<9jdT_cO8I@wUDgtQv>G2fF*7UN-(l4JrIeFB1e_GA*qmQ1xe({-WYkbJVug;!+mdzH$ z^6=$%pMG{Iw)*Ll&rTlwzL=}uSB>{#c6InVI}h}G`dPYj`0VVt1AF+Cf}p%UdrDvJ z-9LQ#f~(sjl1-aP^|`H1oWK&d-?GtPnGA1^Cbo_$_>FETKOpZ(%5ifLUn)p=_v z!e69Y-vWwveu+W;yH)-6_nlrgzkgj-?eDAHu)RCp`+YNh53QMqLcgy$wp&f@^V9U{ zllZ7!YR3CBJFM|{h-vASr%%TF0`QkNiAa zm#vpUMn|G3hgXlkj_v&_gl+V#uK5<~o+&y^y>7RxH~snevdo`OwgQsxAu$)bmd7Dk9 z{Es)PNR!cJe{8GGBNe&R6I`Da(e zQ2g=T$x%;0Z##8$HZAjwlh=_renHt%|A=#D(DY}KP5(bSnLLkQWXlYz9cC)|OQG8> zXZ0Jg_V1g`>zR6+DdPp5P8c0s+Xw;Pyy*CzCOtrCBO^si*Np8%eMKue7bJ=S7g38p;Lt*HV*DRT!r@x>Rrl}93|`9&ajM0u`+qL#d#M` zH~}CL#Cd=~S&s_08q&{}qwEIxp`rs{&&}sICIB~p{XpJk<;yVAMRpCJJQr^Fc;#8( zLVF||v&tdn*m^t-j7+x;>HVWS7=W9c`D}zW&gyXsQctG)`aAI&>fAs`pSTfx{0JZbj7h;+$Kd_p_rQzWQ3r zIj<$c4c0bDv~IFv-pUwP?rc23 z5e}ViT7L!VIMXi0f$6U}4U?fK7+-ISZYeh3#WELR3<)LZWv~jCUKM2-nI3dJS)ZTh zkm%d_VCk23mhy}|SANUF7q|rMiZp(;hMPsmgfPkL&fl%br7v0^$6F2jXGb7klfoi5 z>6(HTcpA49$ez`HFMZqXlk}Ed+R2ER07&g$Q)^mNBVvAVM(c---UmwISIZI^`s{=8 z)`coUo)|ahXo{W6OyB9Nq-c*PWcIq?ZGPjas3-HcIuE~So!991Jm$kU3W`(693n~D zE>L%qe4bqv^m>?y>%JR8*1&+8)aQW)1DL~TH( z9sQJ&vdhuQhe%7;)XjP6Ll96Meq5wkS~|~2aZGuBX76wIY?H3@S&WH$ zXfcm*>EQQGOJ{^h*UY8L>yBUp2r0orsFr#}^-L#HDAkP9*Xv0`Yan3hjtM3AJe?KI zG^=Nk#Q!Y~=$i_-PxBCa!ZK^glU%i%ryG_RoEpNkUNkk|MqzmHG zVg;9o2GsPZAEETmlB40R6WvY+_I!*r;FQ-O;jI^>K13D1`KJ1OAARF@asx?uy^UA= zIcAuq z#MK4LzMy{%nZB{Zm!!HENMGJkqHTN0!m(35x#pRA&vD*Xtl!6|6OT>7;FgAr7_oja zbp~Z+hoHP#^? zj-0`|1L7co`}Kf7tLjD8{v;IfKnJ5B*m*9x@D!@>PK@EcsSx5l#_;3Q_SON!*|LB; zQ2c;x!!o~u%5Ssf)UKVpkHiHW%B=Na0;nM)d>iti))<#{o(Fm!==Nuq;y1D6?dC$E zNc3vmNh^+KWult=bSzjIAS^2)9g#x#=mds)+I1 z(32<*YhTeSe0Q;KT1r~Bl<`<|Ha6o%v(Rw_gpcy}^D{*84p;w>-zRU^o3Ohb%=6`Xk=LBRhcDTI9>$7(ddI=L6*op{=2L@yuU3+>8K-CG zyxQdAOAPz?>6hadr*BLOsP1GSd40lL;!z)E-lZPT^sR7?NDzNc1frF@>b;2cvm=Br z-_zyk$>9h3Km7TS489laZ$SPQ*}Gz~rciFp#3aQ%D=rY8uQhi_dX&O`SxL{+pS(36 z{9N*`N5r2M297Xrn8x*Z>}QLMU%!Xn+vDI5aDw^sA@033+;4z$J&q+>FKFR&RZ`NN z7lUQxgqan5Mhsk)mmjb={=;HirQgpH(+W%dtTF8E*eY|y+dv2QJ}n{l(Kom9(9l4)Iq zlciom_iUD}I@#`QdA)heZoo1hx2I6p5$FOoR_$d}&#mb3bwcjga^^C^KC`@vH@{@Zp^h5Y0Tr>1VWX z1>K#MWpyP&BNQSNml+V#v?N4Je74A&Cc9wOCjtDexP^>YUrmwT$P7*Lchr-rVLNNk zvMkFWiv%)nc6WAo*{iNfP9KCoiIc0E^%(3O0iu|q^#(PqW;E9@r$I;j&62!LGU*lh zqJ(aTRv{V&0S3pPO!9elSrD9p-zMkwyjVtD*9akE%=6?L5U|uf!pxX?Cg4|fK_-1^ zI7ZR_xEbJ`4gwvO6|<~EY&(9F)fYKy9qXg0F4Hv5tf*lWfR^GQNQNi~<3_Q&wdQ^C z<(tz-9S#CvXfpDQLI{sZ*{)BI)Fn9)a*e-Sw~y~mk1+9_-g-?>fiE{^>q1>(xS5Qz zEf%s2q~_7$)17%DJW-sopR|aMW~-`cib=^R5;-r(6j2tnAXmP;CJWXlrOD0O@rLlX zpv&`j*SD5nXlc_Yb#XCoM_;i@oKlay7s(Nbj^cKMdwTlhtIuzP^XGM* zhnX7gWT^AIn21}j73;UnWL=hdKeD0eT^v0I&mTP@2#@dbua8NFr**;MKlN<4Ezni`F(Ow`WpcBa$S?)e*=I{uCuRA=DT2wKHE0N%@J+__rVvL;N!&v z{s<{Dvf*=akQUin%E#qb@>1UgzNJcrym(r|vAp)m3cttkAI9pef@0Kz2E3>%^4B1} z6KWHBih_~&+cE5O01jc=sX0VB%#jDpX8X-^5Xjr_uIv67FSo!Wu9xB_X7Ny z82T-V3SoFL-!xhCtbw~gQ0 zm1Ao4rBUj;jO5d{V24T7&WR3I!ipoFEc%3n0)P7Wyv;lPEGq)FY(6ZXn62A+RUf^~ zsHf@M^t;&wg$osRuV2KQzo52NdXmj(l#!-4W+$G#PcWp>!I!sAHhwdam*yR>-~}V# zVGme>9L1>PSl=ot{06ce|L-2&Et&6Ug+(}i{Qn4(M3PGX|6`Tg4D#oMVO~~Edx|{5 z3DQcpWEp_tJd`ByITfRTZ=Sgu@&Dp|@c;2?duvWVqYOonm9!QF>j@{cSYn2zx$zXE zIqjRV;1qkAHIa<&`!Ft;^qa=Wl&^H!Aq{_^^5PGKkICZAR}V}+^X-fn9jeeTr!5rYyI zmGm(&0ev<8U=IDRq{3ZZI$SKc)yxkVZek$HQyYz_`su2mxMG%rW(Xkhjp1Wjn2^<| zTXp)g&u-JUxXjx8OAgF#Yh#_Ul2OacZuQ#?_Li)0`-$vy9I8d555%Z2-G>#(H%IUH za%mR7KbyHX6??(2*^b?k=+DaR!r4jXG-YIe4JoZNNodV8VZGZdqJAxB=sicyv!w>~ zmSfh|={ZHaX32H()4UR7CY@7z-@stLj@x~^K}chhJZF53zA%fdUn|03NZ)K^ze=$_#VRk|EjTkQ`+La*z8sQi`KOC*gR*8aa(o^ zRwHW#5qfAZEEWn{0!Uf9en0*r`eEG;MEmd=|He`Orl#$^Tv~i{Y_o#5o;FhB%k=^* zZWqI6MYAGz!OJn;a&F#-=KiwVIT;zdWD#2=315cy!vg76oIPB>?riYqG~<+Ruf9e| z5v+jTIJ56%#KM^!OH%lj6Wr$SSeeNh%+2%ovx+$-uRl6^FSKcS=jRybukfKPu)iP0 z*LacFj((0uz-v+OiM&~ux*2u;JT6TybUmb11j$8SuU1vvs*h|?yjeDXR_UXQW$#0w zNRVGQ!2;UNg!@??lPt)+&yeg2-On-R!HVB|4nPeT*^Vo6zsQ0&KCo|KVDDoP+&8xz zMbs91nI*DvU7i#FRAS%|7-!`{1aVxwKvgp)H&cT@e?OD1p0Qf;VoC9Et^vAl@15QL z|Eaa+Z%Fadblr0DWr|qy(n~i_&d(OkukzXZVqE{+Xgk68^E$t^p0gNV;H95CoPVDj zg7CgbU-Mf(cUV6mP4m7uPrjKf$=AgAi|m5ZuG#w{y^z;_?(jaj&fc4)r}WOx9me0C zQ+DuuQNF@U-vG|ptL{*AU5Z`Y8<8uPJ>+g_zu#k4 zziNw8=1mi`r^~j!zU}NS$)}>`a7H?dP#by(+yjRG;Y2r?LGq2V2|1=<_|F#gUCMlb z`uxc)X^z;)vk$ts@HW48tCvO(-;(6fWtdRE-EsuTWWO&`ADD6foEBKHa+o6%^bO-2 z_GAXotS8J~Usn&_$S&`-{_Qy-A1=fofDvL7YKzjpB`e*2-cBSnKRjvgIre8{-}qNd zC>)M&0_YQppDj?ch7gVeU1j_(59Pzx4sK+RuRR(^qT4YBbO4y1G^Lk15+}}ZN3+VO z#d$$ZSSNksY@!Q@GnmU&UbojBvVH?N{+!Q?=r4p{Nqz;n8n>LzW30eb%Zu`Q8?h}b6NP|Pj%XBX zdp$G1xiI$DxsY!>WZgiE@vA(WeYq^Jw{Fq+&Mhf-Qs)_jJ)`t`HruWUe0o(wIg2jN z(#O-IKKRFXr$-bsHEp(>=C>slG{r(kOp#Xm(GmVd^fhHH6o~+btY+&VYG%>bfbF_o zb~Pa7VjfSA29P#@jbCqv-5W(8_>J=zOKbM$@pQ3juiu}?DZ_*p9gT?kZ81&zJ={DW zH;&|X9Qi((6c+m`v2-BZh=8N&!vc0!=TXFo^Ad;brv*TZbGW@wOz~uS-N z@j>WcYwABbdb1JZt9eCvG>aB;%!(T6dcy?HM2~;i^Jp#p_rCxCnF+kT3qvL|`&uHM z>Ab#YSGSvPnEIdXiB^s4K5xcn{~wgq+tc5Zp|3ID^!9ttxaU~^zh>HR)ACJraohPn zF3al5W^%DmKr6DBRY7Y4>)Lu3-oi|8ZQvHPZ?lV!jt0Ei{N1!%&vJil@EfAnNwvCu zQ+*=}@dQ&Xjs;CWB^NeG1qetBD*5)TAYN(cxU&qJ%xt+NY!j_to3+fU2e(5ZKXOt|pqMZ8w2d2B%GY?RD{y|<>+p?f2 zgQG=uX-mBah@!8SbZRl3b6+6PB)=e=@w3Na$Ftc6_PQ-U5fm88_aLg;2m1R)i~4nD zz95nK=;%ES8{tH&#ThLWTl;k@{BFoh01KIUJG+3#3!5C7O>$b9=5EJdE9G#znLa7= z?6!gWt9(I=<}{^c>8!i;Q$A#-zOliOK;LpOF2B{xGdAoj$YxqM@<+dGVw779lRr08 zc`Om{`*)OH743WgZ_f*xWo`De$~o$}eglf)Y2I=cnWp1v&da4Vyo=(J1mHacl~V*C z%!>T^H=#79^L+XisnVM?0bxu2VlHWp^PUyp{$+UQydHMbAP>_DB)lq`e1ul#S=r>O zl77~>;S8$m%kyu58D0sBJjR}tR5m{^YRV5+)9JddbB({=$Iyg5{=bQ9%4&*)_l+pM zSKd47aBLvu5DP}hc9W|(0#h^R28_AA+av4GB6Bvhwi)DIM<33p0+lSt(pWr)I(WizkVvFa9G1LQvwfTx|mI0_UbzEPp zLDw(W?U(1TvgJj7YMS=u2#}9@qh%6_@+|X)v&~DUR(yGyKijVA?G0aV>VsC(DT<&0 z(*oHAI~cWedBdt~%(||ZExd|>b#zO!Z(dr&&HF|)x%i928e64c`abORjX0eA`8UDY zHIMN&NPS)AA7ptT`?ZpTR}@_=tM-=eM30(3>#TPis_L)9Zbl(*&LrG^%(vm74eD6? zGgw)^`PxkJBaQg=HRAiT<>z^ON=uh{o!x#_+qkjt4(z+B?z#>x=m} z!;UtzyeV#qjL{n)lq};)9D9Rv_p=#NQ2K~D{5EO)+v*5TNqM5!upL^mU%ENliI>E9 zwI4oFzTQxsG2D4)ImLNyLpiCN(Y!@&s*{{}KN-DQ!Ty}^&DU7Xh%?OlSX-MYzTMP( z00+G*5EuOFkunCe)T*KRcuagt;#j&Ur@Wb8h%vbuQy{JEJV zrUu^oS)8|@%*uk2>^Y}CZ-`ia79IMZZD;=fPmcWXl$izdCsjo&Vi8^bqZ#~Jp27F& z`gYpobE7Bw3Q<*Mc};qUm$CA%kqG%3O7wPvJZoNGFQ*h4F3Bj&-e?o$An7+WzBAHKUn`ZyBPBJ_ z7zuh05AcVxz|qgBUF5Bz{Ii)=`>~r-UboQW3T04{-=dfQUug5Q=2`JBpS_3gdy|&y z=(agrNLqZLPSS>Yxh)$qe5=fE02)zRoSdKK=h?b!dF5W#;05f@0vTVC2K{nb-q!EF z4HeIx7Y*ai+PNa&-w5%1fIsJiJJA5@eaPmk#fW3E(S=}hp&rLAsCnZkZe+qv z-s$Yu>(#2lYIl3R%Gp+H3LA4uD;f2T8H_#>&^b2~fj=i5RIX?F-S;8R?LvZ$#2J4< zLwk|GyRC+}MhVfB5OnabJ45P524p&*j9uR-y64AqB8yLi(i9TCiB6j<7r98KBRn${A z82F-^i6@esx2oJaq?xh-o%OK%TBh%t;Ja5j>6lwGolOUY3|G*n#j3Q=;I_ z7s`jd}8s1Smum0PfK_q(Xk*+mtC+X zrhMgfwbpzkX+DyOOh{+7U$t&m>$aozREez!j6gwRTXT{4qNWU8-f&uFQdd_E%})9y zYYVJ9jJQ*z11<})h3&k6gj!_7uFmUfK}NI5G1xZeQRMt0@xm6qeXTB%t3gk@dBpO`?%?Ms-opJc9rw=Y%5CGPv&4QMBASS@_nhxDa8_of33*OgyRDJvVfp>W9+0qPeQ&Jl92ItYjPk>rv7zX6TCYR8$z!uytjdt)yoL51<|P@ zs^?&CU|fl2ED7_{uyZh)4p}f-{`_NB2^Xq}FlM}JvUZYH1go*$B?h>tnB&MB%VA-) zD<1S+Agid2yMvAEhXF;9tqDeb^rD!)tF0UfrcdjF?CbJ|rmu)r zpV!%hS_t`@iZmKysO9`)uRBw{P>zNgdu9!goc!wXDrC3TVM{-%g6 zzt|w>gq)%AbK(C}u=#C68)oFb^mJ_{Yo1%u)emMAD5Lbz5j%GVJbg8=)^+=d`2g&v zN8fJSl~FtDuZb?=U?6P1bxUWVzvlc+@kK0M5#fu)?{AdWEg3+0o4upoT{Pp(^L!(= zF^4&V?JM##iaKweXXH`b)?0o9e?#4znq3uu2=f*%Z2t{jH`jI<5R+&(HW8lN~XrPuAz>Ioz#hRehD! z@Ug66z1>_3gvJD09I?PFJ{N#Yjs-ilZJSN!@T0YZp9PC;-97Q$CyX0)$pN*mKGw^& zC}G%VoLJ!IAt;(O#=0!4E1pvOE`2)7%K}MLYuRj+X-64Cb7Q7_$4y?2ofPxQ>$j8{ zXgT9*oYWA!HxQ1erkP=JA%RtbJqLLMAA*=Vi!iZv{D^A^*jgh76NOSn3dHWoPCF+x zJ+I1{FvodOw%`}zY&Q@-3!7s>1E;Jco@=_{Q$dp{fxx_=%u79;_ZRwasUi9EZ`==m z4^d<-VwaPSnSBsM-ctO|$OWm-p-Vwf;XZ%1m@%u#Pg4%(XF=WudLNN_UR0Ni2TeI; zMu}3F0b2hbn=j{{56##3cs4Vi_7@@S3%7O91u*=Zr6t;J=g;@V&AT75IQu#*o6W`_ z?1|H$MT%Jo6rOe;vohwTCL~iNnX|~QJBn*wRnSyM(GnNU@+B#gwPbS~%3qsfzKOY| zOs$>UPL|?!)5)n`Ol8*yvNG$C5NLg!xyHXT&%Q_F&-n!na&XRL%NGIDSX3Fj#g|i3 zgqwHh%@JogbH_`L4Mod&`Rrg!qTz=h^; zOoAD7T;EE@ouit9*2PHpzy3tr&VaCu&u`Kv!CUgmEX4I2knw0IBzw!M75<2bFBUTp zBv9sksxEGzF7f?h-N2bH%kBhuDed8j9iO0UPKqx>*oxw9S74-t>D~AaSrh$o#~Te8=7*{4I6r2j&W8An)7l8S_8Zf$9Hn zOnNW$J+O{%PBHqrhU6$IE zMf?Bl^3*2cf4LOhay#;$hzA#_Ajun)d4_K&fmE$)T897TiTKL&kx|rX`{8I5;pfax zHd*AFHD!`1(@VK5N&Ubc8m`v}n_- zYWZ;s&Zj|vD=)HQ`TrJ<{NNni^QwC5)*Z~~f4B*_l5kkBzKI-Mh;26q*TepUW0=pe z9;PGnvJO^*84;M6Dg1w(1(Im>1G8JJnievubyHp&8L^5(cGoCVwT4Zzd? zXz}fQUDBF1$!(o)L)bxbayHJ3i*+p?eX%5FU-0k$FPnpJ&a#-f2}Q!P=Qo>lFfaeV zCKvYqm&C#ko$H@uyQ6k|Ajg+`_c0$uol~ya?k~5@vL%uX;4mu(ARA7GCbjBRuIL=Bb z#-@V_BGMU2L0YZb)w-p>$xT~?Ks6YVL{89-Ts(H7(=sD{*m~w=a?S6AfXE@N$4C-o zWm9qb>Z(zClmJck$AFlo?e&Un$Rcl=>>{_>jskYPY7%i!a}tJ`%^>sw+^190@^!LJ5-&TCK`r$|{~HWJ4<@S_l>fR$rsI&#E_J z{x8=pqCgD_J71n+Q2aH0_a=YWeizu(k+AX2M&L-%Zh|gkGrBN@Y_ga%Rv3AtUWFJm z+%1IY`MV4zFMaV9<>u2_#co%@vNg?Cq=Rw;L+9^K5BGrJ1#x9@u_Rsr$(r1D2vb1l zO*4`pq(G4V<8JWxcZ=n{y^i*IdB%Q;paSlrWdo0o#_1b4W018r*43ch_Eos(ol8cwq5+o0jAoXq^Ui;MXgd05M)Xs>&3k)4d< zb{mvG`{?QEldnF%4JM!0dA_`T=XXKgTQCe%!E>fzAv|pLxAJdi#-SXZS#sj9Cl*uH z#I)iP_A#v%lVTZoxaSot8Nl-Jnl8t1a0PSr*+&yfeUZxVj)f+0arBt<+v4a6L3n(Z ze|&wK+=m_@$cdA4rnRekiTn7&QFT}>v<AnnBLUpD(hKoMv**$=klNYquM-S~s8os!q$S zxpi`NIGg#6q62RU5$Ae^3Ffe`GqoF&1-;Sy>`$XzlX=d0hw+*GylsyBXL)+V&LX*Y z$(G!f3;Yzjy!p`);Azf9RlqR`-9zQ$sv8($v9|ir&bUKVq?)S-?Ih_M@ZoGP^J-F3QayMCM$KWt1=v7bLjei>o<-Am|XChcUvULlePh6wMKK*x2Xc znB_~;FR4v^RWx}VUH~El{&Of3$FtcN8As#&1@QPQV-CIfyXLlHLcNf9n9L1HhE2sx zISSvVtlBa+*<{HDrRPOA&v+}w)?Q?V(sYTW&usQyTov=TWE@{dqP7!#igq*yL^>0q_t@))@1n^smfv`h@VR7cPO)ln zTdv}?>LRCTl$Uvt33W>nn^$MeFR$O`l&GneoH!TWuz)@7daG$4h%ktIC^>Ennkp;KV$X8Wth=yH>jeXL>F0pgDAj$LwfUEv zQMv7cuQTg1WO=!78E?r4x1YsM#~n4Pia=}_6MfV2=r={|+sEjO-#_LD+=}AQ;4E0r zKzU4A*mn%lI)j;|&og1V+pKKHCgvL*HqVpV(OV8!Tc_uBwa|I4CO^#!HDe)nV7N|cgq1mQy5n+mISoc(Y{d%cgDxWp#S9siwb$VA1OLmFa5|{jkTXkS}n5dIyg6s)&HCE zjv@Fy9QFUEvHbA)^;Q0h*0fOEJl8Psc6=MGbJq$Y^q5~*6cn`NAZZPbjN1D#pBKV? z_;i2csDD#)cKZ-Rql??l6&cp$dI6?hRZUY&N?mo=I5lk24uKP*uJA1pu%8P|d71rvalOJzKNr}_ zV*dN0d(ChCT;Th1U9ZabChv;h`nkaO2YuCrL%# z>q2d&?FD2^e?e?bYhvp2H2$mwPZ%z-d*NFpXM3~`Un;QFkA#o>{|(ST+l;w&)8G!u zkJS;xL+ml%{dzkhJO%b%chBZ6{AXs1p6Dsd%E0n12V4P<2dd#Eo{HP0S#%i(#Cw< zIM7ts>z^{Qa7w&u#9lO({!F%+G5_dFjkUu?oont87~YQ$LYUUEjp?F1CWa-p6}L9u zQa|=j@maaKzV3n;dVjgl=nkwPlf#ULhi;afE~gPuU8Ds0{V{IKItY)fx()WD(6Z-t zM0q(MWnEIMcV3NAbo(12?)ytGTq;ugrdG6}M^*;Mp}Z&}oHyEl@fRY^8zMUM9G5zI zsw=uwU(AO}VzqP!$fAp8K7)h+^nl4 z=j&kT5(cAjIA)Y#U5i*PzQm?eRn?9zeL%*Qi0lUnZ<#1)f)XV{?X%A<8PcNdxE^Qb-<*qpTsiDEO5)_f^IW^2VQ8BDJ6eN=fBu(kiJ>dLi=V_ zQVy!&cTyDDmfr{M#sAMfE{gplV};dQ6T>}`o>hFiBA? za7+UF>(vC+cmArlY_%aq?gfth42lkHBenDnlp&BN1KFAchW&X1!7y)_m~Epr0K<94zv`xL{AeR(`K;d5u1APSy?bfZ^PmZc~q&{Eb^XP=6f#T z3{CGvS*MxQ6|wOpX1n^tm@=IY()qjJ0CGIXe}&@GBrz4zm4459ZKMi9M)MHU`(buN z{OGRth*j$NQjo`9cNp7Z4$l5E<5sn;Y^A1mXXN7)#Hx7~@Qc(Ez^bN7L*M{;9Dq%}pOwP|g>BuqA-FG>P54l_b{@J39ZejP7K{+un1>1S&* zF7yA-Nj%v1uMPh@B9@Bd?WAL4M6=-v!L%YZlmi$~<5S;bWe%xRLczwHeWqzGpI275 z{X%!?XoQ=%{N3nl-@Eg8Yy45|gu_mFY5UXvsAa-0onjvQB;8)F#;~h3!RnB6o{Z?yLoWkMk!>2&)glxSI zpVxr7==p~LsN7An+YadotvRs`Z?LpOYt-t+igIG>NE%XO)DL zs~2qHme^Gx+tcL(jJfrpA%bc%6@rqmKarGGCL^9rdZoZTg7 zmgW^QBWAFiOwFjIpYJZEOE`sedzlc5Pr{Q4LAO3nOG7V@M9<2qRx3sEa)T>fmo#3& z1s|MprcRPuvoN^sCfjBkzs#Zc<=||2`|o$*Us6y~UsO9%vhUK8_4s&>Zu?-P&HC*2 zmn_~tWHzS%kUZ2g4AkG@+-~i5WYVHH?1_84YqZ)N0mPvcu}1_pwxF;W2o>2pJ~a$y zM!rjO%zUNhgM>SO^J~5q9J@uHYc>sRoD!X5*Nj_E5SkiW41ft@&MvZ{F3O=|PL%oW z5Y zX=~<=R~CwS{QbbR%y3V=B8@2laxG?MjXgtULtRDcdJkO?>gb6$5*fvpr{?PFcfAGQm64zw zJ#U+M);eKH78&M{n0b8R3{_J}`F*8oYWml`v5IcOEs5Xcx?V$1$h4(BEXF{YQ^GMKwaa=rHgVXzB#jNLK9SOyjb;}xyrPIoa$7>QRV&iBJ@jp zp7ju0T2kTNo&jE;=Hg&dV5y4BWT!*RKcrEgCp zvPHvhL#R*E2sBPJoJ~G#)1^;2&n1MWrY@PXYNAM9h-<+4g%Q3%dRRo~afGcwrns)c z^}q3%MLm2|YDK@7mNNQFsvGkoGnK~Ct1Q!QGag%v!&oIvOJ2%5Yi6wGG|;y*L}KQo z`r-r=bR5Itpa!NAlC;Jc05Nd?FkXnG9Q(DiQ?5C0N|QbWr#lHFqJwa$3+1uEl4VxC z1ClcN#f{%1!|d!d@E0=JD~L)o3Q`+AG5}-l^5R4HI>_?YJYLQi#-QNm56w6yBaGi` z8*Spc|1JweNCQtPe+!w$hug=<1Fl6%4|T@Y6SKH1D& zZOEb8TQudSsYWAWp>QYT4YBoAL`LJ5g8b+E9aZSwtC0sZu+y474682=otXd8f?VBU zfG89G+1@M~N?iF@PjT^@xV&U(TDUh({9WVS{8@*S4Rjn79N*RUxv`e^+do}nub6`L zOSUI1R_Z7=?xnikHT^nI@deuKXh#CJ+G5*tG_U%#Jow*RkKSX`RpNcP+b62)m?A5F zJX>e00%07smC)brWmT46;A}T)CU(9CIg8J016g4+Jo}x6pxL|8BFpy7nyA|3 zr$P$7M@*pxJ#e)O;St(5W|?u%=#x`-43ornCAy03AS*h$4-WDMul$c-(}vc4iw-@= zR~PlPcJjvRF?dC0oV!1ImG1H(YR-B!^7S@@ZjS;e;Z4ikBFnhQBu~CPA-#8bgZ;U@ zgDfhwGVm7)!Itf9hciXLJNp1O9((_B2Bwwy{1KItVLmy*X;2Zv*?_M6$j(j3$L7U; z4Lt?*)@ziky_NK98;f>iL5_MeC6hzUDL>`5l^|@xKTM`Crq_t$ObV%L`d_5}>Z{2x zEILg4> zdB>tx%dhGmjBqlehZ2;WoAEu8a=Vy{GN)?e$xP(9l+)MBPMe*6Oks&w17Y{#*Bj@VYx53fLU!WXlCz2-*pIZ@1D>9LEzgSYY!lc=MJWLB_;=R+)|#`wj! z`@z%nZQrY>?H9uMKR&fhttlz3w3X_Dr9IrIf7V;mJ|^g^%^wJD&3m8z;{$D?xtzAq zn>N=>7G{TVIiN?K<9k1_PShX8gGI5u|;Gq05?Ywzx2ZaokXP8t@Tnt4Q4S7Ehtl&aT_&KbuXcR(J-92&aE>}&35q4m zIBg37*Hmu6-j8+vB`_eZ3CQws8_@5(3#JIwQWV!3#||U$V=>70 ze^A~*uqGh^7F4YP6C*Yz^<~?Dkic z0zW-8j%H4!RYPC6N1VTzI7zOL6D3~jd)#l_(e5VsY`E=SA;jVrx2b<_?X%H;`nuiM zXDD9Ow48HoWPu$wD7t;I4p|GQNqGI8a>}Y~$hQX!#?->_S*}H_{unmGll=@Yq^kTH ze~t+x-un!{1e2y-u6A!(-^14j?54NZ)30U05Ye-HpJCWC+8Wb)vg;u+m4q@lUV8Wp zdmzdF2yrAnSP}OZLdEB`&|IShWzS{P>|lq2t#d7R9LZoTVd8{L+4H%H_BkQ97#^Dl zY=gO0|Q!11MYCN8*XcTr*}ao$(1z*`d)NDLPXl;2!o{@+qh4{pS^e)(fV zVK_JH&eCIWB8d4x&CfQVoF|ZXlCx|pH|+uuPh7@Mj4MePgjsox{S8TM_IE-B<09d@ zus&FMGW+c5sHxqzx+pymem`>AwrkM%TcjO@8f$kwV>59O69OheDL~dF=7S7lA~dz(`JQDvi#V-_mg&#G%Z5v zi^5r-V{Ot}LqF?=84bUI5Xqp)4FI$%^@>{#?*74r%(@W{wYV^P!Oyfmi~?Kh@)UYQ z8~`oFxKZHHy*zsJJfNA5>}5S_u2ZCNzPk5(-gX0mBL2()Ki6v&_paH^j62vuXK*|b!_*m zv}tlYFo2gP-Q&~;+n&|uqA#1Y$vET2wbjksQP#`z0$t6P%~}lUMR=`IgIv7+N~BCO zBbmGBzhfeZIzTU@xXE|JsW;(OnmVk?npyU74XDh`fU+R|Sq}|pXn!?hm*|RlNFac( zaFjjoM2Mu4J4psoC>2>sR{n)R@V%Zby*a+qf3*Q_+tsH#-c?pA=I`m ziwfFg$Q(Lzl|9KLcstuL>CR^2lsIyF%&$8aW$ z#fo(8Ow8%CH4oxu{HXWaqBea6)8m-9@`_C1)g^aH^T}~sDzrbEkLVtgZyELB-ioHW zVonLHGkpzsqUEH^hT@4{oRubdYl0bw5&ZucJTI0ppG#e?WhaeBmr^^HDc}vthfQDa z)=^WWYG6Nn)7i6BRK{(CcYX(xr`!YdnS(UDo01oo9+7y8w$w}73;QuvIexrgjrIp@%o;#QmZ}~Q zeiac+DIeTqFuQkszQ6cjpxkwon6sAu8?->2(*LOfD-?LjQ4X9viA*>9@v4|}eHfu; z=fNU?p6G>jz=B0N6zt{yJ=?*7nw35m-s_`xqXU>wjHk50#SA%w$ku(GJPx;U3P`9GBG!(`;2PYx7Nqnuk za$oW=jZa+Q!dHjD%D411_(MQL=f^^5LB!GC_ZC14+=q zPi1;W*n%4WMgKiG)m31gCOawc;^*pLZVp??KLUc7^)Y}^x^jad-Wp}h%sc#nmc{?KoQN<`F*)|?EcB)*J5jk%p0Zn(?g&m+Po=)CrDTrW zFroE+JR!BAq#j4tL$i{e0(A(-IJv8oBF(!WhaP&MTfUyDJEq~COBaMQR_Ti|r>G^n zbisYu(2aNh4$kK@>BYzQHU})tZhiep6u4g)Lad%FI_Kxy6Pm+9!jIz(t)q2-mR}US zV?;_WF+I9Xo|*Ws0N#Y;=|D3vx!_5{a~UFBN+dA8D@#pHWPPn=Ye{eip2M{-tFb`& zuRKIazAzNJ99#PH`s{$-eH)s$k6h4|i-S|XlZbX(ms6B4?zahA#XSwF)-%uB8>OfM!>Q)baF7D9v%yMY=9=rfK)s$KJ0qJn)CLt z;lUnYKof=V&T^Pn(KW)j9WBGYl<&@X+JW;x)%->~{9DN$sIfNr|0$i_;J0zT zR!rb(eGkcqe=|_ALxVxfjB$v$bI@t)HFt1&^a}H8@#kVMDTzRsG>uw_&+;iiE!oS|I(*I zzmx&OYVx2lSZZ^OgTbNG%4Y`xYH|IkfbTqq0vDMm{`I)b`g1a3<4RS!BKybc#+w7= z+i#yB?iUQV4;uTLHa`s=(+Wjxyj>i9lWaKvg1~nOWkAJvGuhy|#{*UbIeifO=yW*% zGma_UF;NYp3B+kq`Ni=XN#9EFZn0*6D2vIZnXJ6g7zIXAEdk0>?kTYXsj^DF4o5d84ftb(PtjM?7b+0Zmx)6v;DL@wymBG;$>yW*r?E|IQqGtO$zNi`;<+o|P z5Pt0}Ul1kN%TdT{Z{iKy-fchW8}-;oV>6jsR=fg+dX>5f=_pGzybLM*8|x6BJvCL! zWdom_r1C9|4?418^)gC~o8yw4x#;N%_BdOmskY3K%5sTAG8ODtMaKuOJfL{PhSPZo zfu$_3_xq$3uXD`LnNiX+)+fHSi5? zLXn596<|1PUfOFxNF93pE)nP&fX=SO&cr9LwfMXLE#NiWIo^{jgxPX02tX21apPYn zE3sB%DvRlV@JF+~@v=!>L}rnF&~(~{^?dLO6uDNeb&G+LgXl^MVEQa8oIpTfYFJjw zP@9jF2d_kAfxJW^{F6?s;+0-)M^x1qA^u}K8)hQcx&U1kQT#by^s@zGnj=eLoGP}D^G%JiAYh;$}LK>(6KG2RoZtWvR3cTp4`Hrd7TsSsj8^~$AZs7-Z1IAF_NAq4`5n$byvA~hEdg^w zA^vBqNJv4Io9H}i==7uvVS#_5>S}b4tiZri`GJvz!})$v7IRB+Ws2c+!LiXmu<6W1 zp#Qmv;77sOZ^A=Z{n}YvvTDo~na6Vp;@)tm-k!vkMfFQD^WPXj`{QM)SRz3^$#yss z2pV7jf`PZ+Ylc=CjiCXZBWBjoTN|6bC66xGhe<;ma^13zL3x%%StUng+|%p8sW3~2 zmFDt0$Ft))D*9ZDQF%|T3RQts64TKf#M8S~36`44RrKGWKs^!WtU95L`GC6p8Svjq zJ$sda?7=`~U#Mu56a^Gcdf|zPBkPUtGfa}}C8ncnX1dxF!s_L1e!OLKXr#ll*^WK6y++|Hbg;rwA&a`DnC=vp?- z1Pk!rHqzXTj@u>e^YpP^sIZjDsqZH&7AV{B0RN}(BC)n- zJ_Aw2itPrx)mij;v%%w5szqg+tF_k&$J^xk$gTS z1*_1`L8IQW3##2VNLlIKS;}a%>$F!J30dSOQ3WZ<2Si%ljYkj+_Svn?_Zf(WkrdW* zqO3qqIq(6cmqaEhYAUL&8-z58(VrzTJ?{}o88UQV(Q1{4RB)*pzYMCJUu%Y&qXQ-bfTkQP!6&q4)s&bq} zrOTc)F|Qr`ASl3WA7u`Eu;sI{!GJaEhpN7LQC;Iz!=*nGo%sWC^ay#NtWg3VlrcFx z&IP%;Mcu;vr}v^VCKAm=VVi@n+Y;Gyj?)1nqfX3B*cYe?cM5$%7AZq7*^wnzT1X@L zfg2g{ZqP~9L=H&h7R_+cQj37lt@KkWZ+malK>ZTbC}p#n8&Yo@+OW#oGd~M~TIqW| zi??9DPCvBF)Fe;JZy?`Aar_ji1t+nh!dSgw`|czu>M2 zo>e2CTJpl4rVqU1j3`4_qfTWKo#9HaAkD6ittZg-Xlu{-vCiLXxEmYdiS$M1p{gLV zpe{-_zATHO8ABvhTVqylnCVn>C^Am_1T(!K3L;WA){MUh_sX*k$NTGED#~nZT`O3! z@3hR9dW6#}i(}0FdSG+2Mafrh6uKUxb@!5{}D@Kj3-ag)iZk8E6f~?wPT+&4cZGAktzB)Zhehiae$zQs; z-A^j1q;(l)+2#V?jZ#AR#}V%rqRArO5G>JkO^;F2j-|a?9%K&|^@u4irn zT1ub${taUz0X(dpoJ9x2^2}lNXrNm{l93X42HjfzzR7aTBX0_Dqt%_0Dz7jn$-qmZ zj#MLYoz++baiU~sC7g>3-GR_@IrrmG86jTEG$ecb&ar7OG*XeMZ+m{+91{`*xy)R; z72DWgw21ND<%{Am)eZty{q{_A81gZHmH%EYt?-;lA^brStv-~>L}Iv^M(XYoMO+K2 ztoc}tBS-ene!i?P8w!m^qH<8xbzFJW4G3aX`jOTQ$k>nKR0<3hJ~+0N3d+fk)bcAz zL&^HbX%AnGgPD~}$13#k_c19LFj#hw5kqoLdEeEU&>i1509O#kY<~x-EpBd^IgB`X zrkJ8(09zcCFPC$?0yX1i}j#n%`Byc#-I=k=T70_G`BV=Xs85e`Uo%y-3I=?=#A9~^^2_JC1wz`by{f)?= z8jQ9XbiLTKygPsxr9Z9}9LC4~nQ=2L*;ruTWLsu>VBSG;MdZ|BGmZ-#LK4UeFp&Jt zy3^?e$JXna+s*RtGbAz3s3`@mn`uWVjZ81y*lEOMHtyO%Y&)9It2i*2OI)g+tkQfj zTh-Z-;`$Pxl-@}yH_;*X^#a{l9<8R1EM2LRTykpcayIi>NM7cBPotH*Fbzd{}EJ=m3HkV)KtAhzheB(n$}?SjYTLgBsW}e(lgB2u zOX#3b`iGI_-BLtvx99mk~mqzQs;=Nx3CFsYA{+~_7+xwPPMu21-RpEgb6?AOJ zBDsORZ}%#RtV(+B_pi=@O0a{>ShE1BY<=#LiF(=Hh>X9b8*}IBnug5-LO4bMis%ge z{ha$dyS@MWt*(tg58M~fS^n-siFey<#b^ z9-noYLG{Do_(4mMOb2SxQo+s%wR+%s7#DZ9AvJi61!uin=T3HOa%Egs0lpe)U-G5O zCA+WVTnQmQbG5syR15F98G+v~;cZF2X|v42B}_NkqTDANC=G87V#NjyNlQ+C)4col zkH83o`1~C1Sgqp@BMU>c!dV0jKu8?8D!-+{y`#*e7CoZ?N38(7&!l;7r@)yhmRQOp z#l*_iU$JdjX-%k>2}W2UP^a!^o;rGD#e$l#^XsE+HsK1fGXp7{iGY*DT?nNZbpg-7 zkmAfCOgdY>GA+__5KEa=DU5E!1&3b&T3O)%yjfog>H#)$dt7b7YMv%NmVp*QHt)2c zo`0sPQ8DWb?5@FypU|$IG`i>i0Mehoan4a=5qy{|Y2~1pSS*e1lW>0y0$3Ix?SdDB z^#Ovs5l^WJbnF|@#nt&pwn8GoV>E?ZQlz&AK{992k*2uLmB!x=Iw=mM-%y}MzEv3h zE>A*M93V7j8=P=7a7nAW@ohd8>sFSv zO{zF>Q?HVgDCxRh3O5c_&#an16byp-SWbTvjB+lr;F;iwOI&{KJ}C zN)AlvURdTH#HJj-fc8Vr!|?%aq`qcyU+pY>E?C!}NUFNY%E>C*a~mQ_vHGzRgd}qNifdARuCYJZ z`ShcV#i4icR(otH_&*(4YKMYW#6a5sb9|Fp?W0Ch+8A>_b1P=~k5;}1*p1?znD-0~m?;Xmm<$)Bwnqu_EK+)rYFSqGwc>{(Bl~6Sj_I z*)blNBr_ET#!`+b(g*dxo7(3f)lEw*MHGU4`es`>8-SzJ*$OeB@LLkyZ{<#0xasQ6 zVFh=x4P9THZnBlMPUPE{9Hf)H7^yV4b*3G;eZjpNC~TO_QE}ubwWr%PF6ft%a`SW#rC+1%CONnI$ulaS zk7_WT({6y^KL1eW*Qug#$Z2fkE@`2sr z)mx@1MZ){^MZoeV>-bIh0B32W$Z>Hcz2u@pkK+Ksd9)oUBxD?zn`1qQIQdc6ID@~4 zSrEtG_4sbphYkFm7i0Ar<*6pC-k>vhA5kmlBRiv~GC0@ZLUT>Xgb`u4@yXW{7F0&9^!`C#z+S}A0fAG zjM3*m{1ouwB@f+cvRQ4ua}cGV8^I~7$q7mgdlTj8n}J>ZHGD6kS`9aa&u(sd(J9`E zU{b)oT>kye(b~kk>E|!S{n|d2JClZTLz~VLXR_I)s2zfgF1cC;FjkX32A93C{k9m2 z4G*J|_>rk?G+AyUm0|5cr;OlDZFG&-h5KBk3Ey$ZWa<&@%E!=EY9Yk{|vzE7j0G&i^6;&%99! zG*zMv9WNLqv;}?}{};*IJ0(bNEwivupcQueVvGJeE_k#ljIs$ve2}wec#<(Y{f;+T z78W_$$*B5FRBf5Jp7BXTDpZ`p{{xGx=ET0wNJWk0a-q_mli)9Ql24e{4Iw3}i?Gl@ ze(rrGTwgS@mr_{_a^zuKuF;|=N9uMFEQ2i3T>I^19EP_vR!1jn5LN>8suKSzm?0rA zT)%eisV8^*H_iZsEoo0D?O6Je^rVAZ0$EHQXR}mJPS=lm*5fPo5rp02^_%gO^7qbL z&1R$Y7JQ?Ix!Ad2{sJfc5m|on);?JZuMZJ@sE7W#pni`-5UJ*l_>17j3Aoww9Vw@o zP%@|GKlY!l&sl|!fX>Mj&{b*@DCKzir)+pGTL=L34~0^FT_TD8x6HE}NBn zwBcD|tS|m&1B;fjQ6uNIzm}x7$a}6i{Hp@-03s7di6$F_zUcVIvbmC~8m?jjg6G>x zGYa1f1KGiAB1Cl+U`l~Xbqh5~_O57jwU2%zrHz}I$t*`gXOu=~GBV*E+*zB$h9(*K zer)r5GrKw4+xMlA!&ZhE-jL?aLo3{@Vy&jA;xd(|0Fm5QHa*d5cq z`ijkV#{TM*sYtXVjdkspzyalx{&xH=Mo&w=1FFRLDt95NwTe{+!+Y%}1MOD%%_yH-eU3?3)r*Fi| z_a7s#^#_1Q%(LSG{?2caF^O#-gmL^6Di{85zQNsX-^$lVpJOwYa9Xcjg5E(z$FHDU zkt;E*uFZ}OnKzu;s8*W)qNp{{NBLTL{b}to+x`H^)S;8tq>V7+aV{21EvdhKG-mrg zHs^tbiPlxW!-XxSD1{6fS?A`0B2r6$PO2H%$E<`BQIez7MzraO1Wr_pJhGaGj;V04 zZ4k1s7d?p8_6k2}!O#yL?*fpMADnzXoEyLSR>7}C8oV}1$xAdR9m4T#{BNe1$oBS- z{jleu#pr#1zNwA2I)j!{W@2m)k|bZFZK9eY*=h~;myJ4en}FwPCB}{S7rXPn@3Il z2_XSNy!61RYB=jS<6g-uSJBippIw>8q8y~q&ff>&F5NiJwiGM0G{c3VHfW65VXuqe zco%xZy!B_l?S=-JEU^4w%$!l%M}QZ|IwGw+Ug$gTv`1Wqi#h}y)<1V%`Cjv|@q41I zj>woeXX*%hw}1L1A2+=CJ{3%v9JzAWKaMlsty_~P=Lm*x{l%bFPZiF*t}}D-#>pnxC&+jU ztfQ1CoLzXZPN3DA-AvNf9Kx=B`Q{zq*ge*!UA^oGqz;aKX4B{8i5py7l32wcVQ#7Ocsb<0% z2D}62EDQ`wohGW}fmN8#576%d&{0%KT0-0fEzFs+h|GX>@j#0HU7ZJb*7;J@kZc`J z2Wj<$5bCxPWzBF0Ey*{2`YwSM;51oKKf%GGno(}j9S>;1Fn%CIrOG*ZP~ zI!1WjOYpM0786`NScjpnnB*2Y8m*0FpOM$mXBh26N6K$9JY9gyuY9Vsr8|qxj8ab? z)GjYkpy&SlU|A>p^(kzK8Vo^j^Pch-Fs*S|L~LGG&60)p|MHUjM7uu^U+NQzg1Q*8 zHxp&-trf}}4Fm$A@frBUwlzcznwIrCyEgWV^yP(CHZwCl_ct#(Gcz|) zZ(d+6sX8(i3HJ9?nHZj6G^NMr984nph|)3llV4`-Ue_zU+QZ+XM756KxozN-=8x8R z&h?XLU8ReD=#qZ)J}P=Y;NmaMZh^TM38JP;N(swyS!7}buT?rvx;WD9pc$^l%Z;k! zY>yL3cYD0v0uvN>+Exwf`KIa2g_M{iL^T?gWqyA0M<>+j-N(}y0J=Te;uUDV$G&hj z(nR}Ee{^U-+8>$E(-RAOcyf^!>2R6JPQkC!@SEP{GuQNPY>4egA5NRDaY}f7mA-0o zY!HY7RreU?C@5=`QMvA<3lw7r5AIxPcb+Z=zR-WEd3{(&&_bH|TI99oYexs-&&cfP zHwuZSIH3aM%LE3NJlwJBNKb@f70hCiBO>Fd)S8P*MHKhxPSn)tRNn0sRa{Dm;Y~L6 zk=#s!R9e?$6nu09iRG{fFmB8`H+!QD;o0!RX>>5a{G{Lt_XzH;!3vb$r0bsc;!_mQ zLnV{#(`Nq?mOQKUdYZdEosLzR-TI|Y%PkW4x~mMNvwiAu(3NdjZjrXR*&_KTjOS7l zZzd}er9uvIghPy@SSCCmetW6};`hVbUY&YHmmDT5iE}>FhfPZcytSsOdoJ}>)rV`jl`Oc|b(C!&xZ8f`RW{M`T{B?oTCg+#^ zqX@-~0uY#FM{S{BFtC~u+z4q|xFRCYtL<(o8mSu-LG94h3Z{;5x*9B&&Xr>`cq zL2CF?ptp~Vx8~aV=g&+kD*QH7^`C#{+zW)G?MUq4Xcd6yWSZOp(Cx_A=E1I1=lN0H z?}VcDFD$+g!Ic9K^|%K>6E^;$9>V;%nrcJe5uT?*#f0kSeHt6;KPd_^7&YGwzlZG0 z+|s)5J~F=$W`g2MrM_<3d`>?gvj!^VurANK`TjP7gtmn;J`|MW4f)9X7Mrq{$jgoBo zdJ8!|PGd-q_58=S!D|<%RI1UKr-Bf(JR8DYzliHpZeRKsS%FRHBZkK21T%-^_nv}M zYpT-Sf5-N(o7!`^_a7ZpgJq8Mh*>P`rIo{ibXx~o!TB$V`zfZfuk#s}5Hol!DudDi z-&A2ker9IRgW^vqH044ckp1{&ZtI(tLICBy4=aF42G9Cdlc!Moo9+o|9)Pcs< zI+?CXC0bzcOFp5=o^P=8`bpV?&pTiB-g<}KW;zS*cNt0=%^BXR-_rteL^AxKmd%Mi z()FxN6uJK`Vo@Z$FTtSmd=odyU-QW97vt@s#@~!M{E5NlBN6yo6!g|v&|ej@X_Fv4 zojGuj%zVd(I&GaCR&SxsYn4|@#I$Q6-`3LoB-9sLS>N`Lq$Iq$xT4K6aW~HBTV}YS zcs2Ekk;B$D;Adxar;YDY%WbDq_Tafw{4xeAWH+R5UnuchMGEle=jSBsYkknGy(HZj z?d%i@0ZXJ>nBmATEt*>m!C7T@7^T;GmM|0v&c?Pwj-oZ(sl|#N(bjC{1$kgwnQgdh zOcTgf;I&<&lP0-2+PtdZ0fd9-`)77w+ojd~tFlXm+;U(WLmC=mq|suN!DmYBTPW@g z{jQy57X7=c&lH0%Kz^y&I2~)vMp{wMu*EjO-p2fdOZVkML3R9U<1YQ?aC&?C3d*xp zZt%qxkw|f5y@K3A_wTN>#x_|IDY65=aRWl#4l$SQ6)4*2b8V2nb-CgzC({5Y?^E5O zd(@1U+`RFee$ZAO$}+6nES#21Z;Cpu)K>C&WPAkF2Z^d~B=5jjl{!L+J1=nb0IeIgf<~iI^l$y z-*n$&X)8H&YJG9~fuy5_wT^!4z1x2~b{Um#6WP#%esbpX7=Hcs@darJ{la&u##qNe zOAyug_M!C&r#ChId;{4~%HsHeG|hv?^`9FG{M9s8W9#T8DAc~2w)njp>B$p>KjaMp z^|x$;Kn$1JpT3w+ko?On+f4T8RfwDL$NNcYF>WtbYeiVebQoCGPP0P7UpCK#w1fdM z?&*?fY3n}&p|DFt>4%hE8ZH5R9jgopHYySN1Q)FT;rhz4z{HiuZ91d0jw7|mEclu(e7 zR_G}dORFcdn@L`QO+D@c^I@R63HG@^92fS&`s(^fEC zI`Muv3$5<%MJwpz*5IrWu2Hw~(-gGpvPoZ+n8KQ|{L|}7VvAa#UU7!)_SP(%_<&3WA!w)X0M!*j;{?x#{VOW=67t$bl_(S|Dt!QVKcc7lhuq`znkJkw<1Wcu{Z!bdr!%#t z5US;1tzQONmFmV(sq}JuBYV zG|c5x+7++*r>`-2Fq8iEOw+$ zDLGh;YoOHRV}vT;ztEx|KHoj_@VCmDS~z_Dq^{SGc{SZbPU1vq@ReQK$;;CbuJrZT zYyi<~^CgpJ5?r871O)c`#N0UFZ%J?@HnfL?gdfdAdyss#;{1~(Ai7N3UXFK8!i)Xc z^s@VSl8wHO3;`tVMeJ)C!6U#ViT8ARU^w(tA=1ogwTQ zPkLHIk20#zyncXr6Hy9Mm%PtZq7WWCgdj`8=<9n%OE^#R)H^po>^S>~ zTgy;$_9;gaMfdpT>QnZ+CtC6}vH1cPuRw}#<)-)zI!XPOU(NS)>>8W|k?_*#$!QT%_$eE^?cJtv;F9W-EDn=jd!$+Zi z0W>tLQ>2-7a$LJQa+(NX51Jz>pOla1aZA47%n^=|K`OnAc_b99i9)&65-@BExZ@hm z|E3~LR7{rbvu-JQNi9xMY1OrZ z?{Ru0B<8Cgt83fqHA+;(Rg}U}Tj(#d0DR9zB8onu^WMPsp0vTQpI_IlmcX$q*70wS zJ}N*1S3zztyYsMjnz+4vrUNm~*d?>ix2fmu&Pp2sSKT))E_u3uzP|+zF2!Wul_0? zU45{u2t*0!EA3||T+B%K3)?GSy_+bqjq1yVJy2=!3MOJ}0{GVSY_dX1EZX@000u$% zzNp&#|C`(r;{E}%zzx1pwEzFXF0*O@uhQq5|L<^!MW52iZB5pR2JtiLnw$cY4xfF% zOmKs5bR7S`U>RLf6E_e`Whs2Ti@I8`5J$<3{J)QfBD8mSGeiB1;U+U3-}-<3e4N+S zqHk42vj4xV_QT=)e@vu*R_xc;;wkY*dmrA`_nsWR0P>F>-<=#$AVq7m1v$gC#6W>5 zyVC67Bdy2z6A7t97~KGSl!ChdZ;GZve80&w7Jr_<%NDD$mwk+YI9{gO80PG}xLDWR zJt)sVWnIX}tb@EsUig7mTtkdl$8}@L=U<*2KmYw-o{Z3y5xy^9p1wMM^W`i0{B}{? zw3<PFLI&=T~e@OvYhIMd_0pB+t#C`nxZF_hk?CfNEMb?hG0=@YCWkzn9yhG~Y>5JEJE(p?-voBw#zKYe^C25c)CC=e$ zZVXEU#LM|RQeJI8+w;vVjm3r+{^A+c< zX2?=CNGAWVMq>=t3B?BayZ0HBHFZ;Y6~n^94vfR9E-q;q1X)PZr{yhHp>G_`Ell8# zPoV>EH-a(d|RxtSd4#x&TUazYU7R?)fxl3Rn@-0O7d4pp}zl z`(j;|r>4e+f9O!aL~c0n<+Q(VS}pP~TZ8MocW$XDSxu?jJ1L@N z)sDW3pk#h|{WdT2mSU@?)y-I0EpuCq3l3N)T}ls>%%7~TOEfhWcIgGqx7XRAuozl_ zD?wOxqZ4;aF8wCv{l(8-0DU`#5gKLbgu92P^MhE;R$Wl4B8ON7F6Gyma)}6D(C;$g z-%Ri@z$t#mi{`@hdJE53=@B}}x9A5!z3Zr|3*vA@$!1iB=WYQ?PzW)G&wKlKUz5Wm z@0YXy-_A#{nUm`l$(|6Ojeu`2ap=k|McWE=;s}x4;vu|=C`em85;Q!kvWnYQS zfkkR=P6dA8D)e`Y<*d4D(id-Tk6^qBH;Yiye_m8#{3tsm$#_w3&AeDa0vqiBSrN^=|MjZW;lwdo8I+6T!YBE$eB0tv4RGy8n))d|BmdpkQjAQ7>7UJDQX?D7z~(3D{_vH*Xeppt630B15i+Yb9GWP*THb6n2+xMzKUjLcT=HzNw_+@9&C7)dqiD)U zG6F`OD5S_@2p#Eym%03=hw!x|;ltKco<-IdWJx4T=j=4k+jjNn?%hQ*TaFjSw62=! zyd6)g1@$|r$@96Zj4;lc)$g&c%g^i=`Eq;R+$HKPE*7o*X|h?rzbYfPA-_NM{`(Ub z{{BkK-+z%UiIn*6_c#7egC0JjB}dJM`8LRM@e7@cFYNp2GxI*BkB>T9>ehZQe_rS9 zx?bMKCpZ&F!@6#)Qu7%pYjtBCJc?qhHlv8)sgIy8qdk zuh;Lhj?|m14RK-MY27M3{D67*oL;mm+zY>GxH z=hx2D-}m?Jp>s<+c}wjPDhV{YeJ1v2jU~U%vQv*Y-!G-u?UXWRAO!dV**RmW@y>gu z(uVZT4;{Y`$>K|Dfy|{*Uq|s6C$RL zX!AUypzpR4_Qszh6PR}x;)U&7K@;7HOl+#((^5a49?=qM{`l_n=!1Fpn@9bdnk=^> zX(#8)bxX?lX+BwBNXA&cxwVy+<_(hbl2JE{$!QOA+DICXCZ>!4FHBv zy`?#14_yH9@^GWd6J(*xFVYvpaJ^o^eH~k9yoOt0G8C6(Yf{nm(TigGwn|SZ&sdfe z>&b`lrk|4$PoI+ZA~!M8^hQRDta1!a()h=b#l4k0gXHT^b(ALBhYmD~mPUkmEc=_eS7Z|@w#z-uauHLydJA7C%0%X((10xp4 zFVAjCXHX`-I0)GO;@}6bRD3hz_&J%%-Z$Zb;caK~b-SLhztY!;s<*`5`xR6 zvyA@iTk;RKFYq>=ynbrBp%}carnHEm;WbbZL@0HS25l9-pLGxv_k};2@k&U(lms&V zZx&`l5R}&V>gmgLRgv3pe|P^@^EKo*2`&uI8ws)r@I#2W#gx{mC~NRVMT;~6>K&|R zmApo|C%g_Rr@!+gmh^rKYQJg%;;#^>2DYQ|N4akoC7HuwiUkLT?o3eM_) zi+qWNBAS6KAPJ15tFq)VeDq~qkO8J-(bF7sNxx9*F$$p;V~Ut(RWAHdET`pqCUf!T z?2FUaZ;rosi8Rf(zkL1X#qk%XDdhpmSu;+bT+><|XwFj{!sP6LtoDE}Odj~Epv1>S zRti@w)(@|-sA%KtfDt=b5;yT$i!zkN_}oyyW^J2kn$U*r1!WbHx?{eq*7dX#v&@P6 zCG}XRXD`!iHmi{_0iP|e9fwoGIVbaXy97YYu*$G3yv3S?j!(;#sN@pH&L-=FKvEP{xC|dGsa2iWb(p7sY1U= zx3aRS(zna%sxvv6WL4Yj;*Lx*NQG<{R?aD>4x_rtrk!+|EEq=9ZMMroAd@CC3SJWU zTg*JeslVr5=rNWhd>YuDTg}-Garvuil0Lt#Vu7~b?1u3D>-aif%~nG$&XA9jBDL3q zBHCcSXm*x4=PEdJ3;R9GXadQt54|BME-0<6Gv_qXC2Tu=dr?>G6`57^KwKJ#s>U@h zXdJJr>03&`V;CnTF9Y7~E?^J(S3?d~RKj>P7i;>0@~tp7Ims1_JB*iAjadz)HX>ft zZ>Y_+eu}j>R__(5_bJ8?`uA{+^&Lg%O_g32l>PA4CFy^nAg!TiWJQ{m*xBcD755nw zEeYdHQ1sn91E9zEwZs z$%r7MRh6oRC09cDbomFAkkx0rLu#9Z7IT!P>t(@nr|AInQMBS8$UD@kSx@KP6++6M z;+9}Ezqs=^9*d3+$|AajDe8>_Pvj#q zre(f`Q2$Qs>sZHlWUSP)#e$pw=C&=8rw-MlxZv@LLa;gK;dxoT!h z`W^&&qD;xzyyxV6ZTa0qU;8DU&wfdl6r@9^^R3f&aQ&f7`^1V7s*g!NepBfv?({I} zVnMkV8hB3?c&z`EMYE2Z@J&dE~+!NK``-|rvrFk>W$o2Z{Bk0?{$8E6@hu!zi z)Ao8L3m~`m;2EZHoyvzqNS}RV2i5myyq8{LwE6}HJ)XiM+&mX)}zJ+Ld&z z%~sJE5rB3>ms@A`&dxcJtMfca4#aT_atk=!*CNvHa`Oie!{%3oBH0CHy?T6o%khAn ztk9TbdT~L?62yk*M6>sZ$6xtY4VWU{cWF=3Ivw_=6zP%_OffTAD9(4#xY9Q#x^A^x zvkD0y-DAl>B3!U86aecunF)!9-X?>}WjzA$@9G$tm!UqxstmuXVYpDIbH@38% z{pI;9a%S=l&Rq&-O+)i4xtH5x&x>bpIeOT0Bt|mSn)4grcEywedm_ui;ahBWT)dMlC0XSB+M_b-{xiB z(gN|*>SnC0{=cmqgk&w0CVqG#JSNE{apuP&hKsLnNhODEQ-Utj>}RcSCHs-jtaONS zUXeJ6EZm%O>{0r(uB+Oa@LQquv*0m(xjZRph3%HC#%+bXpr>0HU;|mx&@y}vUyw8v zFKr@c+f>s63;VKY6@p|R;k_JM;|<@I{cg`ZPm2Z%|1v*Eau%|=+_nQF6mESyvy!imeVCT||QC8I_ z#nQ%09scmmE-zqGI+wCE6m1g}tSaNRX|-4&(@yMit9k$biB5aAnH3kme~=ovCI4Y+ zz4a0G&ef+hE1QeXLMG8k=B2CDI!iOwEylvkE!gs#A_03a;XpTyzw7Vang}5%A<6%1 zh;XVd-FpyXno+21BMJhy;{3Fo?%vp%AO7G<>sH@>T-^!wG)vFW+@#NVz?(GC&&Hsq z(*5m6{9Z${i8fwHH8aYq%~(dqaTb-Hg(v z(^0_*!4yN%ZKZu$uJ> zI=OM6u@u;ypIiEK->!g}=&wvnRxOK_oLw%a>oW6MNS9^MIsH}V7X`6CtAzpye)>H} zrtmubX|jO5WnRozhaH3Iu+YH@oUqbh-_F9-Jm;^3yXQnQbd-12DC7N{gskKQM?18N zyYni|HKAZx0?}5lyM@@sCDs;8LCyjnA+D>gAZANim|_o};=Q80rc8XxiDXLgn!$sK zNRSOJzwX4orbKix^@ifc%CpTB&hr@!`J${QgyA)RW^;BBzvCCjM7QJgoK}@|^-M@r zV%lfmXpp)^7)+Xi2H9B;y*0Xz0a2F@8C+};lN-%*T6OC!%$XKMw8at4tQw8Sclm>X z#xxhxx{yTOQ}_GhyZ#puH12N1<1wvw4|d7u*j3ltqZe<&%_7wFA4zdJ_9Es(nxSEv zWtOX&^<>#I>HZU6*S25YM6dyp+@4f>KZm4JjsO1{TJ8Q&hy~x{>9;9BX!80J$^K6+CjjTI!B zMU^k|IASfUt0m~=yD^<*Mzg3$s`%Bjll0#1gI)GiCh*0{8BH_sCm$cDb9P1NZM%AO z_wLoz)wrNk;kc?V?utUkx=nM}BD8H0`sfH+KE28(X+uq&%YWyaVwJ=3#IecQdlOOy4p#%@He?=8L5yvN}~)ZA13u|l}hrN^BDAk z;uwO?)aV1}TcP(Oh4h{Z>Gb{b-hn>ayq+2Dg{ZLB7167j{Ap$e%`$$7&cRImY@_oH zNb%1$inkPr4`muvFJFUYK0wWWD0_TU-M$YS`2B36C}w%essZ_x_dySQ!QNhH{WL_R z;tYh1oix`=ol)P#C0=7w_?dA#2Um9U~3D5eOtC0QdR}h>E9SO2!&wR*DL3ohCO0|$mp>~rf-(fpUZDTG2C|c zNX30Y0z=w=>vk_ZCnHh5rhjNe*LQ9?@6-!c#-t+<=~2}BKS z5Op>ax$Q05++L9g!tX!*A$iz_ImB9DJN>L_np@92|6*tTq^fgDz_BB63P0esbIXFG zmb$?DNmCYG|I~exoCVQ{{NdKoq`ghkvf8f@!VR@DMQ_q z8iXqtN0F>cldmP6fcDYRaR`1`DiN?Y)V$j@s43rl?V113(f;t~c$w4EcmA?2s$ilw zzb1b^%cez1FOA;krQ7%b{_qWkj(97@_3N<8xuPseTmhO7hd9OuU}i1=;BnCHSk4aN z8(_KjAka6(UAK)&7Qerv_wAGgtdyAz{!7<7?5FS*f)xMlFbNrUOc^k^+_&JMZ;%$0 zfLgZiM+;p=O3kZ3RD4-&sh59CoVB&&0!8grlb_C~ZN&P017nG#F`{ERdq2v5@!nMD z&u=fXSj=VEwD?tX#AjE+I0cnc@(tF*%>P)tWh94@Z!nERpyWC?-lE~=tkY&PNye1Z z%_4<{66sb}HdXp|SzUFa(oDS9HoLf!F4m2#Ku)V=o6$lwr3~T6(gI5!O0}#5ibIx% z0Bx6rKqk&AdD)r#B+P!gHJotnx&IU)EC>-A*qxs>rFdH^8zpp0W|X(B{`(+aq(x;2 zVzvB$OhrePf>$J4Dl=Oa4I+%NUqzmhmzd2}ozwgmSTjI+l(-taLX4fiYth9l!Xq8t z_}R1pUt{Xuk90Q7za0aFYLjUAK`by78}@qnS(B6Zn=V7F@#!M3FY@K|J;+9jSYVa) za@}N;vcp4P%iw%X+>gur)*0Ds$|{a^=mZM&ZBEu=vB+lyIeFzR6u{5cC{Dl_l&87n zK&ILpR$x|e=>2nt`)OU@I@_G1?f)yV{%%$;Z|{6vN$dYtVE&?_xzBHj_!4<3S~{d` zR8w3m$+sb!(7JK_+zsPwDLFGj;?{g$`0xDOq5d?VtZ&OXGql|ne_dV9Z-RH;&n$X= z(QR;6gXLU{n-S*Ezm{1X?&askDq1Jz_sZ*Kep}9b%ZymO zzq^_L^8X81M*h6zC=9ykg{Jmsg>2c9@X{LDb&5Ejp>^W_ALei{)wTHac%tKj+i%;?~%{c=P`X zoAf^V`=3K}%iHHC7+tjgxkHyV%59}lRLaja2S2YU6S8wllbW0B2h zQMAPpS_mC)HjJcQY8Mz-XP#Hk3Sr^S|RXv|l#++I(J-_kUe3k#AbwMk(6u?(2a{I136#Z}%zo{7+ z5?Nv^^T932{xmNO8bf2blF(kZ!qKF1Fw6FF2z`iocpLpTQM*vKLFmcNi2%UeJ}Cn1nb5pVo~4oR^; zP#u~RfH=zztRQs3(K6ThIk3k`V^&Rhnh+k!q^RxQwP z{Z;Bd3+C7I%53mR8g0nh2UT z*URagQb*Og0R~J&`XBMjHF&+MTP!O=D`g!}%Qfo}BHxlSHPz&@AQ(i(tf3URpfW(y z^a>;hp`Fvb=`hqMxyP)Kjaz>huB>r4ysD{AOJb+JVO}8bd0JOlj%l?dRr1P}Qv-;~0Zo{Zzs)pFTrd6k} z(NQ=<#5xt}4Hg;C$vLN0A&d!~gx$}xOED@l!~9KJ39G;}Vli2*N*W616a#{>>$F%m zE#wORQ->=tqKxJP^4@~{%%CKOfKpM4o-_!nQ2g!nGA55MMg^fI1}(q6BeWqeNiLZ^meu>f^+08pM8FL^q$-M8X2SU&6*mRJdS;O=DH~g-n9Gs~69IpFh500( zW>COg1l$Ev2(_vyO= z(i(OnLOUl7dd~hYkz?;bT}5iJ4C9Q;6}UP9cs~Q5z&^h8EC{xgw%GD*V=$wM|UH;)#E*RTkkkH!W+$ zeAz$+$`I*00nl;Tj0go>YE+z^Z5D)%(qiHg{a@!@G4iPSh4ubU2*en!Y+ipMdSU!} zzHVpL)e@=)YHOCaq!w5m&tczb-nB&tUqNEZFY1iKfEI?Q9C8~Yk&eMKE1T+@b;uvf zlGM?QV*0j9Psm1;aM{YmzNAFRn#Rgva5261jm zh6noNQ}Us18Ooh4i?+zh;s-g>5VVX-rl27|aB7|9_X~T#4V>QSDAjKuhN&d5tc|`gJnd@L#ZK<>mW zC(j$Hq82VF5nYC?Mink%KbLY#7mUmpCpgYG(}aVgY9{#twoiS<`(YHZ_DRT+UBF7; zW>7y{g8Z6(JmElot7q@1-6<^Z_r8DUmI4lFhQuu!eI>c(3N)bLutf7wA0*=tFwdoq zXB*yZ$}fcQZkuetAU32I;z}o)Yj}_BLI^b$0{Nhf$)8*_#Mq>R7U#WoKrWKZa+kEyz z8i$KK;JQq*>Dw*kvM<>c`hRcC;S^XAuDxrRO3J65clE$c)}e!x-%I{(#r~M|up+|= z2b-eiy3RPL9Zq5RVcek0sXmIt-Rvp!D0B<|gJ1vX2#}1s8M+}~!wY$K3qD%>{+QFR z>hhNS0z3cJtLMRb_^tWk8^oBn{5>$1aE=uEyX$mo{NnVDb-(YZZ)=BQsQ<$qk|;(a z$|n?!weK-J7Y3_>ohl&GOY6EOHX@G;E&>Kd!_D92({(>6{#hI!H0VzNw^Q<1u0^13 zH$HAFiUE>9+Ja{CYA&lE>W@-H(sM~~9vXkXK}(4tE;yHZn;t1Rl00GvOB93nk4<(y z;5*(zXWTdyFK;mwym)at%73228q^rR_&1*1U(xc$_S+>b(U?>u`#tP8X47fD>aSRK z727R@i$A~2%5@%LdJlzLDx?^s0S1Ws-hI_)G(~^-8wU$e{2Iso1zd*(n5}2^Zl2Iv ztWA--mDlIlv>z*eQ(olPMD%uicxKSIT40u!1+r7Ow%pcO)63a=8ZG{OgPO3^wMiU1 zpOTl+4h^ex=H}}zl@-RL0Z}@#<|x$lCB&PHj{Iv(`)wT6{EPIW9RbZmS@2b{W#WQG{R?N!RxNB(D1ax2bQKBJtEWw_hTg=sF@uqHS>G783# zL$~Xc4VEym?hnIAKPOc?|1d#}(Ka#+@{5*?)@`v0At`MKq&fyztd z>guIG#T_$1o;ucOXqEP7izFwMp{SZ-m@Z+*LZtuq&_z;~$PHk{yMqoea6`$;ruzRG zKYvMR-@wltqI4XAd6;oEOZPdi%Ob?#wJI_}6dx|~Z0Rk~+FqbDH!%mz8Yb@oR#OAZ z>UOL0k8TInz6d4@GbKbcL<^4X&f+_E4)ti4{5d7G>W(SE3j zcisd{RKinAhEGAn&1jqvcP!~QFP|`B%o@0{ObV8o_s4=H1rma< zWUS2~CU-G=y$>U-(rH3D{$6YsdFvTbw9M)YHt|I`;Kq$u=^fJ)nWlSr0*)E8?K7REhq)JE%S)q4{eacv!lExn46a*GVqXj znKddf=vtav%P4C#Xz#mk09_oYS}0*xjE!sb{`8Ba@(37nFaQefCjXuelwo zMAC0-wOWponSGfy)FFG=P&1G(T0_4TDegvCEW(7Ud1yI{=l>Q2Jt0oG_y&np1(ESB zA@$i7wzeXhJ1z4J3u1lSVm0K9->YhlkpeE|36Z6}^-@ytoPM9tpH~@&$PJdY#S&2t ztxM9cI~9@FXbo}$+Y)O`VAOb3)LKn(C}gFTSKtsm&>~>N+|6SQJ5hhgQN)lj^Ez*{ z3m14WB{MQvS2c8z#2>l{gT;PB&_OhdfwbWx51is~_QYV!SnS8he!ip{i=(t6kSG1uj2rj7xK1vqvG z;y(0k%*Q~!?}ofgUydL+gm;d0@{U&-0nmMuqNgp~>Felkj= zE(?5m4dXSFrFY|~W)WZVOhm)@rnSsv*lu;dG)BexM6|<2FP3M$GYXx{$!G=LZ{` z<`an&I5hU%)>Cl>HKOrh-kbG`26jvIqjqg@`ItsDuj->0#q@2Jo@7L(^6_2$Fy8cY z3b50sKrdh3(Db-j73sGr&brFV?1r{atMvsLFq$Z`W9gfU!lxVFIGtS)-=?n@MH^{( zW76`L>gdN|fNz<)Jfk?E$Vv)Q8ugcpC9T{c!0l)EZf^>vM3-ByblpC;`7}Sz)@2Jl z*^ujtao&!xoQc-k-`1Qec*41l^C0FaSlJ=8Zzm{({UmMSA&Vc){wngy(5WB_1gKMW5SJ+^2&A zkX25m27>}IB$hyw3%Brt7plHZo+&3pm<-|C79qWV0VJ2A&@}V|+Jt0}xWay%i_CiGY9<1gU0=6!3Ht+7XLy zOmfkGBZQXz6~PYg`RJk*CpBzW3$UwQHPr}vHmwTS`xzV7Uc|i%$G7R8sL6inO^3#7$>MfhHF>%Sr=+R%Bz&@#FGBS0xQ_1 z<1ujitj4nUqM+=CvFf2*e;tDY2v$grZqN)dE$|JJ|5PmxKDSwg_oMogHIW)5$Kt(N zZ3P|;TNO)Q%B;52x$zw>8CmdGXZ*StKw%Wz__i*K08<6YgwNP8dtkX>2F7|-fz@#T_LRXjj@KXv@H z%EfcKs_M7Ae6?PzSnJYfAM1R4EEbHNAHsZIT#!Q*!clX_Uo}{5pr*QJxg;ly_;W#k zGEwfXtV>DAY~^aEYR@EX`217``;JURVf?-o4-m6fYAdI})v%Ssw=D(BI;$5OMSbnt|EkB?|^Vw)mTsaS_xcZp9XD{-K z5aq8{XY}X0ujdaO%R+l2fo)r7Q{=mKIrW^Foym#F*AJtafrP506Q@uD9e$*iZcP?{ zL0@{=hdD(IlU!G4p=e2W+;(2#3jKtZOtV7PcvL!#)Kb#__2&C_dozW8FMf%gOr zYv_5x=91)lmg@3x0g8UTC65~>pWFX192uvxJe?ocStpnSmb+$rjNJ5d(z&54}NTy7AgHv#TO-!Cef`fN%P39$Z%Y{zCu z@0q_jZD2@9yh>S|4q(D!zRM(+Ndt2}*p+7ZLRgGtvo6|fLW1IaFM=~>d+dEQombSc zNxir)LWpqbxIwcZ48i|ONI$FwT2qoWim#2s;g2GOXlFhx#w3D;2xTy8b|xjEBiLQ% zSv{iBE!+8snqGJ09lBs%t$9wCA-3LtqZnUR>ylJ;hmHmyq2U1_%}%smgTbf#+OleW zV7E~5-;~UD9sk=&sMF(2q)efOslrM?B7b*F*}Q#J#QAD?Pg&g>b?ikwZ|vZCdGt(1 zCrd&#(u%XZ%&vjz(TU2!D>oA8k^vj zX6NFn!r5M)7Z*?*z-?92szKcr#6+~J)!{pKV~FtM^ea*clNH;1_nN$YNI5 zzo(EYKWA;zw2(*$0*_i*o!3%2B#4Jlv6%Rr7a4Wl2g!om+oGDuiUUh@m$|W}&}N6`GUoIbPA>$l42i};&JqX zW|7k!2p>2A{c!gD=4h0jbseg*sl+5njLqZEk!yto&+3a@({8XwB%xHZbbK7Zss*K7}q8*qhSLR(A`PWhzg~`>uG1J2_J39PuQ5VF` z`~cS`j;rmwfL?%KxgZP1`Gd?_5>303eG&Y+!7E2<85WMbOsm@3T;S!G^fqVQ3y!NP zL4H%87WZme>DhaFhAF7!ni`P&$ncuv&E|9?4s&j_USpRNP!H0(h#uQ za?tHL;7sJ6GL^+*z3_Z;beBpHukJbKo>of`JA^Q{9#4<@-bnh{X8_yz^zq&4(H-Z6 zROO6xL%y-l;+NY2}3s|YR0Z8gQk5(sk+^{H8*=}?M>2_%CiKqdW!WqX+J zj07X}+zDoXF};Sl9q*z!Iojj#C^er&2EEPgen|)f(Pz!#!4hL(?m3v9nHubXp^wuq zD3<{j(&EB{=|Xj9u?%T*oq@7w?WQn88o}RRP8ns+L@q1kaG8HIo}U$r19rR3)VcL) zOxsdCF3D%amF&-%vJb;X-Y=@{S%OZza@cbZM{)J^;YQpENaOYwA9b5p-*X2jef-M zNSBRn1p=S(0^)5I>gST~LE4>`MmVvgdGaM;LtM9VK0JsZYsr2W@M`|M?6h1fb(KXzcMWtIYdsG(LRu)qt7S^OMu31l2 zw7xo_52nISOhS5_*HID7(_D~*HSCE~=u44Uhj*x%xcip3Qsj{Wwgc3$XoF_XE1^sS z+aYu#q0$9x=2eNuO>bgsUc_568_j0vuC@;$6LXPH22?y(2W-h*t;(2yE z#k2VRXI2_-r8Rg8bPZ3})ti8hHcdUINI;``BzmURj2*01xxOGd3ZZ6Zy^|Wya#l<9 zNqK2=S`q_G$PXyt%9g~RwG2zvUTG~cTbCUMD~#(X3xBktC@5p;krvzmlw^9%GiJnR z{Gz(*O-`RA-|Rfl+7e0g^43#fg`8g-r%$d80oZt(FKlwZf;InWd`-{x7hi18W*@Ox z55X>INk-^g(2@qIi%{~1N{ikKIpAtVHri6*hBnz|{EU(`rF6yQ2y)`r(eLy1M0PzD+5l#u`vkCTcwU6ZW%S-IyyiKWsm(Mw+j&OmxJgbjzR1Wt)9TxK_D#se?S~cQ zTyHrfu$d7GW-o@4&TMwK7svl>&WvL6y1g#nM^4ND7VwMKn3Q5EK2K&~|FA~^-{+Pi zI6Yy zS?(4|cC5jbSJ`#L>2?hS8~8&IogeDhR(0M`_?&yAJAFrKuvQRRdrd+L_JVwbY5JnYmQ?mzWNGk12LuHSZcgNNb|!RT*HCO z?!yN=w;ULB-)_Sp`FFDAni`~d8^inR&B-@__{-ZNZUVj6n#;H)`jj&I(4F#)kmEtO&7UzhYyCk!z z**CYFgs+yg9#}VSXq2D5g=F&Q9I|&lJYIH5s7aXjNA1i*Nl1O3O%3Tay|-bGyMu^f z`?$^*w@e52*zN-dwAQSk4CFn=ar<0hEylFHBL8_^P(+}Tf`rknWo6WL<=%VPf#lH8 zLwM-t{bAmUZEsI08#DQN)%VA$JJMTW^mTHJ@1bGeFQe7tazDKVb~S1W{Bw~n^IDt$ zYwSDgQ@+9HkRST(mToD39+TQ`+U-_&g{Xu8HzM|ddgD#@77KCUEOcCmsEhl@8L~8^ z<;i!X(2*)5-F^#k!@NGz^jbZB%?da8?6$l&wB9FPOp7>MRD|YhK|Usy$q)7?xI@_i zqW+Kt;ft@Eh3LtHNvbT@j0G9DAT?nZT;ArZmY9;JxRWsg5K4(5A&+(G8rgsk6@~~> zHz5_`5rP~*>H`IV7Q8hD{)1o*9xH{KdHS&;F0p$&!d zo6=R1kY19-YmJJ!1f6=-in7mM4eGR$!La5@Y9`XsMq^=_h zpkT{Uqf0D;u_s@g(~=nVUWnVnE=CSdAZ@d^_$2ExmgiQyzHZulF+N+ipYEe)QW$H* zZxo1Dix{lv>#y0t!TVuX2HLH}><0IIa7iQG+THoq?#|vm|I=UJ`{9dpFr7co#QL_V z{=ZV18ObKSuGZ*RGcEn;xGLH?J`F)N>+|#C9VxVrey=AVjna?4c=8cu^rO$|XM@bI z62|Z@r!^>T%D#Vu3KSTSk%wucABYjio1knH>CLxAS+VXMr3-R1M2#Z&DfEy28q6&P zj-m+aH$zatURuiJO+VV*p)px6#m78@5bo{oh%&#G@O@oD|GL1*AH$6DavO8zijz~A z;asMq-zBlc1*PH^SPwvwFN8>`;D*w|G+9B0HYq*VK?E^5jYT8jFzp`H)WA2>ct?L1(g{LNixLzSJb+jP8^; z=nCVk*`Rs{ZZr60QIM*ynz^K-4nsn>^1)v`={KB$5 zOn2^#LL`bY#Y6;gybEG1ss=&cln6B9PwyKN-6yRqwqlg#?Q}f;x}*L^hH}v!ewOZ} zvr6+P)oN8W1;uq3PS~Fv8`_;0H4RX09^%2lQR=rCY5+Uy z*z(Jp3Ll0hyRisQkIu8Q$sgaH9*xq9CcnNann)hdpp#y4I!FEl1WFeZ{-rLWQ!bkq z*s%(zbJd5%E!nB&e24^zgxd0!xtE_s>3K=MYhGXG&nx~Mi|VKE+ML{{uV?r(^+*e` znP6Q?{0WV!6b>_bb5sGcD2lY-edo?7)R zG#h&4OOYaw5Q=DGJ{@1vv;D;v+p`&{X+I`sBg~I?F#I-|c~a*iN(_Qsze|*d2Z|w+ zOW+Ngql2=l8Z01Q8xNYi(WaUrH-S7S`?MWtaO6UAlNkMisFZ%mPCBoz+i^`v2#A*C z8&Q95aBg7Ss_LvmaGU-p(Uc%8GKyyC|ARRHTuabvtffyq`T6F>CM&P9>n0V7^woD4@AxyqZC2bC3y2%iboO;!r+8C1w<8)})3~(4$``q0R*~oL^646a`i+zD zR=swl>AN|-L)lLlHGawYY=MiKcC$W|Z#pk7*7Ys@x!8>6@FMY^;S^FW%_ z_ib58cP)XheX+I=L8H$i6M2L0>km|%-=AJ1;?1#Y3hgL#wT*5yj?=hNNkLD>^pl@O{uw*|sBXIHN*B(YXsU({(lY(_)jOQDko%b*q zFDvp$Z#f=>@>3!NJXTt1^A=OjVRo+|@*hLNe9SrPHe13OtT|bn(LWUTW}L!qXh|_A zmDCfq4_1^v`zZb#=mVak@!68R&SLhylg3O40>H^!R;^>jpBrJ4!Mv$fU!H$aEZ6TR zOlBPLaoLkq=8B9cx3`NP5f+gW-3G`s#fxVKlu6xMT=U8h@%Vuqj4 zWAy8iRs-5QKNsWS+4!0R;)yV$`8giKck}%1*B-+az5H{A`4`o)oquiA7kK*{!2On% z?+nh!o8s2#4GuVYA^JRql68h{rW|Uy<`wNllb4rRlcY2zBXNx^MF>+- zXArPkcVWl-8MCipi*K16vs^QNQC;1Vb3Qk#GLMTRO}0F~TO4s5cH232Ycnw*ADoSP zFBHEi_vdzuHGW=Av+_NK^{J-Tip8qT7c?4SZgR2To3TAb!7Do%7K7V$y$rK-x17uy ziE>Lm42bfzcyZz;dh)e-F#_ZpS}t1y9HDDt^VO7>!@_x;zO3q&6GKe> z?2`D0N1}O?FJ7nP7pHI1-SKW(ua^-~e?~$;Eomk3JkLl~i@!^G=bTA0ORuXnt!ax_ zPD|3%LKHhbN5^Z&}Od`{~I z`BhcF<15P`g4x_Q7OA$b6t{|Gu5KcPJ4ly%XELVD4bi++T6cCH-y zVZbe#-uxHBTDt0UdlFO7S;IOKxDZ!x`Fp^5N#aD(G4m#=AXZ#p;fR;9CQuW%(?>Dm z#p_@^xYu92d1<(t8Je`;`;Ho#%4a9GIz}P{DzWh1{ac|MaYguZ%uZDwy(p${tMnuz zeO*4js~^UjeonZgPirDvzKk@z(ZTuRhGGBsw5@LI=9q|(Q~vcDZ+6H1!7j-y`nV;* zKbSP|>cqltnT97-om1S%cK#G*{(IlQb4%g@nh7b$4#T|bYE|G9AntIUr0VY;&kc|n zlv(KL#0&X|{q>G#g8UU>GZs=VzG<4B0`;xe*JNcDmco9dRM=E#Ta3oq+u#2?gXTRvD6)2ghN z+oUOqMFGkZDSDY#e_2q=_Sve}HhBP0a3p#JQ;u=3WmfC^{$ymmq!1&u~MqvkfT zEPoyi^deFT-_7=H7~;G6Wc&r;d*@Mlym5ftVckmcZo*=3ykoI=L9=GD5Q2Y07<|nz zxR377E24c3^?j50olJj@#4m)-VZjxmGjeyPSv}!Mj9#7nNKSuFS?&YVRX;z8_Ol?T zPo`f}P`{pdZjjCirCevBjDCoyeIN&XAb)P|eV9H!XMFIit`=X15!hV}24NiQMgV`n z6ux<1*dI7)@7>=IYjR$%CqJD}+pjx6jl53mx6I9mzFvqkG)rHjhi_o6zDBPBs6 zzFjq6d&b%UZIaV^M7K)@e(IVkw&+qAyqOV%sbB=wK6to~E_>7TE!?0fq zdX%oAR3%0<;#Wd|KClui!9f;@-ld`S)&DoZGyg9b#Se=IvBHitA%61oAg=nj@XitX)`R;kk^!T`FAjfcl+5kV{tjfpR0-JWX*3k6=2py zHDdu+IqzhbuPDRbO~8K8#6{Pg`U?rSUrf67YQ;}xWijinS@7stK@ zkyIabISoL+Hc*rKA9d67Ujvp|qUaz9MlgwRS>dHQ_`sfo6yx-}^r^0Z{A^H#7vy-w zL002s1^7Ld1-!+O4uT)B8WI(#uB+ft=EG>Av&tj?E=4%iRRdr%G@*4E&M@G+>AJ4z zvk;4RPV3LJQCgg*#e$R=mZGt4H%j#_(rr`tsV0bm!Rd{xr(1tmiqB5p?N#1dUm2LC z|34|cVD*7=<1}lC952UT73yPH zb}<4_Tr6poX!di*^OoAT=lPYs@*|%A5zpU(=PkSZzlZ0sdjB5$j^%tfu=8TtV{8x; zd9r*-cJ7ADAK#rGNn1vJnqkF)aL2O7JX>BE zt|oK=mc9&u4Grt(jAiPgs*CpemTc2YkgW9mc;4rhd=twjeCcvYo-n_8)XDDiKXwqL z10+!C(endS7Oyvtw@EMZWnO1UE>GZH7o7}yX6PM+5f)fClGrpziW=%gRw8b=4bwzE zqtprl0*d9-vj)BvMX1j@XQt2Vx~h5H9WLg0f|4~?*^<>QYh9l@T@}1>K;JGd=C>Wr z&xQ<~E}?W@H{~sbK-xnLW<|rl!doDQc>VghNIx=xAnezYhB#Ng!5m?ld?jf#3D&(- zldy%J6Gi*J$|pFTJ`gU>xJ!DK}%>2M~gnYB_%~Yl7(yQbq*W%!5Z_MNBx^p2XEfnA-v^m{iNi` zOeW!jT-m{7>3fMn)Re&k>ZCA{;``ZK^ZXhfIA_LgNA(xogzU`}``N%)VustH%xybZ zf7nDD?LzWpLvg4#Kct0Ntyim(BCnsLNkt0ob`&~Ww)utlQ|~*u{CS*86v&F*i6#JP z<=xK!YSIt(%4GL8rz*b|83&Zn%VPR=y?R>I=F?l!?KL%~iBEI(JJ=V=Ou#**wXur} zc1tcXzG_M%ZAOU9XgDPWF{BC9Ymeu6jar!DlBuo^_oUe0PP)~$32IWG(|py+OJG5)~9IRLV|ukE{B_<@tvrROap z7*K7wW-+3n1Z>?>ixM>M#Us^7dWe!y9>YQ+i< zcn%Wm){;-~-sbsAlO({l%$iP);+sLcLr5ZD(ROvg^mKZgRZ>Z2E= z^UL&UR_51_@9JkmEvIj*^duwH%1F~2HT)O1oagb6LmS>w&p*`+0#T$PmmP0@B$yUlWk?Vo7bA7CeHmh{sLq2xh7Nc1t$#RBE=g z$>2f4Ak|7Swm7*6Acj}HK7=f0g-vObU1UW+uKc0P^hvcOlit3mo~_IBB}EQfnhk#4 z!qDGVSt}UwCsqVQf(i;S)(BjF(K;)IxcKhtsAjw;ikYDk?5XrOtdZMwy=?fEC=wv5 zH2K>4MTe{_55UWXN^bPwI~^>*q4sT(iJDXn@lB2>tt&Zg_7?G?*T}}iz85yhny&L^ zW4WI-ZW~B9^to;E`!_kowY08qBHrRH*$eY%-ZYLTh>XRhhrYfheV1~{R~pO{o2eR|t@yFFdsvwsOdnt8P@ zXYl)&-H1XVP)>AGA_k5wGOTRRIoWxu6z30p(q4Zp``shm*U3$GyC$ESspe*&l4;>L zH@H3TDZxLdxPG86_-a`~X$K3tUw04~gmZCei6QT&!^7SOXPQIq4vk*c)nx(NX==;- zts&(vT2tnc`qc&8u%iLrP@?jgrphKcg}_C{DSP!D#gc{ZhLBD07%V&e+>4=EQq-mS z+ezU!zv{nHk{(ZwC^MO3k>Z2-_?t)lo0_u7O2M1Fq`%Fdx11c)T+D&4kWo(1Bp``9 zm$2wq$&(K7DXEPdu^{1Kjl?Y{$&B^KZbSWC`?OeQQ!HGOeXFK#b5278JI?JPheJ8( zJXzBze$_w1z(rNbz}dS$U#(b5PJu4*k%jEQ=So-o11SR234XEBfZnt?;>FW#;$F3-WoMSIdhZ{=!UW zv_FqmWFq;N4smArw9LSpZ?0GQEr|ra>n6)udfnK-js~C(np>wM;$-~Fb9yOdnAb~M zLx=Q04YG2p>Y4QI@CZS8im!*u*P!gpZ1?5zq^z3T()3HxFg0l`6ELt7q4|9%b$}8t zMD*xf)*n8Is?lU6I$}k}y^%(xe7nRKp6dR(8sZxu>(^UbIwKWKYsIueE`gKbO=LlJ zjl``vy@vyHd&2&|Zk6cxYj{Vcy%}p<1L_RuuvFUQneUhkM%?lbI ztEs5Q9Y6!3b5)Qb#L@!^WrweCJIT=nmL7Yr#)e-@&f{2iiM=x;*> zCHHZCv0jkWe7SDFJb#60JT*;4ngu7979;F9<3>T~@>Ub*W<11+$a=v_xxPIt%M7Gf z?2z6^`Q9wUKT14(DC)Q5%NytFMoAsNW=n3I&D%}YxASskf;$Xiku52->RFNZO)}kv z(0LjltT+()P3By3PC>5eoEB+AIEo)7lFry4l#DGLLCp-AoEmaN3hM5xX!O?*Sk_!G zr}Mg6R_mthC+EMZsl3_e2`D3}k1bUKXUq29-fexJF9{yFcbQ)ibJoazu~{I^CvFQd zbjnP<5>0Z;dG=i%e)C8?67o%@1Nb{)Fsh!-_+TeUyjP5?lUe-+s-N8l{e%<- znL|%p>Y9HyGVhz<6uA}7vwX0^`O+GH428J7F|vdyN9Vqq5x!e6W|ZAQhNrz^C+Qlv z`7oQ5TtSJH$Psi7Mn3z0i_&^pG^^WZvQJ8+s*yk@h*wqpc2hFwgT28ovbV%pYohNJ zmImLW>u-vhH-|zYHNTxTDtPaazkZVwuQ59n$e@bTGS3=G{aS4Q&uXm zbMD9ZXN$ewGkOcm+%1{wL}EBlpw3sMRoS9hqvxC{R(y`~x8$_jPyaWC$Tvm%_f?cW z?ZepX1;LPS8~u4}3u_YY@0otv#1@oxKx7q0JOS`Qw7*`YCpKTg0h!E?8+8Oe+(2uj zN)bU$9bO^N?E*UP<7Z7cKZrrTejvxWd=~_%KO%(v8na`gH3#n-iPhc*&Hq=-$oo1v zdA3}yyg@adMY-iX+@6}eGVd|9*VoS)f5)^;olSG|*DWa}%^NH{$)c0>p<_ztX^~wl ztEMfcjr0b6)yQ|>I8_lxWUE!lYakW-<=!IgIh+mT|8yl7Xj6-}u1fMm;7f3-DzCeq zKOBB?L)PSrUh5k2>s)5qLi^)(6ccye@7Emkz$=`-|(z~k}V z$uD%B0Mo;T4w2+s;((m(eL7KyeOt`E6SeC z^0K_4>E|?E>C?J^H+)0WS2WX~*V&}HYTg!+wm0hgnDzAay*RZuX?+EKwk+BrD~lg+ z!W|0<#j$d0WTu zn>v6Qz}$Y0aB3Z~IRTPD+DKwo|M#Qkg!@td0S zXE)9H;`c8Wi+om)WAdzAH}hLg@tJukJ;z(*s$@&ekYM<0z%H*r78Cc<|JLn_#7W}e zt^i9$je(K;Di}f$`hi!_MChFBa9ggp{hW5kM3UZ=)fFK>A+#x&r);i{(Z{IHf6YD^>q2O7>_cNk!CnuLZUj5cKyk(H&uwKJ)TM;OP{8O?BW zD~2Bki$d2L=_i+mRmuJ#iH>pSZz(it);Y-h-6dwYnTc=2^L^RqcDQ~{sWk{~gP)nw zT9Vbv877lNfhJfzD^yvm?5z;eE0A&uWEQMAE;9OvUftaR!h1XTa*Etk`fXB?w0_ED5tY+q=XrY_ z0;I@(mTy<*=LGt)DlbXN6F>?FRx9Al_|h*l14Pq&HWKY&K2E#g9>0iYJQoFPUj$mD zrg|#QPwy~yl2!|$O|WJ=t?C(JMZ}`D&bM*xmA@+}<1Aqx>(+U3F%My_>H>O}<~h6O zUM1=!lKt*Ig5F9CejVL)qfR(^Kg|XCisUXD&*PE6SW_0?fJon{I6j38}i0^b0Tl%Il)~Ocab6n=yPgG3d^&Pi6{%a+kEASv3X4 zo!7UWw%bn!Wguh2gzBs`@*SsNk?eA-R~8emC56R##zrd!X^ed4ZKf<{FPA6GFETQT@Z>y#IM%_?J-SRfmR5E7Wi3HIUENl zDe?3!-Ct2)z3=k7FSxEyZWXTmRa+Z$nQo94k#xtFuW0j znFROx&l*qm5O|VNvR8gzQ!ciuZ^?UKaYhRcBeM%l33(jTxA5H*SRQ6%T+fbT<8K#~ z0IsKV@3+|KKisP>X`!r1$*H|gn_{slbIOBO7sMwEN}NtD&XPr?IWxH4W*%ZZ1Xr(G zddm*#S6kxD$iuTvsq4PCybk`iKnltCYyP;dX!T14eQwCdJ|x`0Qu2f$G(XEc!IDH- z5KRaf7Ab;jy85~UH<`UgUHFC^bdY<&nb={CM2XF_FL_bp+cbbOuSJF^jd@P_LS(cF zO+*|$l|<`))w+~r&VnNnC6CvWuZep-jgO~oaY^Y@`LsdLk|qxO!t4=YvHE+?iy_|3 zG+-ynp0|i2X?Z87))YFq*}fG$|KH<#yS2q3H8Gy$B>AvbZ?0Fj^;N*k=WDFh{vukk z6+6<>>xPSay@+=CFnvIpieqJTz#O&AL^?2sl`gFCw{ILOAqXtcED&p5^j8DFh7#^M z27T(XS8z+JewZ83Hvq;5=&$s>7u{p(f#w1@(i#*5j+X8b!KRC9243LlSkj7;o$iYP96!z5tSD(5WH=j|CjGWIe(kksugkvD__^TN zt=<%#ncu!nz!BkQH$N^+7<4FZ5doNYB?_=!5OET(r&i23p0A_s&4-5o-{d&|UpCd> z`~DAMvTtp%W3%0a)7|{Pd%pkQVU6sBd$HBobM|rECtr8sZwlgi9YN`S6PC^A4j19a z5}DS~{^ofhnn?WFF_Awqk@oq2u^5fMc{}>GB<#Jc(9gbv{lC(1|Lha?|BGz;^?iVE zoSt9HQ}|in)c+Sa9p5-@f7W=lmqYN`)MdeM$700ixh9dxj2TL^`xQ71ZZZAVJQJS_ zUYW=00fC$}ZJkY9lf*{Ix>z?Ya((%`7F6WaQ3yaO?PrZEV&v|Ued-{n(+(aV4{Kw@kE zZCd8|AqGKlHgcv>S?N`NUXm+|VB=T?$r{9OB1W55iTDLgBd)G?9i7RIv8>WjSf2Jv;Q@9iby*l1^2jd2S}sw1tqkJInY zX|;vNXWBNpSQCO|a_d`ZGv|dPi?PgPM-+Qw{#jg{y*0BhsK@+GWtja-4%=?ey8OD3 z%dQk)aeY~}&{e+(3uBM+$G{gO`&*KXTGj#TA3xjwu-e_l6*E(@raYRw~(0lXZ^eQNz%NT4(2-NTg%Y=?_xjzCW>?h3j~?8jK-u7hG>{ zJ3PRPeG<*Imgt)QZRW(Hvkqt8N*6^w>u}|iqNQp{2uwC{C}^?Bu5C*=)g3;89VC_- zRv@?3mHhb+Kji9Z;K=0uENWqom4Eg%@r}CgR$8n({~x5&!XDpWhkRYV=KJ6OuhMN_ zD=1Q5u|xBoO0=8>rFfGXL|W;+hi#@K#H0uNgVdnMGPhARKT?IZr}vGdVl&LSr&}sS zKUtfl%lyhkPMf%WgCZu@lHm0l*Nsoznybl>eckE%1_^C~wAU@NYPStm9o@fSvUlX# zhEo_;M5EtwlKk)&|4N2r0OkiLNIc@Oe7n?6Fq*E;{J42v#q)JIHmHm?N$gj@DK+UsD#v9swS^T0k1*fmcm8-MTpaF{wbHOGFg9(9hTA}08sBN=vShC;b z5B;3-SjT_)n%rg_8{gaNcqN|O^`YGNfxUe&Lk$M08$7WA7`&clQ@3B+F$|#>lmxEN zvuS?;?0x(un&!?eB2=7H2k|TZKJ4~~An!eIqnl0p;kk6(?B>s& zJNM;>q!)i~XX59;=Np=r+xU9}S*fq>>nXes_VfN<$pL-JfBA*K=yA)*#)xE5oo9(O zOA>+Dn=*FN?ZbvJnx*N6yRdy(rVR&ikYMV5vi@KO9g$)la>L4ZK+h-~Es@zk$PQ z>g$-!TafFPOu?W3zaX0LQulq-{>!?!g#Y42$2T+2hofj`@s?;FuUiu2wt&UGwhp#S zxw1?&tX|Ve*0?NB2qs&tN`e8uoWj1)Pbc5DCC2z!Fj+r0!o#av-hg?jE9(sUyr7k1 zasTjj+!*bUIQm%Kg zY9nYkq~T^GtzEsvf-q-z88-ayjOI`P0em-!_jr1wjPm&I^hjPMxGmNMd1xVJW?7r{ zSmA3JhTDt6)@>BnZM}w#0`mcC(@05&O{fvcTp=>INy?bvZYN@6UG`~qcE1X~8tsc&S&?C1Ngs|9>Je&#P<}+U$<75PS01 z;Ns}en>EA(i}{Um1*tKeJ$-?c)z@Jw^EUI8{sD%fHqFmAGu=i9kG?66`#=kT*WF?o zCMxVnN%#L3CIA0smi_vgum|erlKYjh&%PW#BSUkxJg>e6SBH8uWYVwig7_p7C_quD zgb8QM$mTNR#qS7ne0aj+=Z5izQsI4KN>ZCL$CPL=0Wrrou|Px;))W)^W8!mI%<~OFN5F06`1Q;2i_Sgp0`TPJvgWv5~I*Ld8Sl<==%?TM7I(VJUAf3HnOgLupQ z{=JWMXxl=-ZBXu`@87x8L5?_xsB{aFIg`mD_6vBArx{Q; z?=8&z80Gf{;e*7(n8hdHXE_7mEHSN7Eb)t~g+|D*L{21LQSek?SRvrE*Es|vwq{$L!?WNQ!O$}z=(O!ENZ(4-1@H!U{zvZo|5s&m zU|cMmG%jUF!p<&w`!*>Q3i*r0C9ivi9^5+1SNW2-wGxkLlFzftg653oiibNbv!?mF zLwQDk7KAHtz&ZSX?%(0E_R zZCe+Ub=yxX#P!y3(-8Rbnq=cLrzD+uJ)E{dHLgf>6hVx<18VcV6w+~7WX;oRL9%Vf z+1EPgEs2UN3hstb_(z!?tVUr}nfT8l!3wt|vn)v{S?J7Arp^g570^>!L+ zNNlq;!Kja36w|j=dXmlZvZREUd>C)~d0w~a)4Ir;d>Lu_{^Hsh@c)0s^+yu%b0rbC z9RJyQy3_@ozM#ImE#K<*?4Xj{PJX}#LOFfc=F5icevhE5nmD9x3;6XkKTR$i6gmq9 z@;W5hGj@Z8#e#JhO?}5Qtwa$6^aBS0QYgCQ@@H=eUgyhgFb#jt)H64edYEI5G6`(j7d}*Q>1Fz^WvRZO0s&6=>y{s!OCMz8{Y8x zqFYq_*(40Sc(XuC-SJW=9IIgIwvol5Z$e4}Dz;TeAf`t`4vxs?nFR0+5iZTo&uIuC z^RjA{4X?i;oK%VZtP3ZJ&DS+tUz>k9JPbJ2ENnvSk?qUYn*09{yGMYo&`~Ti(aF!; ziUKspw^`SHu8}2&&+KWGRrQv8v$7{nQ;3tb{tdep9hAO1&zD{<%7m{Sh#m}aA=(`gKw}o$ zL|@<1bG;km|Nr*{I5!c%X`dg5)wyMu^E5xt)+HzMXc=;iH@g)0-~i=S{V)r@0xdWWB9!atqfk zYP-sitv@f8939>!sorMwMc#UY_&Qno+jE+wF;mIw#u=9PGq@eHvO~Z)5`dv0(mc8O z5nBVdWOl1*|8|krSv{S5zxC`sCy>*Mz|~j9*YYDov%?yYcF!gpM|AqIlq}lYY0rUK z%HK`%6)XHsKK;19SYu`2%XRzZ`73xSr>3cJ$!!Qdt8(#8mBe3+M*8o|fCV ze1#r+3guSQ`=PY&0hGqF;EEv`^eCV&mJ<0&L@y1QJAZgn`c+;0zeq;2^s85AUt`k# z{~(jkZasmsoJ?a)ob%>-b=y2YkUd|QM2=syruA(Wsg_m@1SlDP;}qu7PQGye9C!zctnttr@P8VWjlxO@%&`SvLe`BbF$R)qdMZyO|h z8vK-qyUfw6p>&7s`&r{b>Rx8$x*NH@`FcIXK)r_pio~|j%p;MlLPon84@@`WWn=_G zi0|**A@@t2GT2*XfN8xq^YV_!bYg+lWjoWY_se$P>5=u8nTj{zV80eOBEuP92l!CX zes=LzBm7}WphN6yiehd6yoaQ`r!0P*F1|rw3}n&aVgl+Lk--qm(o4rD0o2L5pajPx z2sA^f3c-B?GB%3n3F@-9`oY~~8h-j{TPoa&m*e#PhNTLm)D$_bN_=rm-|?aZb+Zin zChwvt5V-my!f+{TS*=SltN9~=aUx4AM9FdfE+0Ffy(|>BhE;!FOei+I9?#0swg0+Q z`jJk155#2Qo7uAdrycHJ?$eFJUu;Rw6Q;ztUqoPG;K#>0C*h+FAv!Z$1 z>G}*SvoEUcH`SWZ-+E27Z_^W6JUBi}wVZ-gM{LI67=5;2Jo)EhG0 zn06G0P>VC_zgVnDe(Jnk*UP3axxe=p&(pljSq3d+;o zERA1;!5_bVIeu~arrW*HHT}|fubS%OesdU2PC2n}BMxW5?7wE`@SKzj3BYZT*Kz84 zU}ROpn_7Q;ykixH7na$weK>Rj=xYnxD*@2g2ysj>XOt8$MlhV6S=MHq|ks!h?H{4b-Z$CG$EjH-M ztPS{>O<5H&qdO$qZkpAkWrloFhRnkFOn!1E1?vgt z*|Z;7-jWsg^B=xN9vaiLOfp}$Fdtrdr&>DU&Z@0UeD_m zfzWN8nh$eEyNcd;o?#zYz>>hvW!_1v-FAX~SvQ(Rw65wMHt_E`@4(z! z3^#-E^|Kw=t#}~v*>^czWE0p}_ERHn{A{s;lJU)={s1p<|14%~-;WJ}&Hs;?&||>= zPx0Q*%EW(@YM+v*=f#p{hZfE_fUv{A?Nq%lkp+ocaa`Y}Qlzt{3A|C{fGk-#Kd0%UP+sXZsa_BWB z%4s2%mPth=__O+j(VLPOa3iHzrGRx_&H7=5HUA$vy00_k$M4(g*W!rYx?GPVSo__I z8-mq18z`BOdB6i6nE2S*msPDN;x=%kOT^orfV?wCcff&SoisY7@ z%%9&bU2!AR_eOCO(|`TAooSbDiCc&xKRBv* z|Z}i>B0Da|hv1hdGbdlHY zllNdA=};&-fZ*3)nWkFT)7;=Jfv8n&k|hXL%@su_CaSvK0#TdQ7kTT(ESj%8M2 zRqjHxXPwg$>WsgA<1hpWAv{<`w!&O+mSx*+sDnvZ3!In&fgdGH{jv_ z|H4q+=*r!0nymw=Bd>_ZP0p0*VAh}W z(zh|C(8M<*dCRHb&u`~r`c1#NC9wggn!V3kPV>vUxJ24_>hk_KPuYi~==}cMp?SP+ zs|Dqt5N=#MN1zEfv0*ohlW%Z4_`48Hwpx`011=b?e;Y88+ai6|5@URzQHZhZDc0h> zuG4u2<_)_)FUou@aphb*fe=W8!~H+Ms@|qp7=RbZu#p_e;Jq*)fbWGV(<7a-$9Jbk z@+zF1j9f4tT1c5$)@HX7(U?|eTOosUDOSrrmUXVHwW@m7{MQ}6xhYyEHM9RBZyk#h z-mirM-zFlLYy=EVLeO*h-sY4##Od;=gb(E3s1L`G=Wdzi@3O_J{4l*pxMXEh zeGooBD;j6(Hg@8+A=gH|^a0k%D5H)Jphl$H3Q=vFlo@N2A1SgQDY73avJX{cewM=J zBi=VZ@l7f)O(#(U{QtDf;d|d!V_7hb4@=(u$hh{?Y|vZF{e zYp4vQ*&Cf7;uWQ%zVHDl4*uMqbpw*8T>rp)Q=8^zd#-O|Hb&nRLwumo!s{+_#_WYX zDd|4UF8!Qw&n+0`>#K(zsGm!oQ+7K0a{P?!;MwxL`Wn0xDwmKozP_*GlSrTdMWGTV zoDDZy^Gs52edhS^DZ*3Qfni<=Sk zEap`?>o|nNV(>w}#;|Z zCy>X_<~)S7tm*~jTYcw|{zpK*n@@VLF4N=JFUK!V-}vqCdFN(>eH@ z`u~Mxdl(G!7hbf7jLKC}mLM3dJ+Sfttu~N{*aw+U&(-CCDoc4FI!5LAdA_{K_3QfS z#<3mn*UZo=OwLt7z9)CfW9TAHJ{EB|oH<$c=CrMWYx*(%AxURoV^rG&4&C_dg622x z`E?_Ps$Sir&P+|K8S!nly!h-R626bpyqRXJd`4?a^}3&D5@Ki%U8(=E#|CRrHAiE#8AC;rFGnpIg=SKvl%83?9E|}Grx`;DouJ~m^s>XzoRc_v-E9#ZN)PnTFUD|{GATHCyYNv z+4n*CMpEOL4G8MjSgv`0zwE2J_*wPGzIt`mvy8WP#|XKPj*bB%aKqr6b#%hdk}C$s z=l@@>Sj<{d24qZ*&a3!t*Tm#Fs7iH&S@-erf-GD4~L5>x_I4^C$#uk z=#uFqmqGHT~3qT%NJk1p;hOK)1A4YIg>MQ^ZHgD z{w(wGZSo=}EAwGtblX(`x9NH)B@@nG*yq=c!oR_shcy0qAJBhuGKO*eD3I3=e-z07 zD3JgEWg!2fK>kO8{Eq_p|1SmdxAEbO`}p;u{U4g!_%)LS-?-QK^E&U)$K*piqW_=e z8*an-Uaa=DlM+8Pk^6s5q-OFW0QU1XGxE*J-v5^~BFD?wcM&>y*}V@)di3*q?08!7 z7^RD93C?ZYmxw2(6q;Pn`<;ni&WP8+mQ7^FigP&6{33ke84+~aMl{zg1WW+`D1Y&d zNyNaoO!%!#K-ihp%$Vs?R+PV(Nh9mB;E`Fr%9q3=mAKlIe4bqv#8nl7cN*@r%$nxw z4&@mES`e-jWt}78Ve%aF>MGE_A@6sPq!1jS+Za_wDaP&*;P%2B723N;w;F0ht?=iB z2PZkcAzXfTmDX)6_5W+qxm{KG8wY)DR*bh-h2aQ3P%(bvp2v@L?2mNpk96$+i*@YT zlKj$TW#^rn`5P(dYfBrxY4;%n1pOrlN-H0NIq_cy`CD>!R3Ew6hkjd^Z9$Tp zm)Ay1POe#Zvc|~WZ0kE+=YO+Vz=BdtpM{)v+tGZT5bN1ZlC=2!9cy7lZBM>6zKdB> zxt(l$k*ykE4uC@g8byJU9&OreIh7_vebS>D_^>Ue>oTija@PexFV2c)h0v8|tZ19G zXDDcmf)>3pAFrZ2jdgBi=r$h6hm(DllPRi6OT3{auv=0W0(-tLiB*5mn%n_aI=q6W zyxQqwz}O8ao4AC3)rdp@e4#oQf_)*R2ia<2{x=Sh5CpX**=d^WqMudz8Vv1R+MCSK z*JI%m5RDW#Xj`RM0HA`+Ci(;E8PiBaNqqGh2#P|*MP_5f9$QvyhrYn6w13rhF zH_OZ7GOv3+97e!c2IJsW_-uJiB3idlJMS@_u{rDzDXVKj2J5Y|jPJ+|lEB?4I(D>x zDsIRC!!Z`RWfv4M{A^OMGwFFr2B9zZKQ!ZZOU!Sl8NiXV{5&J!NwY<@rum1y1H-VU zDCpyJQjyS#d2xv;@ux5ZrYt7GvI)ICJ#z~+^Rq~v#qTeua2$L)>UeQW7W4DBVPt7}gy3F&L5bL}qMcS}FPv?xH%{~a8 z2n?HQT~BZ2JKRXP8$;tk!u|M^zJ9L&`D^4N&&Ve!$T|H1vVlaVE9>MNFEyH;e9y7K z*06WmvpC|g`L2(rR3jS64-0NFJ^c9(DfMVx_OfQiBmM9&{f9hHJ<@(tF2L6phoLWi z|1Xy(tRZG5kM$+1h>lRmU#C!r$Mr>XTlwG@R8gqLrSR$-qV?BdU{OuNaqr==5t_?+PtX9S^@CZT)xMd5;nfP8sFHlO ziF^d10`??k=>K2M*ROH_ALeWQ{zpvxBc}Gd`+osbf4P)dnqk^RJ%?O;TUI@>NnRI2 zTQY>Snp6IHlG9h~6)k|>%Bkni14eA=&5w?jl(p+m@y{Z?o{AHDOQO8Wv1TaYnek!g zd1=X{4mT$fm}Ivg#f^jWbpkm^ClqvK)7CkmuL&u5thXEkWUyGQB%`iNa~mBQ>hmnp z8)*Sfbe?DA3N`DZ%_e0hqlq8_X|$`Noh#ok?j&6_va70odoy|X^Y;|*_a8_|j{>e< z!yksw7ujkBy*J6*D=>VR!OwZ#qn&RGB6?{piL`E|T%r`n)A5VbH>om8`pghJ-5u|w zvx<0@VpU!}s_K@;(AGuHSs3y^iSf$o5MW74ucY;IYBpJ`x~?TFvpl_JP@7%XHe8Ck zQ?yudYjLL(FIL>$iv)Ko?pichkw9^$xD}V+DN<6rSaAuGe7Wv-zGr67WX}9e&b`(; z)*i&p>~PZ950$CcbP{vb{l_?2gFbyfpi|N zWhK6ZLla}q345{Dl+gPd7J*UIj?4)GF6B`+%CAb>MSRUHb;P+R?VmjEqiGD!D5w); z!swBx&yln3Rm)w@G6Az5^&rlKzMhdxoYP{A55%;ZupYCt@K}I z;ZCyu!GrqK?4C97w8sA^ z2h2C2ZUQXgbfh%pQ&?vu&nJ&?5Z9wwLzARNFX`gngbpdsFJP=zt%~leSdqJnH#APB zkk>0{Sc{>CFzthBfCHu1Y=nX z@K`UDP54npqE)kHXUEz(X4Dp*T}qhDbp3Lq zVMMxPT(&bkGBCnkwO{riP`4>JMP9*}2a(LQKjl=s-jCe^ZwtX=_AqGuM~G@w>A1hI z%-U!pQj0lPTj{6>>q*)p6AY0N>+OA1!J?_{vUef2aiz-k*iMeV1`TjuY)sy-f;Svw zpc^^sX@{}3qBd(!s6G{Y!R@>Bh=EV&pUMj0;!IoDv|L5iF=Hn%jjfu9C-(e9U_e)EFaec3z^w)1SRV0OYYUr zAJlCrD=mb+h;CTN^tI=#wW-XKpE#|i%y*;fpY5?L-x5%r^<+Y(B)LO*N5W&gOtWus zC(nOpT#2pBWRo31Y{yiht0ow?1eRoMnkoa*szHR@y@z}xxQd{es(Gn5$-vBpNUvuV+ryvB8iSMfq}P{&cFy;@o-d#D z+Iz-jut>Y{5Z_K-(M*W2opku!xmBWKZ9?wMV{-cXVvgJob*5ids5x|CWhD=U&|UYV zyo$FuB8Xk}V2G`d{Jfw^nZ^2$OyQB_U>(tz$cp(S9GCh2PO_|OtzOVKc+}+JCDrsI5UJ2Jn7Px*&~F)pvEpVGd{{@SNd(NO?z8`tD}5#Z<(w`j~yq z#H;kj8@Xx!;nLr$ol0VWa{V)RMYP#ifwmqT6^d(Twhq`8jryJI?^pt*F!la#G~z!4 z_o=#??$W$v)>*?GZvoR1zcrNb6;Or~%cN|)a4Wo>k6%Mb} zhRXR5an%>anQwK0G_7A~V(R~j>6UKl*uDA~cQv4MCdNX3CsM~AtKSgtgqAmPDWr7H z4EX!pHW$k)M8Ng>j9K-u;ahq@|NQ=~opk?DAvyE1yS3@IL3i%z35AO|tA=g{3~XH^T!IE2?| z_M&atK?vqFwB6op^`oWR<;hni`%fg%J%%U((TlqVcALU!2{yL3w7j4PjG&(v%ueW< zRwDC%vOb^njQkkf)IO?l3XFVR@bF7AIC{?p#N3%SCESo>ac+9_T(wi02MCy(Z+77$Hdh3D-zGj={=_AL^sqL|x?S0sGgIZL zz!w)2u4)b|8|s0khuVy2m0s?BZ*6qyj-CFE@b&$>ThrpK-_mDfK+Exi{X^&docogq zALxqcq=(aiNkFi4VRXr2Dj#0k^Z<0P)$E=+iCG39e~Y1MdzoD0(a-pcFzyAem#l`x zSKK5x{W-FU9#Df%pN&-OcWr+!G(-i+2K2XPSdzhBawC4JiDOT5v$;?#C4lY{q_I%6 zX#|>-q(W`*M<;4JQp<5reuQK43)1K=8+p2s1%zUuwIXnpX4bt3tvp4mhrrCPz zo}hW+e(a**VihV=^XqyqY%ab#`kSu4w|~MTI`56t_ks8)`%Hg&m%wOV_b`CcD~p!_ zNq>4R!|jt7?X?sc(frqH^vvo$&(<}^X#W3~&(?a(;cozaNk6hnni=(8Wbojf<0gyI zv7buhx^$3v#QIKE@@RgTM<8rbzs?7?ARd1@{$raHA)R!Fp?E%n9Vn=r%I&(T4;LG! z5hM~xTH!Rzp=zD7wvclb097>d0h zRA|U@GE)%Xv7bX83@%W8QbZuC~HA^^dK4_K2sLh`g z3#5l4lNfVIV?Dwy+xJE7f(ym6&EQ4Y)ns{x^g*4P?^hMkqvQp~5^s)W?lFRV{o|Vp z?OFB1xG&~zWp;tZ6(Y6N_=!34ta2nPWU^Gfr8%(0%ozVB4pODX7RcnmwCnf0d( zb%%^6Mm26jWN~V8a zX+r_3(mZ;pUkEZ%i2|A>BIdjmvX)9PSLgJ-3BNyH`{!k}YR5j2KM@7sTZyv@GTCF-zFDGq_$A?TVOAlDye&a9>{%Bv?OP5O!xsf_}uZ?%HF?wILs9F~=m znfIF+T$-Y!M@F=D)!p#pf_C)(wB+S6)JW&2rkEe_NTe*5wVNL(6a3L^wQtL<)6e}7 zCS7=OAJ%jbVzU0o41T0odr&IsAiNM}b$CKPDiz(ON}kaNY|32rAT0I+#uo0OX)@2l zCWMcO-u{h6^V0%Dm2>J{jyYNH?@irihouIL(H$yOv0hJQ-WR9Y#UhX2H@%;@1FB^n z*Jk{M&uUgN=CI=6Pf|HcAG)7f>a{gHfm;*(h14OLa#8~YWkD7OiqDA+74MS4RPSRG z^8ah{u=?q-U-jO&%3c8HFhtU=p5%-N3Fa?zS|scV`qm(_2dvS9hZqk6{U;a#^o^zP zmI1h6%1(2u1=)DfM#9daf`=-jEN@}E^mbT(9V$MbD28cidq-lwRMh2{>A^o zbgKE`c6f6!_^?aPug9+qb}!oW)fb+@&Sf9tvoM(K6WeDj3r12Ri?lAa7ezV@tI2}y zf*xM)oduXsSo4((GZe7K09TitpYak^>O<&W^Pk~hcKUoAmRW_2qxTj2d}XgN+^k!v zvlkkto~iMqV2QWi?LKa2PT6s)2L`l(3~0Fb2DP-OC~BqCbmtz$`afjehTeZXav-t@ zV`RUk70kZ3vV`}If@-#S41$yYz=4@^ElEV!Q0s_$bxxmkA5C66^m2yhPkgqghduQa zgGr&0p316xuKL{bdk`acY>Dd?llpyhy8+wfXb%x*N%1#(S|b1MGShQ+Tny6tI6%G0 zHJ&Dl@O`tghQ%FlhNRdPaK=3Q7`)T?3jMh%gEqTzGJv2FHHnx+5PAupBZy_fcAlP2+Mgt+D(zzYKNQTE zyn6$>C`jwmKw@mHY0RilD!LP%ioX2)_Gv0YivAA-(O#LYjX%m?_~&IgO_Z{TopKOo zA@^UOaAZFnd#8)2`_5ZzK2XnZijaQYOu62m*fC{#RkDzmcM;Tl<5L!T`~3eJjnwjR z25n}cx0$V0fX<(LXX1sCPGU!z{~j_|SN$7mPn&`1Yy(0HlJ1mC0)#iGO4GmznFHn(?y`5&PL*tEQe z<{D(|tlMXP|16fSAMcP?rGM@?4#W}AV%#AEjFaYq%sf34DL7kAdi4|(Ef&iF*^9pF zT@|%@vuj*jg2fZSSn!;hU|6VOXxlU^%K;8opaI*X1094f0b}CZ!K#ptzp9#r?ygs9 z@6uMRpoxB-8fMe%-RYT+$>2zH0kcl?U_RA5Cd{4sp71 z$Ee*i{S`j9)-Sem#kql|V*kG*3ulPE*x`A60`|^%vr?BmQ6aq<;+DY0Ak;nFA zcWQNBCEJ5lvcxqzpDc|l>i9@OlXTyL3lckpiA1M&$I9qIS407Ug_pmRy83Lcmvu1( z`ex*nDp(D$IIw5l6g%Xg?;2D^qa#N5_0+fJ_c_ zy&a%0{KU$tF%aVV&41*@!rg}h=jNs4-~}JLhd}R($6>_{-=k!ed3RS=ii70UFKk9j z&%u+B#)Xa#W?j#oNHW(}`2x?F2UD)dgZ^y(apW|i07nVjC4I*}@o8sqorY{iqoN>X z2aS8_`Xv8>30-2@7CpJ5e&v-{^SoPUO5np5{#aCBNi%kEv94a8!_;~;mvOa=GEpTD z&4&YCttfThgb0C2GdP1oqAe&{adT#K|IE7-@LD45-?320-MF~zw}z_x!K6ou3Gd=l z&8Snb@^D%^l}|~u24nIujV%ld1RZEaa8uR_RCxGlpa!85`(`A@6=vO>T?p+zqMlNA z-(>tyxeu5kI^x_ma(mzO&oM{c zc#-V{Q_gf3+^NIR&Jrh2qo)1vW3tv~7OwG28ZvJ;%?H8J1kV^)3&}#yXqP-np)Nbk zNY?GVW}d}dHEQ|yDj{_l%=c9^{r*r|mGt$yXKvKn9M(KDJaZ z)Wwl@nI%YVv?A1&@QhA zmf@|wz9P-!g8*eSmMgqo$ioDr@psIujK~gar#S_D0?_1w`FMQ=eY>dx$sqfIZ+|0T zjWwtwBL2?w@<}m0p&6M(ij36@NyVlgjn5n>I+*W*$fJ@|a-{icRP>9+xt=9;xv{X# zsrp-c!?7Ay=0i89Ibb3|4WSVRUC&r$x5|ynQ5l=qg-RIBuP8HsF*5r7C1{oOCcv;`k@cE{TUMdQJ(FLPk7FT{**^O? zst{18{H7^#wUG!HiH%Qv-?!u*2Qc6-$^Q0vBd#pO6zxPt`JKlWQU-ik3R&X~w3#(F z{Dq@^lcns2g{B?ZO4D=|U}hCSf*bWGv?;25HJc3SS1r6H2fNun=3h!ST@d0Y$~B37 zq{G*&tNl@fvnzyHu~D1>WF90fq$ahu^T;EPC2%a&0=PSbU{>R$0ws0lAE> zXfbXitZ4m=^V6jlEG5b&7fqyH7ZfRy7tpZK9go*dQPh)SlF#?~Z8Xvz!*438FL&Uh zSQ}GsdxKs>3hE%}Nx-l2Uo))Ctr>b)lO+iYm5AOGc?Pu*4YkeP4t~&d#CeMtZ6d9^ zYh&i$A508Zq592X=#b8-nSpq#!{4wawm5{)!;dZhmw3*zVV_q3aTN}EEH~zJSbB2O z5R<#F%Fv14&dW=+)l>e>Af&c!ENC_wVa`-_C_nfz$O?;D34bvLJyMU(y;FU6%#$_l zqJe<^;vrhR^w|xSk6N6v&J1PFwZt$!ZBO8_GNNQ8ZLif7Y-o~pOSIkU6NC3#6-T#` zv&l5Fsj^2A*Q4z2rPbqkX5v+ZVND0lh&P*o)9*RwXV|}X z5pN+4(*tLv#^Mnohe%q$c`sB>5w~eKvD&Gwr=I9EqWN2t{GJFJ?8}0h+)>@0x~FBc z5w#mwM!pg>%*sfU7wwRIW%5 ztts)Nfo}=*GO^B0Sj+Z#3I*zT*eC061SG+i9P}aragLu^c45MMLj%{zmbY$_q&OOjbF;Y+*gt2 zOCubZ%i?AA@tWcY;Zq^h=6LfqG$r1%okC1F+noB4Ci@bA*H2Vie1*eezQx__oRT^O z5xsgJ`oe_CX?!Zw_kPJbKOKTEQ9+%?w4Sj2t(py+I=qHr3Ur$9Y3FQvHsx$d$GSq} zu|L80jSTj6yND<^-`vNruU>v*eBTV*Qf8#d{)}nAMf`#{`pHZcWe@m)f~yS}^tL>T(;mG?%< zx|7x443b@S@u{_GR>dA{@!s_3?H{`W*kF8vjTPaI(4mxmD?z!x{2k?|N3}2H=AeSe zF%U=OF&}Tk(EfSVI>X^?;tf)Xb$0)dO?%a5=1KQ76YRe8R$?Lz7z^96d;z3ijrv&) zs@`!2a5Tl$2}!nJr}=qTB*enNWj^#N(^7g0Um$hK$2^0Qw6PIb&3Zu7<&@E3U`d;Y znlN3@89A&sKWj%#R;ELu=t-$L^^tbF#IoAC@*g*1wgRf8~&5swEdAZ3U1yme?4O|suQhs>(Wml|Z z(Qpe}E`qTf@#9+)0pODBFAF0*K)mTOIs2%}Cel(WSd_rR&$wR#lP2M>)`BMF{j9m< z;{xH*o(_TW_^^ESfL!}A5x-3l511>>zS(V<041wU*gI`TQ6A%_H#K}j33_ltRP?cI zVArR6_P4s<21y&SJ1LeW3rPltg3YU;sXr%s0Uk}+dV#}AUpb6I%s#d}kh0gVxqUsY zRA}LBaW=pC^Gk5XzGbNPi_QEaE7n8xCqSBV$C0T4he<{38>jlC(h3&CH*8$+KI4uW zp@x>!MK*~2&;#CE(!WeEFoZ+FyMBzMeW&0I?827jk`<;+Ga)W6W1Y{Js4CXPiU}K# z!am6I5btBHa&lZs=S0E>6v;02R6AKQ=xw0FerPlARL?2(J$;ZVQP00vncLj$BPX-- zA;i3T0b&m(_G|0H3{l}G;%D<5j9MsD_NV`;^BCS*FP3=Ywe;-Q5(x8xbXWHjmu(jB zXWoo}&F)&;FK@)df?sK`KAuOe=s$sq4}5^qb%_Pd%@z(+AYkdA`H$4wZTIK@bM8_` z_|HsAJRSGy5bFV`9w-h`^)u+{h=s)#3g{kZpeYMTcN7te58pB}T>mWbaNe@}5`c^=3Nqpmm)$L{vqH)ykpGv!K>xHGe2;I$u9)KJ|Q zPi>UXO100!2bBoEt3}|)`~7T}D^399hQE1*>@6df<$(!>w=PNLalX*|juzl0Y=@bwVfl&ge!Q?PcrE?vp(6)jrGdwAL`&FA#whXmobGHiH~PH*_e zgcN>?=biHjNC*YJ6qw=V{}pa!#;_>&Mf7lhw#nCcyc|iUen0W9>q6u$(6`E0oMskv zW882hLx@?Qh|w@%^s;Nq)Ijl8Pd6o{tfIo&Rx(;JzmL+;9JdRv`|UHref8+7=h=5< zTC>_HRMnpUGJ|pIea+4FJ`Zd{?O#*SBJWCHEXF;?k2m}=twyh0g*nh!CQ%sZBLHFm zJ#*c!3AudK`}pSe1dIvM7AEbxWWY4$S%x5F9@&xbuO4i}94UL$4~FrSW1fqUkFQjqLKY7=67XOqDa`e`zDrLHKU!C6v+P4}%!#NoNaj_i_Jc`e$Zq7D^m~Xl^3_p4z zLyyGvncudHr1m%mNW9GD3CMur+5%R9H_4#Ro28Hyh58r^)vXickOS ziSg0mx<#nN#i^}rT7nEo9?J0rLNCB$?ObW-QYe~5V~Aemqms6v zbi(aJEH4w~)#F=Fk+~(G=m14*-rY88>ivNTsL0sm@WrWXwkd!E{|q`&hlVbnv04>V zF{-WI9NOe!b#hZ28{ySHjX*Gnw`>xl zLJO_WXb@ZR#(dlARdhe=mCejyWB0vT-`7wPr)T4w<`ScMzIQuZO=1n{c@1)x^U#4ej4UrUt&t zy=!stjj5hK))`HiOTh-`sHU7W#a)3@`(?F6#3UD`Oss!MLP-(<7uJ-4t)joF!Z zKp9-oHXr9eQ%r#74l+X?3RrE)-GU3whq-3K7l@OKaTT*x`D;LiI`=r?w-}U+p)u|# zGM(oWhh)kIss=zB8P0hx);t{tKPc(6eC+b$yq8rf;h1{-iQ&ZhJ_@0{=w#GCVM*yKq`sZ( zSUb{TD{(%GsP`BuBY!p{KdI$60`HiXS|^WKp?y^?F9)x{ymfs}e7b)|s(ducnj&#j zUit2DG2qBAC@9djxOrl|=E$WARNktSXnw9uKcKRD#Mh1;d`85G0*+2-mQ`M!Aw+fu zZNoBSO#UFhm6XXtrYyr)VPo%~5cu(LcV);!Y|PgVGcknod(4i1 zq^bTAM6W>Yi}&bF3Us($=E1xT*u;r>!S))R%@=SWcz#eIlR9@yL1fb)U4J#gC)@(T#RDll~;k(9e;N%BQ=d_C896KGoGNHB=qO0GnM7Y&zAWw89IakUVtR%8QV&Ih-_|RJ%j^xAvBqIuH`n>D`^PB74JT0L+iwHPCqlRFk2SnIr2{_bBb53nTy2xvzRG`~q&cZoGMm$g;>3F$dTQZhth)5yf zx-jpvL-MFh5BB5c9TGs%5?QzBCs>7$fYmDhWt(ld@mo!Yu7I?BDjs{Nil4*OFWo@x zY=jmz`iG|`;F<$W_=e`cQC2{6;=0D!y9R%uV{FY=3olz&LX5~;T8$wqn~MeMIz5Wu zLXKYYto5Xf3#cTEM)mRy@F;R=8QWgHRxEq?NY)L*Xdxj(r6pp&XNyd`BbG+&?=csB z4|~$u;MU6TNzQ#7nJ|i6&tcu9z7+7S*IPbj&&1|@{Q$n{uA(#O%%z_qRI4Vj=Q-@c z_BL?$i%Kf8xP3+rdcL1VwAZy8P$K@;u&5iT9c;Y95}4pq_Cj!aeMK1 zym61d2hMVURvml$W_u`p?sW*WMvX_6LRP0&lYr@--h^py)7iSRRoX}~Ei;Ja=J+SB zDz3%gt8oUJlak%8JrA4~x;gF~lMAa_$0)(4DzI}#-41hVAC)xwq9!W4bU~dTd6=ff zKk+*#DZ|`ACx#JycYhgsIoDt>Kt&b;Q)?#s=x9Vq1W1tP{Gm8M(Uj zhfJjS(^HQP`Xpa0iwF*Yqg*|Gbl)bvsm*FW3DDA^Xw27u_!K&`d(u49-(Gvo64?nU z5O@i^KFbN?l_QJV|$eh-FxmJ%pzs=sfZi94se!Ho}rzOEtbvy?88^wuo;$DM&{L1$^Y8Cf5Bw_7l%j-0Kn@dXY#1$$& z_+rE;`uc-$*Y!A=2@2lyX5i}30Aa0%k#$Jq5JS;2CWocRObmJ5CG1)l?`lh$E)33y zXL1$p_H*}`|C)iOA6s{b$Gw+{9_hf;(R3u$^?cH_;8A7NPe4N@)g{*0x2FskW~6DY z^0oie{B+TFfKbAjDLro)iY`7l<=_e5^YMM$`?MoJ6tnK9Ga<9+P%it~AGu1+PT<>z zzPMYRI~jHSNs}kS?f7x@979C4@D{KVR{Df}btclRJ2pY7IYiw~rFx4kVta8OW0-e~ zS~+BZR*mM?@n?Ud@>|a|KGr6a%p&#%fWu8>Ke{iVI1p8HL%R3%LG*g=2jG4W`l?Jg zpIhR1kk=%bjR0m(LESIipyp~J6ND%5tVn?q_EW^Lur_f7cqCNE4$TlSKd5sb6*RG1 zENu&91h$_$jwh6QQO7f0^Vr|ZDP3f?vT7VI6p)&Wh>pu7^6rA$AMX*a5D)*1>FV9g z>QcSLxQvJSf@hbR)w+kCLi_s-$Cy5xPkW!tGsXAYVxK~oj~c!SxKXYdT|ESfRpi>J zOagADZKl1+Q-?YuJVy-^+Y%WTIRr9{r5%Fe(5V}`y%S3dC4sIYs{x@06lHthP80Lw z_n{&uQv#Pj30(f69{77amb8Ac?TFTf>Z4x6*r;zv1A7$rZ;Y$^KFpw1nmL9nfb19{ z-7hMq!iKCbTZ|d!B8nf~wz{9(`B$H5rxi9it7RsKH$J>W8o%zh>>FM17Wc;P_+}m* zvDXH~tQ`D(<64!o?rBz4=JtYmUZJ3>a1U8KTmrQ8^p*Ra(0x{Vn3C`JntR|F6MnZn zj+9O-?c^v3#j1VOr_Qop@ehw@a(ot0g`NnjNAQ|ONVLh^`DoMcv`2~K;PXw6S;+Bn z^^mw-Q19gG>}O-rD<#;;!~UPu8v?yc{3IC2XKnCZYCl7g#qOD#b8o6c4i%4*)6l@w zc|wRe$s54M?X#5kq>6{U@gWtUq<+m;Av9;A9Wjl)7u{mW~`T`6q}nS=di?*~RTe`XXne$inx z(R8#`9u>>s+VA_zq54Wbk=wzUW*a1@BIT5eQ>7fNEIg)}EH=f?>KN8idD%qetifAc zK2OW57R!37g$oY06x1XS9O?gPDF3w3V2Xxvw%=rR{n(Y!ys#ntZ^o~Hf|GOV3M z+?lXz%7@anJSW%26~^Z?9FYE_y=+BqBCU^+Z2u|amwitL+Lz)UxZt0e;o@*uUF-VsWBeGS6U41hl$Jf> zs8@@24{X{89~Vf6tY>B^^X|^jQoTwXM2fO7P?>*hG|i}(k%-9=DQ0j%jYkaE7GkWQ zMHVnejw{1|y?e7f5)IoYFluk?SLa}ArvNU>6C{enwDc|l0ByZj!hT8L!X z_!?xdz5j4`PhCnju$Lu+5seL;y*gZ%Wy~0e4e*q8rdj4*20u}{*`o4bP&%S2p{x+ezxAZ>U7JiQ8cN_lJI1$cGH^I^KW5fpo)6#~s zzYKBO=R38#g)0we5CC~Oo20{jwj=oL*0=7T5?y>$g)6eTsvcD~&G%sZ6?h_Ww7-I7 zNy}b&^%I&pAGWfCgMxfJzh9ZScUi8?V_VCSi9U;iRnUO6l&xYcFe2jpRqxklfAnUt z%c}c8BbhkCd(ww&B~Zg6`_}IrP8f@gE|)9|8aXhCp5YS=Y#pV(RQW4^{5m541X}@` z>NI=&d5f?}e*7TkT^#BBpUAIWd4q1Wj%qrVC1>PWNa~=b6>*;1Xo^g~)Fa{bl@Dys zd2zpdy2WG>!<7mds1oRz_ihrOEKqT>2y@=((<3YUjZfh7D(m`%OM8XUJ*4)BqA(j2 z+1J$ty^e}vlKK>~>Vk2nZNTUT4(Ve{31cbJ8~HeAkA%epw7%TO1kt)rgczPsV!gG} zg})%;Q+CHM0+#fSxrC`_YkVk05`mS!o)|5n>qo#O20qPMSa26oSb$!ySwo*m z>s2Kzpq;l{Yy2_I)bdMum8uyTDd6~6Ck$yx?3XzZQIc-xRAulHvRl};YH~TzX7B(6 zdS@~^z>k+4joNmdI-FSMNxvl&s}jC6p07O^zT)j9C9I9~QP@@I`6q1hfNyK+_C_qI zrK8jc>(|f^#thmPP-&XIoi)V<}RZ&BMsA=!ujs3ctmGu0R8S9QtB z5-xfSXk#4#2>|{4w=tr4QnE>tmOge!-Nq1P!DawCM{sd#Iv`2h4OQOy97BHx5tJ#Z zFwQ7Yrs)>XJx8dHpKPT^b}8xddiB{sYsuVcww0MouJxT^^n2kFQDNf=PtSR50?FHo zpQoP5C4qrxp-*BvEj!J-P@sut4pI6r{YMSKk#b!aV_qqu!fw9x4@RC5_Be2}3WHg| zF6k};p4>DVn{ouqui;hFU##V+-b3nByY{$cd0oei54a{VGq-KnDM!CzeC*A_$<5CI z_xynZWb`^JcpOGREPDn{gYOJ3fUm#11sU7EnyPk6bdn3?1@?vLIOv$q&iVa$cQ8fE z(MsetI?RA5HYZ``7=HM1F*dwH{4%HC8QW9U7}`m3`Og*fPQ3n(I@UvbrAAK=72iki zL&<;1dF-++hQ!r}0tUraMDQ$7e5 zFvBljbz!HNWL@rJ`Cj&fQ?bo@Tv{NM+Q-UC-}xH#<2mO*R1yy3eqYJ2#O1ri;O4%x zqD7}RNo0JcP(Q@mY=#Z;J&=SM!Q;M)Ty3!r><|KvN6I;YT7g1*aSL0&7L1~uh=uV7 zF#)Jq!pvit>H1}X8t01kt|Zjf@(+$G_V)ON@2q9)jI)kMno-v(N2zOQ(ELAVgkk09 zc~0Bm{bVlJ@_;)qo}<@!v`;UTTf~)pV}G@JxyFFQYImB~&y1>qC-c#PL{GDZDm%Ev z&Su_Od>~Jy=Fr=0QI!^IP}6QmCPPGbGY_#PH`|^0g*`q%Uak<4XB~m0lC5ZJpN}Y?LN$*8TKhzw_=c z=!0H+C15U8`XEsu^>T!ioN%Z|u&T+end2FL*Q^deGQje@w!25E>uAISy!ugd#V0xL zJ-;+Jz=dMKlko*A#hFYI?epu@GmS1)e(3nn7fmK}$+xlt|7k1JV6na8*go2Q-$T|+(QwFCVVsvS-XEg0Q+ z8sOUu?CPE@1fBf-A=yBCy1~TM{dvGqu<`P?S&xTd6hoDehw7s3tLL`I2HAPHpJzJP zKjWcwRj`1~kAH-@t700D_PLuoTxcYJzmBNAvS^(Jh7P%hAGv%3yc>f`erPI!%4vkf zl|O=PJxC8ETP821sK%<6-5cp8pF7YVlhwC*9v`jLM!dlHJy2Wu=_L^Xx(-Yv3^9Hh z^kk(r@v4aJGE`?9#tl9By7Bs4M2My1>>~CZ3t0KIPig;%HNgv#W?=+Q}EwY#W7;7_-;_sLe5(yQ{o4T~U@0lmUHeMvyl$4s}q zokR~w2IhR42&hyS>FxV3sCAPT6kqvfK#QjOa&v?3j()6Oap==`Mj&eHB1U_CVLkDN zw8_422!ohLNCSsg{Phd>`KYu{-|L2oKAJTtzNXRnirK=fa;5l%Q7=K#DN_fOWvx4u ztn4jYil&De&52d9?x%r^8W}cb`s|a94GiLr;K7`i;p9*>Q?lJCN z>CodN>HZr1m%<#iWDmu+tL-r7V}_e`@ZqKvuEe_8mwSuH-$-tJ|LuUEk><>ZY1Ao+>tDBD7BT{RP=4b7fw zt^KB`;B%e+sT23Y*qynZu&zR68DdKG2;H%L)|SH0pfpmiLniQumnsOfHIsrlwzx~ zJMvdqN|Wc2#B$T#%5yZ;l(URJ%>MjLQ+#OvL$7n&Yooj2AiT(ywA|c(>QmALRcK0A z6ij?y-|X{nvtsU;zM=x^n{So5e9kO$a+b?ek)Cm^r+hV%WZImvGNX+%4wbH`cY50# zp3baFfEXrV2q|2ADT{O!o<3HX7c`tvE5^DfqUA#h$WH?;afM3-;E{&0E=PW|o8^{( z_KdCtfAle8+yqAX?V|6y-dD(^wu&jIr!Og)zc~58N-y4mdF`6AEk5*bG~-@42-U8S z$M335Va{&HsJ`wn8}}cn`J#qlc97aFQcu5Q+o}17figP8M0F4rM)&>3uU+Y(ARHU>^A-vVh&jDPk*`BY#}2?>W+D*rv$p|LRRI zqQT~u0ZdF%m_2d_#2B}C^XLJ%no)mr4Z2Fk=N(<3 zm#mXnc#k{?`g!Ds6yj__YHisy59Uz3-C-&3bkCTiEFHEe{H>WbB>adhqGTt}$ct}w zt95^4KDH^VaWPz)cKbCw8JwKqw_wWlWISy&PO=xNY79MU<4f^|l_@H=D)zT#+77f; z6d9@n;{rA8S8Bu&pV*H!Or#EQRV@@k7?g??(lU)yI|N1J89gzfpY9j1J;>;Akh$XQ zv`hpd9D-lee}0oWs)-PMc@f)wR&wZghrqaqWB-eQOiqf_L?FUg{eT(WVtwM+p5izt?W+9&|I{sy06H1!ZirLYD{km`58ew zG%9h(Q118;b@>147`6TaVwtwik#M)2 z1<>a~#KjBS`Sme2WM_kUC%P;LGjrs>`G-`%t?(||zAA0dw*1c0Qx-5mt6d@9VC`Dy zsCN`X5`)+Xp=c6ff%bjfZv_&$ewP#~`E{U1t?#x5zDuEAtt}78H>+vdTL#6+3_vG` z8qh2ST}aB}ZLE#|3D|o_iGdqT*Gp|QqJ`W#9$vvtCfcx>l=SIlIBy+ApNlUzgH)oJ z@gVN*SWWd7??G@REm$or;D5$>7O8et6$3aadnp_o1L9nZULOL@B0IrypA>uC1PY2n zP~fc3|BB6=;P%Up$<}b@cZl>{1VU+APU3k#Fbk?*Zvn39Dg-W@^Wh&5mDIcay(f70 zCsqZ4xqg{F%Kg6UlRiJdTUb7(s~@@<3t5F=Tx@M?g$xtEJL57)Ln7U`FIOS36{w6AsgFi+68{s}_L zZtib94_oJc#ysmuk^P?CO)S z1tOgO&GuDq-fN-R&zKz6-%gn163VPGiTzC|J4#o;`B7bMKO1tSPvhzjx?PL`{dH>4 zO?7@Xf!Yp4e;Hk1KI4bw`sb@EIsNnJB}D3VY)EL)VQMk{^99QH+hSb1%Ncu9I09tf zL#)aQ6=H0arH*JbC$6hXC0euRv73N1yWSvA%fHi}Ne({W?bOTT00}&$?3a8kp6XOh zDe~m-kHxB}lShGCH1z#vkp7(61hMx*pB~-YymzqV=;r7wv8Gdm$!|%?S?B1^Jo!oJ zzb{ZT#;nzQV=ZldoJj-s-d@zO?lfjzi)UNqmH0XUP;{)5|C+tbeX z+gaOo$P~0^6ibL={Ulgi%a^9F(qBRtkKuzksIV#c^ZQ|~ zV>9+TI@2r9PISCdj2L>og9G}B)}JGP$3jmIG}5F8PN3snGPK_x0*eMxZO@dN?}pQR zNzEk!jd|jj`-))VOBx32f!t z&t^5}^pY&ZJ|*M(uj_7#L(@Vr4!OBH!%Jh3(!BEJt(U$5t^$pKbr!`(8nz>(mE1lP zuc}CDibLqzA1{LUd(*~7zbn*)d(LDVitc5ZmJ%(wU>5G!iHehVEg}mIy6Tv%?6k0~ zix#sRPuIq#k$vBCICFKR3|M_kDv-u!>yyovI}@D}7M4_>^I+(3_2j$3)TL!a;_`B; z;0W@7n?P}5LKY6sk0F9FtjjI}jZcIoiE+oTC%tr|e@dV^NsEi8G`|j0GKI_vT-v^> z;kR)AcXX`m9f$W<82o;hg~k5}SDpi3>_X?WRLq-S<5Az=m)W~o|AMj$*v5ifFIx-}yRTl-Ncnbd(g1 z1uA0n)hi-c1yAZm;mkZiIu0_PxKiKXh;P}?maU=Xe>SelmmOTx zy`xOW2ZUl1LXsD$_ZPhSJOW>R)wvptHv+06$?o4DtL;z!Nl5;=JplujHLEU^5u&`c zeJn6rdVU>i_ek#!Dm&7QxwDk07GZf280#jIBL_>xAm>wdq{6yw6Y5yw_&cnvIl!Ex zDfmopn6URK%EQ>4hKsgJ2#PX>g!H|;*8;2cM=>0azyDZOz9y85s8@?F5>U8L!$jf| zb@pvJsmkAT#o7>=5cVCX5~lR~`Nj`ykz0sspma^MdI&+H6f}wUUfYygbLIEPXA9-f8AAa}K#8=C@nFtD^ptF+}i5?=xyg#^-mb zFOP&kWSuxgvul^KaX7pqoO0r!cxA9O!+TazrVQXP9? z^tDMs^iW!w^!+V$=U_gzt9ZS`7%_84riley{BbU3?~Rqn*%nREeDPn__M47CG$5_6 zXv!K#g+l#U>ilJt--mkrSo`CS4ns*!_Y__Aq1*2>TL`Pp#-0S)YjKb@4#gAGwm3I+ z9+#UR8px1VI5ZW!M>ETM&uw7rN{TOw11f`2=VLZ~yEg4&0^42rtb2Hl@*b1G;u$TA zoCfS%GZe8NIy8D02v;-h2>W$BtUK#7YMf#7VY(8_V3W$Q zAm12+#UuVzsM5r85N=B*>xeZc#Pj2+fRzoWRfe@NQoS-^ec`JN z{z^0>2#6l%yaSGfav=#8y-UEiJJB3KCZPC9P*I>hjfX)iFv*rG zw+3QMUi8qf@Uq~G&0Zb>2HE<^S62pix!aB^j(&!pk0t?bdYEW0^1y}-bn~qvAIC%G zj~|*xENEOoX_HlII~B{8Rc=U3bvK_<9oaw4h4FKv)nWrn8 z{#>WG>;lJvdY;!SO;yW>DfW3%koFTT!a#J^3=HZiWIwEz$^mzvbxMU#Y4}EhQsCV* zjlIV}Bg9k0ci^$hOE+;b9rAi)3@-Nm0-e40w&8Qi%WI{nco;Cw&g?6;s}vXbx(O=q zom`4lyUcL~O_5Dna6kFcloRR@3K3%GVoa$O^Hn)hnCioyZn#T75tV7=4f{}zKzZ;r zP@`tQYpU+GB)VP}C)U_|s|;?4o7%l{)DC{?HC}1}c$|+`FQcj^vQ>)kFgpB6xY|9C zaRSxeKr;T=#)HfIPQE#R;bNbkTOEN}YMb78dU;IgGE(BAcRDsz;-&V|^>Xc@Jvr+rU+K|hPUxJCqeIh|fUc;{2<2G4c#{^#>)`l^ex-&1O z4mrz2=uCERX~kY^?L5X|a=9hOlH2h!o*xmJZ=g7l#%LP$^M2>xDcrE$t%$2*3b3<}C z!5UOK9g;Bi==&>f&j9fR%sA~PG65YWe>t5ooGho*xP^JqqlT7Ks&}=|dPKKOxs7Ai zVM%pfayt*#4VFmdhHS234HoFmKLzk4K`OH}WaLK74QYFLSjZ;vc~~1j3j+;NWCQ{y zg>cRcBY}}Mor++USk}YJI2~*7YHYTq-~1X5GYT6qz#deHdp{{Uyx#D` z%O!)JGl!p_egUF&=e8+FuOjXQD!^#s-XF#if%Rm|cKOyC$9P(>1|mVHBXn2|&F_UA zQhNcJwWQ>BO7st4>zQYtC-<)30@3ixx10=};DZ1nD3Ref89(cgtLaeWKZ#Q&B40yG za*_?G4n9wU${yW~w3GTt`DG)>a{tu}qFCDhW?? zZl%ko&A0lR8bjo;eA&tcFLQGhjsPP2K(3f1Ezc}TVW9ywj2StsrZ<>C&gU9Kxs9Q% zfU4Zy1-JJWJ2` z=EYjvS%!rA;l1?k2@l9od5~V2qAVECj;tr!3?I0}oLQGc>YzSO4xj^2c&n3GU~`7kPIHRY7mfI* zILb;5`kB)R&S*d8GXB~epE4a0Y`MGY#*Q5nf2N5TG^T26oU}x_C&-K;UUBo3iD|-W zCrWfSTxuIqRsKFvKfle~5(Acsjcy~fAiP6|0GCrNh;2KLO^?IC0I(x{4ZsKj>ihG% zk7U|=s$+R2znW{wP)Sx4;+<-LP>#CQQo&CpPDqEP&3LYFAT<0Yb{HlpRBCE?_ZK}6h_M-E7Sb8+n3VtLCM$@zu1GqJNc6}6lyrx#>4!5P*$%r-tr?dGrq{IYQGq2T_-*CKf`Ux>B0XuB`t6X# zc1L9-KhQaSh7P6n8wuxUl|T5&a<~Jjda1m(e7=r5e6#y>Yp*1x2@(gEF$#6Lh zKW?Fi0M>}3m}kWhqi9RgwpP}tySQ%ubs=NFk37SiEIM_0%;^${vti`l3Kp6CS@oc= zJ+upYUEQ?H%$hin zmenHq5G=09FxfCg0*2iYWQ8;JmV>_;Hhr>1A%bS`J9N9BeA9o&KbP=3S-Ld$?zramZG)d zdIHCah8;$c^C*n9=n}UJ{K}7l3oV8Q-UdHsz_-d*;N|xGGEOA z!j5|Bg@)2!$KRQ|^F^zRZpuM<)i_oWyWf7VOuKqH)HwY+55N-m-qoPR%#KMN_QR3I z@F1gmc73;RtL$eqTr*^7aY=IAol(v3;h&xLTWJF(a@5X6t+GK|Yl-TJNNFMJEzCOX zbnIsjVND1=0~&_>+LT@pVbV1OOAD~ zp(Wv%G`|vSwn7{9FYb)GZ@fep06Wv3e%jx>c{vX)MR2;fOPLfhuii9ncJQP|i_5q@ z-#K*ncN~dHKY+Z*pS_80y|Gr75V5TL|J)=DGi6{l<{7aHrRq?1G<;wl_+Fo03_iUn zVB^f4>oCW4#PM+APMy`{9x$&83XrbB?icS<35L(rmRxQU<)P#3M#kvU9Z$?nG;vke zV){Wk%JSP>^w9sRI}J)*rL1ZI>afyixigYWLkE82BrS$lRh`$O?{JYbAG#$uC8w81GaU z&MCF5=(Y~sb<{Sn{1jEO&WhT8fQ$p@BVOzO9m$@KvONlq-%Y=La%|!Ts3M5_c(UWi z2%S(9DEZw##HIxKHAtb4v^_(~Fdje_bfp%>92%9bM^o+ek?YMzn%vvN#f{qvBlhfh z?hb?@-aRU6Ts17{?7636`btB+`emzLrK=R!rof5^DI2HgRb3!oX@2#l^RmG-!WaP0 z)BAwR1usz1^S#9_rggWYv9yDxREdh^@#1+o3Jo-F(Tk-13JSW~cZ7idpofpjrc#eA zywh;}2km1G(_DAbz6l;oFseA>jnSvvDeSK1fkaoCG>9|y62-XY*7CWU>fRQO?u(fp zID%|eR|$&en1K+DnUUfn*A{-Fc2%X0?{Qrf-uo{9&i%kDFKQ6Nk06~ueQ3e4alkxy zZElW9F(Y^r4;3;;+o`~y*`9Uz12RD+ry7t?R}Rn{I1sWyn^tX;Mf~dIMUsgT4x8 z1vhbz#(hLDP(MM<;QC40=h0XkHG7}94t#A_Qu}D6P=qa3gH{brL*$iY&z9NsQL$mT@zhr>1{IZ=ZzJ-s!6Cr1VpW z(4rauu6fg>M^VnNbF2-LfGt$RM{qc;e+DhwW&~0}%2nQ7Zf7Tp^KiPp1x9!i*@ptc?V5o>J>U3^HM z;&sx`lOt$XLY3sJ+CnxLS|cL1VG85I9=>_Gij~h6i&U3i;C~GL-KImlUGIRR3zN~F z5vuYJ310UnebrCiC;gBTLKAcl`^i93hUg(gvMDEKh+*)m!2{96bxtWcDH^}j&2w7z zx^IT>$Epe1WQMHlZFuS-u+aH5+}RELx9)xyqDQcO8rGcu)zg!WLLB4QT;g-=1Obcti^XW4>N+5 zZh=YF_+!nr=c9kpTRL4?r{mpvdw$b@!=sy7*N9euE?MYvk)0y;!;-QR+UY7l!v60dyL|>D^Ny>)nWHUqF_IOfIPA(;|Ts>Vz`e7&@?~*|GVm=+1V*N zyY~KXC+2@1uvM|Sl_5_s#IN`5j=P7{h2)0n<=4s|1n4rpRJ|K_O#coUmiOg5qeptI z=pOAD`Tc53CX}|uveCwUR+hVjxT&I3+A$*briou3|FJM9J8aT&EMyoG=|LH+`}%T7 zXcWOGdJ6eq664=(Jgq61(~W~|wi<>Em{(gt()DI+>HE56KQbuK?WK;=4?B#zq&5gG z?yv|sejsLXX2rmbj@rxdHDCX_L4PGCpweZ8X0GB~w@xM`dy%hP*V5L*8R*rRu)RjX zsyr7CS$JE-w2ran8c)FND;aZTFqIqfacep#JZBdTbpN{^<8VR0HkuRxmYHz4h`OkeW5whJ? zDS<=i*{N8g20IJ=p)Y*(w<{L1GRk>WU{iFDso23-Cz#d4BkTaMs?LSt4~rLXDWO}! zv9KnAvyY!VO&HgZleSYUxKXCQru6Z%{bK1QU1U`hF^V5`oV013;V*|fN+`zdGTZo+ zyeOJ$P8-LVNi;7{!>l7ZX(X%;1-IFwa~sS(*n2@7=9K!`ds^@zt@PVt+xwrxY3UsW z-((A4J$V^kdFV3vr8qpYZeCAN4uU#Asob~FOFa<3MvPsbLU?cNyvQq^v-9dc2+hl` zJ9NEUF0_c;{5`j`-mCB`x_54IfBkFvar47V!Txz2{NXugbiOa4Xe|Sti&t*-1Ch4p zhGWjtS6chs=>(&xTcpqaxO9W<*G^$h&rY%H=6ujh)%f^p>YzJ{i0imC8G&+E5R=*Bt;{F*EK_#{J} zNl)5%wYyVjrm~i3Wn~<=-seBM;eEA4+V9t;v<|cGC9g{`(6HX)lP-5mtJzg3k~T=> z9LRdwHSA(XfzM!)1G#(4kcldA@rMu-AK(AmKt#cV?ILpFTpFJ};|G-?tsHruTJ3gV zLiuEghs5#1qqHl6zA>?%W0f@_v0xW6*Tsuy7fiPDXy;3H^)Wm?PCz4C%VhLDnUQHg z3~F9JGKz?AA3}e7RU_{BS=dGZg z?z--}1#g0wrLrfRR+XH1{XbWwbVyX40oszT>lL~iL&QI(1H&vuAe&ETR(FJ7Y=1v} zLw^OJ(RoZGTpPj^<94qJRF3x<{Ehkcq0?$ zqhdk=zamfK7wc7QAr#k+HOb(uWfMEUv-oe}xt>yq0cngH*(KChaD%scd^)m&C|bWd z=Xa%5aVD)C%f3KHz;6am!#l|?gba@SF78YTU{KHY@5t$49UQL7$$trNs4Ed|BlYiM zH+-?}Q`2Eg7}k2;=2|a^6Su3H8LRI#6_$^i^w6&MY;GdnmJ1(dGriuqYPo7cUHk(@ z?;Oz4(|KLZuti=C_6K)3a*1P8X1H%DZK?zyzfV(k1w1$8XKoeN%v0}qXq&z?`4y0| zVtq^8HPzUpbpVa#F8k2H+jssNHX#t1@2nk6L-WYGIH^~AJc5r{qr`L7*QAeq zUruvXT>*5>9r~Q$_uUWt8?(#*@V!RLRpGJ6W}@+#J;xNSl{g8 z9rO_BZ{WPmkW=I}@vc+{2+ZZcIzRDtyV&p(C1Q5O{RCA{Zx6?o{@y~R6u09ck4n`{ zg^p^g`vo7PlssJvw=r1lqsnWa=}LkcTO?^QZB|Ru5;SpgYkph(w{$D%oAevNP3OZ8 z(3;;hxHN!$B-!pp6b5Kjpo z>rKfso66Wvv(J^5(~S4puM0b{Hdy0Ge*76KVWmIM^K-UmC3W&y3}7(dgC^rN{t3=eW-jKURZX-FruKz;2qv(u4|Xd;#;U?S3me}x_!sZv)X zOC%-9w5dgLL0TLuwUQ_+OctT`m?eTDs%c<48pS#h`4nk^)>f*nq%3N4ZQ;z$oVu~C zw;DZ^W2;>lLd7(J!JZj{%t zxeju=cyZh@HusVY#S7K+p-!XFM~C8M2}m{nt|kZ~>*PXD9c7z&YNL%~TII}`s#YP+ z;l*i%vq?>C16Y_xrt*h-Ceg!)&tc%fq7Z zfqeqi96*#FbsKSfJE#hgSZS6eDVP&8Mk71nA3}O~Wc{k)Q)PQcsVX^1>C0wv!BNuB zuF=y?_2Hwz^Uy^y&gS+yPznPmH1h@R5%`{9n@e)urGV6s(>U!Yi%qxCd-^c*)wm=b zl6UEkT-)fx9a+K_-{l>lYk`+;5)u65%7X?^>Zt~aE$j{+qL-Jng?BUv`DVm9!|w-3 zh2kpAlaf>R0t9oe!3Vtbdw0`aIcp&oG6>bMtYL~UkthAiD&q?ih+RLr%xBm&^^13>6|7iRqh~P(}sYr|xgCYo%SI10Jfn?n$eNI%0aV zJlb=7%XerpCvFj*^84;NbEIRZF_46vdX}Y1@wy52;a$$&TXu$rzT& zi0f0xM$J@7aNZtzjpuoU@@YB|I7~TDQm)$0-Mm9JfFY1M4%YD_ViKTzh}g@Z*eKm( zmrWG68g;Wq_+k+|XdcVlFF7anHPHooQSn4cY~#Ws0&+-Z#q(}!F_FJ{#8cFQR5!IA ztO$o=F}&c-XU8`1s1qK6`N}^yzs~D*yJeDC(VjXxTroNio*G3|7@hEEKH%(l(6{x$ zgEDuHr&TN3JZ=HQ3x!VFv%0B($J0#Kxw%b{$CefOfjc96d*{jvi1p0N`FZc*ah%SD ze|V|%d1+cT9r9@hLA0aCTUcc)R=6YLcI8W;}fsT~Qr5m5MUZ5ln9 zGZ~l2>WcV1w&MFxhV~9#Zji0n0KJmU4#Y)!R&x0nR0!)?8d-CBhd8%mLBIS~7Rw~TVg z5$TBIYE2NROwECkw-=U997%jzQ7OaMCnf_dO2S#u@0ODiFJm$ny>o@K^Nwj)ZxT*6 z55V;YXAdFJ(r0$H7E}3qN+r8Rr)Xa?EWhbYWT$e)0&Jqr>dz|wtYKt;c~f2S;F!mt zq(8h&2H%8^=+lJ=K@w#`J2t;x);$N9J( zFUx)PX(7?C)p6oWqIj%oWKQ{-9I)QQfO0Tm!X6J6ru8e9ORe2)a>_`__)%1dUP4P3fJ+c}=E`}JF=n!50=TdU4>r_w1VYS~?l6Sy*CzxW~B%%$P3 zKdMi8^Fw1yM?j8Xj!U^Tmy3THrb=ZM+n67bj!{Qe4Ps@$!UdEcJ@K_2zjG-js7+co zJ=b2tW|)#kfzMCZ8zWKc|Aeze9WGLGv(mSm>V^T&8oVzeQ-WKg#^ZU+*=UZDO6WxJ zo-r`s8CzpAUnjho@{2vXZ#CLUScm%rGw(6+!mR%%O}`D8Rk~?kt1p*=)OPaXOUNU0 zp$MFah~!vtfvc_EQZhR-7aV32y;s$47JbrOah6Wn6ZXK3cj>ao*gxY9F4GL3X`WNN zlb9p-67cO6D5iN5jp&oUm3kICcnUCnXyyGtg)mUYKwTv$-*+s&Z@9VurT^`kxB}qD z)lRMr%YpTSOxLdHmn$N~<%J2e23j)>r3M#0z#6ZnGxI0UCd>9Bd`k780x-v1&wjAS z;NyaxMj)vYtvz@~>L3oacChh%uqeLW)hxw0@MT=9Yjr{KVAO}gA~b>eA$GdnOfw8# z^Xth7DDCArV#Es&$RfE)+*AC{{sZPo+1}#34g!0Tu*|r7HsEssJUaGX;B1*qM~3jk z(`Jc#N|IS);J^)8&wk``b*5={Ie3^CL%B5Gnh1i;49Y|DMc)xHv|-N5t2_V9)a$?cXH;1 z(dtQB{cyPNXEdsc0#!&9H)FvzF1>OX9q#%p{gjrHc8gWr)Cu!3t*~O9n5cXZ8D*`H za(XX?@@nikUs#20LaRuI*dGR}qUMF>?8!)I<~T_?u01P@*$PnqSeAxW_)ElLZ_<$G z(pr+H$+GwMTiYR9$7Yn$aMEt0y2NVNRjTy-c!0qb$O|9%rF>xggH_$O1%TkN`0oHE z9u(`9lb;`}%jw`X)R}6Ut-3Bix1kRC9}J984VpheOkh_ivVxB)^Ng+> zo9LFE(rwsFJT%fUzsp@bpIp(#t&QiPfE0)?#i-_a_!S#L^oorpc|=VEj&_ITO&+Uc zQa8JCyQc|SJUmJk-psA*ipuR#F?KNyIx{kw?22qA^ckM8 z_^4e2MuO9@HQT;ij7Ji4KTD8f@E^16o1pNg0CaBnrk_;()?m`4|FW>synu~G6C=%9U!9u6fGN4!D>q3E;Ko+-MoZ=i8>Iwq!re2g-| zOZ=O8v~Fx2G#)}_Oa&dl-s)Bzdcjhqrq^gvr*Pls?#t2h<<3EKe}zt3>%;Tq>R;bd z)ejkGNM^#o9b;wO_vBMGUmSGNg^5#=$x!2JC50*0KVBHF#(2VF94rzuynQ|KAW@Ze zg)$MDcbX$M!n;qek&<0vVr|=-mLx=6UoOnpa3VD$4_^>qeO^x%qG9ZLSJ+(l{oK~3 z#d9!w7YX;yE@-u=qJpf4^KweKu3*ATkDAJEAB>Z_f?_ms%vbh}vVdSh0C4t&C!`cb~mmnLFI~^%X(7B=lzoG(&UPYmP0**h3>lk!O zbtDEy{psElU1fjuUgP>Dy4qnpDsD9@4&UGgP;ugw2i&stPWn@EeYW=0@D7*cOW#o_YX>~nf#lrA}>IvTn_o$`n;&y4Py_J*cDoDD5VkqQgB?YJ^$zo7%J>_ zWxO>UlOtajTz{cCIwv4QY*(;)BC&eXS-Jx$58Yz?0R`n-z11jm`AtQRnCc%f32i3g z4u;K!DgZTC5l&uGtS@|UeG;Rt3hY)~>0n9i9-R$kV5EFgmPFRN_@u}E!z}zkBC;sm zb+T+0Hs(x-f=qRaX29>00ciAT+JoO2PLs#q92#(LL=PM#QV5Pxjgj4!rpuY=iQ;J0 zIs5b(kL_sC*MCJ0gxBU1VGa);m0{b}5tlUl2`j~)YqmML@VC?5m8y=cf$_w6mC4Pw ztMhe+iQr1!dkm)?WuYEM1Brp0ycB**&wO*M)&CY@$|P2TjOL+-u>jVuf+kZxoz#7E zAb4bbob~a8P`R2lQYkN^JAU`~?(EX>P0PrdP&|Leg-81TAeBWX5QmwN?rGGV4N^MK zjCZe%Dp;6>S&E#JIzE`M4RK?ziEJ5#rWe5aV<8#DN&Om8>XoY!_D8EOVLce)!V^E< zKPu9ruzOKN(2-|j+>(W)9&h?7`SZJ%MMjd(J6;FoI-bZ|PoJbn%5N8r>z=92OG*9& z6PKzqm+3tkKlJ_|ggUYRn(?f3ky*P${G>iI%5ddkz2Y^<^Lyx4KLIIb=svD6Q}eP> zd%-r==5F)yB*@)tU0Um<7O#$=x0*lHsC6HNRCVH$0cZP=-CJE>eGNLF%Q@c+dIsr6 zx6bDbMJdI(d*$WuDN#S;9hHLWONzj2q8uyt%4+E@>lWw_VnbuR{EE)t2%j8ptA2_; z3hRE+`_neo?0$ZI7By1<{@-lgd2HCZNXn@uSNp?FO*E!tp|JJ8qCo8h%&J^;bIgp9 z$KeF&mpLi`ow6a{9ligXM)#f#uV`;p$8%m^6{ar4mgac)J*=KURJ(5Qv!L#&y0`LJ zThR%ePOCjuXC=-?4u>k58?F$YK&(o)^SUJ-1j@TR=V09-wsi3Eu%^C}Ew86otJZ|$ zlucf>tZpmt3SCJVh7@y7oI<`D{;1cKQyr^ZP(H!ekL!%>MtZyn#<|0F0S8j-z*)i= zvd$+7Lb6>9T$Cix2!R(mzeYIib7y%Oqmdytsp+WLj3xollNXe=4NogkybYi!1uv*{ zV~X?9PXQM;ICO|L=ruy7GlMMSCYE&t>goj#{J@IqFyEb$k5eV+AIybmx%30FvX0b& z;3amvJVSg*@7*`|zj;HpchDb7cS?p!wKRJdAlOpTt?blm<_}$yTZ6QJ@^AvrE=w>? z==s2t9s9VpB8^gqSb;8tV38(ulOUfEma_hJRjBA-W8*>~ffM$Ufui>&%TE9sS?jQ|r$y92Aiz+b_+V9I-P_9>`JVs~Ok4N3iKwAW6O7-4?ym)U(%2?msd)EGyD~VpC`@p%9Wi5&& zqw_E*>(VO^^l{^r;Z}Elwe{Zh9(O98e=7ae1pEUW{{S&yaN?{kq#HC(Jr@5dJYFXJ zlne5kNsGp8scK0zVRlmau(S65^4mOUzjp?ehkw`uKK~w2)Z-l|{v18TIzIku=*2rR zur&bUA-j0RL_IZLTi+@AkgnZhwN~nEqm_CM!e`z$IQDOzG}urBM%p%I zxq|cLDi61p!!w>aIb_UmS^+BM0MxBMOB~I;3K1puoxqDDu4JBxHYE23k0qiniDNS< z>N{Rp08GGXv3hdq8xH9Vc$3k&RASG+sT+z8PG*Je8r{x?b81GrYR!tweWKoAclPOO zt+*mfme45Vg9jCCPJPo9;Pw|ym%jGsBR5HjHwp#ig1Fi##Tm>ATQwN7M3quVRAAuD zQ+Azov_=FZ=e%!J-~5@pWT*&i89F4}nns3dmCf;g0MsWj5=Gq8GZGiw4{rKnbI-rD zyV>1sUH7|Ch#iLg={;h_Mji1{i%q??f=Lpec6;_zMh-DGPLP&Yq5a(Jf!h)5Bqd6& zR%Qa|sAL8?)V;$^elcFfP;RwkZ~rW{;m%71M}Yr$76kb1fB3TluxKi0&0Ta4pg_1a z8T?OGd@COO$nAmHKD=GE%v5zy9oa%$RQcz$?qlD6a>Y0^U)&1uknKq(oc@lf0I(TW z_}tIa>MGvGc0A`x(C01(RH$GJ>Ckz2Jw9=kb=AKC`m0AKV<{-8Vclo^ZnS4fcii(y z!GpTzMZsfu97M3StogNsK*PhG+YbbC)&_o|8wA&!;5VI)f9m@g7^uJ>qZbav4X^7J zg-!487ik1(@V_o?? zrE0pRk=v0w;CxIHbV; z(w?k5D#;mi9}ul_BOrsCtodmse7~+6*q8=tx+Az5jJ-K@2{3l0b*XwHDZF1 zXG%>C8-CYd2m1BOZ*he0tE7!(=I0Gh6=>{yah;>ShWS7NtA2o`rw+5&?sV_=(5T#sMV_tg6-w*l1MR6qsKyWMRW2!^z=<>%Kns# zcCbTs4cvbo&-P$4Hp$#gdvDl4M45}aT%w=yVfAaOg&eOn8+slQ5q5mbJi&40uY}}t z?1L&=-L z>||uAGRsaX3G*ZA80anaISM;YGCk%?$1&Q-H`h8|b9NFQP%i>(dpNOj4w~-FaoRD| zFhkYl1qvTf6EuHRy27b9$G+EyaToVi>WC{~`YwNHq=JdiL^BZUR|m8O>#g*Xxy{m< zr=*!nP|E!Y{f5S{}Ho&i|n%)i}Q97I4#nbsM=GRtx$j9|8d-(oKkbdvSFR+e5 zSCF2gfUB@MPE8nb3$a`*jMRjSo<%OB9p~`r3Y^bhr{q7xB9@^G0@4a%06xA$;}W6p zIUlO_S^NleYeufjT6IF@t3$~Ikg}_G(aXs<+i6S*(K$!LwxC(!Lc)RECN>KcR6{Lo ztt^3=p02WlbF9dyxo~)8H)?ZreikJcFRsdxjuG;lLR05(CDw4nI(}%PGAx*K37Y8k3X*K{=CKi zo0SvNwB4BEOhrR5?hu@9txMCbVT# zwinj&hc1xnB3K!=1h^l3-gpj5WNhm#9)AS2Z+m<>4yxkwdjL_LLm%!FFr9n1vesv6 zuhnzB@NB$j(pIdz?*WPZT+gPv*49p=RoQ*$FN`x@gliL2?cuK1_UB_%7YSuad_>Qu zt)2~SVztjYZj9+`4~DF-SJO^l2dlVk2V|q)v%GF7&m#4K60*1F)3a4MQLt$;Bhrgh zAOD!cr8HSEYoEm~%dW^_u%ZMQC!-~E;p7eHDh*$6>1&7in}5oxYc(xe_lQ_@{Km(1 z^iJes7mabH4xUD0`^)p|3Bt9B>r}3~|FR7AuWyn=G}8wfcVO+}UK*LGj5p%gVea7E z$nE*7(gAUFdO2yts)i7Wd(l`a&VPboRN?-?Y0r)ur|~Br?`AY=w`mr zN=tO&s!jCfPhE`wU(7R8qO92!{cmk=OjJzrfGw-F!u}_U$59jl#L~Ztz6NpES@c~_ zfHl_$pu&b`8rGt<>%EoCpHnaqg~>do@%LlbJ!}KYf5n3*Zlh)w*IZ!-u0?teTh}Uoyor@wSEkiKBZ|_bf5fq;zXx^Qw!NYIM@gqVC*UtR?xCwW{{(~dDr%9 z+{*ST5RwrgEO0CHK1MWKM#_;1uaNBm*V#HR6YPopT>y74h1@hm*ZcRpviY72PK?%W z7!m($Q0gouqJVY*(<@8KF@m)OUV}I)t{Rw;>YbfuHVnq&oVT2E!^0n0efY4gRqJj5 zBL_Wus4xK~_r*}CCx>wqA3_{d@i{l;r~(3-IK_Us&q26|2`kkyiXLBS5zgn(8k zF&d%q)Se9$>sxwGYm#EOIL!3sa_gU;b0!@New}4D;4o7y}rt zjMzG_&LM}41=6w15=E}5{0+@!Vy8a!g1IZWZW~HCl6N{WUH)_6qnV=mFQZII4V^wrE4h)M$}B?)K}w6dfrD7yX<-;s*f=>Sgz(Ko9m>=|I1tX zl6#j+UwYr@?qfpPSt91CQh%HY&g0eqcUrC0)x~dG)?hAxcH%!=fSF)N=R4}hBPQy3 znqwluFR%YYUDYbDZVyhnMCrD2xC;b&{?%*!EV4B>;}hOpD~;n?P!{}Pv|r*2BYIt9 zcvUSeQZsM$PHv9YOn)oL63AwCY?%^vW(Z~l8trPpBcj~86ANO49U2|W-5&<8>$$Wf z9Iqe&PoTX0Fa|>ZYcZjyxy2$psnhoL05tXfeSS=LK7Acu?3xOkKk`hLSXf3d2W<)` zuN(Ep2oF)Z725RhBnWmzdutx;%WD|!ahY~>^UsT$Psmsf>REP>hD-(jP2 z{VIMPsBj#0b1~}HaDC=Zs|ykj`ZrFFF9^(TmMwOXCJ)kG?$`EL3Do`m8%VVu&p9_i zHY`x0aB7}?1+~ng(sUIOY;VL=@L>UQ&@!<>@60szD^)-3%)@w&I#5CI6{IaH9CAw{ za}Sb~xnC{SaaQo4->ub4et07gJ(7m1!w$5X{*D`@)OZsmLVGr4_`9DHM<`t9 zOcmKHZh7$8mW?8gf03oRLn?-nDm%%w-5E2u!`5BO;I`_J;c9ZM zt6k!YX%^UDovC*<9pyzkJ+o{wvdWu?KKVT@&d%jZ%e(`ziD*!Chich836% z&KQM+7L{|Xfa#}RuvgpCKY&{^oOlCVWpk-#Zox?jk--LyhUMlDdC+<;6&P?Q2V+PI z>1|RdMPrw=&&4ZDP~BDDRKd|H>dx;Z<{xOTI#V7!Lw0OoH?yk7bL-{KxL zI{8*I9~Bm^b1O}fd_nCa>9x|L{+xol&Ko<8l@kBo-Gk8h-b2 z2O##8_ax+{dw1{nk)9_=Xgm7bU_I zlfLXBQ9;Jg17KC$DdgF~}_64t^NF>gF-Nl@rAi1b;rh zl@s)TmlHE<)fD1Kefu#;bK~bSWI@s}!PBC^tOy;WOy1;-ucYyvceJsupo!qAWAJ5OH+v1%eQd4)xR5WD zFhGz!@(pNOT0_{d{qF5ieg#oCKCUBYM*p0 z7Wt>P|BWZNXEBYJpu+!ukLwkX0z*0#eD#dcOD(&VAxm z{=2LlO3WJ?(B_5*kr!wE`j>65W#M%CheQgtu=txq>RJ5^J{yMYFF68N^Pd!}t+U#% zxJnAIEfj)n){qdiz|%9mhYg8~p_&Tqko(@&5UF zk$q$NnGz1DfW{)-3DPZ?CMJHWHF>a@z60@p-i!EyJ`Tbq9!age8Ry4;(FvpcZ+-Xn zixe1wO%HcX4Nu@_))ZXb{TuQ(4^cHhchfzj$)kUsS$_ic|Ab8kam#)jsC^0#OX3GQ zPU_+qq3a7Oe8FFI(N=Tuz*gOWI^*q4VEcs~yz(o+G{q|}3j}KTFXqJf>92swZGTd7 z%8rg>&0WE6%@zqev94f;b(0SkS6Lg3uq#%#`0c+@2Gk|ge!XxR^3+mtdGwiRBlI(( zG4k`|>k2WlJ;uxuR~B2b*H5t3+;}&s)kYVvkM#i_EPb9b_okWr23i|+cI!!LZ^j;* zXey?4YsmZeTL|O*BK=h*a*RKkE}Fg${A~@Hk2<*uYds-UK5yMBPww!Z!;(-$J65USH?UOXZURgt2` z1N2Fk8`R1)G4f0E+EWr9z|S8w4mQEf9s;U38xaY*Pv@$nt_UBAP#oK=uSvuP6Ql5y za!Axv3Fqcd?Xu~TloL?yvLj2G_-Yz-M=iNUk*>lcyzqjNmKD0@43asn{LH%)v&wsOus*HkQ1E?J5dpuY`gOW6f8I%ZE%zZoXbm zj+8iYJ{1%M?3lrSN2LlX<96vXZs$M*y*5ohO115s*b}Jk$S{dv7!69+Ft4)+S;Aeh zopXpsqB5-R6N_Qu&}+heN6dN8DBFH=DMCl(H+mrMs6Z%GdQ6n_C+=Ui%8qGIDRVe2 z#o&#tdR+ROt#a4$m*Yqc$Ke@})VL9YY7N0OTq#bTM5vxb!<6d5jr$~CGTf38n~5e! zc%HK1Mlyh~W{Z!zyS=);`e1D(kWzTS0Y4QtW58xL7#hO}6}B4K-X6)%W=b3ldRPSf zejATJzS`|TFAFc9j%Q2cRZ@-!uJ(yFQvX8f57P-B9!YB-K0w?`t|ZuEL_J$n+dHoQ z>@CZI>h$Nn=P7lg_uTmQ$|MT2-TnEfcN~I#$=bUoEPRc!W;OC&*|10}AddnAV!)V`sNN88B^ zXVf=^62*#gA-wi6&l-A>ki4iV`r!4%;<7073vilbP_##j>IX4fwkCe9k6skhw^e$Q z&GNE*d{;kw57z1=dppxGK6B&mrl)VmbshkbvrZ4UWThYriuJ$YQWpXW4T3y-hG>!J7qM^%uFfy3x4cyBu?e({Nu_p%I!Z;Y zF4vf<=@F(@@cG(u)1z*qUGhp6CNO=rt~o*nVJs(7qq>&@Z|60I%O+>Dtgavki_9*K z^njZs^G=A(GeNjWc5a-0cdi-4ThN?jgO(0EuBrE)T?q5u8_Tc!zODzcAeWqP@bC_y znn9RAKN$T434Tf-w4w$W3iDe*oRA?$+8J|x4qFpo`gH}1hJh|*0AE)}+$i{)ZHism zy`7Z5>CW!0VADX&QZsT!=NYE{)?j=Qz0Fbte|~$>ItGLA>JhO3a^JL|x5Qcq7Max! zHEM;(2rb)!6G6@*iMH>m3|0LwFj&%muh9}CD!rH?bMgj>eLB+TnVmZSMeBmlA0uJg z6Tq8#(-l&(Yh6|+aYjayf63pG`kfZ744t)s5g4Cn-Wmdb6oTYDBe2bpV5Ei9^SWAy z61g?X9#`E;W+I1^`;6;aelBN{9LYn9643B)FVmeRNco4nH zj%JGj{i-d>@e49NgHvr>AS6=>dIs%8>ebMsGi78`gbgDM$14M1k+*C`#4?LKeBHTW z%*^ae@_BYyR4{7nts&K07qc00*~BeRnw6BVL*wqG%}gH=pqn+lWsVafX`6Sxjp%+g zVI)K{!(Ahd32B(hw;ot$j_s6M_1m$GLRDJfF0-k)R@9LE+6BU>DeJi=Z|zbQM|j4L z4zl9cmm%t$jAeW6ct>F0mUqbA%SzJNaL+Dz6^w{W3RotRS40#qDEuMJj@z~_ChL~t z-3W7L=6gfGOg&Sq6A%Wpkh+)<<%~0hMR%+ck*TM@JEQ0!^?NVM6SYTKTRCJtl4TG~ zszZR+C;EKDYxp{J>Gk$3Lb&Ew$DZ|^vLI10C9pl^!4w^Gcv zBfo$m^Vv;jAP;A?rA|>c_rs zdctc#@IVBUQgAniq`5#M-kG{4m9E2(AuYY({5%$4hu8A<-S46F^`85X^okn%4 zh;RGO=*0S?-BAS2DG|!Jl5B@ygHl!s-yqTE>RA~l{byZWbdY^hEb>zfI=j8sK!zYU zugECKlf+x+Ee$uN zDJ@8McgH#udITgIpCOq;e}Qo^c`FzRO5YR^CSnfqU$9p9b?1*iSC95pMYMx5yqp$q zzX3lt9LUqtXUAVXfAjmFy?Ar_>L-t%-*WPOX=7?46G|qs)HO(Z@?*<16o|mby9Hx>*mxJee_^KX_9OlO*a*RYK>2+~Nb>2iu87nHO#XT` zL(Wjv(;!Nk=0nDuo!1$gG5fWr7gQyD6Qk~U=HaMs5%1XEt;4;{uRL7Mx^58QzMt?Q z-x~6Y#~e44fIq*z&ijAKIBspA|No?+zX5JF(IR1bZ|}W>#i2Rx(C}6>c#BYSNNYya zqw9#BR-^sk6Lfn18rpIoHvPs#=IfB}M*^T9-Ch9Bnm5*fo>F+zZUv2>R~HxNo7+mp z8C+;A{xFLWeH4$f$_(uB2OItO9*kKyme)dHh?{Pm6|W5@)0Aqu_(ub8)^2sO zGw?X`(ZG9Su_O55rMEn6ZpZ%AvY{kgdzDi}tGucCNr`lo?n61t4-V~^0VT`0$jJAm z|5MNO`)UQJ#h^Ak0m@2VVikxFDz^CBN;f|{n|@`Mz;DC!v~Zw*4KljN+aY#kRlQxW zZs4;%qJ2>?Z*L;ftvE6A*$byOY%-lFU8{0ID);*K_{Q|+Cij%SAH9r&#WwdU{yAn+W}q`G^llS zNd^MrEgajletW&jZ#C}`4aA>oD)vP&eOsj`84a+ET|Px9FFMr?#rNEH8J(AL4N}g>zS~C zx(B3CmTLqUCJ8>RY6_BQy?6$tV~vC~yVV>-bJB+E2Fsi9 z51;_^M)UJs-6&yv(T>eX3_L(uQZl3N0-5AQPUgvumH64RaOq`Hx9hAlHmhjDe#H~N z6*0eAfq1WR+)g+Ir z`{dTVDiJU*_)%0+E%A1aM5ck1HrlUdMTv5CKFy2Eh`8Q@YaL+W-00+Q8kuB%Ge!ic zwNT2y?}MELKauN_14^2&k0)Hz?p)l?*B~U2n!^A^6vg+4R&R=nWd`($R>%MfguTdg zd3~MU3h%MuGm~cz0+Fx_>$DqB+)5Q3wzrIel5wHibj$ z*2}!+0L;ccj)#5@1hPl4-`@(RE(3}Q8R=h4#^d^;xvfa@3)X?epa+HV>j)qPEHh&^ zL#1Y8d%NvX=3+AEJLU^okvS7 z)iCzAOwM!y6Xy(WnuW3ahR=*AXwWsj;MtesH)Nl`TNiD(W(}6T-ysH!HuIzrYMA))05N;%*I&R2+K2;nRkL3vH`^&(ibU{F_!|2I&BGC3j2 z(`-7=MG^eJ06n+f<7=!CW2e4urDo#lIvvv2KleoFXy1&u4F)3%(rq7t+btF0&thur z{awK3_ow-4@%fvIC(qAjwr_yHE2D9X5U*<@WAkFE;c zVys{~w)bCm{=Z?;e*WOpq(4~(^_qWqEyb zhTvA{e;tV#auMPZv-tgI`nh~|wmh$HDFbiZ1Q+xcPaP;&EHAUVKuT~*s%=e6%Qy4? zjiVY|D3lE5hnW4I0vtB{;NI;ozSt&a{voa%-v&Xq-s3r3kKP~YTXG?P{*Bx18@XU` zeJ#QTA8Loc@#*|V%y5+7f6lCMl^N|=(ZfcsYHm3oXKA{1tmSclyz!9f!m|n2P?V{9$d8L4`=YVWEuYa|2_6E!iZx2 zLVDa*v7WrQ74$Wp=tj|a>K|@iK)F3(_tXHcN$dN_)X2s-I1N=HF^?f+m zITW`{u-}f$dlpl4(a$mgZy`XlLAQgf+$B`V|65lj8PAZhecnV9&%@>skwxz^_Ro@` zbAFq}^=FN}hl21JdoO-}!Ro#8^L-7nZu0IBZ!oF1<;~kO!jJTtGdj$F8ROb{6;#fs}&hLa)P6#?Sxin#?PyZ3mWg~C9RudaNX?vhfnP9Q>}SYvKd@@ zhn)&FJbg02nfZ7+&yWGELLd#z{B$lW_AG%Kbbpjhr}?VoL9Ul&PG-1JB|&pvQPcX0 zB8HDbXwntOQ~5l*EJUAV=|?l7_8Ir)YNSV0a6cjT3s!5E)=iZrK6%& zga(mKNNTgGArSq4y@1zGXl7-@3{Z*Nk(t>AwjrddzQ~r$8Z@9REsJHIsdgH(u?nop zMqwgFJ|*k1HK=%DR>I!Z?V!2MGw40hjo@NQV>J0MTGNXZ(3ICBvt&}$G#whv6m^Hy zNc|SDnbw)&k$i13f8*mfLuRXA=al?kQj(@SDH5p_%QnA&t$;&Fs|AgZjPsuYWPn3c zFfz+)mZU*Zya~dKd`8>`#;5V0Uu#($ZW>tF(IIc6}BkT##OCK0}& zcU9HV_i!3kc~?;ti$y*w$Y-Ktnn{&{`ecJ4+tx3Go-UU7=mQ1$>yFf$oA_XtWD^v* z&Jg8$@joDGGQ4~?R%A$*k={+06=e|Vr%@d8UI>eU3{e=S22kJ3*Nv6kRSion$%tjg z`O%(4_Z!d0dM*VUHS_>85SZB?I`u7s4|7_~!djxlc*BbxG z>-&+{m;Ml_|0A!@cK-izukQnN_3ivZfs+>JX5u}!Pu;SKe9rDgU9B(XDU!p+-|3R> z7HeMGi=?o5p~}Y`Vloq~)~jkcxL^gYZDhqv`P$eW;StQDwCTNiTkllm%fc_do&~dV zC1kxSNC9*`7uDxRiGAHZonGze(wM3mVcN4Lxg?4biPB~D_QSDo`UNh1!*yOwM{MycY~I0P?lKVM>M7f zDKL{=u(9{wLn@x>RKUv83PJ%V_nH^|DlAKq*H=lu4U8vo&dQ9Q8dg_LchtajU{XOZ z;t;GEH3a)-ZH@;R+U7$SzyI<*Cc7%&>#FA-nH2p?*!Grle*5Wpod>=^k9|8sV=g91 zrLa#NreZ0px)9`_EqdRSe?FeJ#U;71U&^ZSEeU_NED&Q+{O6Ooy95ov`^JgRd=6I6 z$lj|N8eYRalW~2U)Icd&hFM-_*I2Zi{B%C;pqB|TpoW|2oRT0nhq5=2vlGUJ-C+S= z!d8Tz7?&WGX6GO$%VxDaFD}-#Af@6>J`SfVy3oi75yi*pR}=sT3)^1|<1rv$(ZS(a9EA3WS;1-BgekXe8A{FV;t85>SB(}VPYid5(?2DXY^#OCA1%F84t-JS~@=0S*A@zi!h^m%nf2EG>F@%gN2)#3}n zw^f`R{c2LnCp0hMxGmipI^Pid{_ zmQ(#yvw)lduh)3<=4t&<1ivZkc3fU%*CszG6V=V=zmIxS#eDPl`SW4320Z-XfGv#e z*=V#n<9UD7zX{uRv83r}JbgULp>tImLlykATUqINxbKg#%G{Lv3iWtXk;mnQ#7HJh z9aA|XbT)y_+12+z!81qI`@9#T9z#ssr)o)>#tbVHnvxB;h1Scku1KElx(=+IwZ}Y3 zv)}b+OTh$7`F#r9QaqvLbpehziYKu%Lm!YlzO|g*p7npo_g_p=qx>Rkr*rw>)>M$3T9#5a z;W}+N0x&Ey$)NQqM%obJqFc_BplcfXEe6M*zn@N1gtFP9K-TxFvWb&TS=cU3B=}uK#T+I%r3+UAKy$1{(N)d zK{~l@#sOnc?eR_I4&IkCU5XH`&_ciN=m3#*Yc*B98VatLQ?@I!9IF$JEDd%*h|Qrl zKFETxp%9A%BQ>D?EkdmSHLUzP8fwISad&L}gaSoJy1!;GHkGkq>i)lG`)*Vi?>ptU zQx5MjMrVDlFqg*re?PYDIIy==9=8|fH=!ioj8MCJL#zMzHgPWBLt zW0QGI8MVwE+6*ZbNJvGC>V}&;`UCxozsX^{5nbPrV1E5t6WNah0vmG8EbgaO&T{gL; z&&Z#@pVWyB)J|OvihIr4HeamTp05{Sz*~o+(jiNY3Y-#S;0{zY3D z2N|oj;vddNUnAq><8wpCDUxbptim2c6yHBvbZepX@QJm~W1JzPW7C?ejyM zW~DRQNVe#938J3T`Z|7bEI%advQ+&$`cSA}Q`_<9|8Gg~`1ASo5N7IHWR!>5ZlTp$>_(_InH|d-roTq?=XX|63DO z@2943hyTeupT0E-D)z^{CB~9h=Wgq9xGYmF%cP&UY||7y|Gzug6yi)exLUUjk$uS2 ztJ{%It^+sxYnqY}_Sal@pw|pm);lm>cb7pv#0FD8JfVu+#$?xfkiv5p-1xoF_-g}p zNuzJVw%#bv?@Q6!3GaK1_iHDRe)gUFZzzO$FJyj{c?$Xq6x|1Ao;=C2Hsw}w_46S4 z6cwi1$@*)sg69nyt$s7F{j5lvL4%#Y^#9M9r;Q1LpKJEHwbxDTBg?3X`f(!>gCNlx+c&~DR~5BQFZ22u zxzwV}7^y*LI20B)c+TauHs5(wMUzN3p`l{1-GE zUQ}~?S!vp=Ch~+`Ulr{<6oC%VTa2Y~(o@1lP1E?A^+f;Z8&g)_-@veLA)NnjOs;(m4RX5yc-b}Q+h~3*E6eK2 zQ6E!eQ*Jkpl0V;^aTBnU98)e}f2i3uaAHj^6D@ztNZU3|cEP&LIG#TLy`Q@5T91yW z(NB(j4VY>Ei`Jw@RT&UvmmnhQ?X)mDx4qY#&Y-(v?_e1GN`NyC?HD2FH{?SN?(Vr zP1ZY1c}11%7f(-qHVn+q7Gk&5gva6s6Abby8)9y<1a-bDvnh4X`JghpW=B}BwXu;07J6!>}&fv{JAC_UKG=}6(u8Pd09p>5q{Ip38(aF zO~c8TUngmC(>OnnEp^_rrN(;3iTL61U&wi)AkN7n$-?)W6`8^FVtNCf-~430{|t$4 z_4L;_G)YRLZbbZZHB~p^@y$<#-}FP}s^@I=X6^se$-vlXWcuFUVY^)d@YdY;O%CQ& zev!X>zY!gq@zi+NviA=Q@A~UtET~qKpU$VA8@hFoFY}sMY?hwa6|Kich|uB%t}kU}?w07DEy?%I%Hjt(uf?tEoN{%mq7=bqS|dGMQ?{?D zZ=H9&y*B1>g#JfgwKuQ7oyp+7O{kXQ1(7bz;Nc1Pgs?NA2-0;8rLbtlwHu**4YInG zvBjEnL)arZV^d1y0UuZq8kcf)cFx9zdMCa(FD}-#;N`i4(3xFmq)jQqFiyW(wnY%* ze?7#J$`kZ}TiBT*irHAgVWQY4KQEAzqeaeExPwQ$tXkuAj=QUnxAm71Xf3bJd=HW& zt4Z-zGjfb_3B=xG)$>*a;Q_fxV}(Dy&6vJU^mPjqf3&Rf|DI)){_MynAF`}+Gfb1y z&yeMG4hdq&SmMQuuk{j~KU&?`qyzq6vAQv+#%`Ot{W)3PxQU#%(@pO&+OM;^aT^h< z-xEUMhyN^OuR31IEin4g@<`C18li7wdBiC(PcPj@#{U1kLUNN_-A?#l=dGkl;Z#z( z%LU)J3{&~@_meEs2gJdwM|47c=N9y(r0Yud#+}9TGMx1Kfb%gb~;~&zR!_5lh zR*V$+?91iX==^6{BO9+?ld3wNXmi(>k= zN>8#`UY3vV>WA^BpA&}Z)0)PXFC$HFWZ9m#W?A-U-<9Og--8oPkox{E4zga;qmRIk zNQHgfIl7UWj)$IS*VVcmzm(W=e7ssctrn!S^n;UXc}ZyAS}}aLE?QY27YmTBRx^fY z6*9h~9#`v5aQqDro;%+_`kwk8%UG524zu(Mkm|2Xe*Rop{Aso<@{(la2R~Ss#j?6V zOm2{N%4`88`h3G;Gj}h%CfQ`bH+_WV6(g~ zE=dnDEP8*LM_irv;sqHFCuK~KUdv)V)su z>1l?ww{uz)C?vl^Ig}MCl44Ra2|`%XHPa*u)9^lOFjk86luXug8DYB*Qo`@SGGDbt zX&B}IXDkv^7yo}}o3Ej*euxI$1w>J{8&7|KNtHfXpP%RT>*5FbEjjUQS+oVs#Drf= z8+!9**7=6f{UUpJlC82S@%JsUrZ(V$hCH1C zA%vg@BS7N!{I1x>Kcjz?SFmU{^p4{k{iBU7hCpU#m=`5KI>5Iv73 z&LYgC$|vWQX6BJbjAC*_9^H<|zWoiQ)4N1Yrx_*H@|u_2B5 z`iynUH>hJ>Xd7W2i5^8I$~^dz>U`g?!M;Dzvu`~1ozjw7<6HZ0(%4EKz%9y=lxR3p znVfEjnLo*%-d1VoQHNI|yg;a0NrrEpU3Pp_&LY|s=k&73hSM6G_#fSzEzc|AjU4*R z(Gq;p8&8RdtZICwZHy-hRup|=oQR(@@qSI-b^bD&ZJgJ$WqWV$w(|WfBa__#EKS^O zhH(m=dSm>?g|_lUiZN*HQUc8g;)+2j@;fc_~#F0NSv#&~&a2qzhnO^*POiDc430V+BTit@=YfFKT zjyhQ0hHNT)YteSb!Z}5L3k=x(krC*Ey&Hh%6MV41#dF(sG6p8zSTsXjbzq^|AKgY! zr`0U)eD;fJb#?bM9_#K1ORanI#~%N2PyV>~OS;e_kfMS9hG_n#nY89I?1tp5$Xac%I^ z*ilU#6$FMgK$xQbfVq3~wL19lsr%3&{;;O-%lAny^v0#R22r>-4{BiEZp>wTZO9)m zW$!t(AJ%-)$~5I{+ahmnIcGOh>PDQLlk_~hrVOdU%KVg19ggp_(*8Bqz;A`f@S6A! zfe1l{e#mP)q5Sh0t^jF<(@R=nx~+5g^oPGlJFV&(-bHMI_B~w8+jy|)H@DzZdc>6+ za+IHX69Fu~iAA9wE?<4EK;uWebW2|P*<3ulkx$%8!R`2D@%tASOXBM0^xZUnA0z*) z%;2R^8Y>fr|8QbV8MyD>Y{`e6u5K+r25ULyhG=5JQzl7oKYF3HI8;8|p{)oR9gFv2F!M3}DD9V-97*{X#ek{jJ5hjPHT`Rtp_ znt8)>TDUhSW0_%13_7|h?(}*{wY#^Irmw??gHgwEvwD%YC)sqKcRBHv9A(>cgh>Ng zSQqK|^-IcxwJC$|jqUvmY=jbDGBq3Im(gu{URR6$^eFdzH=m5Z-L|V&>t$Ok@-gG| z0VLjI!@nFklhvI0=me^yHdT-6W=60!E~oQy4OABnZbZs`mIYE6QwA=1^yzbZh?n zhs-;}CT0Wgd<`oDjb?(g&ivoj_&ohll=gM(*$+SB?;$jIlO4e)&J{pr&FeZ2A7c^f z{1>hBhDEYoFPHG|zD7KG1M5ev+RqK=JGU#aiDI|@f8lifd}UI`;`Tm^I+2LU(3ONP zlqJr13^N;aNw{M}Fnk#T3WGA$cEc8|CkDD`(p_qI{Zk0MtQ-dOtf9`xvQl@WlvY>M zxB0c=zsd^IxYqp=)&`G-uqR?7Tf~<>%YR)L>_+`?lh-RO@XhGuD3>h`ZG=Qqmk4f^(#(EOX%w?E1=nD;+S zxeiRw|67#nk6h-TOSSqVwfg^3wfdSec!bxF)N1-3MCZ?cNNROpf_|h{f23A_RiOrto^!6Z+NxOv!is4MV2fs1bF9}%2+)<3;xu#3=zT38V*P_Lx0R7 zx0bJO-fXF-6c zq>1a(U3DVXvb7J)gb3z&RhHEizG5V3JarDCsIKzaqYn0EK{}+pUJ*Oa^7CR@aPOV* z{1`Wz=h-aaX8!8O9s|oGL0dX}e3w7!HKf(WXtooa0aVUj ze|hlf&hBln=zjSXq@*)pgL2YT=%yzv##+_m&b0m5k4d|Rgb|a&{Y;NOx~6CQi!Zik zv-I2FezaITYMRmc`T0kW?@o`5D0euKhOwD)G4gDp+0)}Ur$5^S!(WiQ52qMW>WeSF zNI|#=$>6l+??|@Ge8kOnK22X#m+9`qhx_U7{YU!`AKiN}+Q0vhoBwQ6_V~%`FQ0$) zvrk=G)33_)H$`DfRnT~VtUq*8R)k&sb?A7!yiWOLYZ*nqi&eZOfnOIG`umXf4VJ9! z_tbY|y6d2!1}Nqc8lgc~y)nD?Uv%4#-&C&|xCtfXuRDMvtLVMiqG7@2WJTG)1twKq z%nYVYioUvUJkHWNcMs?G(cQa?X0{wJifLUn)pBo-V}S(`|v${g0JJ86gKuQt7%rIAVK#vp+VbzTR3gn`4(D6>cYNt^L^_z*jUlh}~G;d_|%kt|4 z-p}60sU9zWf3TGk=q^%m*R&VD-PV&PeKUi!*Un*O2bw-IK4+I&AM70eFp<6GeBU^U zgV~elBpy%O;*!1)AGEpUB%Z<7g?5o7gNyHta-L)$K=t*5*WonaH!!Kt3k~5~w~-*D z6M&rwO5Y}pQOewsbY<5V-Q=h9X(z3d2|3};H$wQc&z?gI$&DA$L20~3S1)5>MinHi$ zN@gO7L%|ibZCZ#BR5uTPS+y84M6K&T+}g5GE+m74bH1562m%+?tT-ZdTCwN22q+3c0NOHa|%j@(Pt;rILW}?@PE{k=Pve*A%7WFF-baKsokaQAwA}Dil zEfYVjYSxkI8;4B@f?69f?&0z^Xg%m`pT3*stXIEgKG?18Axu5)`?W}D=7 z=?o$TY&KZQndnd(p*vtHie%?+_;zOYx z$#@d-wC3QE5jK3bxXN;D)|VwOBBki z@#f7!@UwyR&#pi6jf(%z7f0mhgYv2*mU181wbW*nPuUcQkknlI>pbbK$^o_|FuaWP z^IIWCK6^!;#Kn?Q3^TJ7cdmq2Ix?qXoiC;Eth+WB?ZsQLn~>|2xBbPsBAPYg-oB=WKRfWhotLZU#q#ZKp#Rv9b@?Hh zfBq)D&1XfKKd12GLmf_$CXW7Vj#rr3&j~tX@U^VZ?e({Z!p*DjYFY(FtQjy7USzW5 za^7_doXH8s@IJBO&vF8M&P%gWoyxwiCl>hqc zKR5F9u)-n}_)RFRC~sno@oTZ=*P7Vd&Lxc)zx1c&{|hQ;!*uEey!=870s&5uEoLESrtTXIa@sT-WuKeugCpdIXuz1`(Y@dZ)DDY9x9*> zdYL#9|2JtQO1J*3MO~cBU9K6Aufw!oYuaz^TzO6|sPKaE{Qp~~ zXw&@u(3ICV%@;opmD$e{SKp-V{$HCd0z>BY*VI_HJ+I;LWJ!m&V-RZ%{P$^{+c2KzR1S^FjQkyv7TB^?FJCOr)D0eLVj7@!jcB+T<8D zgq0TiiD=C?K4)*{v^1Gb2z*9M#Zy{Hq}Af}YE{*kNI?lgo^3*_BWhLJ%&RMU#V*Mj z{YMj=m-&LGmsS+(YQfW87Z>xE7B`6o4aJ?EiDv}qf9odaMNms7!4(q)jw4k^E0O6r zC2+3OU$o9j?)O$q6#4A+dcxodG!124&eDqJtS0Qb%sps}qAW80Ja3U>y8a1+A)0M% zus$Rew9Y!OF!m6~I&asttoC+Bt+R5g!T&5v(0h{Sc-j`1G`X_M+}u*4&Xz@6(Aa;V z2G|PN&yKXv|LChWVxOG8;F&y=VSJl7yA-oTWX!H{g=TJ!Vn_ivXe}+iwj%mc%n{`T)5$d%Y-_H_LS78egOgd4oV-BRlOezr z#Rx^i%Syztt5wO&TBXJ99I?n}uZHcD=SpnNs`f5PN>R=3^!$ojb^SwN+@IahQK2)X zR?@WzMe3aNS55RFC#T6SZtJr9eEk2Hknt6h;^)Bq(y6cl5~Af?T$01Vz~?J6f(A8* zji_z(q1NKM$M9c+x1YTqNoF~z4hY+u>s5YBj(ro6>6TtMrZC!*IPAR~i@g18e8tYl zkh1P4f*8$LYVLHzQG4r!#9@y#9=3HDQGd8!ciQ;#pY33HV1|E|{f=*xGyebRa{T|9 zuWw}54eAIueq+mMnv!5U^>rBU_EYEadv}fImTL?$bYm~N2|0)Q*PRsp{AXX;Y?{9x zhR*p$=Kbf3!ufwc*WSpA!^DSaB!6HhroR;gEq5g}fC%0sw+fTxm-pW?6I4ND4 z@QugI=?y{x>5W^FH1Zj|d~6_KAS)fC}}ADTY0 z%=05{)aV243VL5E9CWcNGv4`c|Hs zVzHtqv8*bBxL)-|&PmsB+T{PUVs@kKyg!b&69n_R%|O~2xupc$o`=+;8F$uBZl>&F zXO-tC(5)dLM|xUn0=sqm^1=LDH~$ub{ZOtt>#Ymk8WAMlF&0um#OBL2^y{<(zQqa> zc>>%?XPF7Ar^VMz`Zm8-(yp?i?&sZZ$&mc{&$iwl;@uyb^0!PT6#J0{@Sy)ldT)!! z|NEr(Mv)veC$I97B8bcUO|kg8na99K7g^#_*9tmq3zwT_PQ9h5-JV&8Q0VpSAtka; zE)6ZoX%m{K3lf^II}7~z&$bTTG+{q9JsM8!kJP9KeX|-JmI-La1r4icXmM*f>#Bk` z7)oo{N4Jked<*UhWdC^t#O!tDch0ma@urOF*w7On~;YxqkBX zBm*BlEzZv=J-eLdXUi{`az;>|W-Y%q>im6M$@q3&l7ct6E|Q0f+*3d^+pn9Wt12~} zq}Al7^J&`&mu@9Fti3)u5+%lcZK;8suIm~sfFx2WU;Ut3=67x(7nH>Q=qSg`e*i$U z%oig-?$1L{Ru$?I#jVh5qA4GRJz`P+o+c1aXuS8fc$uGPb~GN3@1(!*qCMnh zdtS4>;byyDv)yj9uc;dNb2X*MGve2$*(Lc@U&p-Of_;9(IA4cx1{h_4F}?vt_@bE3 zv%E}C>S}S-akeaouWM3em@H%LF!ZR1+ro9 ziaF+sV!~y*rbXoQVo7aDb&xKB6UHQ1R&Y)^|2Xc@<9)*3Y{Y7i?8AKPulh(-^?oJ5RW99eqD!u~gC)eClu>^RE`&e>0%SIZa zswF${#^Dr#pw=|mO_N>ZJzTzq1l@w}ac1~grhdHB|9{TGVBqwImx{k;&=llvi{-Rj z&y2;;CFuUT!h4eP0}P0tDr0P*F?;so>lzOJ{AW9B9G{&Znor}%_9KVJhyJs}kAgV8 z8xcl}yU(e3pMkhQaIO)2vF$n?e2!g%MI&P6>w3;tABL#C>e7{oAU=#P}r z0O%g`-c~t9KKtq$8N&NGTxQMyA;g8Uw_h!ZkLyMkNWbo&UgyFe(NT4HG0KR98m!ff ze4Vvp^o4vaghC}WNVV9MZxA}S){;>6JTxNfk)$KPW>;IosvJB?-n(8H- z`mZaECi?jrx*)^?vQxB@V1Z54KLGqaa>S9(-h9oGt%xi%S+YU|G~j%Sj!Az|E%Q;z zxl^Q1m9aZ1T*5w7O*CyZ${Zu3w~Xn()wq7P)xnK2K9~j^lJTF7?B76NKTnc=r|+gY zFWt%Cx1{NDD$PYJ3Ddzkl`>WfG;K+T(E?btP-bVj5PkDrl)a70`6iIMmE1)20STXW z-^_W?PqWoZkzx$jv_M__fL3ZqZx^ewJMj#xNw@Ox#W=1Cj}_kdcvij0 zTk|K$;GJ8IVWwY())p1x~|0HQ&&39r7k znqF#Io55`&xOG}xEm^XJ$ZADDOx6dvq7XaCt6s%|=6OMUCd>3D+~43Go~c}REgP$o zb6T<(r(aaG-mW95CO=IpiH+gG+@nZbpS=%X41Bz-;2Dtu`|P7)InT+i7L?fN%~{Mn zUQZY+^86QT8iXZJmn=PJFyxQ1cmVJ1`gMsa%bB;L(dN-8`I~%0L=qp#*~OCZY^<_^ z(;%)wfiU1aBV`eGOO67u`g+<{xASK1V!m!W<^L~G1x5mHrvuK6TsUSD8ypJAH!kYO z%Ug=EVgR+kmchlY?-68&eN!F`CT-mHN_$eHSbTkPF$?}sCrF+$WwT`m9koO3Y1i4Z z!T5$1U2J?%Zxs(z?v@+OHiRQfip$4Kmzkq*7h8_%jL z7KO0C!6qMu$xuiA_H21Au1CY&WascbiMC8I{el$2igq2<--ckA+!wgPed~k^V#v@HfpaU6}?m8?D zY3BY1S1F8IVz#b0N0PEoe^}&wri)9mb~CHU+LA#_=NV;0IvR8+l>&rT)J8n*XdD_-ocslAy_#I^AViUD2l@;Au4j+DjV~gjq}JSM}b&Fr+g(kXw1XLOzY4zDx^o!57K*UEH!^{g2x{jIQRI%G+=#kTUU*YUf4!a_ z-v$1+P;WOXqCuri5kEP}?R#bvrt+3%5`?=s(kDq0r84d$l?TQfE^SaLSIR0(v{ne^{52L(x^J()`u&ZC2EKR>$Q#{Hv zsG;jO7^ffc@vMfM0hp4S3FRqr!^p{qx!zAakq4Se43AHq3g!2%C_xLp!>A~pJfgWw zG5PePkqdRl!z6$p$SEB!*rk(km?UP>kACTxmtnU(Lh8#*;hM1g+`R9oEC z!Hpy0P^^3YI5JQj78L`G+BI9C(BF4SCJ%=sD_O$ncWXrq%xAviqdvUboF05}A}>m8 zeF4bIU^k~DU>`6xI0ZniiY@$`pnX(tpN8XKJ1FE8vC1D;_mw{uPB<0Xb)N3~N#~hS zrIOyCRm{(l!C3*b(3o`EIYowfuUfktXeu)r7ej?89H|y8F#uM)x`k;cV|kVi;{lO> zY4Bj7ZD~_9>@LoA_mH=(rqoP&!5i{y!U1YR@wl!?18Do;691E8ZY(RuFk7Xb9AY%Y z!qqa-mc^c*6RgDXBVJ-$1RLnf*0oPx!lzcNr3Bt(cBU0Up!HxJ?2sPhc}DqVdXFO~ ztkVY5^L*!+h5pr*n726~4Ht~J5Q!iVMrTx=2WB?wq(zWGKBgJZ>4fx1;ptJesc{P8 zrEh-)m1?jm#2rhPF0U2o`&V(F2i-jSphkOh<~0(`fLW=Imw#54c>D^&S^0h? z-l<#C7KL`8+UT*o^zE}yqe4JQgI9ig1Hpr_?Sq!3epA10w(&E8gQK@BB6r1DKCG+L ziM>9(6(nSDX0E<$Cyj&$AYj!6oloP$e;NR#yk6MRq!3wC7-30(iAO*KwTCsG+GB(O zV0-}g0<*ZS3?d6pFm!nTizgymoT%o0eW0br=Xt9$=hW-8_1yNiBHbF$v~}d#xIGOf z>nj_2W70yTQuX^!50j!(P9)%N#XBU5x$32AaCTM_Ob1sucGARI?0sV=i<8-5Aj?$c zG!T**?NoB!rZb#y9$q^po~wClk8`+EA?Yvgw7!|f?HL32WfW=mD__QKL$Rxy8GR!5 zIzXSM6)~R8b(BEmy!laBBy0qL&2*%mL^vlIA}-$vJ9$Y;F+S4g2%6zagD1Q;@kasj zb`tWnWlg8ok=d+=N4rT|#mPcumaf(AKYD<;I;NlyYMbS98ucihQ|We^;i2sk54h@4 zx24{~J?=r$QKqY;+a#Lv&da7uPiSv20s3yA?*4d3QQR(WKDR;2oHAb2gZdp>JoqP{ zPGV=t|FBL(lr6Ocy2^=$zO%{$vcLpv&KH)sdx@7*EifvBElvBY3DcpFU)Jd1rNxGfZ2!DrG-LtgX@9+GKI)H86?JH z<@6B;%znecc;Ah5$lA_Xr}(TL^#$Shg~O{b zG-;F3(-}wN)0cJm{X?j)Z1o*oJ+70iS_z{5w|POPh9I6A99mPK5E8-i0qob!D44|+ z2ev;!*Lm(2>YcL9y^pLuufp{ByPoh_l0@cCAQsjcu1(5rXf=41qds8NqZ#P&b65QD z-vpuFUAAh@SthXs%Wq}W^|Cyc;YC}!ewY9Njeyw(Qi1F9kc_~RZ*=GsINr=e= z=JZfhO5&$K&^qgOS2N4`GEIGW=l8W&dTedMH9)kP`R8jobe8#itD+{a+%Dr70|#k1 zj>`l(Pi?N4U)w|bmQkQvslR^jO+W5VW6`taPc~DE_q=p&*fCgDseLXDp|hWpf3Oh| z=y&t%%+lUE$Pl$MqUU_%NWsJvchiy!PR74WPZ*JI3NbxVz0wAO?$85>eYeW>+5er1 z|AZJ%#!)?kwRnk8BI+}fnPN97<{EVHW zWwWlMR?Svun9&cvZw~8uMwh|77_7?c-H-1y?M=C2*1g{AWc6Gb?=>%y|7Y~nDuzW-Ra&f&Ox~n*rGScUOV;%N1~%W_d&9}l z%-(B>^-KIG$s@gBU-d?!@1NHHbuK)`L?7wW!UEqD6}D?2Gc=l zwi6+Rtxh3S@N>RdHaJydI~CN%23k%!#q}@O@i51A=0AqABY5Zk7D8Sn9oy_0Eh)PZHZ#p%C@?NS(c0_90Hg_+}y{McWfVeyk+BPoh0pc(*Rk&nk5dP(B*b#9;M`Iy=I8X|W2-13s!!H^6k--gF< zQ3(v`*FZZ6f8OgudO(qD@6gF{(sCBz)`MVVjLwi6t_o?!DJyX~!s;G>CwRg=N}-(a#N^<42`o7&m2^#X06lR^6G zkOjYCE_jcV)NR`OsAF-Xrys}Ye8otrono$07h_1EIm*g45Rqn-SHATMJ(YBY@s!dg zwM2=QB(y+FYFUIc?g_~HVDWCRojEQ8j?(b9%H)?}@P*pZ4sw;M1chM#oV_gGAq7$n zyJDuEg#So#;UvQNy;QkR)A~Imr9h2M$>E`;aRk9;Kd&Sv19W{z|FRu;_|rqTPnZz> z*1C&%@?q}Btl7mmJQ69mi}Uq{bbzzJH2U<;y^C`}K!_QSqTdfWR9hl}^G6uoA*Snv zZ0e@_OKHlAJn_bPfP3{VdUeS7rE68f;2mZ9dCT7}J8d&t-V3qRRKYK~b2br42)TD~ zn#C)V>eHVyq8>>IX{82$-%0ewEFKkbSIuAS@9cqsw(hYIAg~+XP*zlzPCBWrBzFro zC%ExDFsJJTtiXMF92BM46HA)j=i}Rp+g`m^3UB9SdROOL0-1~@`ScyEA0Ta)n7Jxe z<2D&1W-GPUaaLhBa60u}`eS{|h$aIar_xuJB5fF@IS+cw^!eCK#DE!_Ztmje_bK~J z{)wuuA$xL;sq2}vvxw@Vle@@ejXOa|*)~_p`!`cq8=vs_{rN)*6!7vq{i!X@+?sx6 zSgQ>~kKI!yYpf4`a^Sh5^asOpT(a`zy#;ky!k@Hh1xtX>imh@(!ip7_pl_#bz57p_ zPH?JTBRAOPc6cx-IOVpH;DC-?jUhnU^7_9Dfl&kZ*YUY4LAIaJ%m_xNm??1-ba58> zYM5igQ(~7<$f?0hBeP)U>UQjD%RRi?74l1B?r+)iOMOAO1m7O5;l@dd- ze!H#w`(Yae&pxZvWWaNownLZ%I-Z3tDHmr;IY`QMT2`w^ki0V*Xlf9&w4av`rB`$s zdmgnI(ad4wU>+oDFOYmqPdKNubsE<&H@>lXZj&TwHi>X*Xi06M9yi~ z$5I7wo7Xv?aVNKow~o!CCpLn+)RUI`mP2i*D^Sb(ZEa8YgB3Pa< zGD~dHtyi}O9VFeNG(LarG}gVRwI?WL^Fc) zaO>?^sj9k2O|woBfjhqeQsVQ6T(?ff7-Ko8K(Cipf)mN+M6pe%L{nuu{V-V43~uMF zlAuRHwKK^jDqVbHW}KXOll;8`=$d|i>%X73Iwm)tPId7p;SS@;GjCevL+t7bX*fG% zjtS;^i9-~08RqBy4vB;%l_{oN#e=kT!xj-I*s^v+mqJ@3z%K)%@h1ytK2Ex+TQKzE zo$KmKzL!WmWuH$H>V%88)nhw!8qQ}Rdwj&HLbQI8Z}s7z%Vjd7H?nuvY$cApsuZrc zZE`=mRg^lPr(ZH=7#wwyP2nK-1?+>#LiskYZ9o*UFDo zWEwS6AP;8G?CtW;aFN;fr?HPk+aJ zHb#4Z?t+!AT~%cdiK(Dqdx754M_yF@ZqS+*e54}F&5nPpL*7_rdT?)F|+WeJhXaC;c@ zJfHy$r@bh~UsF&{xj#SQV&`GD6&nA$ZFYb)VTBD#4Ph+bf|@&>jJb!u23>sTZ^w8R zERg>TSRbwo^Ky7d**AcD_(6U0LPmr#J;@`OonLFmaq6Qd__Ct>iuue*#bi*IIb!|2 zcGlLv%5=1b4B90wAHA`MlV>e9C}LQz@Kay%dyzNg3uEPfTCQr%0+O+Unc{`jGtQWg z(@exytvuy0lpk;`m~qgs+q#g=srk;8Bw>xG6TKZj>CN#7_}C9K}2{drtxdxrX zG64gu8&)%xHAy?hQX4xPKP%=ph>g59Is^fL!%V;us6@j#9QFW(l}bfE*7ulf{mM8( zI+&qj&l8T{(v70U?2aZNd{X&SDG}GhULCm{NeMX}={5Z{pt}X7JB8>s@Cx&tKJU0A z11PJ@ITjW4Sx?Jl>NB`A|HH$YuiHievEbW|-7yQMroOoLK&w|V>Pa#V=(BJfq9GUW z$>z+g$;Lo8YvxekN|%FOfZk(q5?5O;y+I0A_n|A#s!)q$^yhfIWEad2PkVKL14 zpQ_AO@ro^F{ovjF59RO*JZ$KQXhZVR)fcNk=orsekBE->PZj{tcL$p^nf4n+L)g00 zTR5FozT!RC7zq*o<1h%`(7@tW1W_CAj<`@uc{e{U6M64tC!4O&G8w~}_$M1%R1E|x zxP?uLw?w2q>S4ZML|1(e8m;N$95s${nz%U?j19x&#luI@?@1c`xFuKu zu?1W8o}C;w{y6JpE{=S0!cZ{X-s$rvS~T^CD2-^>gJ^-a!zTIcZ!4g;JW5aT#RKiv zIoWQLv6j%C&jNreXW<%xj%ApQliJABB0n8%6}Ex9c6%?B^f!&C7|{3rHvabgxuERs z#<_O8*tRDt$JYhRN7T5&QyvvebWX}*lbi)5ddRd_IBqwzPIay06%Zs)kjOOEm;NrN}m4-ML;;^g3;ufe`PSP}VOo=-tQ28$Pd zOdT&oeI2E`+QO*k>6kx~ImG~-XXywN!S8TjCf_B^K~>(F5I;76hiMeGT8B(asY3dc zg$h_K;?Dmgv7>X$c@HvX-p~=GXbs^Li`BvHbjXS*feR!fjv0<)7v%gl5A`4sleuGa z-bL0AREsgZ>DzKzvW)0t%?q`d@)ubJ!sF}1JEvY7Ftf+Cf9s=G7yUdeoaS) zf8Fn!!2u0@Np+%z_HMF3UU2L&M^u|vE{2W-zqV4C_&76$A4Mm~+K~i#n`TotJ*v(! z(0s6L87#BfES(}MM##p-Z9|5VX0v3R0?5lR%Rv?~(!MLW`b{A%8vARblFZR_Mgc}? z-d|~3a++BUK)r8yO)s4MtJWf6PMpArhC~K6cve{;2Eo%01as3%i}-90j)bJ7$?2v5 z9s{!KZ*`FtjVHOfgFu>@csUd-oK3pJSrzwbTUGOvk)1eFROm29Y>+Bn!g!*`uA}gZ zj2An&NCO}4O^0Mn9^Y`(Dg$*kDY#UNRJrBSwcV!QGb&e~Bv8gT}0j12rSD=^ggYD_X5F{>qL?OQg zJn;Kv*A&QIbU7>R#v_`vbiKP>FR(klfK@hoo=gN*-6jt$pFaTkJrNE!^^L264T73q z7Arsfnl-1&$`9p+cTE+Y%nn?Upj+b#s(NDk$D5nQEj4wM0By$`#B51%35MINeCzS(DKQXc(#eo2o*Lf5t)2KBBc zDqBt#H5>3ElspZaM5tY~ApST17bMJ?8Cq?t^V%Tw|GI(8#aDy3DQ6mSd)IWPKK-A& zHz~dy=q>{j_uID~52#W+{j9eeaigUQqJ2$LXmz!oZo^rLH8`9yiTP6jKek7Kb9tP@ zTQb0Gfi%d*Hmd9_W6Wmry36DKH61esldp}_uz_>Y#=fJ_V8p=P(w2yitp=tR(MU|+ zQnU*R$6Q~OLNPjdvnFqp6qF&41!Rns+pA{^Vex_`Rco+zyz(p*sq&TLKC3b(2C+-0$zvN~Hr1t&p_cxv z$rZ1-z)zkTDC`chbG#6(Q44Uv8Tim$(tlu?t~OJski?I|_zJ97Fvwiwg@2LX#Zf*6 zQ6t^77FKBiDl>KOS}E~>Da)0sf0}x}zY`DEbE;2FZ?HJ?o-e_abf=00$Nzn768+xT z1*=&*&iTCDDzJcsntS5zf_4~(#+Ojll$f7GW0$vR@>xND-l z-BvGtd^h}B#8k=%@d3)#WS;1UL{V%zGqpA5^mIu`kF8fUYYjVj;ZEk?yrCIAzwtaN zgfc|!i53%&ZQOQKn&5P_2#5gr={q`dUHY*2?@~47aFuL*W(!}+kJQof-kO4cx`Z3V zH1w+vt2CT^S!B6G_Vr^#hm|7Dl*)bA&ERztyAN3|BF0kTC5W9YiHsfUa=-a~1n81{ z^|wzf&_xUn)nri(muA|O2ua9%)yy9tRLM;m05qew!U4}-e{ryQGWznX{vn+Ph!l%3 z*Xi3Ra5LtHTAny`nu@v?L_%OobHn$|vMiLDWqog*?L4shsS^U#yNWopwD+)@#Bt87t`5OGLMmhI0PSkPe?~^&(1lO%@S9oTSv}0pI3~s{3+(B`8B@Zkp2x z!X!D~j0E1ypAQlQc<1D~zR|(k`q*u4rRVR#!qvsd1WM9Muf^%$O=X5XxnJ{5=Z>^*tfyDLKwLfj zlHrzL6CYqVThKtTSoOg}OWwLf2r%}XucP{GA&=w7s`^A&7Kd4Sx+FJiZg-sL(sNq2 zkehZHeE);ya^a`TOlaxgVyp8kHmy zZ6AAv5>HPBUdrE_QN1#o3C|g6-)68M!o}b=GsPUyPyY>BnwRNhB(t&h4?Zu=gsVQT zx<=NxA>6y$FSgw+o;W`?6z8@+v|ifHAg9-+=RmrI|N`Loh_d=fReSRikdB^5r)>&>htzX!rms3S?Tt5W{()5@0~>&JeNjH zQS;dv7@2nOBUFZP7)<1s#JOzWK%|v68;sr_cY{ISVWX zYX8gi96m{{gYj9fF-9W)A~Pi$<9j?En)pD6R_$ewnklhnsE;6>`s zgG^26$rszmWLKC`022njMT&WY00*2cH@T{Eos?=*8DP9W1o73PFWe*B}3awm3F9U-KGK5$ft@1SY z`YvJ|0>lQF0rnO1gc}|WASr8Uc4@cq`O*T=BFWf(m7G39qFV4DJLqwuGn2v>TNVbE_!@C^ zM7$PK?VSwtbZ57>;0QfgkWJm)u3H_@ilx2Qr(m2Q^NkuZ`?8ZbW9FhT2+y6HD{T$< zI^XK;-{HMAb@J$&wdl<_@_bm7e9jhqa{T}CfmfoO^8Tl3o!C;Kcm^72#L4FSo%tED zL{puAm3u8JJ9{tUtfQdVfr%%2HBNIQv2h_A`P4qGYss#7+K1k|RUuI8;DR(N?_ z9`C++;frAyJJZhc2>PyA{{HhA%HA6$LLb(}WyK_=g`CZ{kPMm?qd%+VPM1Vv&(xNF z_J=)x^2%RXJ+Z>4k@Dg*f*|bmHTljn)CXEOLA+@f!pr1z-dJLPr!hmKL+TD9FvULa z1~1j7=|;>a!WtXr_1hqN)<)c3H_%2$ZhiBn!#5$6STFt7q&*H6V5sg6$X(wS{(5#< zRexY$7SvIR6IvM~+L!Z>w?%+E)gc}SZt0(9v-l3^lI-VlEk44ueN~(^;90qOCuF5! zm%{Xvs!i&>3n9%C-92U@EOHU6hFOF0?w0&{A6M-xA;dGS6+cPrx2Pqj#ey+ zN;0L1NO;t~jHl=_8ZsB@U^EYTCR2?$`W`O(>lM#(YE)K~CI$#>^+svLa3}v1shcB$ zDGur8cbnm(tuQHf&po^(2ReyncR4cM+L>O>pi3QL)GBsN>eiiQ4HQAt1tgS(E8~Mc zIqyG~M6|)?1xB&snLn3`Pq45?jF-_UO4WugR<%x5o2A*fCgfMJ4sUp^Or@2QZI)Jo>!+G)UM^e&wREfOj%S= zL|1aXIlYIfSZ+~Rge2I2?2+wAM4Y0R-8T*G7lsG3EDkX!(pu=!pjFZ7Uz1c#y0|3# z=C51tTTLP?GIrAZLK~cADt}Tz31}phi+Gv#SpyQK{v<9Mh8 zVw9KtgnhwXw zo>Zu@Em$kK_a$*F&Bg=#Q*N3AVkP&A3=unoRq|Cih=j>~d05#p#l@sYA~`+wj#Osun)(DM$)rRJXu&D0~e zCCB?GpXL1hCFY%EV+87xY)$8MpX`H3+ z3{VBlzFSWb@;SN-MFT2-EPH{&3|2j(ZIfT!!?;s(TLZXzi4&SC?^YdyPd7*~f!I;j zdZOvQjA+Bmtod%wk#Y69`bWvS2i_iYL_Z(i`HCOxM+Q|M`4uCxr^ENP7TE?1Cb|R2 z&oVM~@h=L_kUfu0q+`OcNwoir?x8o-y|}jC;~f+Wu=Y z)H?FiA&%F3_+yJJLJ7YIk~j=IbhD`nEe|7IAdK%nFaEk7-6e;`&NHPPJXCg$n1|if z%g^P9eXYaxFV80-vKpxBn;)dFFtzg+cH{iD^6u&!@-cw#2GM`CVy{rjdY!gUjQRKb z7Q39a`Go$wsOPnhL92UEWokLr&5IzTa06amDs!z|m)EkI_9%xlzabCltURyROC6fh zpL3Esg;*=Nt?hM12O%QlmWe&S`d3?)Jh!i;(cnS~nSx=ecmN*h+CSPM2JzF!^SAog zT?UH~!EQYv=RNSDBvY<{JtClr*H`kq6sZDtIXfzW)+(6mU6K#l^C{{+@ebhZkgvL| z`3z&aB*SFvr=9lEsmY!9!E&>Ogh6*oZ{1!-tCk!21u=IwUQ)-WOAG6?ADA`13yFN= zu225Sp!0gA?Q;^Gu+-S+8S>n*%UD^Wn~u7@N81RIn~Pe5v$aAMN;ROSjWQO{8rl#y zY*F{g67_BYXgp2^>maZQ#Cdvsf9b|8ipE}o3b<> zDAFTgAl6dP>_ocsUY6yyxW@o>D{plK4cWZ+34}0vCWH8pr#}9S@{5bP3~KjW?V{=M zFDU)~I;qM^MGM~uS654)*DOzgvg{vi-&h?|cq%bG>vqcY91^`X-`^yE+;4s|i zN|9xlGn*Vuc!unoq-%f{u>f%>PKeSJjayljY1T!)OU7sHOgnq4WJlXb24#CrPK({` ztxslxevX)7=q7Iup<=lf=en2I>wft(%yqLgk;aLdT1pmIdf>sQPII>6H=-J%Yzr7& zU47$A&G`+)H};exxub9#Ov#+Jvk$*osk4my&s%}bTe<&{adYsE2HytM)PzI4MIFj$ zdHze}`mZIghIWuOxslpRRTzBw5MB|dv3ffN3h20VuJdaAhbmVKAgD_ z-MOSAIzLc&(FRw}1?CKf@Vu_i3ACCis(qZcnVm7ob3A$3JQ=DqUfKTp^o+P8)u32B zSgBToBaF-_J13>{d&K1AFe%PXS-q@h8V20DU$~zIwwT@bUSd;BnV->wS-~f1+E$#Y z9MPSACFk*-D;l8=0@L?La(32w51fc5FpyO6SvV~{%-#{4|A;QP*amg2+Nnh&>%KFB zl#P!E5Dan>*$Y@%5(t~*-9>2YGeww%=Av}a>m6!PNUu-hVmfn8ka z%ZUQC$@5P9K@!$Ep+rZKWT;Uc`Uzih*ytAzd+nYnPg)l9nnJW|;t+>GAio7)Rn5R0$elh~Q9)Ztjpk%s^20GbzuKA8 z62%L-zf1d09|HxE#ecaW@LHI^X{#K4`HQD+Tcr|dMnc}-micNFh0De#rsD6LD=o_x;wd&u?2;bJkdm%;2-SQ zy>-Pm=Uyy}^wk-wf;(Hsy#IBc@3~e*xY1dD>YG`~;*>I^=If}Dv2ON7V>7W8al-); zsT8P8Y|jn;y1^8X0g^u=E+n=WLQ*Kims&XzKwKfM8764>++z#j$y%QIsinZ+zL^ff zyHPSGsrXwH?oVRhA84ViDf7;Q?x%R>N4a829z}W`)2~zGI?CDXqk}RdUsVQA9_b0S zuJNfkYJ~Lrp$HXp_264GeLQdHwVlYWI@wx&X~;j$*y!psDPESJT2M}c z+YJ1NNRN(Py@shR>=|qcmcV4Kd1!4)5341#&tLo_W@Cf`4hfpH;A3URqY5A&GVtFq zPIMi43d$+3{1&sHPf5BZvJSa9bI@*>iB(k>gCf27RzJmnX&zyIgI|D{KekGK*aK)HxZ#Ewvcc%hR9UPOTNiA)I zWO_W~av)vlt7l5VYMal3NKv5Z~U7nvMNTcUHP_1{U?#a#e(7wG*0KKpzB9}4Dk-`G!M5XgN zM~7J~$|3)Fh_demf(MI|%JIz4LoGhPAO_?j{#YIK+Nf9hb(P1RQcp#>s+iGyLe4z1=S|p-c^9O}Ptq0} zIxz(2ly2DQB?rD4)S0Lgq5XdWhQv&qNCUA}_TleG+;gt!T}vzdQgT1XoyX8HfYW&? zV%}RTd(*97mwypx2y!F8naC}%gk{Q^_SMWI+>c_PzUG&hApC!> zjr_m5VUDc^{N!TepES?EoE<+9?))Do>4>QbS=Jk5D8YuuVjz8Ac(osl{bQ*Sg+XrG zMZ5WnyNOHCeP8$)>&`SKO&r77IXWap{;6~f=}V-5nDN>3nHqS858=V)GZ52^O)eEy zJei$b3G0*Bip{e3?@k{^Vmw@US;j?n7sX(j&W9^cg;Q`D0ESr)Lq5b8^-7A*4b+pO z3!t5lbKAzmkM1J(nHib3S>gz13iry(%WoF>^;!JxPA|*n6EEB&Z!cr((}?x(`ve_- z<7${wancY8X!iL49n`8s#D zUCg2DutwR^Ru?gJ;+bky_MO<&J^hp)j{Z$sz!?@Ngt1%BPSLOZjR;3zTa{!G*LAll z6MS8%Vc+5sXwH1Wv+&>w^sIKxK&yxExv39vyo2}q8ED`PVe(^#FsnQ5Ai}78IpJ@x zKPSq42-?s|;#n1;$p!aZp{pzZKXy{Zn$#)jR@1zq(QVw69-Z%H>8;i6zffMzN86|^X3pnrVLK^J#$=Vv&hIxMZ#n6Y1jnR4uUQfdyrgejL_VFyV8+&J zkDv}?D{*0!VKIH}fmiD_sAz^RYkyO#`xp9YL}ZXukiGRg+9_ggI1%Ll5MikG9%>I&F40&z2s(GNjzg3lJlV1`C8mq!@TUOi9CS4EPl66n z2M}qCG0$C%vb&h|Mjeb}3O5l49i>0b)5J)o$XA3LD7K3Mq^-iX$?j~;lrdZOt89yx`o7CWR3io|s*kRuJ6`%R6$iK>tX1qLcSBJJbG|RZ?RNk* zh8NiruSN-P@-j3c>uvO-|7$Wn(^VnDcUJxE8HNQm&uoUhz0FOMI;XLPBt=2XHd&L!|lmW@2y^S0F2Iu3-|0onmu`gQrWp|HV z`(jUYm?s^Cf*6x_pMFSz=`$j%N0_?|gL{v^?s>}_u|(@61dU+K#BkNm=Ob9wR24kx zZ}%3)E;3L4E4S!V&eD`mf)k80%~{%P6WonstymXm%WJ20Pkpl>bD!m0GE*M*EB?_J zKbJKyC!_<{;2-+&e|4W6q1P2C+Q3fS9xUIOLA~73zrQ8Fdp2oWr7QIb%49Dbp~v=y zQ@9%}R6E3&WDM1ea!&P9i4njC%s+bl4KnecZ6nTKuehbDq*bBca0ncxj;Mkn({wa6 zBXw9#{Y)phru+)S2mLEfMnORN%<`Umyc=&ttmxP8vVIY@pz``<^3F*;l?C!u5q5Xs zp`8;EHZB&CA%s>GloRWUK^94w2skLiz9il^YqgB8^k_tL7%%f`*XKrT3wZ-Az>Xoc zgSf)H8d~oEWxsYB#1DKTvy!6)3?7OaX%sU7Zx^WiGfXBn8m(ne^ya)W1j%YVC4eL& zEZXuI5?G*Cu{Lt2FKuF%RhMM>V4PNG*AHf!hBqUY3M_nQ2Ww`o6u9>E`RyT<_uyvl z6`E5qDXcFe&ySp%y~uRz;ZlmHpqMavaBx zE0T5+qfu3$&&>AB)1$-ZZOPwJ^4M@eOi97;q@%s|ckk-K{~b<0sVAd&ruUs}5$HPe zU%7a^bm)$iekIjo28}J29B1#?IhoyS=gePtOR&11#WY-hp_XB>Zos+0cEeMC?1we$ z+-sYv3cu<4#BKwsXvf_{lICg&qaYZQ!B(=|=Q9&q0Nbmrz>JYGCsCl3ldj~b8aSl< zVXJ2|NxMW;D%x2dOazzqg`i2tCyJC?^p01xITLy&KL*?LT>wd&Zxn{5F?`(?Q0WO+38<~L>nmBv zY{$YGgv^3bTfa!Tb=-f$3oUrISEY1z{QGGv_*UV)%Obm1ud2Pa;3GGs$E{<$&ES9bS7%yLV9Zwe0j^SNy3i_Z3;M%!5-n5BR+iYt=Yhhy!y_ zVdX@PLq20?d@!_vpp|DCkC07WqpYZI$%Q4gj5Uw0MXnu_sAk(|CdzUou|zPj<`Y-& zO*``qs(WnMHW(=s&}(|&wBhqn{&BN;xNHj(Hqa29#xXd^vhn&{AA7YukHfhWGV^41 z2ha>cO9$#jxZe^^yvr-%w+|TjGg{*BhPf?#LFEwn(N?Kn^#eaf{zk8QgIBG8W<=-= z!dg5GrmKODK7Eyos7WZQvo1os`72kvHu{VrJ(72WM0(MAr@vYkh(@h>gfz$8c4Z4b ze{OD1YgvzRn_rO}fK_d9QarVWJb&r$xN}87UORmHC*ndA?0+%A-cbUcj^wO)V%C?@ zvk;R2GCn+pUt9E|4uP@8TwmRap_?^HU*R?yshQH7`UkBA1?-2FC~+!v?OF%(q;w{CA)J%C{++Xq z8YGrZ@UPsbgO!v5w<{UQjR4Yid(=~3v3fH_GdQ@KVKfY|V)8g)rV%{SMRI+b$;nCy z0weeDW*A!f|34q4W{u{n_rnIfdg?cy%(vxG1eg_^M2oo4o%&@J&Lt9Es+=rSym5-= zM4!9!ww0!1&d=x+uTF$Dt8sO$?EIDaabET7b=*H_2ufLKue+*5igv!s4%hD@ZE2DJ z@j5x>rEVl;eqG90F{!f_p59QT*_2}CpV<;-3g#SVi9O_c&Lyk?YxUB>MAhXi=>aPC z(Mq7k#?pm#Q8;>eru z0ptRyl`w;KA;4^@> zUDrRB>|0^@A-?(;7aiq@6PB3+Th>y7@P5h4KF;g!>?_#SFhr~?UEGY9CQq(hEf!Qb zJ$9C}X;x!MOmy?6r~286u$jayY#>vV(O!>7Um31FFaAB0J28EF8#4Fwv4ZnHv5qy`f3{X@UHa;z;MZje}H&5P988xEL=zB z?;496x|wJqP6a@=a}6%(%(~5f)fy%Ic@)nW%0-FRp8YfBOz1A!J|#FHoydKj+&~pp z^u2fmRaT5XDf0C8NSm^o(bIldsrnX98#}J&#-^yxI0lCNP@baFBhP*`TW_c7Cm+e5 z;_U^>z21s{gT2>u-cp=HbWIPF`WhAvMEGOR&N=$hGyaEBs;ZS|rO0{xfAOpSEw`Cd z@K;L*vOd=2P;O~RkO`>&>ooMR%bN{_c17FZ8qh2U>hEH@>QlEwz$1ZMsHM*)HbAmh$5Mj zS7ItjyM-#@ay$_HhK(0W4!J#F z{(J>_fnaBIvZoY%_?uCvBkj7+N_cxevMm>Wf43`A%WF>q!K~HXQD<&0tPGoL$}pJj z9EtCp6M@5k`J1JKgHfx2=Bc*mz$yKl5dWlh+O9bX@AExFbLF{>4lkE2CN_=5ZPpu2 zaee78a$IY$p@@?bpG#pkh*itqyKOEdl{kZ9gLo(X`MI5z;6?|``t|1^g5M@!{_%RM zn6ZKRHBcTu26D|lqoFaAkI!X@@dI^LuQoeKu1+497-zj*KU{5xiJQB!tJkz#U2Vwf ztaO!hU@x1ZT;I~7R8!gt!UEUxh1hy@ch-{D)DX!AWp)TobW|kTG%L3zoYbwZkNQ&l zrJVQAr7U9fXO^2Yi82~Mr4nP&>ek(4jP++T)`Z`M{)~A*;b;jo`M2HrdZQ8ad1n|z z{sCJUJ}G6@T#AHu6@G3zLS~>=u$YXmN*QF*hGX_y!ZtDtqr#}=qw=vIg&)>bEt6{3 z1CR-&#uIQL|BTNFv(}YWSw!XBSjFkcqUef;Ut{I=J ziTyj-w4$lIxMFQ)B7U3R*0Z9>GU1|w`m&Uy-n|+dbIru1v`#5b(nDNsQ=zgEXLmOB zg**gFYaf*);-h43Z+YtHBctLvZpE#m5*GJ&5Xr+j`Q>k-o|=ScP-Zf^U~tcb z$K7DWy4|r~LEZ;(RovxBS4ExG>?6$F@NEWZm^7GDj@vhq@fCfQSlX>x7!aMSxk48!zvLKQR*6Q^2TyW=V%Tm#(TwWcFa8SP{bA`#x zr>?KBc$)Ss2&%PsUxwUC4lxg~jdgn`qbom-Vm0>Cw+0-wDZd0C*Zt|kqY6TUaC-XfFPmoDs?nN6HzqJry;HI71 z&FoB_#Qy^CKoGzFZd$HqxgW)R19Up6R@ZN;4_0(1m|AfRXu6AfnD;rUQZ4iCSwWo9 zaC*1f#jSYl>#HriC~V!q}QQn)VKUV74S5tW#R>`&NfK# z6aL72T@;tZ=C>3?4$D7~;rR0pRR@&UoxVlx?j|WGJjth%MbF~Ar_H%<8Q3|Ja5oI^ zFs(qgtD?zAXmg&GO|Hu3XJzKkprF1y|G$=W04!W(m z2z&c~2Zxl^6#3R0ka@49Yt%*9K)xYni;`=zOE&`ZGKU5%xV_sW=g$%wHhJ9!Sv?J>Y~eva#lH7NS!y8ZI}RkpmyPfgR_>;UpnZ=_5fQHy2XaL#tgl-jUjzFpPZ z8@}GuNB)b}GjRZhB#&)tf9rb8`i|i z_0!w3&o|&2^5-AQ!!?iWW^}$TlMk}?n?P0E65%WI`E37ijR@t;@t=7nW@SMM+?>;GH~857&Od!rg8_HD_@v)K9Y_?z#&+s!vX*E3RsUn{}H6eeZV7mdyH^3fV zv}Tc+<>%SDY%yn@744r5HPgHzqw(dky#5C1diK0%7=JcM6#@Sy$?3!We-kNBG=zE| zLi&0-;#Y0(pxADyyY+t5?JMbTu;=%t>&+=(H52ZW_fB`eUawXa7Ps5$Rn88QrntdQ zw8T;0kR9nF0R4AMl9N6x*R%ZY`;g@3kZS`;#$V8YUgYm?>yRDKE;Cxw)P#|@7$8p1 zk|0@=sXqPtyJ0=gQ$FsCxrYE&{+cy=VCQSZ7MWmbQ#?LuhiRurPue4}p^;Zv!!F-E zNEU4v+rS_OU4*mcB_iW5SITJ{7e+n(hJi1tnfO83d8ZZ_c*vRXl(7R#b7$VFLIO@SUp8i;Y5<8w3)DN*m{G4khMN0~mm&Dh6J#ZkB=4UWbAxf$ylvAcO@zP_<*ip8q@|GK5~ zB<#n*Dc{uE>zODU^2XuKBF|qCH^RPnse9MC_&s3n+mgeNO55p2NBscvo2AZ=%)WsB zk=g%QVz8e#R{sATMx8$&3fSJigP(=C%p?waHX|Y`?`;_dy8j|u-EuOhC4{@qnbE5H zI$be@TPyH7r%&JZlgs<)m{~cf5zJZL{fI zJtYt89=6e}+W@ZFx}8_`(TigGwn|U3SzeZp@9Kx~rl03^n?9`zlJ#Yz>5bDipiyWt zI_CS88{ygW>f$1=-6yxT;V19yK>9}6(OB}u9;fgW`E%CHt93cUGJ!WwLpkHyGmdjY zhJ274T{Q^AU3E>;tD>C~q_C6sAJ^Apx%Xj?E^{2uW?j!tgRR>#13_qRaBjWz2K6OK zJa4NGeAW^23ESMh!)#`K81(zW-18p2UlnE9nPtYq;|gLx8-8fSlLW;)gFHHKQ4J{=sr0 zW2d3(>f+S!k9I>gJ2uE~YH9}@PE4)8#{0UhX&L3V^Qo&ax1{XknsNC$^N4?C7Fk|z zVVA-gEvxG7dc!2fVypMy8J|;}eqmJYTJi|1ES-+0N6R&wAqf+gm0=0ug>zcr?CZdR zDDd`N_?!vhl%bguRhu3H%c>P5d^AH~MxP5-w^Z5RF!LUlrTo#n7tfX)`bqjw#!MfA zmrJY}5`W!t=Bvq1Q@C+!Z(ib`<8Qk6eqhDD-JUIoDAc=`1|S?jBi~D-Rm_4WS)#n3 zWo?rw zKP(Ou3unzn5UszL@6k^w%Md-k*O;WZIsO{rdJ|QT*`xkOqizAonPXyjHCvpuh;s0z zF5hEyVN>M(b^0~2up7e9QjC9W;4iXkSug9vVdR$*ua|zbb1Tt~Mue~qIf>>Bj>MD< z34$6EIyo0(IMBLP*B{QQeNMG8+3mRSY}4>)RE>hWEq~p9LgPfHF3E2z&aZt`n8(7m zi`Fn&(^ixllvRS|1;?TK%`C_4ux}f_{6m_mfhAKrRg2$WbmpxlDhwU0xZPr2z5zUa zO>t{%gRFzo524t66Zj7}*B1X5x2H1u))eM6W(lHi%Wi=&e?GM4a0`eZ=nKp6iOiHk zBI&4&%X|AgXb4YI@HWsog;1HvG>O(g6Nj&Re6UzkbO61bu9w9xS_?65C4W%`5+kPc zf!J?4&z2YT?NZjn!k4u%Rx&3!GIrnay1@rCZO_);j)6OZca8-^Cww2sy5Ee0aDxK) zK<4jB@Hd8Z*v}6m(chENSCoQlb0AEn?sZ;Y=CyotOYV@yGCD-+`4V}WI?XRBplVze zC`z;A)rwa7^IEVV1k49N8?ojakM^tegph@+oOv2&C=MP(b9@$(uUNjtREPai7;6)p zG`U_6J%JsZj4?oeRTpr}WgtGSOL@W2e3q95y-9ub{S+u7^zohpjfDfZ)T!U))r+Md z2d1y{X-@df;BfJuKtGoZzZw-Q2~O{HhS4B7NC4*9OtfvC6$t0c3SQsW*0KEg{|h4U zVMgF!{Fbt5vMbZ~j>2y*RsGQVeO5|`wU1djz12((nDP%5wRBY@3TT~|K_=i<2z?#Z z{Ju=^ff*UeeNce=Hl@+_Mm4|~ez4ytq1+k-c{-|DC8+}7Yv>Q-E!L`6=SuxXZldsy@>aL@@P3rHx^>q- z%L?=VGbya^_WLuPIR%;p317nk-j2?_*!HVeXEq-QhPo{!hXVW?;eB9m&I+pVGHc>*T+NHA zI3cngj3xxKnP+8RD4eqY;*mO4uhz@9AcMcOv2KHzk+1cRM=Y(A=ESLg+2|=BdP(P25tRklQs@z^91&yoGs_4r4v` zJ{)#?o;WiyE6csS&P%;Y$Q+57!?%&{pULpRKnr8hIJEqKnO%!cp@s*yaa(Tdp?%mo zZr8i=)A$vu%5TCg`dRYM2gF1JjGp3;CVFn|L;k;)r|55%+SXMm%GERr;jF5%n0jjtMxt-aA9YUYg=KT}czU#4 zBaJsbLeIr=R!p-Nt2icPv${fqHt2u!OVeJDF$n_bYqQYLIz_}2Qdp5egkY!#VpU{E z1PV=hz90tA+Jf@cI@;7D+s~S2dXGRN&Z}Q@Et&nq@)};i*AZP|9aRcK?y!%Eryy>@ zt~b&tirKe|yw2+B{CcdpUcvNPHhm9jm^5*R35HffqTMTrOvgW4%Qv$@RBxk#Z;dVo zedig;X5rjN0xT*cw`er$NhERi-q;8-&PV>bvc{kP@K-P1kJh*2$um0x*@QgL41ohr zzD$d2Y#iWl<7TM)W|Kh$fiK}>pLD-MOmgMDf~4?F%%Q|*y3MraqsJ!wc!9voa)<< zV$)2RNW8mR_6@l0-x#;ZavqQjJNOz4d@(d-wc>*fjwq`THb(xnHL5eZUw3F{%67~_ z)VI%^fFDFDXsQb(Rn=o5wG#f+h7%_h;N)b1{RH1b#+y#>6iA+5b}%`-;3q6pO(SCnsN~`)JTe6q?enx9>qIDiH<)mZS1c0CF+>Nro$a(8Y`dTO|W7F)K zlqzPcyhZ>)kjS+N@>Ab{^2?UKMte`ZZ%Wbk67!De%zxCNyxrEjXb&VLrtdP+VHWw*XoijK9A7uFgU`X+o| zQYT?&O-@S-1^qwj^xh(=_d|$HZfnDOgrh&nfVGtO2lYsk&hn;Skqe^d!E4iYK2Y=V-`8m*ZKR*!BB3(C=Xrm3;R-|%gkBT zw<62e@z`!BZpX73`4l-8wQcg;d@w#UzuiIt83TgW4|DP>14i8t_5;YSgXc5-%4*-( z{#M%woa4p{um$j7hD*d9_~t z>_w@!$5cMTFyI9&?KM*A4l>%Jf!>&+BR-D&=cxulJdVZx*3j z>Jk&~ksENnF4HThfjZxY?jQ++l|C;n*0qGZ#ge3GAtBdo`uka*_ixVJDft6FUm*}; z6~UrQ@lg#mvfx%dm4927@Rf&o`J+(&NomxK&-*A1d1Gc+L@@kDG{iSdnJCt(Q>JCr z^ip4B@2;ygdySMsm}WJzW`GdB=Ugh~4a)9>TNlvrR-aMEC+M0p0m~4!qWJ$Vj{jPQ z@Ef1XTQT{~7V`g<%pO|952MqMSpMsFY@XW-6~=x7qaV6F5)Q{Ao^MHe?th z6e*dRk0g7g@H8a&D2PT{4>-M}$bZR<08uBn^etm)H)8KoJU412;*@+XzU%6EEU91w!weVo zv!+Ls(d9(S4I`(P+!2~mo`Gh+zACWxIXybh%7#Jo2J*qq-J6`4u#eb9#kQ6Whe&~@ z?{1^XZ^f?ve-Vz8%uBR4hy zEC-4OuC-k~w`;&~PHHwcS!ZiiI%TFsDU5T`xdg9xIsKF5pAnDD?zAU<47#$ErgR z{R$YYK(pzZ9A*Bf&VSLGr2AGQ{aKU`#8WQ_kKC@r+%_M{uL^y20B+(Kgl+nXFnU6%dd11K3_KL8nJT*P3AL+toPAc^R%U$W;0*6v+C;SI)(VW z=R%kkHWJ#RUM8%_L=!nmJ{Fz)A==gFy^=CkKNth~wz*2SUKQd*zvP#N)T zX`&JN2+Lm8nkHafvn5~`^lO>*A0=8oL_+`HCZSDFM8P~W@g5tjT6cWH5RA1$|F03g zLI3vu^@3IYtY;{mnrZcA$~xt@^!&f6iG6mfiM4t}RLiYq5ago;S8|7b(K;)|%=lVJ zK-1y?MfkUvsBdT_i{Bru-(v`9E+`MDi+&cdRh@ZjbcvY7#S%#`r(qr9on+oO;2NV( zKi8375}&{&C%Gjo5c88x@2D$-W0oR5$`LSL&5P-rED5DZ3Qa|tuq%Aou1MLq>*rWD z7Qa9B#|q=tlO!*^KUeYR?>9H`t~xY5rkG5=Y0`Oi2?a#_lVQbgNq;P-6!4L;mpM|O zzpiL%2QdF(Pk?2GTh76A9V@da>D;$VN=jY99kReN#_JSeUC|HYK6qw641qU3_nT-m zNcd%`(vjx9fX_l^xZ^XBboC?UANIr<`*y4b?~Jklx17Uo=j956HF*P@W#RDTYbOtG zp6YLI@UvObk|%J>0Y57<@<5lfVw!PyO=;fgyeMUP!%I|w07b2W-#8cI=8^H|w`byG z!M|v)na6T*Uno6}Kz^2=XX~;ZnJ7bWC6o-BAuRTKY&Jz^kp^K@Pve2)L?QFLH8tHJ zMse|T?Etv!bi;W?%~pm0T)&~>WO;;5L%w31e!IFNyH}4Gt{Gqmsq_9-L8{hFRN+t0 zC|xg03WPSmV%4mKakM`NUqnY-Rpaz^-WeLe6ZUnw$d=@naTK>8$sqE!SyBF6dzwxs zJg=s2Zz&pRis7&7szrJxlyOljj$7ht=VtM^afG*9+Ismu-oocOmTGFuuW*LibEE1z znfBXSDt5a%A9~)xZK21&yoUlIN~mX&rzh2dNd_ER(#7bS6vrZao6Eq5un3J|!Rv%P zhGO}aj4MUgoN}LMOQSA}22I3Dfrt_}X>7Y&aja%xTUW zL}vh~3R-8=X-H5+-uc>6_1Y}i>Y}H`dPK8}UQ{i2`{qG*7HOB&a(lT(jLBFdeW&;l z(~Z+Fp`oveCLh_48M2om4&l9T=*gdfdNQk$a)K6^<(i0Skasg-l%~h?clmV9DaejI z|Dts!dtQ$^Ud3clE#cEjjfz-Pd&;IPO z&U>pepKWaF?!74>-QGPK!DGml*CVG6wMBZ{?BtO5`n7SoDHHd>Z1qhLj*_EGFeHf> zlqm%4=a`dBnAO~#n>s$vw4%gK0kW_u^E?|;7|Sj{_(>gIusx}08FY%&PcuGqf5fEh z2J3oE$e7nnP~s2`(fbDM>kpR}a8j3**I5WnIg33|b|06d>Y_QcuiBy*`E;@H+Sg z{ErWtqI6m1@P5HXTTK1h= zvg!#bR7xgLUNNKi>q^~~Tj~i6f1yK=mFG69C4^9muRrN$OA5hho&5)hSQt+`Lz@;w zz78?j89@vcVsKTobMB~F%J+LxM386@JXHX($MK8<)OY!v1ggrx19K= zd6{2iEoUg$|DW^gMu4XZIn4nYi5MF6ls~$4cFkvxhHdjlN4HTiZj?b>W*5@mZ@z_6 z05B(KW0I5o=fRONAK*(L@BDpHj!evPebJzQA!SxWFG69?E6OZ>-N9G^5Ky-q+U-T| zo8*t5JDFh8-%cQ2*41S}Nt1MzwVB3m!PK1Il2?5^@)@IHXaBaMbNhKZ{-#l6cQ-3A z>&UoLR-zz%-pP8sZ=lzk6rYnD%e6mSjB~5yxjv4I-=AK)CHs7x7=05}lq5Iv%Z-D- z!MPYhMVyLTy!zg*M)h_43!aH@n#ey(y7QZKS8iiZ)(iX+;=n%4DB`w!gY^4Zlh+SJ z>~`!J3nV_Q-$91DCA;4uB>N#D_<=Fn&kfSw6!YEMC%qk?nfBxz(TY!fku8fKi0eeU zpyV-jVvP^<3K&Gex^kK|Sa{?`$Yx%x$=}41s;q8Sv_wQ-s)~RW?uR|IqNY4piB-3v zN81>|hZY{}vJ@*K){UGCq{LcXQyy2y{=5~Hk zL~%JZqKJ2QlD@ELbc}_=1#F=0{sIxfeVSj^F zcfXOIlQDG@1T-*N4IDFm0Upho<17-p`1*KREZ>5IT3#Zj5yJpY)~)_ZPITosjTS^` zp3f=sg0+78TE|{#KjZWZS|YD_t>18jrf|iGl4Wg$cL2AlXJ}b;@LOSlce*aK8tb4_ z3O+L+n4e?$9fr6edVSs5JX=Dr2#ycid9k(|9}CmxC9Fw*KLl>bvWE;bRjmVh+J?jV@HCa$6mv+(!GRbPSZfJ$r zjJDI+ZD<H4k;c>R`Q z;g;3{Zl~~{fHw-GgsiInI-2Jjw+ov5O0x;6Bg%b6@Vt$C`m>`Y4V`}&NFA5u*8|vI zuX52y`MZ|HNlYg`z16V)U(WjdA>WSY&kUK}+=&TOBUc-Mgl>;cAI#P4Vc405D!v64 zX+FN_rEeWayx3@8ZyWsF3R%vuiMfySBu&Z}*)kJvID|%exthRZh`)*X48-7TC+GO{ zA3m2x-JBkmj!)keP1}6UC6IYOeVZ1dWYFu(@Jr56Wyv~s+;h!K&g6^As&EL6%(8QK zMrj4pdqvqaZQNj`X}Jd7rng?k=X6A{&hkc4?f8e{+TtPWI1u^-A>{4IHo9P5*H4R=?*x^1HQ zl`=v`CJ2<73J`LsX8Ae0{>Ja6h?nflab0KEw`CPGUB?Q%1M(Y~&u<3(AO2j)XJ1c6 z*fEFt!DRJrIXCYk#u^vrw-97~$qMq%mLT6igj-E&AAZ`< z^)?jvS!D9p^L0C`u7=|j)1YI{z5x#mkeNUXKJ$PJ*(o2@WaoK#jXV-1gDQm2-c+AYa{z_%X~Yu$t{|nagS?@d;yTqxrU* zi=lT)UGY>F)j(TV4**S83qLtoPYIslV&3++mwM_i4c>A9PysjPg*Nbt%>r=-gR(d0 z>kpf(xeN8 zUvJxNI+vL-%A$i5(jph|gSm;|ZDHJswm*xK`HI}%_QW6Wtql*o7>a9w@Y4q+Bc5qw zPr9wWtwFlIdLW6uB@Ew~8hz^W_8mJJ|q^u~!FnSCFSd#%N z)d8MXh*p0#mo#q4ru2bb@I4{P=1dr2%WE>X^_A$I;YhXzRhD<^YJH)L5MGpZOD^`^ zD(XkT9svbeAmyOw;)54;BkTaqTUPagCidF$hIH3KzN4f!1n6B>3*jIgOvEA?$PFtQ zC2Ij_wp`KzUFE%IP2HIv#~#mZrr|d02Df3?A&WIVGIM3(x>;Tpl=c@A0z=Z?b+xMD zs2LwF;;v=J0{{&6-bm_KWKoJqDfx3FbCxA;h4{~+oDpe{jg7peRCS{+`@T>B%EuT5 z*u4)A9Bl{RWaRL{$bVB46uBYG? zb4p%+k*#hy6W$wXHl=v2$z>&2Bjj4Yr^VKluCIM9yAvb%H{SQxnAe|GeBMLF`+d)= za)!(Sb+dvhp5*OSPO4f~Q+irGYAU~ElnvDJS@<{1k__r=r?|f>rDwcRNC$AKea7&&51zYnD&kUR=O(L0)`y2ByKA@*>Kv%p+??2bmXmU9D zZRhb>nO)F0X2=v0Q}ZfgFe1`ujVLtd0^e5HW3>NfI{d&{{brE(IhtEes(nGO5{1FH z4bM)hvLrQxY#e#e9E&eA(tZksV)9kX!Od)4n^1H?N#9O*U*}U~EW-321;KFKZow2c zQsVS>lrYI*O{Lt50;eX|LP?S0{93Ga7)rQFZ?uD3jEO&wvEw(>;RiChAW>%pQZ-jd zKD;*u-xQbMa&7}I=d|uOJi+s9#%pFF6UQ^LKMT|SKHdK;PyWYUEDSSrg`RW#l}VBR zzluXn=GpS%*4FOBCTS{t{oHZM5CT6}d@_j8Mviz7j<}^|d`W58yl#tIn?v_5EtTZc z;=Gu`j46;0nBVsU{DJdEz9}t%I`Ag5u07LaR-LtOi_;`)il4naL^RFZowe6*b6QlY zmg66v(x11SxTm^GM>?Qs>owlIlzl}Dd7gwkE!Yht3f*?W%+k6`4Oy$X1)mR038-Th#@x%YH0E(NX-gQONMh)N z*UWC3Y9~qmubX6EYHqq~U$>jlH#vFs6!es`E|oK=uQ6%(_oE|($bN2Kq4GLo^>)1) zoF!Sc!Rs0{SeZfkgDd@!|=C26+d|{K~FRYhL@7Gxk23fF`dlC~I~L zU7#=htm}eJ6u8wK$Lz^D!7~E@4amD^#Iv%_v)Q$(nGr^`B>h3dBW9d*C@w=Iw>tgO zsFYENr@p56k_l_EF5O+F;!et9`4(?y7{G4x3I?%M1LnTU2_XHP&WmzJQgJH+ z{OmKiN%Y*3sZH~*tATFIIs^TT(-U#PtINEui`fiw3=V77lWCdtQeG(^MX8%Zd+vb&v;l*A1A5;_md8PJS&*-BQ(8Y9alKP0*D z|CjIw=ZAuPz%4oDmE<)1>Ei$@2y;nqW!Bp#L2GZT8E?-?f(Pi%u^?m6W^9bi;)2mh zvW}P+oq#96?^e?i%K#XqU@Tx(=ioo0&VrbkG!bd$YyR}7*9|_7rK@h)8MFN&Z|BvF zxT;#yx(dn68p(%-KoA;alEIFwv!>{jG?OaJu+K?Zkv|9W0dWjqP1>+T;{vpVK(#-M z`HA=AR{Fw5WwJ;pNV90()^O81#GIOw;|#okb`1;A2u|cie6E~UrfrJ31%eAvc##M3n8Fs z+;ZPWpZ}IYjP2kX^H;wKi@5FFC+6O~z;8-?ueK)C+T(hHJIH&YB~0xj~tajyk@TO~Q1)sRS*FFqr|E z=S>)-z1r!rSTyU^swAcv57;liBlFUk`diXjcU;Cu$p_qA9)72*+gS<(5|;47NnQ{?Yci|_|e zppGP4UiZ-te6t?@KWi%beP^@3`u;wtiQr)|2I1E43P{~bOJS)L{eoQkm_sBtU+$fbNs52y<>YLUlzwc9s}4?4f4rFrNr1B)cbl!l76Sb6LjvS>uzJ@5LuCII({# z27tTdXaC=Ok~swy0orird`s9dAn(Bm;UL0{iuSVz9nXiG=@`u*jP^nX`FS&fbGhTJw&0x8%mNROr&%*U=C|%<};~ zeFLoY0loj+Os0wdzQ|U$oKEkJG@H_zQlm>2-8g1J4M2sjnW&7-#y8&g2Tu7nj!%pU z23XDS8yrWmB)VBabx!j33VtU-XI|>*&TK^SY|alLk12!te~YDh$?H|O=UdQB*0^px z8}GrHUjzCF@?NJ$VSz!jBGek6$xq3lOWvbn+SnVKXP3D|E_Qj4v&`?$yg&PV@SHSk zd3!eaT-O0hyyndn1nPYm;r5gDwR(LIW#Hh_`XH@i2q&mIXpBAx-;;Mha#;-?c1M`R zo(3S^=`zj#8#%*-JNa!rm1kvkL1UZ2O(&uhJ(ti$^e**&TV{!g`#00!2P%?p28o~B zDdw>13rW4-c6I1Pmfm4E5rrWFuz7#Y;!_l#t!NpBewnQ~D1lgY#3-Y8gAnl+9C0HV zPTz|RCMm0{xwjg=t|r?^bSP276W?eDw-_3K?z7}K+u;W?yCA{Q`7FJ{`saIN@J(_0 z`%Q5_Q~M3i^M*X^4`bHfr~98}9vIByhF};sjEqcfwl076^1C0vD4OK^p|HwO!t;m5 zEJFzVT(Qf~dJ6dcY~{UmK#}=gV!>E@ zq4}ff$$W0I{ZF!{o8|jjbK+cQZ%)ph5cH}0z{w~j_HH*B3?cPj6mR7`o8}x$*g@TX zZf-9FXSOR&eNqB*!uUAGM>tbC2a%{8jVFAfbUBqGjIh_MqMZ{U)vs}Y$Ey{mD8^^z zx7%h)W9tH63u#>dNQ=d)%onV|;6S_SL8f@UT2*ytMKe?zo3p}bIc6pZnCF&bjc_u5 zo~_$?RUf@5rf;kCB%9@B`S`AW7;pMHNmlw4OqMSrO>dNs=(5!&`EX&}*6^I)cG2o= zS+qq~7C*?lW@X(N_ueUsOrhUWocu*A^Xf-O0BQaLC# zZrXZ{H*YzEw3mY{L_!9omK6|F<)P5Gw33v`e>#9?sbZxCuX7oHnRi zM(;7MugQy^>cB$pH^7?TsB-!d&;S31=TG0!N@`DhVOQ0UG*hrqBfLhO^*Iq~c$t?0%2iWV=lag#ot9xc}he5U^| z;F!Vh8Ps5UT-VucRiByQW9_Wd#W%nK z-^_42(+L*l=*wtHn)}HSt*t%2J2@gi({eo{$O=)$kk3LG`EtF;C8GM8%<|1Li*U); z(=bA0)#@F~p<+kG1TD^snv@aihn&(k5;XUa0gbi+t*$8LgP+rRQO-!jZbgBibkh469U3fUkuLLFm>omd_clA< zoTR;;uiII5wY;Tdp*hnU@6Zf7?ZgxKxHxLE^Sr!%e7ArjRFO4;CrV_kE;~#C4Vc-) zIO!&nn3g}Gvx3Z$eD%$X-v9fCbW7QMT|o|QcgviFg7}Ywh_Rf}Z~)dB+*YjR8dhdMC(COwnSVt&?$#xvX~egbetwae`Z6om6gO!G*!UJi9Vb23 ze97ukQ5&1|&5Q7d;T6I%NT$LsBIZp;w9o5m;S2XDB?LMw#a4l2r-X?>+hw)f_Qake zXU|0+g|7pk(k+|KC{(>H+UxYZ%r5jjiu-dG8L*paEj@;i)I#|VA|SZ%^O?68Q|II7 z05N`=Pu3TRHPbKXL!v?5L2!{bO?E+^M$u%G5;8~R!aTqx8~5X*>iqm8nU!1dedIF^ zHH|(3*+?%CEnA(M83a4O=1+fm-QZ(F;_G(CbFMn5nOEx)T2vPF8fs2xkf#oUv$2MX zf{&qoPY7yKRut>`tF3GDYf3bRcB`-=L3-g}<9n5bcWvihy6Yg%<|~%OLB0lw zpu(;QcUUQegOx2T&6B<|tYVCn1u&(^kKV2(qSitHZl%vd$4x(B^F_AI;AsrTRdpBFkJ%%A5&iWXiI{ ztq}iNl_MhVv9S=hl$vffz`idufO>HW0^_4}r~l?`205b08u$yg{rrOi?+o30B|L^~ zb2!AP#F%l9&&+QkKbq{_OpVUWo7|0WE}9%uL?Z+11TLZPK`)3zS=opStsX?(vFZT; zwgl7{LIPL4KmYdT5)>F6@n-0iVS+IGNSQ?VCCPg)4>6)xtieHFQP+y9BI$MjM zpWm+6pH<;FsmhXqTr<5!|LDhXy2qT^dQM}sDgKYY2N5|~t zlVg+j^X)#@1Wc1Tw)r}S&cFl>K03O^B8qt-*7#>_>TK43^V|)Q^XFy;-NgJb=EZjQ zvpX@`?8jZRA3uANHO16@;G(>${&Dk1Zr#1FFJNx<%qUv`OdDnm&m(c`U51JuFahEL zTG4Y0h17lEX-mrD|7*1W-uHj@ssDAB+3dR^{hOcD2^b*u&vW`R?5`L9kY9dT%yLO1 zG)O_8ua{HtUXXgw^@lF~A_0dtbDLyhe49D*LX)&W$h@F|cRk=rlRT10AF($iVKxn_ zrH^DS0r=ONCX{$;N;HM{be%Tq39sA#zrk0E>6YJnQQoLo)Gkv~{Qp#F^|QzF;(>n+ ze$NFnjpyYLKQ_U~oUPK#m2~v8sZ65O{rN{w2K*!K@&9e@an?NLjBGyZWc85Ny)E;; zp*4%NI2Xcrx${QTy&B&J{JX&^=f3-a)UBACGupD?D(Q4A2+eckRwUIysv4yg-D!zhP&7ePck||{# z$r#>pN^Uu{*SY3$F#8@;zl`dr=bYH_K6x{zWaYdnXHY)KcII{4PkjH-^}nW z7{(407nEMStftiLnisgz^$H+ENZR-CqQ))x?DwhGW@X^<IMqMs1f$TBGa@WY1aXt3oc*Nbm3pIT=>m+Uy37{F;bazK??5{DJ6pl zL(@M}PKz_&F0!}cW=4o`gL!=8P*Ro4Yn!dX+WM#8j7iIEXXk=HcaoLF{ei$sM6UvE;>RkuoR&7B7QkrjKd*}2L8EURjT$)i>D zi@95AERI$bzd`)Tqb!cR;civ}B`@Fe>L8ikdnwUf7M`aWG0CIbh%qnKwbv^cfi-xb zJ3~MAxFECG{qV;glUyv0UQ{U|N($bDAa)!&2FzF-Yt^8S?=qksc#6=cb+H0t_rCmY zt`bB7{1V}OL#a0+9--{gvr~BAQv(RVPgEZa|f0 zGeW#g6a`BPNef|jnwnIEXOPI_uS3M3qc{mZrXY^oSVY*yikKeL?{-rpKlWoPKZCH8 z@+7yV+9#eWMuGv#>LktVTXB)Q9k8@kE3%i<4C!X>5J*+)TA{mcKtBIt4;TZZVXep+ zFD3=jK0hbZdL!?C!1RKgv)K@Dw-Pe4@Dn!1@H-rOQq#rh!|C<-F1qi1__J@XPIR=J z4OTEYo5O+kvuy;T%%;#?(KOV}$Y26leBK9w;Ar()z9A^Qh4ox5Z?(M4M)rdZ=yz4p zH9bxKEgNQQJ}vi(x(0DM)3j*v@-pvuY&!Z-siz;WmLIbjO`Dw3RTPM65-t6h#_%zO zHVfep&B^8>ax+>vbnS%RBhL&fx*-^gJK@DhbSEQbv*R>k)kp*Ck>%s*#~%v*O#Che z$?%Zi#|JBAdLXQ%u0WE|Ol1b%lv+;oEiX4sx>Y zGk5{iurnu-cL>t0(E3?bU&pf<=chL-E>Gss_!L&>wz}ylvQ!lR*Tmm5`8`V+jJFPS znU!nu%~g_auYzKTK_MAg`x<(vbbxqCNiyJq;0NoS|5p*?mNM{qy;@Z@g$~5k>>4pe zn)I^BM1t+Y6m;KtQQj{1{Ikv0FE#mWIs2=&D97g0_hRAKB=;N^@T)%uGj$8LHMw?= zbInJB<_Gic51k6PVx!wIY)FWo6V82hTT;w&T1-W{_zk)9x8zSa8Ru(Cpr^lRO)Jiv z#o%Z_a~l?V$_urn~t$BeVyNInEzBg@8 zZ%bQopiab{;{4w&3CwMYr!C?lHJ-_7bJ@$)T7{cT?6O*4Hty^^6s)ImKWULdYi7y5;q0dI|Vu%ib7%?&s!JRo#~5 zX%UNsxTaS`i2c?0Z+r$eclUEoIZ++DI(K^#HgNSC{KVkM73s0r$118F;A9GV6FW&qlFo2G%Gw9ckZQeN(glb^MdtP5rT0S`2Dl zm0}K=bR%8zqablsG?ZAlmJc}jAfELtC-(M4|0a?7rbvHlPu`J!{HBtH^jprsmzQ~6 z7nF&4JU#l77k4d$$9Jbk;;iuUd6Oe)TS7!8>kDGM^Xk@cf3|+?V1u#Z@YGW zy|Q_+>AL1zip1u2$-V*ef_y(~8sqEC$_sk)mXm^}UuRBYS{bT#c@w;EK%Mvc_U>Kg*Lc*w@e66S~%tn zNqh#C-Q?&X;v{^y`ZB?-SWn}m6bmH!DZ7%_#2pKGD4=louG)jQ`8B-+Y#G_xc`^f2 z3Mf-7Ea-F^lS83jMg*8Kuhu!C+3Dp?(72(AK^W5@LJpT(vx*s%6_%V+6qJhzJ7eG9u7B7@I#!FPjHBUEGiF~u;^oh?bvv)>qZh^W zZIzy6v%D-H-_;M}O+Ux-{?oe1$!Ul*y-`kXaC|J?#y<}Cc1E)Esg*U*kQo2O^Q1jYq zCsSaA770Wv?mZGk$T29vAg9TJ@Xi-#8q4GeJ49rpYe)B>x)J z{o301cI2h}l4xUVU_^4wqG@0Gc1`|m2`+0-Z$7B24_?7~l20=V#%^U5B|l5#i7cfp z)(yfVmNd^Ei=S(a-cO^IXYxWA*8bhz*6K_f^ZK(U(zj>2_vSTW87E%E`y5i_Zsg^6R{9t(>qN_4{P|8}O%18gU z#grO1>#}Xe>33;OvZg+k2mpw|k$3o6P-53fAKth`sEk5)o{0;JcBqpF1L45f)vn=Sl)6%`1AkQ`NBif ze4Dh0{q6m|Ww6B5>yC9x<}A=HIl*^|?YrU_d!cfbPS%u1_4la&X`5pnk4r`dP7@9j{jTa+cRmu3s4w`C;?^5|mCe1>1l$XHQ?9 zK6~#erGXhJgqlpN`2hCZ(DkO}GrZST3lcGHIBs%=_9=v1UaZFSPz9p|o z8Sy{QiZY-595c``|JXtNzmt(9ocLzg$ixC4z(WEd;GhoB54I?`o8_PFC6^DHG{k}5 z$dq-XxDS{)fC=W!cL;t+vvyM;{Qru{JHd(`nf))%pZm-npU=@Pk~AZI^GQ{edA9r- zEHG7+V649hDW=#yU|{e@+FC_Vkci}rAk#Q(40(^qW1zA4*4yfyi0N*a^63fQm1S7E@R zfPTn2CL12X|0|}A6N5ij$|TbS;RooBV2(p*w~+j<)=;J+9YCpIKZCiv4YZ$gJ#r&2 z-hM&whslVPF@A~R=k1XCFl_cE&(CeS>^0K)yl5h@X&Rko`Cw*qVBdq`+N{3F6+oZa zd`#buCqjhKm#hTQsvyn&s-nn)Q|?!F(PonpX>(Z$3c(P8T8r73q1wfu5W%8Jvy^g^ z6jF^s7%h_Ul%0fGBUV3OFKO+M0ACelnPx3b4`FKAfuQ5HNPD@6Os9yYot6u+^0&rnaa(m@ z7%npy{2Yq>x3lKBr7=y`ZQguooZ9BYoQF3#aXjf-qJdF?^Q@uOP)wxuh1@{sYJG?v z06DF;tqjB6kh36mp`5;Oi&_RB-E4Wi5#JH`?K~?Dzd_!v3jEd2X#A|r-&ym9c-k&c z6eOHx?(oHX&sdn7_aGs=Phv9ldy?EfQQ?^WzLcDJos*$GQ>Pz<`8xU?aw?O`68j-D z$^d{k5M$k?%VOy)KhJ3O(haGq|6ehsNH%}L+URU~Uiq_WtnX`9LbsjU=T-GqSE*FV zsdW*OBcJQrL^Ii}#uiySoolq&ZH|A@uvxEGB`xcGoq2XWdb5p=A%OTqFusLBXKWY< z8(mfM8(%kb>KYQ8omWJw^>X$NB;)fwMR>TT#|_ufqC-{2$KSA*acx%K#e|} zI+-nTWWJ6xupEHY#!qpc=~Vh``f&9RryyzgVbY3D}& z5|8q)#gZI{qD{|fK5w&fX2c{|F8c;7(92jh0wD`~L%GKa)*ekVge+=~rj}7@#zN3D z@}_PjO9O_{55=4@%&tMkfGN=cjEU%zW;KN5TDC?5bQMUSZN!sBXchufT_|zrx5+?~ zCJB5<4=g=bw3hS?moPQQn^vRe*F>6&F8lq54h99B6ft$G=dPZA3wyg%<^fOu_wdY@7AL^ zCyjEQ{-SkOs;qdjH`G~5T{X=uM$4baRnk|D_?RN&SyS#`B!tiMf$x6JEXqWF}|^#yFSrVuG2#_L9WYTHNJXeVioUSK0h%BM`0 zuai@2SY?aX6C{Ho<2~yR*d`8OEeWp{$`i=l#_uAPc1l^^YaIv~?B>04?=e^7n;~OQ z^?Xxy`c_;NaQZ7+Lu!9k`6-a<6l+%P|EpLFsiAo$iw6;0|KHDPw{ltxbT~%_czarU$sR!eu}jG~Akvz#ACghq#n7Q5ieeILIGJS(*7SP z^-6~3eQ3~2Q0NGIng3gJ+KudUOHqGHwE18uH>00{&|hcrZ!grqmsUU+VUwmOc7_6O zy6dTi0C?varK9<+@mcUETN*4v;qOkQ(i<9bd2O+>{ z27!}(nqTg+%#U%ic~08TXHov@#~uUABSBj_e0-Nb>NT9@&9pAK;nA1OP>=8WpLILE zJKXDInyN?--0#`zFAqN5*}V-G-7mia-*qNzkn@@f-SqfRXNFpIrtQamOxhuR%4<;Q zXL|I}H9gy3e6c;7rQiPcqs8J;(~Qo~&p+bD85NEWC(LRN@>Mf6=Ve6P!g(&TBUp z&x`<*lNDu?iY6~+22)B%QC~d-vUJYf&)atO=bxCKs|9KB38lxc z@9IL*IBQnF$GR>*vtQ)P?R9f^x*|At=k21rdtR6IdBaFwl+}c=_yI>#FmJHdLeOG) zUU8DWtyaYpU_UxCW0(0kqZa82nvlExP4K3equz(_;Sz*i2Qi1P(3RDca{K(@52~d! zp>J!Bxy?cz`7`*kGmtlx@ks$l;4agzmIW5_4N%Nol*2drl3%scs5|-fy@rt^HE!9ZXozBvM0J0ffOAu1EU*?3e`me7KGF6yj7+O zGi9r~T2Vhmj{M+dXBl&n=SxKTW72Dc_cuGDU_^wd;tixjEOZ2-wX8j?dp{>Y^Fiw(@V0)=b89cj{kl2v@^uVV z*bjn}qV?>S`~l!X*IV)Ct=u+t<7cV|BHr7rdipw2@F5=0EGK6f4c}0v=azhqp`R05 zT&KTiO*T?=483l&Qmmtteexa&-pg)&1@ca=xsPHA@I+o+YT*f9y~?NL!bpb_km5H4 zZu76DlWs5E7RN?#kUn#V+%PV2sRYOUET>KVEdM1*L^df|4GCJ~uhnDNOEa(5Z*BLe4UW%mS*@?V(_zOm%kP}-cmGT z=GvK<|2Hmb0lW7n$F0}5Ah5nf-L@<3#yF8Q;1I5ti~L}DRCoFM>x$5gVsT5md^@rD z*)Y_%>iI{OTPXCQ_S)xq-@v@LvUyKgzg^$|Z?(H$Q#SeY4@)S1fOY#}+O(Ue_Lgk* z|4kcq^YFj6%^Cvz^V~-Lur1S%?2$JQXEUNm(O!R$F~Yb^+NGs+x{Q(*3ioSij`tMY z+xM@!=WFslfBwU@0YlUCvt|HpP0CwN<^MO0z^y27Yddgj2D_1KZmC=cx#nj>vkrCk z^IEMw2Pb6Z*VL-|nzu@btaB+ab!n97K@zZ><~BRLlD9sH;5W!c2L6-pwY{~GEVotQ1WW=Tg6Of1PRevn>t?s) z4PWQ3rXL->F;JDo2A~gW;C5Xvn+;GfOVZ|RGpVLDX_c@MBQ{wVn;HNAyZp6p%1!%{2w0Ox z#$(fUXvp~_pJ$gv#W)rh%c_7-Sp4g7%PlR(i~Q<2srawyDXXAm zBC^U?Y9{8k#wB?B-GvGyZlk4=`3%i zb-_)KzGTWgzUzP1>-p}6t{>B6M0?@hpMLrJc6d<3lxE?(#d1aq*1dUrJU#m8_pN{5 zdmPxFiKB9M{}Z zQ=EahDSz<;&2brU-?)wtZyWZAEK`4#%c;c^a#6^N@F>1b-fk&ogs7Tblewta6o#-f z89D^5na;_bA9H%f1OE-vmhe%N!K)J?Hl(wrSy=*C1THjY!P)xrOy=|AVqFW)8r2u1 zLg8<9p^@Svtv61;qI^>MvpXn+4}v=I4iV8o6daF{YF;l{H&R&?L@UpHbs&39^ zAL2L&%{AA%5{T*9(;tQtajUNXKet>lI4eI3&j0Pnc*`05*$aI|Z+z2B6}KAu&q0`Y z%SDP|UisNrr5Nn(=k+qhOHH$XO(kkx?A%X1Qs=~5kx^F>)rXab!1 z>`?TLYwnrYHhW8{*O~${tn?umyAjaqd>}S^!_bMGEh#xeWqKdh6gg(fzGej_e3dyv zs6Eui!ySFj7!Gz60`ByB)9BvEhxxiuD!eSWe#DNAOQWc7MIzLdmFn$!i=uZcT^qxtXglo)F(9i zrY!f*Wyiie2i~5#1_5o`3s9~g5`vnh|#iD?^ zB8=86Vs2gpFLMl|Glg)EmTT}LX_IC7wFTD0Ou(7BBH7;^R?G#`SWkcMBXxL*(8+X=Jywx+)_GU)11P{#OZjm?EO&2wD|pnnQu9! z=fe3;jFnA^HI1~7)2AZKPGG-*vEI_f**Mm3HnW^o0>-p91NjD&=>G>Y%=Wk*RKU?upCR()c)#x`89RbMyYxA0$NB#fajOIob`PoQnZtC#o zbzYMYuV2s$Uo&j#r`IJX*FgW)z~pNQ;`_?M?GgC@+(OaN1pTaO(%aMWmXrDaIjwqo z3jDuU!w#~|&xUp#>g?yYW^JcWi9J79v3~XDB%OiJ+u~~q;O+Sz2=~{HM&N#Ao}!@> z-g%~Z;Cg%({K=W)O4G!>#TzGOJU)2vJVtWxzgkj?xo&8x@yV@(De@T>g9bysjguFh zx$csbWS3?>&6?|Fo4vagzC-4PaLvl5`bO~Wfc_y{uDAf)!f<`K;R+e*>j+KEYW@Fe zrQ{{jjW^Ql>xg{V4@9PDMORbIZvJo{z^$Yu^4S|Be3BCgRYrP+aJ=Azf%JRJyiCQRh4=6-o~Agx8{{4L?L|``Jy(E);X%WZM44z zDXjB4NH^1J;DoxzY9LSa&z_ug$Y+0jm0uKu&voBqy$`rE{rwpY@0)@2ruw=@)NlGZ zK}w(2lrhYg-+;Znfd|JY_74!k#D{q6w)T`Du#h#?x}N4D{1eBqGo!!xi$)mCTgi%L z%Wq|8r9V+s7C!Z*9S@qkc3m%>JsLs59VdmW!fR|a_D$asS$(lya7v@lOvdYUbD6{xGSIxHgV{&*D{Qm$;zFIGNQQ&o6GiBMX zhku#whSFWfrs+}>|GF+A055v^1%BI)25u~RXLOJqR}=s zc0rmnOS1_jz(auveUe*9&s3=O-dK02ZIK4Nj3gpez?5)IK^7#FfuFFjxOC6~hyn#nuL=c-aWqdnN-I&JT^?J!;-UHa#Yjd=wbo3uwIW zC4Rhx@CXb4WLB;f-X(tZLi%BLmdwNP@@JD+<8L6v@pC=1|KE_4ukTL%9FzC|Yl8E$ z;Q0MW5^u*UA0mnGo51o{kZvbP(wsU0J&>tUMk1J;x>9F(%3t1E4sJg?Uy#!yj!#Cb znu2-^mo*kdy`1kPZ?E!v83K#r7@L5|XJ5Tt2A4!>S|SU z?$YBoq7bp%t$691SOEU{xnkR&$oI*RzO0K&owfIjJ>wJhjYmMfHXbw&KTAGYNYwYB z>g$$VlBrMBZ(ixY(M2WG1NlPd#ZuP<$sSOqtx=ORteS2ujNdptZ>#2SM{t4$ezW6b zvzvv6_qJ1TqyNbym0XAE5N7o@ZlguegXEAFeHpCE%5wH?-Q3%APmf?$Om9QE|F<%Y z7_0xEvP=h>s?+}$u~007$4Hajz727IuDI%U4%Y3sieNRjn-`8co5AV%8k{GA?F~$K zPR`M7*zTKP<9OH^QG8bUD4D=5UK0e24U)Bwr$@^*{H^Ix$MG-DX{Egf7U9==IqMPg zgX7_!wQ2sjmw~?X|Nnl@-^i>#V%DFnnfbYA*1QJ09=GJ}PS#HN3y{CN5a>~X~ zn&Cp&_Ev&~xjZMXx=w!)tE9ThwOw((1;K9|jFcGjx>MQ+CF*6?_rg1ud9AmvAd<9^XKoA?(Xs1 zHj3TY8lET5d-szNJL=#`g;xKW7FTvz{udj_h&8In-P7_)sRn!gq1P z4IT*DsT@86-t@$P5L#7DQ%uVI8*mC<2>^I0=#RY=?Nf$A?A0F)>~UuatLGNzJiTUt z{ZLu_=9#L`QSX;3|B_y>imsK0nU>%Vp(&VkkUHXO?XP!^rs?RTr zUbBJ+!s(0dWWJ|7ZBWu(nYP_mTTs8@}5~^_ht>I%Xhn>N=Y58*q1c5zK2%z6=U&`6&70ZLO|!>`;UdIs z)w;2VS94<0+)0Xb1Uq3{|2ApO^)<|mvrg7R3Sxg)MQgL70w-xzavTP1aCf8!R5T|WE5k_iKQ>`9-=X!xxh^M5nTT2=*j2wL9& zlLmwyHo03@^I|%e1k)r;C0ecy0ryz^j+wNLT&hl4rkW zu>OMZuzmi&E|qXQ>~1+T{Q3Jt?Dp3mMk?WlW21ZA^`pT4XVVD({0Qu0T-9f(|8GY2 zc5JsWkY3vl=A41pKB5-KFSEL_3xUz7-ZTAu{q;dXeOEzurr`{{POkHLR+K!GswqV2 zldREeRe4F;fYzn6^y!P&>AY%MOwZTlW&Zp}>4Epw^*@{Wfz2yK5k$#9EoNsc^ZA@O z{FZv-C-Ejxk)~$~=oHY47+>zEL{$3uX_^UGWy5j0^|T^AgXvQ1L_a5lZFA>lrE=rg zH?!W$tfimJ=NSc(?a#K$XAqIz!oL6CKfbu@Wy48sOKj+kb9Y|k)ee6bA+^jI;viKth`9}`&&lYF>|HDa6gW=u6Pwuq; zU?w`L^Qsy(x%f0;hk6hxfrQv@z z-QruhhQd(q>l$i%B6fR~Q`DtS4z7pHiQ^3>=UG)RGIoI9H(|Wl zs0P{N&8+`*xt>4&|Bhq3QGMLb)g7FTuP5Jw_Q!HVZ)(1lr~84}{V4JBb7|%Nzn^#+ zuxtN+NxaDLZeeaZ?LU}_-ZSwMw-Y~CX_s3@UtgDV`Sbtp*ruQLq|5tg_n*6@OYr9{ zmBIUFHM${EOg#>zT5c_xKO0EB59hy6cy53FQQlw^JO0Qa`jJEQ4KvjLPy8T^>K5*g zH2YvqiAUI;G>$))sLs$-X5M5?o>WztXG<@}x_!jm_jYa!vXxCcls}${InT;8KPM~S zLYfw&#Q>=k ze5%;u8T;?E@@pRUb%f#3i7rQVu&Kn)umrr-n1@ur?OZLt>E}?TPwN7!4qwMBd-gS0 zeZ2VnL4+3s;Fequ?PJ_=kPm&w>3K8H-#DcA&@gUDKR#`%+lE0;^Yd(7wm_N&wZ@w_ zqs^b+UQ}<<$1NG_XOUi^*}ttTCAkz$pLC?j=^?Qu-E|U1`If}?T`R}0w`avcKkK%0 z_{M;AV_2*kazGZVG8bQ_>p|ZpM$>4olOb1fy*D(D_|n4IgRkwveA8?eVKXuOKl@Df zHTcT{2advI!#3kbjFo~enDo8e+moL~xAtsVAk$L(AUEr0;S6k222tsw>7F90{kn7Z zjZjxUd|p+nFPEl4vlX!F^XlS))cNTp@%C+f7y*R{lm18PDL5|NDdJt}~z5RX(hjI zBD~8)DoMjmZ$aSy7xUHkzW@Is&T53UvbxT$!6VFL&5xMu|8-0T8g$0gANS}RU^+)^ zL&V&p)1dC}BLf0+5-^0n*;nv!b}8?M*ZwGV-_IQ1g5S*qDy!>X16+NBpon~YaA9 zVugh=(VlPkC3R3=75ycJ%`+W#VWz#%v@NTr4pP+;`CO!!i^bP=2EP&6q{S=q`3B*< ztpF-$tN>VM{W@$EGUX1PXGM5{0bDT=E9S_nBDE|}rGS}*$=`-9y9^0eNrS8?Lg;%}7LKTO_w zl`pEx{MguQ@*Hl-Q}SZ-fv(=|32FNyCv#d>&0yF6FQDc(r(eyeLlLzcbWS-ir@P?M ze(jmK*$IIN*No3?ylnfHyfO=M{RSi}+6f8rvTB7vy3$M*;JR9qeWuh?(M%~}#>r40 z48G^wB;tYY1l`V?KS9^*4XQiPLGk|$(*8ll#AnH#mhCFmK7)P;U*2qDe#D>uujS8Y zx8Tpk?{Cm~PLps;hJ4;-t(!UP8%FjRF8?jDJvP}3i|&Ym6D$)}G^+%hXC)-W4{1QN zobsMf1+wCJtKopl&&l<=PJhvwlCW-7U4=8&(Lj3jyWLSb5njKY8e}|% zyycAf&g;t42$%u)x8}G$IK|}+!%8atkUZ9TQIk}**;{m-PxD#M>;Td2w+;c9q>K8R z<%c-;&j^DyU*2+3we|4q!DAqjr^pGH!Av*}cgq!}7@ zq17|`HkdzuWJAN5R?C*MnkK%e^JZO=dT7(jtX$_vhSmJV+x+@xPv$!gQ*7SPC_Mdo zQ7U^*7y^%oT?8}Fx1Cykv-9B_3(=6s0F8yfM80lcF`)0k3rHt6>3Zc2%^=cUC!x-H zX~tmFnMaJ|gG@5Jeoda$@cTm8nowu<#2;7lV#>53DiOn~LUQ`mz#KdJh5$u|Bz|@y zpXa5G0Ytlb;=xNj%IBSkus2D!V)2-nMXGseZK_Wk?YZ9()|BZ4St>B-Exv|oVmXAkPAir z(b@96y5;PAw?>#;E8Cjv&mvnvZ3r~(jE%Yb2zixnUVvW0X{nc9KLw4%$8EL->!HDU zaj~vhkfC>{l!>esQE0-gyjY{3JkPE%V$;dbo?Fp#C++;4SML>|kvhr9EdtKB57a&k zJqkxu1zd-*j`{R-+1@_5xfxsj+z(Q6!2jr|ABx;KuD(L^#`PjY;{H}h_e9%I^$Ytn z;J=ly)h)+(dvSQv=~DYKJ`L%+1vwTC^Y_md3vZ<5dn9LjwDdExRuq3$NGJ-~*#KU( zAPYyyLGHba|DYo(-9twJ2Am9(YvrgbGXwB@@UzgCNnz)9sm<|z!JM=^y$0FHIkTD1cfHPH)Y=d zqZI<3EeqkJ8snDz-;!nc^V_+7e$&s1QPQUf$@Asc@epsAliSUAFvsdio_#rv%MSDnSc#UzMH}Ce zr{E~4`X-_%>3l-nJh?aG-0`>jICDr~qU?a`xAn76XjPK(%bOb?ZzVw-x_KMGESuCaag>^K40Lwmd#$ z`>S=06$Nqxt7$5J0Bh0ijMlWq^94C z7``CQ7z();A05%E&;{``EyZN;+tcEllHi;?pXB&kn&uzA{C5k?e`s^?tXwzqTXHV9 zRTiDB&(C>Dt6I0Kb$d(7-=0P%#0oWQ1?|eMb$L=V&DKU{EJCxa&7dT{gJUn%l6)0@W%&CqVV$V32=+K6p%8REFtp2 zz`Xfyl19wm$%|y_Da7FqZt)@q`tqU+^z9%U%S}HUyz{;k{JCMF_ggBm!<3xn?FV-Y z_V_sw_4ggeH#JF}%;CT!-8MGr#A&Y*$Dps2Tr1{KdltEZ+LRP<`{lx6Z0a!dR{DV8xr?) z2<3ap^5pfRSY|E05KF;}+_at@8l(@LsBT|mj;NoXjrsb+(yHB z_uG0iCmR;)Z}wN%H&J(1e&;mNv|Urgcx_#mTX?Ctzh=Pjyk!RgTj#5a{9gI|8_b@i z%lso*gldX9n&_LhP?;I{()&uUC@TeN?!X5+&j`ksXRxnQ1eBn%a&aQrnGLuL34Pc4Hq zDLkXb{SLmlnYk7IKcxBinhOXXJE>DHTy@)NxINXrPN&}#?K-QOUD_>v|ImitiiqI0 z(9qkJEMkZiEx2&*nVWn=3!FC&V+tD2ZaIKwSgjybb-^OXa)q~`fapx%eFKWoQ7M+IrKv&^zrnlt=D9)r$>VlFiIUU$QE&`$jTvDwh)?O91eL~s*gL~EKVaQFar zn`Rk!PD>cIu$!x*m6Tqy%BRJ7L5k*9gho_)dlJ1jiyOjxLoD8lly1wu)>XVY2$bb$ zARvm}MHiE6z(6a?l-^d=Mf~G$KF0m>k~o%*JFquX6XF0$SFU+LhK*0?>8L0|15GQb@#)I@c;kE7@g2@h%qRH#5YfX z(=8d|P1R=Qt;h4>vEvZxC!#fOg>x^8YCmug{P|G0_*@pzeLb)8+OlWh8y z(D0Bc^Xx5szNXK=cDj#0&(`g{s*he2)3;T6lFjn6e0*0wj5qx}C#(9jF7hT{Mw;F@ zEnWNIO-m<^dmqQ;!-BL$_U<*2RkS<(Q7qOAk6*)yCYOS_S{UKOHT~JLXp5|*{=Y`3 zvznkVOwppD}?6|&I!=Qb+ZofQ#l`SvwQ`1x< zS0*XF)R`YdZTc>f56gWaOGh%!GrWo^hwaS;Xtsp{tE|fY2p>E5j z0tfTl9iq~mp=m_!G1=GP=>Q;8m8X>R3yejli$Oka*Y&dT0L+SJn$SL0!GN^5Qz-Q z@_D}Obms8HFa%M`b9F%K2pNFG;tKst@^n^LgkL9jO(-t1x2ETFEXKnZBdOd@$pPwc}v#z`B0$+sw#x~4e-|I z#(UA;w$6*XY42?6)f+WgiMFGHJJRxVHI>I@dCPgE#q&Zj9!W@Ql2UujN)+CD1k31=(nFvI4y}UDq}Jq`dvt(r^-Wz4^e-J~(PWi$_0`JEj#-ZlmOuhE6 zJNp}8eemSo0^y$vsz1+{7w!CgiGIrf?Y$@9mT*6KGTvY*RXd~KF4ok9LKt2sPbazQ z&XY7R5WEc&-|cj`RV=6Fx}jL<&d-`~bpq7W#j3qNq0~t}mGJIXQw)coyvnYdG{^hV z^*jf(8J~GQM3(A4*ygo-mm5vSWZZGpzX6u{s$u+Ab#a-|>OeM~=9HOP zR5N5?cu6Z?QuHU$r^jBajFO`D*Ph=Gor#lbb^WF?zS1$g@~^d!NN|W*#Jd)8X}+GQ zq!L$jJMDvDTtio{ZD3JPkD<>t|E(1z@j%g`5V@*n3J1?4};>uP(FHPk~_ z84-1ectiOhpCG!}3iuv8S#d2)Oh===nitb&cUxENt`PS=3{psMC<3v1rX@ zm9nL7I0#X?a=?l=;t}f)N!-YnIVBGuud~}Lz*iFbvQ@C}3R_L-Gps~G`!C_V{?_QMEN zIxD7K=4pO^WBG2$IS^FOk?EMt8(oY(&>Kh4@lv}ZID0?*t>^!Z4uU`T(~Iu`{TtxO zZ(>m26vN##UCrz3<&-3KN#57&eI_jv4Gh~*Ofxplv{s-_kt*UFbxY_MkN`FwHt80r zkUX1hH`#e4yxAD^bv~RN(Mn?e`0nKBXBWvsw=gn7ujg6WaJN0|KQPdIrmGC^|U*BtAT;*30);jOb4wo}_<}*7y*%_hqnMSi%+vS22Dlq?Hp;^arkvf%R{CCfGt*{KW z+!Dtwi<}(98NQfigv-|!0scHU9p4^9nilGNX1U6X(On2eL|9fW=%8L1X25p#4GQ8( znP<1x-izuImZ~hBE5JU$`+Byw6{By8y+YQic^p4tuAhD8lJr^=s`}e1_oq1-*acI%b-y`58X{_v#h3Y4`P|co5W*K+lmW8 zxjao?Pmg|f9g7a;Uvs``B2+Mx7Zv5yAIR4g6=l+|&7?o_V}Inwer@Ivllb-Yn=z-p zw-wh$Kf6YDP>1zBL9v`a+s@#Rto6^1wSKmlmz&?;Br9*pz~GacR?*$yZo!T>jv%&_ z;Emwy{qVPImBWMh*^oD*KsS@`y?XuzwDQk3F>WbJAIt&`)|1R?)%!3)rtvSO2n%xD zkpCk+@gd805a(d+Y)e+wwz0By=eFz;UF(}1we_0ZrpeLIE|Q071;_iUXz~$yRc~$b zjW0<)t8V4pchc`rpOoq$&D#3P(<9H%6(7n9{Clt;22b7%Iv{cLGVSbAb5i(g%i|A3u-xKr?QW_tkyN-Wu zF#Or$GdO9YGgIhH{yWg9tfs6nW&Uca5d8b`s$~pfSE1$46^ouV&x&{X>@|(^y|}b* zYrl4iXPyDxInW^A6__?xy?|vHF+G^7`j$ z#yRdM52Yd;{y#t4mYDyqob2B#zi!@Zns1Sx3Vk^BC%_OOC*>WQZzSH>$OpGcqy6ll z`LoG(o3dvS@45IPq|a_(ub<>h&kvQsG`aM3=I)2fVjqC$kC-gbu|)T;m!V~jqrkK= z0ovv??QI$4Jrb@Ld8-HvC0(syTT*`fXWOv#lCx!1y`{mgSBxd)<&mfj!JWyV$nfXy zFdkZMa2Z#8wS=KF*l%E%_s{=!Q@%L}8T9{kd6GZ>e}BfeBcGIHS!6Aoue0TObxR@8 zMLnIwa|VGiR};+xTww}{Zb%%a=e7%jeBE@{o0d>@m-Gd|*jBfdp4&6>x2tj{yzF7+ z4>vpyN+F>Ano~>y$q&|94Oy5@NNjA$Nk@{i0>F0!I`m`?c zCSOLH-pHPv#kG(<$3H&3{etY%{G7T6uhPt|@!~hmO=ruZEl8|?kRzH|=2!2LAMXer zjD49keU`uFbbS+qH5Tz~+1}e5#r}9wRb`$nZ)+@nj%okCv=5Pw7<9I_c^lJA-_$g9 z9GA{CeNilLN&23jvLH8dv0jL=zO7;%N&;^N_JPjEd!qhBqI~x5Yg0aZ_YG2hBd~9r z@*8{m;ZXj0e%>CJ#l_d+{46~$vx``YsU)!EXAxZXWtZ86e7_J90U@XBLuTyw{kk9O z@td61_oT=WO5fDncQo_oWi`o4_?P5}y_99V;@0Vav&Bl{By~s6QwPEiUd}hIECwjt ze!cAW)4?7f8=SN-2xDG!)v|*tuZT#{5-umKSF5U~7bmnF8+L%83lr-Blo(<~K@`5o zI9Zw^SxQ~4Y?L`&*EOO{`{M0_p&Q0Xyhl;WLe@QG;ij1qd(}k+-m7!|$VZkwVg%3Y z{1>eWp|az1V>D=FVj+0&w&|@<{xFC4My`H#E3O_de*aoiz3|8I5ths?_lJNg=;@vD4MUFIeZd(9b#+Xh?m zuCpW8E`xEw-ElUV`n%4Nbnkgz|ohsuyLl7-ED@cinQnhoWSG zXcU!Ii19U=ZeJf5ZM{;^Yqz2Yz*t+|@ zox*_pY(#GsKZ-BmuM!Uhh(^&nA(C+zzM66udfdH^KU5X>6i^4 zpG6clr%Je+lY88 znwwHLGQz8(EU|hULM5-cR*n91!b#6*seZk(%;bh}TLuyUOc|>L4W+D!W!3#P*o5B` zHsN2vCM9<`$SKbIdrvknSW8Fr2jw%CYp6lWWfbR>0`&&CUe3M&-_fI8=&p1qH%^~X zvQ|8$C3*jO(}~~=Vj&bInPv|uIhHX2E97|_K+D**h|!;@7EA#QjltWTckA~A~ zUCtm6OiYoMfZ~YiK;K(-_)QDOG38z_$x-@p1(*J|F^$ViaK@8fyd~G)o@q|9={y%+ zXej#&9w{i+xV6o)3{QC^Vt}l!v!4I^O%b?@Ms-0e4&@t8(*2xf_+yy-Y`BUi{T#oC zBH`}&=0;Fe(58^poF+S!q-IA75aZbFIxWxm=|VE;jsGf}xB?;9)p7%uI66Kp7{QDg z;k`?WTm%A z!z|aa*^j43@4;4_7}sf5G`u3&0RBJ$zwJU>uoQsPNUvSHke`iWgGd{ER($P+O#b{Eijz9)2%Gtm zmJ`g#Z>b|OGj<(8-wjDh4$T!NV)?Pofe$@Pa@&V%pr|M1osBriMUcz69^-~}CO)+1Dq{$Da{@4tXR zQtgl9>m=H5OYQgV@aKkvl#_OU8UBA#RfPQVwgP}94U947Nr`Ei!RtX2TJg=wr&*i5 z#>cPW1ql<{HSSwzTmIaa9!c(gbR<8yqnX2ilz!1V>zlu$z+seD)T+Kh8cYJN6fqdL zZ8~jl5p;X*U1vDoK)lR8uXCSGdQNfELn*4>NC*{ez%zM{5S!NB z=M-TptJ=OMd3%M#(5yH=&v{WvK(dXLzM@bUYl_XLWwnezJcp|?s|Y{xPOATxXcA&! z&*FnYZ_oRUrMZ>z3zCQ#0l6(R8y>+_6H1nuJT4C9$nWhvS?t4o_C-#P-^>T{#rpvP zxk2Nuz16g279!lJ3oZe|j0UxwjX;H(S&1AvX1CQ^w2)%Q6p~mgCvrkB$TuNy4nMCz z&?T)gWh>1OEcv>}l40^YrfqMlv0q2I_I)_kSHDjCeIy+0 z2Jv1#%l{iV^L30fNBY;7lb6jQH{Eg)3~a$Vq984v<)&!Wzrpzq-=!5Nj&g`I~u4a7O`m+k*Lv)qr8U**%hxXfp#m*ii4Tdd73r}CE59D zTGvw&(*ecoH;uOX8Uv*N-Eur%u3NI=4NDf~8CuOAbMy)3QRhcHpmc9TJ(t%XrU~Lp zRMNw=TCB*41rp>SAR<^~Zyf^A7o6TB1JaDsZ&z2e;!uweZWNvPuBpg2k^O1lsFUim zoJfDN#zC}5uE(SzH|7dXiRq*ZiCyPg@n__-RJb~W=Awr1-8()(;oaHn&3|7{-S)tPv z{&i{`^V^!c56odgdD&d$&$7Z@@x0%vsY=+b+S*v=Yw7c$xqFWk^=m9zP7!99Otpkv zg*P=um6A&ahX=oQdAWt#uGRqamaSGLxkwzP5$yBgVqME$=SBG*jD1_9z~PBoT02vn zH+~BB$*cE1Mv89;0+Ci-m7c<6-OEvktQ_iVl#Z#^!nLx z>Ts}bqdebZgg>z^^7eKkY}PAcV=~MQr#=JM8sjRK({jzz8=8u)Yz-4*c>D@0ju2sd zE3$kYr!FodUoJiG?q^-ky~+v@U85({ZJNWYgq`NJhMf*;p^3`1w!N*y{QqCOu|yBg z*lnkT4Qw;yZ`mnO->Ad3QSa-PQ}lJG$kH8(K>uLhlxXr^nVcclbBF}+6Nx`o`Eo`) z%W+~y=dtq$;-?=eJs+hX{g4Iv2DbRxqWk|YKEd2`&Vz0AMZVv zN4Lg390>+;`C3Qv6F}_=}pIGz%PjlbbyG|9ckvnhX?4#f--@2QW!F+o56TFXLTgAZ;$i;6vgn^ZJQ-E6c{@ZTgJHm0wl$+gmY2 zr(}1=i8X3Lt1wqfH-P@K`p>>-u*Uw`5{^LQ z{(nX`m?S@v4t;(eNXN6NbTq#|8@*G`Z_jQi59!nVJX@Eo8qAVXz~#+s|FtpvMOYm8 zqMGHmMDJ{w+Eo*SLWpo&_O#B`rh&zsXZxBCwD8DHdIjssVR_}rJQ^FJPLA5VdSiEK8 z#}KFR_q~=izUC-i>Wap#hHz|r(PBB{6*T&l4HfYd*??=a8vQjUfj^I%94|XL>e#-n zPdxa&WC6Npd<`8Jr{WjJyxxk8Z+sFFxc4B_*Tl~TitmA;eTTTP6!{XjAqW#QKV(jnGQC9Ul^qtyU$^a>a=A=RJBERx|7+OK&n8%N`ixPV!$NEI5>3e>gc&Ph2Tw z&?cBnqVhN&3x$;%dK8Uw;w`;K{ycw2=C17V$N<9URasV7Kt|tF{%krN!T7ElGbt{&=^m4}(tJgW3anZ1gJX<#6zY{ggN{^WZ@;DIMH&)4`C%oI$ z6$p^UQK-lRt&17b5TptoH+ha2`26-Z|L&1h+|D262FU67bX$@#NkQ{wi+&R-9`Z^(T7zra#3BZQXX|3iiXIaD(gji#Dg z+Ketv-&oXi*06ebzs%K}ylJ8Q6$V4_oqL#?TPKD1^IKS&ZZBQPA7~UlU`)4^=&wCP z-zC%WK@$W3w;apYpPx=AKfBZO9wYkMo*iBS_@L>LMTFap=IhT-x0j#Y33{I~eN!{^ z=BDiN@hn@B`n}~WySkRvAnmJQj)VJtFZ`B>Gga|vmq%M=y%$+bTWDW_ejsv>+eGn|_|x zZThq>fLf&KjdRjreQ!=eJxpQ2y}gnC@tPN)Zp-*5SO(8!aZ}8RS)%eX1RHpRk^<9` zmLFt^pRLp?pBCpZQ(;fS3(GZ+?`v>_FM9&zqa(z!3Q@5RX1gz%JxGd#fHDh`w6U z2hU=F+0{nO;wZca>-oHG`t{KL;*qM3SLgimQAGCDQ@FbdM+buF9M2MzZ*VBBfxf4QkjH|5r|2igpQ;Dm3 zdwwJutEd*sa~=yX1TmCbvYMHxAu!*-T)rowKLkn#^BxTv=#Q6e{d;h~b(F^J>RFi~DIq|4y-=1tn-P1!^Xdv&G+x}IP_Y#Q#vsUmnTUS% znq>(#i@(Z|d$~mrVP8CYUg?UM+DJ1rS{N*r1xwm3;LWadt~P4H_t1hN@aMD&w^r!p z_YYFCAuXP)&(Gn6oSpY5Z06}M)?%mS8mrOIzI^q?@tfcOi__Pyk3T>C{g0nN|MKMc z&FSy|%w2~5?Tttw^(lUY?z zneYXzAYv)rGXbQ1`^=)_ynA#TvMgU0KggLT=wb7i({mz{E(>Fs8#JK5EK6F%)HG-B zip6^21;TGmzJ2@(U($fgVmk86JP^DhsdOFoI3=uZz=*oP1tP@aaYQORam-wVQi#DV z2uMk>^#U25kB(lt$sM< z!w`H{QWP`0-YzRjauI>5*}BZf>6fAvNWe_Un5Go_1_`Ihe$DJ+$)TY(S$U~3E(l&qB zD%%DEFiKZ-MY@SqS+=}RVc2INes?g;$_*6r61t3*%&eBal@Ax=+lqRZl_+4nW=u(* z*2^Y4&pCUmg5R|3Njj@?)l9S;Rn@!>MMwejn?&q32o7am2i&p<2-UH6Mw<0>n&-1d zOo_k|RH4?`L+&c9sJ4vB;3&=C!HyXdL~4n&V8+x~uE~#|&I!S38;KciIXm6aoM%Nj zFq9uq(q@e5ydVdMI4xg-gL;1Gs524>^f#6cy45fvKK707ZD-BIcW+;4)}zx)+;1eL zyOYj;ZCWK5@IYg0-f!Ly@&_)Pf1SbHQs_QpLezVG-x)Dl@;0M*&nbBy&>uJ_Q3`*p zF@B9n=_cYx1wAcTaS*XiiA(Z2Yj2&2KZe77m0eR}da-J+!;GIQiIa-l0q&t0pGEtM zD22h`{I*0sPGKs`yd{lTELLR>*D#2@zAmn5bqU)~X3w+@duI2tFcg8009!~t61fKO zF21h3@#jDHON;{yBkPT~WScWMVp&N64=)A3UnYErV{Kae7K`2d`R$qMtA-I>)x{+z z@2Bv@bV?=6$YDJRefDZC|8uG9TWxS3+i}g6b^k^%qTI@a1_HH9(787Xy}{W4g<>) zT@*OEtV&(|M}NA0&UyJ2DYDx#GPmu`=OmlHHF+Jo#bn+%-rI`t+53&w`glM5A@k=(H~wr;{TtA{ zKQ!`uQ(|#jHZj`%J-K8mucg)Gr%6#rnl98Tx1adf9K4y=)l~zH6mx~omTYgnT%ju( z(&@Wt&I=~cI+J{wQTCM4=?>~^%n-SN(2es9UX~d)+rr)m2iWQMT=ssd`TuqH{X;Qe z^WI|Szs|&eT~XrCa|7u1J+i9ur^64cK8Py46qlJ2L;vo)l)7+7n$8a7XG2;1UitOc zRTOXY>z_?6;pWd5|F0$RVHZD={%>0P!9+ij{Qr+h{!fBEzOL*GZ-vtTUeYf~%{R9K z`Cci|AGsO-KUOrtvp-Tb{~uE|r^~kf+HOXUmp??+{C`qU@Th;JC%&eh5Qh7ap7?)> zo`}eTCjqz93-7)5_ce1?x0a+2U-1jIz|Z@2K95&_n5%o?Ec|Fq&!2~%?UlS+leztx z3wfQ%{eS)P-4Dfz-g3_WU%XW3q5Jc0fvz|9pTlK250~cm{~<2My{~P*acrAK@%T;T!6Z%w+EcE5xFJS1LqICu`EX%bZn` zunp0ERackAET4UlWZW)NzLD7?zEo#?@9T8Dj#}9Fo%wH^{eE`Py5)@BI1Lf^x;qW; zlZtq$(fyRtJ8iwjo8LG=BYmV~Z+>o520h+gkb!8(Q)u%owH#lv8+7NEl=J|Qz9G@> z^l(eEV#o_co4BtfVS0@pX|rCf$^x3=TAa0v3|B2QTJ$H!rXQAT$our@8}N-^RM4$D zO0}3XC@nUat}9l?e$@T-HQ0?)+Y!bum*w@BB(kS22|K%y&lx#^mI^498OyjFX>5!|@?`@~9%P+48SB&)*!Cjg5KTLauLXW8RzZAtI`VQpz(@WhxuvL9_C6K6PO?EY_T@S>;o#OU!g+Kc_SN-U(hw z5I7T)yA&_-0fi7VofQq%&1NY(2E8HnJNQOM!+(VQI?}&vEIkV19)9D5^zLo>8a9Mf zJimAIsQ7cAv6X9uvjZhR#K`{J<~=i(TfJjODDM_axUV!r()pCW_;3+=P2PZ}j?_ya zFWd@1HN(+C1eT^j0$k3eO|}HuSj45Cl%EI+n)z8W!tzsB?7n zrdZq-@n>ar!Pa&;Lqw5d&A;GOUnf@kp^dQw+jkK})Y26KXs1IvNNJ2kcASLVN{{ujx7K5+cDs;E9sL3H#wG$six@ZhJ(9swk0e^snR2q``!X(#1Fn*?O zmX`&sz=0pCuNQ^(X62i*$+wv*ov5#Ck$pAL=AO!lot zhCjae+BT0fe(yQNAKK79$PE50jf_8!i{cmAH5RQ|GRkauLFv}nXCEQA|4|y@|DP>Z z|1hij!zY_2M4L`*?rdC`8X13{FY~&XKBK%d30h>u@M{pZtHPLtC}~J4uf6p;$T1c) zF7suPBU{I25o4MP7-Z#F^z%Bs%*u7nUup7f%0~7BZD`C8U@)|hMmBvp#fTbK^okI> zDd?AjW_p_!Cj_}3Dz{YD{P{PY&%bf{x^Z+keeac?|DgP9hiz=uyt69xP0Vb=_^ot> zIGbXHDP2@EIBm7MpO;wb67*?IlKMCo`TgN$^E>nLrg~CUWu7hLX)XQowpk8^3vx8p z`Od;=3L#@+n9px3aeh`Lt1o^M?_zn`^rjMZn=F{Fiz*2AGIT*mFuGw~`c0Ps2S$d8 zmVT*S7jrU3-@u~w*~T8=VtzzRF8N0zNX-(<-1yThbKCXpj%?fl>UmZ+K3M+yCb(a= zx(Yh#!4Ib7ZV2V)OhTR&W&WD9P+UaLmhGqew-u0=q}o|qoDWwsGDHMm81K{C!gY<zYG%5Iuc;#jNVjtqCuiYF$tDdnMH-0^LGT1fpa+Sy(z!g062RCyd50 zoMCA*92&SfK5f1ZCEk^BGtRs_wa5#T*eS#?X1-%ycvVFBE+;v-y@_O;f za6virCDZ`thJf$a;i{>@S|+}`VB>%rZ`4hKO9tGE$C@=|te8mBmCb2g&5Nlxr^t{f z{AOOQ%NhB9aA|J?z8?oTOoa;xVR9=Q9?7y=Zqr!F*De>7*myrb<#^f8<8=I5M^^Gm z;k0aaltcJMKdijIONh*+mz?s# z@X;DjsXOWrWP}7JZr@DZ|2G8Tuh)~NE!uUP|0FG>Vgad%>xq-9EOSY)j?bPJ{2R&e zZI#8#yhgm(kn1SjV2Y$?*k=*}buGIzyEMeICOibJiDu&WxA`@4ziUeL7Jb^oH{dz` z8p=p;@Z$@^>)3ooi(?ydUf6)+n|cT zN3Z!N3?RCQ4}M0=sEdM_iv*FJv&WO8-|ZJazB@VM6g>U)OYq07_&xI3GZM%AUA9=2 zl;k3X#FT@DZ!;1=1YyJmpYepjHB~_b1t{TAzE`InBD`vZ<*v^@I{EP~$16)T>1XL} zr0XLVe`Q#3%J24z>6c$J{^-tO7d>>_(*d_6)D@YKw8=$b+KD3iH0-hyQ}qy$EX7A( zcWTaHzBDwPs+ClE)TMVXP^2z(ZUWv3A*#M)YfKJCzF4)_O75?VWS4&$)^29qiWX-a zFWJEu>rDt5AwF3BjO=rW+Hvh<_h?H7NfD!%}0 zkjc+Vcv{5e*Zg+1@|*vXkNOK@KO~d>5*gc5%F7OC`aX0Oie*_CvCe4`j+QiAZ|yBt z&%8!<80*+BTU{;r^APTW7QfS++roRotgtU-1^*YVX$i2zN}t#2>!%w5H42zt1-F?<^*3t5`3^JztMg>TY%oQ(d^;;W9`l}nJm*?4awQfy6@)s*r5I2NNJVnZp*jLv}05ibv zo0yRyH z7vpTcfqDB`8XNcYvptdg<4iq=c+yS&`rh|%t62>+@+wH#&#YP;&^Pq;c|o*r-z>70 z$amYhj;du}hD`sr@Q1Z$dB4LbfWzM-vFE}6U}X;-qaCM$%wkO}JHa|3FBmmzUIL(u zF!KF`kEm#52`Ipsjg3B&gyTM_|bBM0okdrm)@z-g!VJf$KgaQ9Q411NXxw`FJ*S6TH#SzU?%=B6nC* z7&dH!U9dFg*{#_~WV4wjJ9@g)O@0VogBx}mddlDy46&Mqo~`Q#?#L{*oNyzBI{|k{ z;l=L{FYA`X17_z%O**oVpXz2F`OO3WP^2ksSKbn7MvFZ0pL?XOk-Qb&9vl47P_yFH z+!9IWa%8K(?MjOoC6FLAH5+h`ktrW?TNmSfY&j(v7zyg8rp`^8l3l*$_rEABO4+_z zQ&#*{enFlot*}w^o{WA|274pDe>QSlK@ZAK+2n4u;gN(+F2J7dm zGQ%npTiqY-)X1FNau!(qO1`VW>gpoL`i;%4B9@A0w?24cxM!v8JZn-6Y&LVQS|hUo zTGFCMRbJ9paPIPVEBcXla=lk(1-B811Y4cneAdG~M*krUg*NBwrSMDI&{84U08;1b zGQLlaJ%rCr3=OfMQBJV{>L;}^)H+`>D;8MY;?+u?iu9{xS-h3(zy@Z&Dc?V@uJTLR zgt?z<7w$o>Jp?_ga#=tXq{QWR%kP}+Q+InB$K!;8?(uW7Lj?cylK2crOx7LgFy6dI zZA7Dse2HN6>(64&Ht%9d$zc=yHHfYZsU=xKjP~d@U2t{`2Al$BEY^1g%{GF69tdyH zf_h#Yoj7Ea{3!y;$9MVLfj7xTn$`seh)1XA=cLFU-}OI>pmTR4K94EdAMA}W$yTdb zwIE;n_L#++aI*+i{fGS*;&)=x)mkjzIjx2)XC!k$kiD*JtSuj}R!0`8v#QPmX59DMQv%65%AT7w|I z34k#WdY6*3U{CYzS~HTQEPnTOJC(6vO-@+1Lw-OtusosbH8L@JO>X@)a(L%tok=yZ zf0Gf7nTV>*ZA4EQi{glu@TX-3V)UR+^7bmvm+7P?Gu(_*${msA$YA0|>Ep@K?+&29 z_}kxpv{*c9n$h|B`7e2VcS1{k9X|?_U|P>+=@(yokzUi2_TC&*OhpUrRT{+>_NWK= zf~dei>!siw!sD?4i{Knp%3WqYSTLs7XH zW;{Egz42wUMWN}L1~S@QFWc;0n(;?HILuB){i+YpU#9!Q_-h!*8+v8@rV{hiO_km~ z`rx5~L5OL@%Wl?X%Vw9R4Yp&kfYD=_GeV%0XL9s_8P|grn_z$Fm1(x*{IpF-ts5Tn z(yB9c9(%ApI)3u{%jaLcIsIsqe)RO1ezJUjq%89hC-VgEH9+0bx>0E2hLd{~l|c1Gl#LNK%zk^WGglBp-gDW(~gB|Omq zZ=~cr;V<$jFR% z#2eh;hVS199z561KY%ht0MV>hD_N$i#620mIDM0H7(Q*&XOtw*ud4d(*G2GWk$ELG z+FpNM4t_6>ZjE#x`@43vMtnTtv5b``H|c@edP!10EmjmUohiO!1QoZn{^t2vq~kKb zDvRaMf@A#Ux?Qc+4WR@~%i498uVB52_t9zE6pQCxWS#B?snhAkJU@$Ur8$FQ_H`L6Xm)EsZP?n{ zjK$g0uE3hF{$HrkG=uZAuhBd+Op?&%?^=^Ry8eHY2{t(WVyM>lv%lwcweYiINX~O8 zhoQL@8I5*6Mh72{)6jiY~T=iCWy-!lbH+dFCx@Y`6LIsFQ6}7+78*(hNM`) zm6Dt@Gep75lWS6+=NW}V{h3j3Lp}6I->#Zgl2G%uQbduNotIgPl-vgo-GBh~IVq6DXXeb(<(gLysM)N5 z-Jy0pkZ$rNd;uKb3Kq^utPJ1rG70{$6Lu}^lxOvH{$5k$rBsRAie&*!)6J{?7+OXY z+K=%UtiFI&JFh9v=@BKW+T^8;dQFJy1zc_w^9}cLB7_<{ak5KDLWkBkxM~L?T?n>@ z)ZR=o1ad(%4MwcTv)U;C3uHFe3?MeT4OT`2pH z65&oZ64r4|V|e>`Af^04gq1A(58uYuq^qjM*R}9LvkguPo}SH@uDuMO=T)=S*KdfC z7qmE$u26jOOw5nsL z^+&5ZKU&rK|K_TW5$4#!j`{9KYdd(pmLVI63B-Q=?gP&M*Romc6z0EZog@GGyZ`QL zyBg$=XuKuoN2jn?pzAG%euK*%9dXoIkKuegn{l{`a7b03SV!gpHGy@0fe4y2s^m5L z*|4ZweAO1^_@#i8nWl*j`z@AD%SmEUIRWzwgBcULCkDN(pq>5rYq!54L$Q8@ccZfxBl_!H)OD12&$Dad8iSMkh2cP>&hj=Z%Ekodot}y#wSbFi#s;uq zuf#1_X%0^(x|`6Aqkp%~7g_zb>3*KA+j&(Vy(p${tMr7TpR#;>S3h)3AKzW%2ygt4 z69|rx5WDlNye-!ejtiO6I!(n{%0T6+hh7vQyRn; zgxVT!-i#i9KA?CaO3I@KC5iJZXI+RlzpjP4wL1I;XxVj(Zb#Y^LsIw`0n}Sk7z11= zl2$3b@nl&;3pVhlS8XK3b>u#wrM2;y4CC7rB$W~_&GItCnxLQ=!p>yu$gMQA zj)FwYn-Khak&b#>RVv@uv1yZY8b9dB|CBhD zR(m`&3}r#|pBtW)M3Q0CvoFVQXf^S>HAVdOZMl_}9%pMT@nkl?GgAU16Y7$G8Xfk> z-y8ZZIP{8f6mP=ejA`O;xF?5>pL&htX zxAq@yoqAJ@|6jmL8_@i@UFRe7J{OAZtIFN+aAscgpf6&loq>kS-L3R;g=GYo6=o)34Q}L z>_M}hq*)C9+S%?KnWgJN+py|sG3BL|TW2G|U^MWzxeKn5zV2cE!3lux&WlnV=V?W8 z8RLmrB1O&#nQTJeBkP&!P{a2HH%uy7c?6HadsjtShV3V=1$>RN0vFh%l0)I^&Jllp zyA=t)>E|?0>C>8~Dqnt`#f#3&zoKmTmqfE~o&$u?yzY;LJN5C+^TeAzH=s9W0v5$= zsTm2ADY(^a{fPU1wz#jeEV7CFu(Fdi^A-fUB_~3;f7`rcqjidqYfWCb?9nW1vzyuR z#_@Dqu8re)pA`t3CjVJoc|iQsO<`}&5N%W!+vQp@UE^u*d6`(G|?KvyjoKloDyHJjdo=n8T^G9)r33)&08`e3$ke^ zaMs?nx8;qexmD_H9o~QW&}Wl^W9eSz^Zf>jsbZ5eugaM^w9c%kv4$=j-y(dP3OU{z zsSY_UPJl<5b&lci#hUzMj2hlF=$B2ZwIpPkYF&eCYg)!>$k7(S|L+%&juXHJ+@n7e z{{Ia!L}A|Vm0#a>(eHB;43f*oo%I#LpplX!-7!sWU1z+=Lu)JsSTp_x@_4tv?&pHU zC(7(!Z~5j8v3*(yPtGh*CqbE)6Q^Dy!-(BHJ5QW=Ox~n-F8^ z^-=oLeWXYT7CCs8?F zt`|9H@Ndn`oqWBL$m?V5^)U|nxZ9(^&vGPq0|j2?3tA{PT0->3?Zx{2C=u`LHWcB{ zdlsZG2|rBAb&c%LF71YT`zEQ!?Tp2Y+0Jj2yeDOz-B#v=bJ%_JV%PJ!T6A+QE?ado zUB1!b+`uigToX>6v9v$CY;$9`-#GvH?Rfp<=R{83AN2X^`b}l1aEwsE5aDdu-rM^| zN$>s`-`wxlqCLklx1xTroaOI+PN=W;juN9kdluI9@v~uJI}4l}DR4%(eZ5Glx8lhH zWAXt;tzDaBd?&gY-#kwKd}tXo=WDdr8BxSZsXQ-{MTE7j8AEiX4z5)#l@16{s0|<$wJ3H1%C1ybx*$| z`Si2sCchU8FPC|3S2J$Oy`Z{XHQBfV@_~#>kqNDu^MbZr4SS#NzJX=@uQ$%0i>bW9 z4>@bh+qazMjxv6ElgHt8@Uxt-TEdisAGHGUFOaoaTP`w~Eb|G#a_ zzt`;(&+j{82L1oG@t!r$ig)?!HQBD8rD6L${J&!Kp67qoyuMye=XJG&?fxbS;JNvo zPJZY#IH@Q#cgwNCl98i~j>sePqUK^LslabEdVZf#+%S_M@vEx3?Kt0e4lVd^WcE7I zQ*^w%kbKM0oV@qa?(Kb>4_TFr4eW=$Tt7_Rty^>7ZM}f^p9nu7a^mKZ>&O#Aaw?~k zGx*?W=>N}is)BsW<%pl1)vTX2`hJ}i{97>IH@Cz!&)Rfel`~yxb*SkQ($`w@dJm*J z6J~L;tFa1rO|c?IT`wfw&L-8m6`ZSejd`m5m9`I0Ks?E(83l%FM0qYb#gLT<7Cl-C zK2xViI2TYCm$Yp7b1Gi1g0-3VOJm8qJWk4p)I&KWldq={&uqtEgP-3bvjpf2lNU)% z$D~4QM&^TO^qU;h4|5)G2nc@G(y<;2@1Kt4&&_gEwj_$1*ZZqbw)O32lHro7j%k{K zK?DOxi4%m&Sidx_==s23{y7!i8zw!J?GMU)+&KC1zHZF~gL3{O$-ZHd|G&N*?M-x9 zRd3fT2}*NM#%@}%o*t1=B?g%uAwJXXOn(D9<_(lW(NhYp)9i-jlpiJ|{oF6S z^XIpx?l*zN50k(*Na~Gi^0%9s_Z8V2yZvC}* zc3~hp35+=c;_|}U3&QlRH^jR~Usq)L^Zea3Ux`Ktdp)i%$kAA~r=|g7qPn_T8Vwdl z22leRCrPa^+K=zr9)1|i>}BRoC}Z)aGK_Ux*V(nF_H;%lM5sr@BUpjlgFq9B(5ZO2Q=`@Vy zWQ>^@^7nf3J-{tPi_}49@7q^&g}SF^(G6UrZYQKeFY;E0{^7}tH$H3`)>T2ax1#iE zItlVVq@;>gQXQJ#0Oy3@&bZAqTS8%VUT+05J}pX8gVaHBu_WaU&>@(tlS2W1@*6TJ zd5vsOKKr^_`Ws>08|?ns|I3!%`SU2}O^?pAvSCm9R-F1iycIgg^w*-Akzg?6$k&$l zvhpgsZbAUHM)N+7|F52OPn~^`e|PijM|%1oHgH2Ia{V>M*d*#8QOJ+}BRn`71joO0$M#dXo45egyi>2^e4d7Up*U0C^N~ASQ z*-{or*=A(Uhk!Y;iNxi3agm;rr+M>O`19Kvub&;XZfU4)q^TEdF4bsd^8&4vMI=|qovl#`hpi^Z%uc}$BK#MH|-iO*-u$*j-_pH zq(ofeloG!ef~;E+!MvB!E4Lg|%sbiy<^#PcAN2TVi?23PlU;!Kr6<4iO;9un=$oP` z1OHj0YF|sX#O^0$)#PvTckOrUqRnrc^f``t%x7PYJxJt~w)3pj$Xik;L89mu=#2Sq zfLi2DlU>|)4sTC<4h^rkGx*T!204PIga%nj`Gtm1znbTi_?48zGM@q!THp%-k%C&u z7)T*2Kwe9jiccS_8Y~9YQ`shV5eOsj`*(@*1$9MI^_uz@! zO~Q{)DOG1;z+jSZ8+6jT9x2^5;M{Ts{Vdg$vL-l4DNEGOrtO;6Zm#7c`s9N$RE%Yv zXDt%^%ls;h(}EZTvuS4dYfj-eG%v?(n@#5*G%*4~>>n*Cw%KyZizgYaPM@C>*Du?2 zO)2TRyvDe1BlX|h1S@VIKCwT9QT}jeUex04rub=_n_f*mc ztJkmJIV;-e@)2w!>Ei0DNpo77AevJ6FqO|!kk+#3dFuC^Rr`wKHj z#M8tOK3zI-z)C=fvWs=oGNN@(ww*e#3_=v9U$bRitsB$Zt%&o(b)vc?6!+f`+# zrQ2(QGvX+j38*LdIMx>G(qF)mo3$aiUB%D%TDePIa4Czd~+oolnkwB3mGA|?E$%qrk z{+fjlg@ZSL&gSz~4ou&FKA+}9WvC+|30vK1wO+PAms8pw3{B~52-9);T_{n>+R@*g z38h(^&WT}vkk{47y;?vCayLJF%hR`H-S_sAtPpm%?;D>p-;4A_3cjRRaU)KFHn1+p z|2t&jy~#T$6R8;NpH-6gknS?R*SX>U5JE>9`uy)h_=dz_<2?0@;kwBv11;%k4GC{I zGlPk<0G3IeP06#IY|5I&Frg1=8Ng-*mhHX0k^cvl@7YPKa|8h2`27FBZ-^cFWu34_ zUe87qlQk?X+e2L(KuR`~g{!YA{rvgQmWvsoNtmU3Moxd$zLc=#*6ARV0b2&H;U>2* zA_-qB1#}+ZE2$v)%*0-t6QXJR;B3&((jafi7T?HRKP{RSd;uUzSr`>v-{wZZSBqc?u1BsUjqGIG~Hbv+(5MeVv?HVnhI*UYKK4-+8G zzBX6HR=(1UH8mvb#HLfa&=8pxS*9)1Ed_H+WX)aFAH6 zLO8OR63o^WH7hGpvcjT2hm83XYm#Ab$P0SGaON8lmiJ}F^n6{?$bON5#~4KO;$9~d z1<=yha$2sjcoJFD@PSzBu~c8p3to}l2%HHWLKU)q9Wj6k5dqlLqbCzliri8@hTgqt z#NU|w(En(akFqd!7SN~b8gbQ(7z2yzSSw!wqglsP1F33qSzv*DV5qd# zl(UaXtL@blX=Y*lKAf+^HC+az$or~0`Q+{rzp7^o&jLe2z`jZ`{g!1c5OBw>2>Y|6 z8ZjN;v}SZ%zaruF+{oLj58v8U*WG2k#H{9XnSl(Dw}LdUtE(@Ur*)0&!ZXTfr<`f5U{NRsBj$r$ zOlpXLDt|Z4SIlaK*QF}$38F`K;&0J+aj~T2>j|x=est97O}=9A(@czq?Fug+ro6~~ zRWxLy>D}|JZ209{NG1c(2#?G=y}eu`p+-H^h>%FF*5!;C2MoDw!l7M{{Pz)>Wlp9^K~)1rTY6kU*{V!^Zfk|4OUQaG zMYI7G61iK>m#=vF_q@&PxDByii>JbwVlh%y_uoRhQ=Xc{_9wG)tzBH=SDSd#F?n6U z3}X@PJ^EPWO_N(a=?;G|lAPADu-6`E6urwkiC`gxt48(mHx>^^;$E__Woo^ShaaYK+Yx0DMF4AwrG(A?%V~*cmr@1PG8Dvj1gln#EP9IS@Uu)7XJ!_&cGF&6{ zYx>oZgL0^9Bz_T1tWh@3+y1yt1lQp&CA=s*bt`6M#|IB}T7!46w3gsE*3i)d$4;q2 z!KIK8=&t)U84fl~gvd_MyALmo90!jr+p;5y+(pqYd8YPz36&i5^W>Xo7AD(m4aK$% zNhXI6ywBIIbKd2oJ1e#-AB7FPVKP(S|2j7vbRO@SYqA%`eI*VZJOnDSFhbNOsOCu0 z@D$1OPpWB3tYep$x_$oCb8O)(QV{{ifd z&w5ydTu(vw4ZZ(b3sEsmn0MEsVZ5$yYS#jrg7YCYnd2eQz`Y=&cFQ`M+h1nseQz1- zG?YNZwPCr|gfNXxNxm?CK5^gRSYBn5*l5hSDoO8 z^R9vr6jy&ufq=1@X`x_l=pyB}e~<>p)$YCJi~+irC47%K|3C z5&i3An8+gT=!KqbhBC*?hl#54^sB3ymq9608-yH*G+g=a@{Ri~wV0I4*SU5oz(`B|;u! z>dT7mvG|w#y+G{q%v@@g!qmtWa`WG^jMU%tFLHdjmzReH)R?ucyWIrB?IXuOlv6oQeo7y;CpO&obxWs0=C&3~48z6lLpPnQ(w z%ttZ-4RO6fI;q+rD;g7$j*ZEfftQ;cdOT0k0zc*@8&*($!3ni|_m_W)Bl3lkw8&)5 z-39ux*z;*66aQ2Pf#{mS`N3t7L27C)bfm&HkhkvwX>$I_p3Odr)aj7ro zM7)A?;>b-(W*z6POo&S{K)gSLtsPxTta87`_h85!o<7xVppwF0^r&;1g&&K_#nXnh zikj`^w7jbog7sbKw4>Zugowtp5k!vCkl@OZt(1_>xQa12I>Y=g;pI1?q^k^AgMjV_n)jLOBKp|rHdSQ4^F1? zC3ZM*vpkZC@`QwATg+56w8-wXAAKZSraNos_Bs#d6g@UvVHd^O8nq>u+IbsdlR?%= zW8I;Z2)?*Gf}f}ER%o2WwO;#l9t;RsA?ckZZHeiXcRE9t+kjT_02aH8M;S?SN2E^) zzY+|s1G6rje@v7OcHxsmizM^ADxW{EBPlkYLmFML_N^P=gqHV>i?&5&&)Q1^2n61t+T!tQ!hA*(|nw8qA9fOQ8TU%S{qn4k$%+ zgBpI>CEe#BzBusbJzeKvz+r=q5fR6HGX>N1CL824yJM}qaI;X$9Ll6j_^ABcuB;`? zz>#TVvHHT<3$)TupWR{Kh!-x|;O>}7pfY_cmlHzuG`nILyH#iaJ&@skOXOh4{JblLI^cfWg`=^Eb)9gY1AohV2wCS@{%?k_+m zZkFaOa)K_aGNllA?*7{eP)i3RYE5mb`XAz%N^ot$`-3s^Okoezr|ZjtmdVKZ{Wo4N zm2~J+ivX{!_;lhn?&W_Jpz`YNQ=zA>iLatFFO0h=t~OVWm>;jMXc`N%l9f=U%wDh z<0nzFOMYPnCCyV+(5)@-X?H!6g6s=d3FmZ$kNhoat*#wnVK`{q@F)J;e8sX4XIN{O zPESDl$8iFG^o)04x4oo4qu-B9Fk50h9+Z~QWF#GKOi?HMNTvzDVPL924@^{kZy$c= zpi$s;fH#oGVQRANNPp~T99bb~z@#I$I1n*PYFG4AoVch@V*eFupUzk%dj;7PQUk9v z>D$-`s$a46;*Odaff!7jVQ0&r1KPNnq6{j11zM<#3^~zeE_jdK)`Ay8ca&+B(#4Wo zt?TpGAeMG??aj50UZRC|aIdgn_~j;PaF#tDVp4g4p+X(C!7IF`BWORhA-vqNubS$2@2JqI_9 zwfP}FE_jz?AIx5XCsl>Y$MjN$t>r%;$}l&46JjqU_}PQd78pS zVd9lq-05jW_hh#jYG)KgJhJB`bWAqC*MP7TDdHPH! zDN^-5Lt-}$gL?8Lz@VNC?R8ZN>z_%&S6hlGUJsI=5}4dF=}2%P%rO2W&Vy{z(cfQq zpG0hhXH-^jXUZ`yJmy_i%xi8Jlv#iMSEx<;D9Ushe?MI{M}dM-t*E>OGQQWW zBZ*IbgAHMv&rS{zBP->c54?8N!6ZXo{uyFLus#V9zT~G-_#VOF*v!WC2q0UD4IB!A zQU0>tCVYiW&%pis{&&W!Rj!opan`Vui;h$@hB*@R-uAw)Qp}XvfhmC*PvK@sZ!JCs zmGlKTb@n^Q(>HZ4nzv-4MpOG;Y zlpi=8e8%C+&&=IbA^ANqVTM(gE~4Js z(?W(uvF4l0&z3&EBWH8}l0jIsXSNXnj}eREYcSlQPlms){*b%fgrY2loUs=B6PcAJ zIL!8)RsnUI60lw?J8^rSvHFK)uiYP1tU`?wQxWD#bmYovZ;J5zSexq&K_Ma~FQ;2O zo1<3nU_ZD>7HtrN_0}IHgp;29#9W#?R}UqG{zWwld#_OpU)2;YCiuP3+_H0-i zL@W)cU#S>xKb-+IWF22Kcn(Vzx7&ttSV<<2ci$3@KhQcU)Xi#13#-s<#Ttza8CADO z0!QBE1i&Kh#2zviFE+kM7Bx|&?@MinGn6{OKAru@?bA+^RN0_0E3bWHqm*l00Mzm^+n^Hp0eL8(g8ofTf)DiT2;hD`A0 zg=4F8QZ0*sW0cKRjlAnq+6fm?zDHC23L35TUrQ%=idUY88S;luKXIVrZ*pTWIANElab)i<4D-F%v^>9i?L)5e(6?R)(C{39jU8;y zX|^>kW8&Vw2au?~hL&o-j;qvkP#p)p9eO=@ANRL_?(+C*WS6@m zzt&aHlQ!tAT|RdvNLX@{p@w*}WNwdvbs+bZ#4$Pq-z!(B1MAv9*TaK;NYJlGT159A zL*;lq`mpJQ0Uk>@)LmFN3LS*rY})K^SSqHL9WPCAZbVjk6qU}5w0THOb>d_=9N*^2 z=_%30tZ&5P!pC%&=7bL`Md365%SQ3ay@;ltGd|qL;K}l1B|q_883jo7e|Dg5+m0mK zeo9=YEetu?#%YK=of0Qfs8ft4`}a}IUHKHmQN%b`!t>IyAw+@jg(c-k)AtyRr>?sQ z^bX+KvgMc|5&H``@{4iBz}{)S6n{N;H`&&9ObAT#M)LijgsgL%qoqIkJ?OFqrEx#CeKNZ()UF>le!@Z#)3oF!@(7N+i%&AOV%~jpTZ1@1_nWHC#T=m;F=28j=^&MfBI~_Ev@R|qeC2Ybw=CDG&s&BYs^CNEo}AuC>PE|WFM(4ZCf?=Vt#Bk< zZ|}7Cc$OjI+A03rLyDDovps;eZ&Tbf)!aMz4MJ$;BD@mCtpn1Ffn#}LLX2IXEaXn@*d$AU zr?i#bl~11QL2xH&B+rg}P69KfC+;V9 zJPW3$7ZD0k;;JDTdo3n`moEz~Y>!pvbmN2Y9tN@PqMbVCM1UD}C=r~*qtfCe;MX`q zj(d>34ER5x%laQ{MG9vkszjJwwGRViv~bR*UoC)mESvKKg6;vFzd1L*(hq*mM0vw> z4-~V3wDG)!o6ZPZN52_+^>CbZmd<(Fy+}EtO~9NpXzKfs#m%t85elQU1=^?VWL&)v z-+4_w+M9487vHmoPy7`xOJeW-W+-*(&Ak&-kNG$O21Pxj`s4o-LlT;}-)bO4Z?vE+ z?tW${rlP(oKa^wsWQ2PJFY`)a_9kR>R=RSJzG@ycx3#B{SVTABt%4pj1FJM9^*I*7Qsi-U$u*_ zy7fD41^T`ZUou#XvfLxw+$f`=@Lrkzu{9CB@d}Ia^Of%BILH7pcLQF#JiA!mMZPKc zBOx=%f;#$>WL>zDPqauZD3q0BfcHl7p`B|M^Az1V0Hbj$jhU(N3r8GD+v1PLs3BqA z8j3Fu|1CmVemA(C>FQYaWYrvOh`I6&=j&!z)DsEHYnRZP*E3lA+68Zn5- zJb~53N&(!<7oQg*S7Qy+QVoo*uuv23E))Rg$_H0x@u)~j02H^_e&jN+)=7@cTEEac;=T1~ehA^+_47F#Q3VynC z(8bl=n5dwZ%Lk;Y(}HmQj-Xe6Hiw5)S+lzwzo>Prf?tkdzHBz>5>B0O%r^F9T~~@b zYJ8Jd$tkeUyGiObu0yN$|>x8{`uFprhf-tO^h>hKK5c#;4nQ$ z4%#8IH36PLu5Fb|#IwbpzT-I#tG}x>15T|hE#vD>;;ZgAPIBJ`SmzhGLCw#9`gyKYg08QfakHCktw)R-H8q$Ger68Q|vD7L9e4-IXr^!#ZZB)Zk;0C&&yBy zfN$mWE3fOr+6%r{Tt_quzoNR@F0Rk<7TrS-xmdZs{n``ug!#U`n85 zkg>5hrvD-&@d~u21mye)WbfFZ!%12tYgE^M|R(Kzs+4aVTY>Vo; zyeIM9Q!{q~u8ecUW`fcA?RP_)yH5K07$DQZwY%&f1#kK)_5QivKB&1glrWeuxyC3SsKaJ;h#u9ula@A0>u0jg!j?b9&v zvqG{U4mzO**R|mb>hAGK2{O2&Tm`T5DD{4OU#qrV>%Rh_Im(B~{1nUFlt6}yW}{z6 zd8+Eq;QwJv30?SeQ}lKh9eB!QhMe7rBY6NBA_xsnO+zJ-$HBH>58OmwyuQi9Z2=y% z3VBe?2Qp@fWhcv_QyvA6ANdpGi-1{EmeQwfeq#Zi*#3*hrwrc+5{Gmx{gve|jdOs5 zhf_i|!BBS6@Dz{v$wmxygi5fY*A!aSgp;nCM5&a@pP|i+kF9C5x>N5@vGCh`T|TXQ z1g7i5ttIX1ZDC!V{60|G8UAMGB{|7|ZBJZNLNK-5m&0(=Z@tDy_D$S{sk69MlDRih z-cN}!59Qg~-ZsSCDy+5+OTP8}HL=;6p$BV|f~{$}86TCuflc5<`!Vt*Zu-`2w)1U| zF;soJ#UsC+)8<9b>Bz_gUpP1I|Y^`S?-3tlvESR`~T6sN{ebjmK&@r)MAnKWaUZb~$fC3Y<7xKsR14e-XJ zM&$z{1i}30)><=*==G53+44rLc_|Mg`9&>_@A8KGr-n9HREzqn&BHe-nVmardE}LS zKqc0ozW(|40pW>-UoQm%lphK4{(K)IWD-ohqUttE;{7ggGD(6kPgv=>ic^R9a-rmx zVDPs03+44~OLo=w89}P;ElTX~2H&#s5-`=6*CQv3ucLjh!!c0k?Kz!~&rS6DZ^$35 zbk3+dq;8jaxrzcke3KzbOyeY97`i1vZM9tW2&sM;eUzAu=&jPNl9@sBfl{&b>` zHuqIvd?DMhv@uwqYp;8jVGAdPmUdcY=@DAb<}N31v3ZBP&$S$$&vt;okRFk=2Qbs%cw>mG#>si66j?NZ&2nKe2euh2ccb4i#0HJ2ln>NpT* z%1Hx*+QlKBD>|*24!ke9CkS<|!yw&zr0NAkMH1!$9n$WtU zcAp*1TCt?doYi(RHgnY=B|!0J#lyZXA`jnW-9IQ9X!8+*VVj#<;YYb}ZupmAK>87g zfyo2)@53IcqVelj4XkCb@e!(eb1phLn`|gYbx6d6E}M?dYm7+g(^`nDVxtGRK=-mx z@)>kxy4TT|4t>{Hvs~F1Vz4*IPupm+I_K)^t4)2@fC&HblPEz8KYs8nhPp~ZuFBC^zi{*Rc_GHQA6_Sh4V`+cHIAH&_qlM6jlohb#Ab=*=fa7Pg`7u_cjE9 zm4$oN6&XAATP0E?C+Mw$>W2o@f7{g+mP2eAK41cRMo5AqNuATY6Kl9{7aF@;8D(1}m`FN`d(+6ljndXVM9G!eex`Nf#JLXb< znYX9z`pjJvdBic@0oUvmzq<9#IfN-VvH!nq{Zb<%7w49k9_Ur{OdlKF!mCxo*remO zNbRHS1TUuo*cKSr_k4$_;I`vp1&vIF+ckwjQ>pM4N02A>)^Da2 z!>;9*ffauebE7(V>m~*@R#Fy(}3(nUuq= z1j(vo7}$>NWSPI?8ER$Yd@@i0%Z-_`LFg8raaRdn+|bFk$!;T8J9sp9cNB&Ta7fyA z3niEFl7oHP?RxGSV#f%|I5Gr97lRB)UX1DUi`Z1rCgBxaxRSB9-G+n;#^otK6$vI? zl-WG$k=>%X^#3t4SdeAol9@`B8AcI$Dr+~Zu6!sAT(AI#(U^CYV(&Vw%qG~jPi-dP z!s~c}Rst9QMSyhWGlIK7{Gb;_k^z}7M24>Sql1qiovR-%znT=4CzJ783|Q`Y4&#rU zh-|LEnP0iMZ+mX0^+n?BLl<8=L0g$>e0aa9oy^7H8n+%yQ|hN{O6`rjW+>ZOj< z_xs>{X|JDY}`Sm&Fdtl8RZZU=4Zn zJx|u;Fvp9>NNG4c|65I>2_&%P-7L5|`fbRcoqZ0i2ii#hhLQ4Qn~j|_@7+5_r@CC( zB0Dk;^-^t>uOzwIw`>ghW5#KLby%_Zw}|~AO&ANbv;d-LX0cRD8J&2tOu&ZPIGbR3 z2=?6`ckl5pXzJIK+8+oLxThpV-*fG+v^qQ5L9z*CBSm?({Mxsnf|dkze&$`W-g=2djg-M7|8!Z5AxPgI%VdwzkxSsEbs5nC*+h@D|Qw z#w}DU&2l05Q#lx1stQFpTEH)h?Elr+fN+`{3)_nc*C zkdKU$0#BWs4z#ataV)@dyo{xm9cv#qej9JZ8+HHuzC|}SJ=COS=TK#2`ttXuc0k~5 z(2Sk$-%mzN$ndbArstCpPuPEFxd9eu=nT!ac++NxuHgpElB>ZUyr zL92?px4(5>Pt9#5EQgB_h>rej`Y}!dh#uHwY8HG-19GvdZ%AAP1 z)BA)i(ANaqNO_$J}MB`l%(yDi!o- zkndxhzz&T)MC=?VL9d5@(uYS!!y#rm%_Qk3_rc4vcS8Gh*>hz!UJ^3T|t zVIWL~w#)uRX}F^kc#s5-wH0)oXkIPd)GfeVU|#vsDICqX)BX7b*yDRh^`n)o_QBL) z`)qSbo@0ulrI*AUlDr#tbG|K=srHw)vvrMAG!N)IfKFD6ws{aF85Y$ zv^SlipM7`WmY`*b*(3E$y%*#4Ks~u^h3oZ*#)k70fQ<}Ay{MY&+x+}P3r~Vm|9)ow zJiQ-M}L!QDo081Cr%C zG5v87f}OO=p@V%yut2u!y>(M#b}1j<=NxLBae^_wcv%3cGTmz1*dvck5jm%Xb}4mL zr$KF9sHO>UK9;uF$R6-8eb>a1R`>#b4;QjpcS3_{ev|rkpwK)Jn0?N=rV4_C4YmIC zT>4N0jn;30S=3!DJw0N_)iJf-rSyXFLBjHwCj3VPYKPLXady#G915 zq4CR$oXgOe`eLnU9kRWrtJbDbAM0nITaQazI!~9V*oQ_+u-&h}-DouXP3LrHu|#GD zw~ILYRy+t3hs2#0-)5w%Ub z)5?RCHk(t@TvD$Q+#fF+p@?*}V(sJW35C=4BPajrh?B?p5%f9;Wyp%E1^A7U7)D2y z>s%x3EFGI%*DO5Q!G5#xjFlM2$gkRL65U{RjwmSXb9WuYT`HeYUH9&<^4Bcx*1;s! zS{Zw+RqFnlJqiO07Vg+O`P`-b5eGlr_cYXaE++~zP^M!s-6Fe=kg&v?2Q~q7|w~2fXt+zEp4DzB8RE{WlW?jtvsOoG? zD@wQOGpWf1%iJ?G+6Z6t^IG;%qj+YoH$L8%PjmcFXJVRr-YG+D!|ZUz3N?ed5J#G3 z+(^g9QR$3^yWsm>BRy?)9z|T~NSfs=QGyQ%)fzi&x2xfJJ=;UN!VTWK{CrHR`fqke zYE2c{56HyS-9xWHZOAT<@%Znb&B|g;@kfiZpQ^@cb57<Pbv6#g1!jCRciSK;Tdl z%5Za@zGK!TiX{0jTpIFn(e^#S@1lcbVS>(FE&?phH1NI35(#~aEw$^`aBtWCt+emS z`So!-gHdOnbmr<(XDQ3p1|sJD$|agU;kqFL5S#aKjferJlqo#*Hy~k(2HMlz? z8`yuR27=H1qV)+b7)yF`2`k;tx>{hJv)yW_b5E;?>x|>oB3jYQ(ZA1^Uy2?#-PL4cn!PeT0@~(X2qM(Q6OhbDt0X#BBFY2xjh+&cb|&5ODp)a()|MeS^kD&FKMMlND)e3IqDr zR4HHX-LzRp2AQ8fA%~>HmoA6U{PHxa*Z@!4t_sBtY6^^KegiG`~$9%Z+f_Y)?= z0#QrQy+=+RnXXwlJMD2>ZS99zKMa%B-FRAOv~~tzIi*J32jtU21T7!E^z7c0i*xRi zqwfCCvN%g7%H!B5%6#vs+x0Ab{>VQ({t6Uwe2#v~v#Y6sVpGvOSJhuGCTBi9(_F6| za6%Un1fT)MGAl}G^mlo1DFpPt1%>_&QHee^02H}yfaNV8T589cD>4iH($ZkSH<+a)X^NoD6}gvijDr- zxcdUlP;=iUe&I*;FA)P+`QI{8tHPlrE2O<7s_q4OYjjmi*2oE=YQR{kB)zaiOQS#} zw)QSiuO>BovR1Oxzl)OhPP1oz&VpZ%8ZyBJmOH(=@M)c{CqwnwKQ{4eftfL$fXAD_ zB&rT`C;olskgPA5I&47XN|q&!%b%F*W@tk0GXxN^;s_LaKra zY~6vso9>VQx-x5?Iei+{O&fd-AOM<^N71h|_V-ib7YST82c7L=vxaq=v3^}${Bjot|;o!w?<0gXut`gTg-$fgG2 z`dPvK~ad;j!1z6_!;4sSevT*3-bMf&$`J`FSAB3jPmst&qc;*b5+E49Hbngj>+%K z%DQr8y-mM9+&NfI=`@}3oiO|1MKI64PbyH&Awyd_T*svo-AXCYM0|{3R(uPpxj3`DavQgX>>lnGCvI)UU*ah2lh>K zYYz_UvkXM;{>Ye#fFoZ!CYY8F3nZRWYi@CE#w#bN&~B@xYk zc4lV|4evbp7fsjQnzQ@OICVagGswqyWw0yLUD-|bt*{KrWXH5!w?VzoX{60edi%OY z=6!=&jMyB(rvv9~3eot!=o&@*Zj1imzS!?7NM|9{ud-jfv-N}-h_SB*+?3+rE5UE4+p^H50ft<>&XIH0WhZvH~#(WiXed)!j~A!19_ zc&|j-c|pebsDY}$iOcEF&5x<>zm&(Op}dJZFs^90EtiUb>S1^qLzc1qiyWh-JXsN3 z#-VGmlTuzhKz)iw42wP2#9MEm%}-zBTDR`5r`wJyuanv%nwoT(XgfTL?!pvB zvYE5j>R5816{Q^~uPTR5ItrJWCpv}sbZy3pORz7A@oiNPOxT|#I^1%OW z*3(lCJ!_}J-FV93^YveKFhjWXKR|*f{t(xuse(*-z_7B+2l>)60a?|~&zV7wg2MXV zw?=eo1)L4rhFL&j4=$q1Q>?sz))U~QfZXu&z>K?|X$?y*uE+Puc5u^o0%FkRn)e@m z$uXu54S#tRJc^Ax`gugq=MN#K|0BpV94`HA$VUV?^c7&o3yy(3R?YS!6z2k1I6iF< zguE{S)gG&_+OUK5eB6aQygGv8+op)+uQy!J(mIi=n&0kjpI(o0R1!A2jSF1{reP(5i!5&uhver z?$KOKi)-laBgiGAb-HkrRe3#)o#M_xZa`0Tl&JSjA(^?dcapa7o%h@P^Jjogqm)&k zWJeLF4NB;f4s%#*%ZA$DoUBapp0sbp;lZe8o0*^>v#A&i75jWqlLxSB^yM(>^)kD6 zoHhAmO(OODcp}XiMv6nxaS_`C0K3UEH%vc)*^I`^w6>|ByjWHTB2ODFCO$;$jgcAO z%?oRtuIh@LDvW04A^Pj$yyf_+_RUdCDdCRb6=Omj`q<+8f9;K|_|qkAY+k#U=)`hs z(IP3O<}>tIHQ0(&l%=e!zev zL%%+g5{r0&)XBQ}WD#bX@?I>ThHKj0P2}8*O@t%C&>+BOY7(@!;dhw?m?C#H5jcn$h*M9aJl1usA8-^dVPVtGz%euc!ONAyTJ5ohg+C|ihiS+nntP>+0yZ#Jp~R|MVBF3KdD8Z*8O{ofI_!f6rlxGF41Eb%=dB zyN=?|Td!HF9Ia`C$K^SVrd{EXWMW?B`^B;xqYTJqBI%rraMi4!-!Q*0eASqL#Ek95 zit*>(F_F^I&q-KMe7=XMyS-Q8T@p?r=(^L>AT45%eFPX8ewkXE3%Bp>O>V}wj`o{d z#u}m}C@>|am|}anixFB$aE2eW30O8&ixBv45|aA! zPfZ#;>fe^$!rK8G60`lRHb&u|GxO-co5l~uMybg+_G3?qj%kzmaAmYh8&p1aRHI*d zg7qFt4|~n&M5X$?z}tKIJGEmh@7X@d$xD1)>v6tMX6z-9th2B37SB}W^+wLcWNNmo zj3jTTb@*(*VpLYIHq4)0Mdj_e7RA6E~)>byI7OofI^zP(b2<;7I5n zhm*8bX0UWsra8+m!k4kMhvd^A{TjJ^YR0;mqv}v8LfIbKv!VLw&u_Lf%>Le*6_0!J zC?^%zo^wWGi5p_9-j;udD^m0r{AWRFoDZgR7#ZfdGO13I`dPH&KkMCNn#I-%cx4lH zK?daHcxA2=Q1vrvw^>U3BeuF$O|rkmWOs3nXO7DIzNP_G+{!qCNL>Ss5_qa|RprG^ z`wolx5nzN7L9E|_uco0^HLpFH&Nh)uiXXw|Y$7;h=h)~bH%n=NufufwAxBn0DEF!2 zef6;VnXx0WngxRFuezmWvKIZi`AO4I(@4^-uU3s9HFqLIcldDpE@yAaTAKB}zp15Q zO^(wbB)74yh>-Dx3XMEf(MCUshXpG@np327CGPCwTWiN{xy(j$%F)f%=?zVCL<476 zr$@76!r7c?)}F5LK%;E^m!fCzBmR+#H#ZIn7o(xX9u}rN!h&|&WDAiESB;F?A_}Lz zymSD!qZ4|-jd2gXcm59;QOrX(APm z4Co_JV|UT5)(Nf8OSd64`y)Wsr0>jRucc;z>7xE1OUYwYCDQn=3>VR!_~@kMw4zXS zndUJhRaxm|J9*no%o8 zkVJya|I6p&H`~kIHc^};wVYu<67Tj#iX%4Pkk^_AGYKDVkWVqT6SjYmZXLd6IFlay zMajXJ@9@U(duitL>3ZBNgY5`;ZYDwO2EwkHr!)I&kakpf7>t%gLw6{k)@T9!}uFHiz4 zZPuEh9x*Mj5SPzb0Gn5Rg{Z}BmA+?P20yYus*#f5;-Ssf2AAL~1|GEjqeqX>=-1jf zk0~EvKf-?$5&l|975J8iOaS}QBfH0s7%@L?&UV5c4!#m1g74j&9Xx!6-GELKm^Xy% z-P~A=^qr|M`|NlB_e`3R^mBGa=>^>X3(v?PKL2 z3jh?#0$}gB`vKUWziR@=TW`+a`R$?6w`im*f*w3y$2M{L10bycCPSj7;g+ZZ*w*~r z66mN9ZHcb6zJvqNtsU7kx-FGev2y06|AjjI^G&I^4$h_?x!TXHn^Bh>8GxPx^AH|S zH@Ele&RylvlHgoc;rv03hb?Bthb+!Ut#Y+2v^ybiD4I3&i#Z+Euq3W?KN= zn}P6bp%TKRxxzg}UzVqTb2X7E-n$qZLs&{eExs&lNp;7Qi_7 z@Q|gci_4H{bibdK@!upbWGv+z%cScq=iSEwn46$`2hw#d-THR^t`3xGeK>!&4FuI# zZw_2NfDgcMNpQSx?hao%ykj2@sfV8NpvPdFP-G?xdK|qBMzkXRz~_a?w)<#Q)~UQA ziVM90y%|}89nat4po*dE?~tF4PmxQAGSY+&H7!t3HW3}5jBhc%W|iU`VLs1cqkdJLydwFrw>%DUA>W#n&h>Pu3yL zk=D>1;3XKD1Dyi?M4IzeLZ6&HB!>U1J0D8Kl1V(9zas@TSnK~o-a}Dy3hHk>5l!Iu zCy8pDI%sI^75Xq2HMR>a2t~O*`LkIEHJK0FkcH|2oAVnK$*>+>HvOp@nAMc z+nt>L{q>9I{D|LQ_BY;LSg56uBlhsYf$s_>El zMUN?+2?^0UuK)Jj;k(-(Z0o38^gR?)`R1s5D7+4xiw*{>oP&{ah-<**p;6&7Np}~wuG_(|r{(S{5Y6wNWvmpWLx(1sh*m8h5?vJF)(CCbNI8duC4@tj# zB0X@0wuRncs@e#uV5=E-e@Ko4^1g93f{G%uL+c-05y4RZ>m`)jf7`%-UH~E=^04RX zxK7W1D#FKp9G@c0xe5^rb?=b=P?CQ$yT(7!zhF1g2+Xv3t={q9!6Au65Kk4pQsnyq z+nfIm7B1FMrN}`j_0EBA&69^8n!vZPvrGiu)p{LT`)n3dl0em&I4Jn|0D|^owTDW9 zwf|xvU>oxy7id?cF*Kwbh6qNiLhRcBB>!ZXZp_`0KndI>=un*?*aKO2MKi`7tH6)j zcG-%icgqC%6mJ0UmJk|+2x?3rob68fB7>g`LA!ttA!rTE1WJ0ts&zLpDl;UAnPT5p z0DpfmH5?IuuGc}4gv1<(Wati=CR%EU2by4W;i_Z|I=0@VnVEp8*>v-oJVjIYdM4UD z13eSK?uc;Qkb*t{kACokCaEx$u`16Z?!Og;B3yw;q3WM^i3dqmcf|SQ_o6-F60w-- zjcP`(fa6n}r<(s8{ekHT*xz`gvtrTdUet4)qxab+q3@7Cpd=LG9mw{*IzXG~V$if~2#HU|g^AZnny^RK#QppkooOAoo5n)hHd41Ei{*9K`LTCNX$UTieM zhR<>qo^EqB2K>ebhm9-UFdI%Y6uxvuy1Uhacw z?@dNGT;V0#CZpRtc**-au@zv;k9<+VsrNFem+eMg*N1Cw*#CR45c=g$dPZDRZU3y) zrSP;9bkSHXHi{bH#EK>kebr0^Qq0$Fa%$P`q_OrdZhRWqH)D3anqer`9lXfbA$?t? zQ?73MYD2F2d`SN7S56}}GzRkGvCvIQJG#-sRB`{{`Y>S?c-_VmTyU_s?C^)E`*Koa z)DPLqXAn-sFGxNdqU1|ZNdEqM!zTxdNbzw#@ph~fE!X7fd?4377dek!6ufE-ydj52 z!#Y{nu-|;lTtQbP(mj-wGl5;j-Ph%&wT_so7OLijOpE!2aF+*YZv_XxUBQQh{9eX# z548)`=#%?446OB-j4)H=CNHARf7C7|$sIUp$ERmIDE+rxAr3t(4Az-7&F`@UO;aNt z-5T=uh3mx+Si#+eg|JRiY$JU;74|aJ4=w(V*mA7@>^q6Q1{a&Ig$sTOG3h5d3GUPT z=!mJ%3z|R%Om_@Wh4o1^EG)Q-;ezM=UX3hw-7Q|aIz#n*Qwnls$KKR!k532cLxgW+ zvMZkr>d1+g|1A9TH!!DrtW1*finh4z9L_e&furnin^;GFSo}-E09UyYE_QZPek4gT z#5GDS4#}nZ-#;a0>eH}7*>F@?_23rOy#xC}3sJ`l5mOixH(#WdL3TE!IwNvBd8{mV zWQFZ~qaO&@(<@-Z!wl z0epAY(M~KHoJRT`Lq1j-okKnk3q>g*CdkeFT0Qv=Ecin$eZ3cym{!YKQmC4QRa|P& zR_eqGn}(Q59a!P-35Am`Sd&ce@y#0@u)^ z%+5vTeB(Ped6F6mb&M1EWpN@m!yby4@(QTa0}4Iq2KV%BX|= zOrsk)n?ApUv78sjNJRIPgsC;D9cBR<_~z?>7!KqG#H35}s<_kl2)VPbnwEga*+YMG zX@`}6wbn3ttxi((H!j>3iN-xp_5L%W7`_^_Tvy#Sy}7^+(!FtwHouN>GUa2bSY;Nn zzJ2a3m#z>nZD$GKla_>i03ogdu$L$1r)ZF#{#K3U^jEQ`j>1R!e$9aoHGq7kP{Md> z%kg17+_(vzVYQWUY(k|L46;^iozZRJJa@vBtq|1d1Fj3Fpcw1!Ow7EWptr()N!y4K zMx_l>NbFbtrx-8DuCLJ7SwGu}Jwdv4CO{J-hLE*ivO7-jy~Iz(`#2bATr2l95wfvD z@T(IO;iAiR51JD%ddQWKmGB-f)`A`urVEFlnCXtcjf@uhh9|aXa*NBtW=u(bbu{67 z{ub;~m{G!0Bhl(#Yp_EG^Ir=&`@P`x_x+{;W_8Jj?e{1DX|rE^7|Gjl=+GY`PaGri z4pywBPr0?+{4UW@eE9)qV(I`Zojp$Sb%)%cIXEhi7+1nw46eCh7*YvOd;Ux1dJ-#y zYo_-ZiafFCJ_lSI2~%sql*6Qn1wRgKyNuHt8Az`VmGFFENXUFzj_m(l0gWLKdb`ppI^PrP;3L*M zu~2_fV-2>|?uJLDuDXrYkz$_b71iBKMIU@+mg#E;h{%#($QizR^UbNOkOh1_%v&qb z!v&VGPJA^*PzLxbeW{B#DxHU_RvMsMci?u$uj(F2E;T4rV2bf=K*?w5?l*unE{n{Q z&NRFyY<`@9aC9UAongHvx6Tv4q6e}7Hl$DK{#K}2s0#3p%=n6km!ub*oJ(C&gvlWd zLwdwCO(l@~%1xv8B1S_(!Y^t*K|}zAVOG@}dWfKX9JFHew9sTrM9$&0N1!7^%Q8rd z*TlxfGOF?|%-_$3mbOKWZ9TrhM>m?>*#Dq)_v+1idM(qOb7q#xZnF!rBP&xaB>J?M zQ3p?|O&71P`Aeg0VfzVVGJaB3#JjC@V@_z3mm{NmM*hYm2D+C?f*KW$~&a6c0- z$4=wteez);1I})=+6mX9OR4ZMtzQU^?c~ErOae}GEH&}2xB!Ym2-Y2*C-DpkS=^_G z853zJxHnf6eB>%m$iix0kk7i--V_N4_2>7AS~yBf%Zy$+l#VvcW)`wpVqHjS2M$mS z;RLYNiQ|iYlCd6`@0F8qu5J@{eldB{-~p0%+!cL%9A80ofBZAX?1%r^cnhSTk{aSa zFiM*6X8}&nA>zT6gnPjO;$dbsV}OAYtPB{EilQD=Il=;pIp91-nQyxb&Bmb z9Fy|H9e;n<)(d|?m`Ys0E@+?O`hB*9%sZ>1TSkzW8E)r>g*cPYmvaduZ_n=v!8_;8 zCcxp}cPRbj4l#+ggPZI~69I=?F#R;n{2hQyE0J=rUTuX~zD^NhHYdZnE<&E7NN{7Iw% z8rZELOAf9xkr|=47%6lN5e;>{fUS-msvZ ze&{1q^1Nba?H)aXU`f2%S4*!c*kxqtF>ms*^?!SNSi%*U{tW4P5~i#aIDaToIhf)9 zJAmwP&di63%8h!@kD~Syt%&}zNrv7-jwx;o;bUrLeVxJ`y(MvFTSL4H##q7P+t9EpM>g;4RY5$UCva4>K}c6gR`_^!gx!ZQEk(-!G)bZ>XI@B<9sBI`Z z-%O$7`BM|bt$et--QTAcNGRJZH*OOcCX$SSd zgrc{0>GcgG61vmQhZS@+h~)Sn2n9!pb61ABNT1U0-e zmF*Hj|Z9p`_1X z-f&cX@cAS{~AGuxxp)!p<-*YpzwVLKn} zDnw(xbM!(uuD3m0!%kS{49S6`j6`5XfaXp#D4A;MI2QO9?|3hav??;(|K zQ8vYyCH8j*P4D{=X2^HG+Q;K@D|U&IOlh&tFnAOCfT+|%q}ESo-BO)0JDhdzlHcLa zUEZIK;Iy_yuX`9eRDT1)cUlgyN2HC)Sk?9(`{H??spDBsxU~|ff#MMhrMOb`jJ-(otEc~q%`k?+QlI!2TDyaG= zgFdpw^MrIN?zF965_yqly0Z3uA?RsmFVM7qi1#Ctj65SZcI3LoFOpiQmS%lXif2Q6 z?%J}yKwO1{y*co!T1tgBGfwXwy0?bmcay1$ItdGe?z7eWKdJcVNbV&kc+h zeAQOvd6dvDa|UXb7#_byb{@Q@63o=R0SuO>Ka`5$eEm~u4cp4WxF(B?H8Qy0aA@3- zRJVEEKUSY_(x)0gye(tdQ6aU$*n6QXsU95F*~)ifpXf9b0&Du9!V zC}7atePk_e^7|H_J_WdeY?>tI+iR^BBu>JoWYU=3$L*bA#S6ZWra|8D(20Y)#8JQL z$Y1*aEB_>L2n%~fpkfLO%(8_SeLw%r+f}Qv{_Q67$_DH$E-Cm>%$S`3b=6~ir2KYx zO;QH6a+d3Py=VKh$P-j{gDq(Gna3P5ln|6k;B%Q})Npf)k6y%iLgHM)vCsSbzy&J# z@Q#{dc@+*=aAh8UoOw36V84}wjqe3XIOQ+4t;V8_^`-3yUr#ij3VG?D)Pt0`yXOEH z6E}|3B`dln)iRO*zb3UCPoYUCExO7J?o8V#ZSYl0(D!{6=Z#(7qZuUr5uBiQs)y8L zr!TT!dtju_tF%4(uqUQ-lEs#l0MR;zszf^rLlcTB{+g6z4ff?Sr?|b zLJw9-$ij}yFvcX$Zc9x*>haxF3&%>^4s+=n(KYcSZP}#YoESC6WEib-y-2MWdb^LXOV|f%9Tw!NOBe{2A7* zP9H9t&bNi=*oV{1-77ipNm6+6s((<BKQ^HZ%yG4<39NF`@_ z>x=*unHr_JypIXvd*TO>Agc}6MN03;=nf)G+gzwY`XUvKPyEzIJ!Fa{;WG&b49j~M zc`4X9keV*kg^SQ3CdR*X_lCfyd~Ap=kYH~?8}a9umN5`r{Mj2#OOgkr#WjxyytS|L-Oy+$6?@arJxdo$o_`(p$L}uPlv)K1E)>~hGhH!tm zO8>u_D%>&pz=ka~j6A+v@Kw;w0Fwlsa_P>bg2g@RQwW?*xik*TUh2EZdPMK6Qe{6g zmpJCC317j_3RC(E&`DMx3ZVZG@|Qx&mGOjpC>b3zC3xU7%=#Q6Fd9c?{!r@^a;?Gr z2%2@krMjwK20i@mRL8au6Cv9f`I9*c=}KuuLHBDoxE>k5C6w#8F!E=~&UKSNDB3Fg zNaFqOu#*a+)R`D+Ca*w8Mfe$fO(n<6P3{>eo#A_ywW@c9s#GN5UKU?Unb8WbJ|^|> zjtI$W#H4gxLPgBGH(Oo73>oh!;!0EMbE(fg$jlFHZ%p)rZDSM^*cM9>qWs z)b)WfSz3giQmbI=y~+LVlp2Q`ZYaK%GNtl>7G$GbAZTrFBAtb&4GLrntrfTmK zn!c_lZurkS$LoGMAZ^&bwsjy5`x-e%(8tjY#7E$pr#%$)shJEYf(El=1jk6Fx#^N6 z*M(MSl0Hk^!J$_x>u#IB(@@c3zc|+1^%&T~O(ta#B{=NXfoW$#wxNDJ8P_gHk--?5 zm$Mo`v>O6^GU0}FgFW=7dRLw=xc*&y&z!$Zy>$0ouV3XMrW|2i2mpG{X4t?q4)sBE~|7 zvT4=WO5U&kaUbdRNAC&B*M49hdXyeIO@Bqq@$l}5cD$D#kcd*O+zA#f;?UJrX{d@O zNvxaVl0yMlCmxoH?LwrphF@T|h~X_v`iDRz_?DkZU($@k5DBBN2csbr^x1k`8T)6` z61K8M#)5x&S$o@HHqF6Ow0@V@bK8IM*{<>q2d)&v)l(8nUTGaowN0j->%gMVXP;>p zMk|L?gbeZZ60+c)9kO03;gA<3`$9?+1M1E8gIA-aDVAY}mZy&EiH+^LFGq|Vn6|gW zJ2%L|+jc(516&wquRLbeSWr5QH0&Uq`(DsI*``&DHBxD-$%|qqz8v9e;Ymc0ul=|_ zgzi^8V%HCg272nLXA5&^erz9ATjggDZTZPhuM)SklLm%7y7zjH^{@yfIC+jXnPibl z#PjkJA%6i7U^TEpL_nX>z{J(396pFBr($PpR5n!Qmt43L-M7?rgzUs-!-yZ!NMQpd z|JYg~7=70%({3s*5HiKa&?rUT{O0_Jc-6UqQdegru3_Ks11I9Om<6cWf3BL8uU&zd zqTWL9^G}=Zw{R-$js=8Lelsrq8S?S=$DFz2mIjKUkJR#;s}3l%kRx=dt>K(gMc3*i ztefvD`hq=r|2O%^q}w-eIX~Bsj=#q|qyuhL<~I27lNXOS(scuEki4p^nWYNps7vy{ z@K1*IErP$m)>>n!Q5z;;1xj@2p~*XouC>P9ZCzyXMu%+ToO{fo2t6C*NZHNFRQY%y z4#rbgQVR(?@mM0JHC;mqqbLnthl^;__j!rPt9P5GmPPf}0$rRH*t@wv-vMX+?TEWX z)^2bYKAP#Hf8&QwG(;W=fNu>{h9Tcg-l>skX|Me6a0++kL8$2k(BE z7o>NIcVEtnxORzWzJx=7{qUt4rE3RE&s%pP(|*@psbU9@LWTIJPayFiHbG=vGEs+MX}05t^+za&bVLbm;>PPO_lCO97te-wCPP1Il_2d!YYIEn1Q^kFLq6~33ghu=()qN z+&^e$7L+WeY7s(PKYAJQEDz`wYcN-DP?8bSzJ z<%=7`QK-;VWPCI|wQ<;9wLxvO5pAa1_rdcrPilgqEa%i8pbFV|bu8c=z9a3$>eYMJ_*XHyra&+-(5e>?rL z+o05U{NlPny}L!Cn?2pn6>D?2y@YgKz)vS8r_AeY_Z-V-+O=dA&|HCr&%#m;fJti$ zLPCJb#YGHJa=#!o)UR!V7u90TJ6KqvXPY^Mv7?n-EQ8kzvYB)90B((bXAH)G27b2 z!}VwoR2i5!Dxz3n+zHbcEgZ~0v{FLlr3i(QbG_oo(2Pis? zb3C%EKQU+e7|XhI=^0nF9rxcT#GIhBGSLFy2tlc!_K0|0$V2-zxkf!6toWyP1kP=#-j#O7w%Am30ho z2h7MY{oNwtG~4#*k5%S!H0*jB4(~W@cmLQM{unc?RGd75fD$m-2N*~FtXe19un3T$Z4ogjTim!{E_`lwi;D2i?ckv+;+Z9 z6t|Ji1ChbxhqMQ$OXM#9m!`wKvrJKK+ zH*uxJc;76fA{G@r*eCG zxT{X1gXn&(d#w&w3?d50o-f{9a|PR}>uaQ=G-zqWnDa1?rJo zr9Mf$hFfH%BIq${2E}2a|FkDzvS5M*DBrDPHHxExHRCliyisdb{ikG657WfW)l#$W z+`{hI?5@8)0sg9#UyR*iB`?$RKcVAv_u)Z7|6c5N$Dtk3=)+sf6KZD*e8>>77)OrM zV5zrZRHY@ewy-=~gk+_DfHIH!I+KC>MQZ&h>L~6KCqPH! zB-={~>D89*$NTNmw4LE~xZ8>exQxaibkd@k#Cf+xbLeq|wZou@Z@yzyA+hZCVIqVk zQ2Y4o$(f{U&SaX${uU3RKbx{7%KerIXdWBD+|6Y-c|b=RMp>pGiVDJ!2+Lm!PHHV- z9EpUKm?m6}rDO1x-YJc>n8F{>%3i^H&fo1D15Zv1+?-wrrPoEQLU6jUCTY97kU}bd zpNaFK5^L^`_J5afIs0rWh+(HoWG|S_?Q*z_An?Yb6q-u$)9N5D+XNcNECyFS5iFf6}Zos>T9|OW|Ee zf9%-D8`n7wStM+0PPU|4@3T)OJMz!XdVUpk7@%Z_0dK>@uGiw5Nk=TTj`sA9ppIeC zqVzIUtw9QY8z3|(NYejr^s~76!3FaW{)yF=KrfYC33BVOtDK$lJRPeFvs{~GX%do4 zs1k0UqOrfs1@Gx8=Hfnze5F{W`jojBQJPjuUFpRW0Qf@yNqegokq)+;@4z~898SD| z4OmrG4xfcnJek&m{HxSJx^3nNc2H_;HxzukLVj?wu@eoD{-EKGhE9EpGgSshsIe#r9vW+rgC|b^`LSc@MQ}Fd%FlQK9 z|5|BUA9-YnEN<_TM8RH5tX;;n?L*wBCCC9>tx+DHpiVyf5V!x*hV|sGNHJ?pv_wak zLh$LXd+_1;p_#u2$Z{GstN5BX$T@}(QD(LZ|9Ij0=bu6ImXWF#qLrh`r!oB$_v@>1 z#{i=WD$!mwLvgcHdV#81kl}&dC+eDuwHbGX-rIky~%9wL2A3{TF5P(o70|us6wy2g+Y4ex5PK0PI~B3q_q`2@WBSz z0~u(;&T31O^sI(xZs&el}$WxG-QN9J|zT zO6T9fJn_cGWAGSj&!ew=pGFO&n<3CyHuqztZF%;j&rwQ$UEVoV|Bo$dF&Oz(FA!(!jID z7a^tcLZqb?)h(-h+N)OdSpV05s}Qb_(fMrRv~RX(c#rX2P68@JOV2}lQhmTAO!gRl zyNzAMZ@b?J3GdUQPc+cMRJ&ff(4(fL_A||2s<{7~|}d{I`g zi7+DIR!@)rtp+~xb&TgsCNTDAS>Rxslmi&s zU)TESXI5)nALM~2By$WVPj zDs_CA?5M6dr}VgTs&jlJ(#o0cRM)M(lrBzOa*2)fGffxip6>#eDv?sAO)h(O>>sP- z^1geI8%7Y7JImnqJH7Eu`^crIrkGyD@?g;2FFr|$>CO;QHQ0+@T(@Y^18D>YgrL*^N|gn}Ts) zQr3u%9Ln_dTO*f6vdp?|h``-_y+>&-3XE z+bA(5lGJZgkP|JJ(5w+tq}jSTLtOMi>AAmCo;Q`> zyU#tu?jMjcgNnw`WirA}byO zkCl2e$Hs;d&%R_M&r5*$Hkt-!)26ph^(PX3J;CI1WX>>#gJ_3Lu0X^RL%pJa2IYX2GW^W&@J|=zIlx! zyAz{GVdVNN&4-i8=KQ_LR*8tAYxIZ#7d6x560AvbO{n|o^U$={OYH<9Q*{Yx;%uHa zrei*IQw!I5o3!wfpoYHUXsyoC7xzqI{nypKQHaI&f?9@ZekqMmpP|gM+l@yqmcJyW zBl;Od{5OIcEqK~FUXeJxz)$x>&~xDm^mz0eXieYv083H;>F>P8rn=^p3Vf<>gS{4> zcdYLPO!SdTy49aa-ygZiL@TM4GwX@>k)6SR*DDr|_N&TxQkv^$k(Zoo>ciM4cX0$- zGi~ArZZ2>~dsyO%V|wFySMZBx`hn|d#ivT> zkBa>Lt$E2gQBd{(pqFv8w0)&|L_zF1N&V?mI<7X;ZyGr~ZRbj^gt zcSPngZ~nl)8P=JQoIfGW-wSv>#eA)e-`x6yGzn|xt^A-33R;j{-+eN^JBQpAECN;Q zSK8yF>pEV2N)!iLkCg#?>sy}}dT>cs`B3{#{F|Fxea)j^S)V@_dZ=Dn=~ zx5)E+^iCR7MhmfIJ!)g@O^QV|h#^q-Fog<|&z=&%)N~OAa|A@M>pZ}Sf`{rY|6CkGe7owR;?;V(D}U1+pVS-yC%pkFU@?D5-EM=80`ksYt< z7z^bBFh5?^+9YVbn2o+hT4T<#2?otsyWiCCIT!u7bKSR1FzK`91+wZuSp>E8*aiZN zg2$O}VY8@FJy9OI;*3vqD_j!;_;<3BM$BF>2EB3I$JGhjNY%c+$st2Uhq%EQ` z?&G)`^XLd=g>O2r0h@>1=lb|8toFw!(JU&SVmd8m^!oE?5#O`qIQ!HB?aA9>ku>)e zaq+l5@*mU%2q4)QVw+KB*PEu54?nHXLM*d?hK>+!effUvX51wBpU3ItX)~pqmma`P zZTOU}Cr$~8!_`x<$x>D-8GNk=80#6EcXewtmjTMd|8nIF8&~H%h=cUOGpyt2x(8DL z2wb0%YdE>g!&N&pdF0bDqMg5e=dBqH`KpIzckjj48G0-mIlxboBEN0vAZ4^L_8+91 zvm`BGiZ<^XI6KAOh0q{lbD`>|iu8GT1g-Ah6-5@t^p$lwi&6U&L$x4V&GG+_QE=l%EXzPde@^6djRmPxmR0Oa~So_z^<>3 zSa!yY!9wG-Rj`J(G82e&Q8W^GSz*q@=a-yzb%@>IfE+E*dAZ=Ui3xv?Ukb);=Si4i z@25q?yr%atJ2>Q0!y$%4Kr%#Breg1@vUHtG>9TtmG}O35OlxNg^Tr~-brUQy1O-f# z!ZEd1wiHnz;T*<+N*UJ$i)N>*Zv(!&k~&{qI)*0pY@Pzd!7x*k_>>cmnIOHTsny#` zP(nODbE^Y8VAqbGK6f+o0~^&G#CUWG+f#_oabFxwz|tQ)Mk@195#lwl^oI8rer$4? za35!B;J`;dQnkr^-V>eTu#_~-Sr!>Z6-~^2P$pgk<}T7_nL%?^jDb_8DED5@HXC?F zFSko1GT9vdN5XlBeb^vF{??ix;YV1GZ6-hi`COf=MeA!bpJ>W{#`# z6P7(w%w6qiJi!PW9}cYF^fFDhG6o|)|2Y7uz)?G<9Sq%UW}IcVsyj=5D>>FS+8|p0 zxJ~VCKhoj5FvG%q|7Hrg#KUH%TYOT+My3Ae^4^dJ-xXfkIOJYH34J+F$cm?%3Z2H} zui^`j*Qrc}434t^$DKms_1o|3D+w{80VBx+v!$jRRgY@`>1Hh>4>Nh@C-e$WhjlJb zGYRzvO;)y|7qSFBv<;cS1a9&& z7!A>RwBlYpq!bWtT+2YO{{vJq+w`hpP#tp7o~lB^UbZ~A|I)R|VLj7N)tdRQ!VBnT zWh+L}-$Hrh2;a{@v+XMyH>4)@m$FSiYj_u)n{x_E$t9CJeJ7O-S|>O^SFvdtcgLu~ zFgXFQIiGdD2hiFvV^;9Y5{+1^RSkhZci+(Rc+skhpDqR zu6y%6+B0DJr}u(nOudFajAg`+;P=C3+$+iLD@oQ-NDg?^z0O>EG%&)Dbb7^&*+w=I z6P`aSPFG+WVWmR==zIIhJ{-iV%f+B zp4`W-p!k!Wq~NLsYZogI{6GH|CcF$+Y>@hD4%}0z6svn-VSt?lXrr} zajJiim~J7zOM~kE8c(35X_7HVr7L2OW37xYF?WUC;G?=6w3FI;i&Pf_3y?9rdyr7C8qh7DQ&X23{~=#S0SzEV2RttHheHSRnHET{Cv1&iN7Wk+Yt z9jg0R*(Hn!?cPfOUuy}PG_ZuKT=aVZ>Qp2B+CvWHBBrhaQLdOYk_To z|I9Me$iiyf!_zm|C#_nza%8gqRQ5m!MXgtq3dQ7-YbdL+Dr9J)J3|F3@Sj3_q;QJj zNWJ)LAh;;RqHoxN-wPi75_`R^;7n_bRw4GA8$b{MGL<6WpV{R7?_<}5$mf<)y2v~3 zv%*X%ihKGy#KITF1K@u4`Xlxq>9X4gjS3%#w*4nQAAwQpZ1c7XY%p6DSLu<|0hQqR z!{ifMD)tgB)Or<L5@5&8r8%Qj=bBB51i5tr&ui*#RlLBG;!>8reW&N5z5 zwns9$%Y)}^(}|gY{6J+vI;Ua z31zTF>k7~25J(+(@XUcQbp$9<;74X{vP5ozIKdMWWPSTEHK7A*^jMmcauQMCTJv?9 zzY6F=wuV~h$=|S;6?kzPk7q`=_=Gmh-iBcy}ORF*`(#rZ3D9d6!Cl$T$P<(a|;7 z>j(3u_VU^Iv+pb`AIx{v}PiCRu84-$Bm%RqPz`+jem@L_G23 zP`UB_qd&SZr}DjIgU^L0#l|@{mJ5X{F#qlhU|Xnby?Eb}OuB}AA__%+L7c;{ZHW2U z1li%iTl7i^_yjguirr4HJQz<9x3fZ1#JT4d>4=2*4$6_sH;LKJ@5&i8(iqXOSh_f> zpB$5)f^adtKL!RIBlQP`y!tnW)E%>e1ep?3v6AA8KOjxhglkxTg>jmsD)JUcw@LiS zN~(5K)a&9~Hd4ZrOX66VnXPWM^4qdKfQ8C09)3ITC;RTM9-*0VoYgZ=+TSM==`S75 zM4%`*h=>u^`$yj=Fyk%ai~C7(V$^3O293j*?ToWGJWd5*{6}l9^o=qVm)L{YPFTHs zwYmQKgWaQ2@n?jFPcDmFf#M}q1#A#LcVr6CJnMIe74cWRG`vU{0UR^nB9Yh@rU8_P zzyA++|4}7;(n&lqN7hb1M=E6`ujW`Q%rlELy=ypjmoy3eBLD_?J+ap&kMkTyt5!62 zek&Z(HmE1!gK8IMF#7QzY2QGF6)N77&GZmG$WOLeH0=``>$I*tml`&OOO?x4KRELE z6m7h@m7{4yobs@HinWSQ@*~S~&@td9*Ha#yMekcm4h8X(_18e7Ykbq!;*+koZtYt9 zi|bR%2^aOQB|^|$jVH;)zI@qRy{$IIX;J>R4QHWiG%=kHFDZ9Lkp(VH8B?D>JFK7`gO}OU4MYZkf0W+N- zj^tpiy-Bn&wWpaD3B#K&0SJ1PI3z!M<=gv|)| zuApn7{~V*j&wFB^gXuS0aZ~ZYBwh2gK+r-5E# zc4y&yqGm40poFdV|J+@73rpGY6(kUZQ9!MNwl;8C>yF}fJZ{P8W*qBpmy;*~JOX~Q zE_CFerp8v+Q*qI@9ccU+TR=ZLJ086BY5`i#`U4wQw=!_guD?s$eeH$Rx()s+!X8gW zj{TH}m>mViF@|`C)nl~1W|jF&Pdl90frnqQIUf&AJT$ryFE7EZU6C=L`$}ONf1H1M zZTgY9ad+ve5;z0x@e$?PY2KEXkszv}=$;IL*hg~jr_dnE$lLz>7_{CzCB93NJ6fBX zS=m(Q58^Cx$fVwYELp1aFz5F;=W`Hprx32yJvLa&;N}A099zcooFa*7q>m-^=Kf;r zM?l6-I$P>RA~hT$4h5XS0PM~6mN|H*v1dcJ<+urPpDg8MvMrJKPfyg`KmF<5d9e+o zv~@9}`gR$H8ABoHd-1)#k`ejv1gf&7a7E?3wfJ8S?@yBh=$(z`tE3&Hp)#ryFw-5P zj2{Z2l`R}+;I@U0wLtMR&Ab#pWFN9GCMg-Rp59t`XHzEacgLT(;RLWjbo|?OsE766 zlJ_2B&xqPb)OXZ1$ft4QCC%D91{yTdF~tmpuh7H3pE5w0fm`S$ek=N9BQ5%DEgxLr zc6Qa!-8qGwCd^AO1L4ACswtA7m0Zn%%NZaF8~@EUR$Q<7`Z95NS`MmF-fHCbo_MI? z1TN9r{N!mp)Zq3JzV4YD#41Akgx7oc(x;{Q?fP@xa<{4~g1IsW*BhTDN+8_9FD*q6V<=dIX7uqU|CC<(D z)K#2wU$(T188y*Y@jr}Ll_V=RFBTDl(JZo_LVE7C0$ze4*1B&JNt}8Rg9r=$^ZL*1DKcQ}N%; z$z0C|Gz=^lkoCoK!45O8T3V_88T{m)T&x9A&VEc?Lw!c}vI6~t>|YB=*%o@`nZU^4 zo4iwNj8EZ?SB~6S^XHQe@}$(3MU`QI)RJ)4r=nJ(tH40(8f^A14T8MZHE=xT7l2BR3Z;v99)ll}CPNWV0gi1_K_-z#h$ zki=#e*Yd{})`t1@kyqV5i2NoDGjWNsDZ%~~s(6}0B@;_8jgb-?^~5VCQT zz`!8Wt`WC%B>Ln`Z)%7va$?=TEAc1O4lD#d5>lFhs4(Q0Hw^8~RJvCONV{*e)N;w( zx&g`Hd=kD=(K-V!RcK}C5#R6Zin0=Uy)!E!zD2GQ0lSs3!01;DW9KgSC4g`O!N6tW zD2rGsq%-erKe+~q0yJBG!7fYn{Bv zwZCIIp;|zWs!lFNOX89f!aR;_*Sa|dmMqwJKLkO!_mfXwHML;I)vbk=aK=>{>eLOo z$Ne4sg!ghDJHx?oKNc?QAhi+Mc73NL++j+@u!ZjwH9I59W^V;)CJGIfw|3kKZM6qW z4A7p2LIjBE^$c9Ep&0$MU8J-+5gS@jgFb;SZhPf@GZoOh$(z1So&0U+ociz@&zVuv z>v;C$rgGaBX~kBzH};m-zn9iRiz+5lr4OIW2NOG;U4L-}*S|syIWX;~@j~JUb_~T7 zL4?L|89K~5Pxwvi;b&T#q}DlVw=Sq;@heI7AQWSpOndZN@Kx30fQNul^)p$%95pXK`n*HHWhX z=vXiwy2CTHw zpP_mmuWkDBjJXv?UZtitqu1;ec9c9_;4Yv4okTbO{jFnSD(ZKCvf1Kt>egUXq1JuEbl?=_{fhg z$gxhW(<6gIs2{w-N*!;|F`7Dm8e!R^Ec5-lQ!#euCxfAVMX7CQia&8yL%DEfX(pQ1;uM#{u@R%WR*2E=YNt-Se^ z{t*CAn#To>57uAmgK%ST6N{EPHnz~9^Z${usYr|pB%w*>xZ0qKN$`+M{dJUN=>910 z7kfQEO>_rrJt{}8{wgWRc3V6|#f;0>Ids~<29{)QJjw;DNGuNk6h$H8#b59QqYB4N z#m2GEj5J{%8PT_{`;NO69=#G9At$CiGf8u)PT!xEiw#INczr#G&>&2nTbiV6sbXRVwXxw@t zjH#pIdx&;Dur_-FQ*k9vf@m{Q3-TeC^&GBd(^eNeCMUC`64c{nbY@QmjA_pzvgJc& z^(S~TxKIfOHbq~lb9e_JwG-2X41vbKdKb1p-_W+|@(`LE-_5ZHTZMg+I;xKIRU$`m ze%pv6h-F_s&prIPI_-iY2fjj^qsnq?A?Gs{{qAU!JKP|p7vJZ6T3YC*YAcNYi;4pSw&m2)@TUL)dD z2flC?4EZ#kgjCPGCEKjaDwcRc)8E2R5n%v+k)C8>i%+^LOh2|lQ7H-Q-1$rF>Cete zh9931hwLeaM|E;8s+2UWL1ydb_&zm*Yw*O7!ULR*#k*l15M{o^_C+6ywvFuTAIoa! z7wk|it@`k_g~PTaT%ecYV%7*L<`ajX9a(Ve5MQF=Psl0yzX1F8gwQ{@K5LSP7Cz%r zW^h^*=cX9MCvsu-&}wVVKev>CBh{Fgr_Q0Z#x43O%_2>Xi@+oamSD>I8YmXpj5H%a zbDS7MXY?)c3GWB4Z@~W@tVQg*=jM!Wx8jKZqwLM2p^E?i@uX-I+JqP(+K@^U$|Qvn z+Ba!LMNOJYA~829l(kfpYLZHuCfO>>CD}r@G9s=m+tBR$UA`~x&*%3!pWpeN-|w8? zAI_PnF?ZZ~-TQhzAKUZ7WQo^-pwr@+u()E3Ge4qcZZ+%HDh9`D=XZ47c3nJk`9R3k zR}4KkN~d1YMD_TDABNNFS6KA^=fsqV7n~7C^u+;6O`#jE0CH_F*vyv+JOboL3VH-> zxT`X|8-yk#Py}orRYf{+xIP;gN24>wWVFt*2YUd0?>^9(qLdtA&vLT-M-UuN^a&UWc#sOQ~KR zftdHY?^``SXK;z{JIPvMu+(2|lV_z2*Tw z`pF>pDaboKtCE!2$574LGjSo>qk35|MNH6K6R(`$O&3_E`5O`G*kRatUWTGE!!pwq zdwG}qEp2Qjvf#$Hp!^$Fv>5xx92NY%&i>>1S8WNq8e^(^_JNU~kMepAq-sy515n`+jv;A$%2@J02m>`;rrQzczYJLqk$*IU@7 zFrW23c?fj(V9#k3ReyJDDGzwOQy8K}n`P(=0-WsDJ^=)eEO;!mG&V`y%0ZEPQb^cw(7;N;y@61Icu7~GHr{H(PYaDuQ_@?e#3fDZ## z&akux2Ad@lmm7?F{$(Mz7yJQn8r$xb)3pvBYQoq_{hu)<*v=Q+9HC6Nv%ToivuQ&5 zXPjJaMO>5rW$L)#Ay`6iz|c=AK*9FGF&+=A+~#;2mKkm@LikCI)^|zDhFThtw6Ke$ z44i)X!fzr(&M73sZ>&oiYmX^fhx16CijwhFi!K#i>wXKcvpqHlqSgeQ+a6jFS)$?TaUPZvPmZx$0_ZXZvc8DQX zy-C3K?<4F~X2T(?f)37mOGTfgrBF3@xH@!e{wH;Ty(s=Xk0GQsrsq+S9@F-0rH~NXLP=fbxdZ^A4aRH{3_<8T-w#C z;AASPNP8QVR3K)PofKkvUN&x2TY%@zi6_FUT!Z_HNXjN68klVun|GTw_HP*C*W zQY(J{hL@f6KOuqdKgQBCFD;k^>)OveYK{QwkJpByI(~vEzv_|hYA6x=WdB`f!*}X& zjopc{W!BbvnDBa~&2^{Snv;Zk9D3N!%X_%0SI~Aka%Ef4RM-jQZ0toRwLiZ+YaS!P zvs-uc3j^K^d-NQEHPsanRX&iCS}k#^;7Ek&x{+w`-lbsqZJW$FDeyXJ7y=~_SJYuK zI)D4YK;D6i4*2qiNw7`cW#5-XfqAqf@@Y`mzIP2QVdwWZhFJ%Qo91XUsFLW|V%Wj| zh!tV(;)kP>&b&T7hsrIK2el2S>`O1^6-}{12R-d|^Fp3WL0HfVbqN9)$c5&^ z{XyYp?)!|?4Z+bt-v+!SRkN%iZ~2({`ivjmmao>xKj7x}SRcp>Nk?4u85eGet!b}I zgNv;!7%mDzM??T}1gLe}c^}3PwSb`k2yUt%K=lwiUcO;ZbT3G6v@6wk(0T6VK3TmE z)bm>2$Hr3~NNMk>aakax?m+jhwufKjQzUCZxlo7jQV=EClOaTSji>mQ7W(-98S>;= zGjb#(qe1!HH7yiuo@vhaFSydvf1(%Ial#1ecyo?8Kih6?PH!-)#SSD6a%aZaC3m3ZkwO~j0y0v)5(fp z=B_)1xZ9IMd-1tZ-;-{CRR#lFZ|20|f+yr0FBbs0nj52sb$|$I%xgsY*qx_Ot%Z5y zm`Oo&fKio~V2Xk5YYA<@)PZHtW73Myg|>f#p{`If&%4iw+Yp**X!zc;PDeCq)bQE|}Z+{Zg>3U@>iN_!t!@^J@)r4NacWBVW>RsEeu z33_5(2xxm5>6E>K!iAlP8xu942A%PwFY5f6IQ}_){B`^|TOoeSUi*&f&tb~*zn(Am zO5vWheGh-vXVdxW4~z4dw7GlQ8d`f>(}frRc~d;eqJIETTH$n?GA&cyR=7hevEAVJ z?1V1$&B9!y?nWg%AeGzLR_r)*yrC9<2&-A7Hl5b%^bfDg83LI#dD-ki_T6=q`FZkX zt%G29!DpQohJ-PG0vFm-Dfdga{8uwbNjw0FSPf?JW+@$K2t9#g{$T9_)6glM@J)Q5 zcMJ8W0yIaFlYal3EH?-@GK@udb9Xa}eWYXTjxWBAHI1k2r)qrlp8XTDUiY^wrP8PJL!1(m&Qokh!IqQdd? z+M&9CLmdno-e>h8@Jau*4naDNbqeXww4TBa#lD{<^-c7QCTJs`x+vF^;dDIuJwv0( zBV2gw2qW+)MOhT%Lqs2}BoN5rT^hbl%p|UqXUhE{t6%TkXKr4GQsewQ|5^c;;M8<# zUE*TAM8BV|PZ$PO{ATv9gZDQ@FPi$T_UB2UmFf8EJ@7`)cx1&-oNQz)=VB)pNB~9( zPghxac76o;K6i(aM&Lu{wdAiUI6_DXOuY@pgZi3?#7U?lY-Qt4WI*F=6m;D`8IlO) zZ*xg5qRGVEp^XueEA5R8C|sh0X^VbyPf(Pqyx+_%$WJ7nc|ta(X}s*+Oy%z>%xp%G zV(dF(U8O%%200D#HS?Jbyx(=uT?b|VxWBD~awD-pF$R>PkNa~U+eAoGI~y&>{GnXz zOk(5i)sbR^Mp-fDPdvxQviQI066**FtD~{IqY>YuJan@$_C2%{qjWa9rV@71Ov*DR zq}ljc!|*@BD(|iZ1e`Ukllp@~uEFZmu)CtUFXqrJ)SHn@F`OfItC@1AO}0nvFxJ7y zgnVD^64Un3-!F;ab>bc87^PzAtdjpEs~{dAS*2{(C!&gOMMqmA$&3|SKWBP1-F>~< z>?u%FaOP;$dP0N8bpnTrq9*}9M#>T@V<+WK#x)$NZ7V?dshSKx(RlE4c^fzKXo97( z!C+jeg8;JxXQX7C0GY(RJRjY$du@oe{4MHQ!}a80q=sWt587kufBK+Xrz|B zBg6i|lTDUV?{G7UH#6&WKuQhpFR0#^WMmR$*9<y-(otORWMKo!t^bMsn{3fNSw^Xu;tl^-nfl%c|P=Rh^lpL9VX2i4-^<1Jy= z%`Hdg;_UrT;l#D8T+t2%NXIA%_F#}Q66FfE-0kB2iymJ;`xqL<%r4bG_l7a|m1+wI zPOPU`3%UJiwvVa+)zffjW#|#p5Kx2b@SaH&%5y9S!IU;*&3D1`R0Oa^(6q&Uxt;VC z)Jx7r9|au!FZjBu1yv5p{DV~lqbgVaEx;iUbAL2ex8>E-NUPM7XCCh|wF?1ou$(r$ z(gz=o128Z9{?bSWA!BR(3edIf=>@9oxtOq)-mxnWj+S6e0Beru17qId1 z{5Vr`ez7VZ%v8h*@_*5%93eK2r{0hO_vX_e5-5B-xh^vUM2j9IzD1&MM2_E>wvLl$ zrO^;@V)JL2RK7**B%l%Nu23X2B23Q{Usu0!B538#6-Bl8+~s2W00UEpDtun-4!zvi z5R>dH(tm(3ikOP)vYQviq7Oizn_>?ReDRShM^;2sO!)-o`bQaOdc75Qmdr)E)n zuHQ6-7lQZ$a0<7C`r>%-JJ@*bt`doA>nV1%%%+43mDET_qj*x7!7Hg}wz!?kdENo= zMA+c?CpFz@g4Yuoigr|lKSR76E;AV$(s`ZEW7nm+RhaZjKc2nFPI86$9u{AD79^r! zEr`wqscqxy0Z)fr8;a4J(|g;q(S1A~Y4riD10K+s*{a8Awk^ww&U~KGLO&C_?x5EN z+uI-_rGgO{x;OL$2g33%uA<0kf!Ma^bVhCCRa)TtA?@Jno^NOa)}@uSv(zRX;;K6J zf+ft?QFB=En&C%ZHk-@&qP68PyMH(vSQd>r=iv(0ZHLLA6L(z!N);;JVGMw(i(}vG znG%bi7eJubLv|aN;V%c7V~`gvl`6hIKYl15|B{Ieu*Dsa0C>Gb-zVZPJDvxD+rSXG zOX-{LC^&jS`oW#z7(qm}6zXX2kwTYOU4-WEj>eHa{ZudZhd#H1c9IFEX;_+^6ZNAe z0|g-;YWGr&)2S)RMdu@gA@Z8Ci40{*G6S#ZU1+MSAQxGq(eQ%(4p2jl(H~Rek-lzX z+}8=qhcZEPg^L-P#MS+YpA!nr6#8j4&EU;L`S&a1*gcGg3za1P@jmt&;?QPb(cZo4 zIjT_qLM4o(9MTvAbGmxn`?li0k{3foo#^4KMCUrnro?N-sJH2}o8sE}3$b;uBc=_mvo} zCI-g2LVe<3u4g|1QY5LIYCQDg3V6^;?sRG=?C|$7WPjKjG+9DwYSH^x+dI^Npc)kv z;*iaAqf!~^qnh8gEG_ttzrrM>)&SReT07yS_;>IRkzIfrxvV~%hvkD`hQGLNTopJH zGRw+{BcWFY@@%d4@K-k9)vl*3gakX9NzgPqSq{<%)P3h&yC^Ej8-n0Taqa-ue1Hy4 zw@nC@TFDzyKzNESaUNO~u^k33XOO!c^|u1SLw>I&;j<^6s)DEdkjuv%(8u8WM%8O$ zU?KNHb@(T-e?}(d`Yuq7MIj0uTn`p$W+EI&yN|WvgVChvwS2CK#uGlo2}pZ8#qp28 ztCb7Q`(W|}H5rz|^+UB(FBzYGPa8Lb6K4&vwaxDCI={5SPaz&lW^7#ZjM_MRn7yW7 zE*?7vo<0Om2id|ZfklqX(I4Ve{NZU;J0=mS$|M}YPdWHm+|@|zlB1e7Oo}|!lA)37 zF-cF!nUXxhG`fcRiGILq3mforPwr5Z}#v+w&I> zz$)jwJ9@{27$%jk1t}woUq44Kagv^2f-_bQSdYOEjwZ6cqKd?~(`zIk6aXv-;2Y=A zcQGvG2`84tAVB;$+0C{`xK!(1*87`LOSux7eS87b3PK$Zhbz=E?Se3KrihiVCRpOi+{e*HN9= z7~TOI8`S=|#t2DnQ-JTR;R3BW=KIWF7~^=7IJZJ^76*n z5i1Xtp?%I95)R!5E0-DjY{se4UZr52ta}p9O1Mfc#yuwkLM(Wj1|Wn6fsO=#Bv2G3 zCO%LccR4~ymI1Ld(CEv=!6&4Yp^$?oOLA^;^@gUZJ;Tw0D~<6^M-zmRfNc*&9H2pt z^wd$z#!k_zV~g>?H5zjE1&Q%?l>Xt)zYFswbJ^XeXKexzia=a>_UiA)J=C@bJ=9K4 zb|?EwD|-!_9VmZ|bWyo#>W8tDQ-sXPJMdCP`lGXeuS!6YOO;uC1O2JE%p~8e-t+np zP)znHPdaWi^@7dCK(H7FJWiwRgZtbR18kOI6dia=%fe+dp%R7k127V5t-gz?A!}ed zc6-t}8ExUxRg9O-Rs{+8tEbu#;vsBZfi8sWM{KqvTtGY9N!35%3tb+x-3J}7hUNa1 zjWUylGAK}wD`zd%v=~71c?FDgs({^F4RlR-7<%plzFbnz=%NY^#Q9eR0zR6XirUEJ zYam-p33?RDcihA94=IpnSLF8=;pgM)hzoDe0+EE$jc50#98RR-v$wv7E!!wiYc@s8 z53~88MtFft07)C^IWQIv=s(6D7V2u6NPvfWeGTTKx-mw{@+LluM&RqA@dnpNljJrw z8-!IN@c%CTSy%ziuzdM6#BBzY1Cou&#$p!l=zGR?bs8mWTnD+!GJsWS6WCSJvA z$b#-jN7h9stT5{0O{m-rpT}yx86ozRIAGJ2Bg|OO2Q}M+e^HXtDc4Sbo4CTGU`djY zW=*wzMV+N*E5FYrrg4=NO995>Mi4GjkvN8IsF>^cXdHlHipsPfNEHB>FDb@Bc5gYQ zf!3$~@)>a_i*$s+(;I>zb--jS~X;3p2ma&4F1b}Yoa@s40m>Xv9xL=P?p3KIy zQEt^NgrSZ#jZp`o8ypT7O%g?vygL{160 z)851L$;z(4HR1bhV9V9}LNgUf3Both* znua^iNm85XVp0C|AE@QFA9IT(uY?bs671Kl2Algy8DJmK_s}ql-;?x=0=e|nQDPkA zI>kAggRlF&*l=vy(FN15Y|cP{taIOUm!$#CECwxNm&3^hA%HQwrfjHXVjyssd$vko zUoySAFMsl&q4AebD?> z8hsS6ab1{s6Ztdxh^zGuYL1%PWw{woSCBx`{#PnThqwp7%-X~7JDd}t(gZDu8nm*v z;}>cfNZAkQA2#KQhjP3Ct=D1dL`Yc~Ne4Z~XX_OyS|N8Z|MB8zHIygiQ%4+dzv3jq zL&_&{BGAU7q+=FuC{7M|Qdc!p%vKyIN+PCk{nA`9nWw;^`x1#*)?ID>ub=W;DKr05 z4L!pSh97RvhHj4B1M20QB%;2I1$OZS6=Y2i|d18rfo0gA<0oT%je%h?!}!edfZx7=F!}F|&f5zBc`{PKB$B9VMMPLHwaOkOn$PZFS^P-_r6vKsIyW;w3~Lw$mcLMnp%?^MyYaxA zzR;qj&MTqxkoCfD*|LXt6Tume?L%0GtzYr z9G)u(cidHx1kJ+G18J;>@uJ^W@)elEcf^zS@2fSsCIjs@aIQ`?iI zelnheYx5K z8C+$eZUYAbJoFZbyohNdFthh1*r=IvRG@5v!&d$k`3pH$wee}k*E1~S&w#+zn%52i z$(J;fN!W2xPA4pCW`V+?Wu{1U>o9f))&{dIu$CZYIbuqxA5({N!&l{#Pzymhmrjv+ zMRtMFEBSAzn<1SjKlPUI<$pDy2r9>?xE7<9Dc(De4D3{XYEDELV(gI0%ok z^rJ!+L`egtb<>eZX(wj3(G=3i=sX*LmQ-1TaiX~)FQ?=>to248r@#Lfj(Iu>#pK`o zKkKQpo&8G}#d|fTM*VtVrOqiCtSjf#r$$Nh!GrPo)TS%KaL1)FgK@C_6BcnfpcFr8 z|3rVNu6!80=sZV$;e(y|+14?B@y>i6~@EHp` z{y#qB&>&~ye}BrNHB=M_icPfOUqtcZs`m;{h6U8{oIObYvNau+gD{)>UU_maWgw#( zl!K=j<6^|q&@e`IV7eKAUQTQ*1gTXm3Wm{F5K1=CY1_R-9cc5&eB27_WVk07=lr`y z0kb4hQis|Pci;uU6tBq78~-FnUe7({0D^_mvx&GO)TVUb6`DGvKF#W_1~kN)&eHp! zolns-zahd+t zoENpI&E@wEZ#!YN{$!auR5EIAOEsR2TRC%ok-p9>$g7{Zii4#31ce5aq4&=zp?ED^ z11bTw)KoU8)Cn@K37C4PA_vao$Ov$w@lfx?Gc))2XH?xbbpq<5-Mm(0Z$P|dVO?L40 zcV9S`b+|bT)`|?dL1jEf{@xDXJPu8an}M)M3Cw^o!kGePB0f(sy3x2}5U&w(q7bT; zoW>=ahm%B_iZwW(aI#=RX$p%-MsLtCyHiW7e_CPcBdW~T*A`rX)gYpCFJu_2pkW>8 z0kM9RmVmQ3>93|DhWCSXo%~w4^Z=>{|FGI>vP}rMiMm&cRNl-CDGY|W$f_Bsx=D%1 z9X?+Q1X&{=u24}s%6_a)R{5hJU`-8H+DDZ?fNwf}hShY!aZ~G?0w$VYz}WMo5~STx zA_MRWhEsKqv(TFy+yCK-i|H@bXLSd~%gK1_{}>h$&VwjN&G z%?{dQsU6_ z(ek~26rPYqE<>2TC2;a_j6MGW?vn5>*N||*MxO2>Ca*c&tbG?0)3{Ty)JwRcacQ&6 zGedcZ`e&+Fj(Ak6_}Y~-C1(l9;b#X9147X8#4`+_M6(A#Y4);AYK zoi$W&KaaU>+o?bp7Lp~VmCE#G#+|T)?oLYnq6l1x6ZIN0VvWjKV#hoJ0v4-A=T0=p zF&+BxUy1WrmG$JO@w-Zal0`!|Gdx$kVoV3N9Qq%3eU1>tx~a?*qLSF$G)P?)2s;0Mv??c)KV1FS+)6VMT$x1*lhCE8_Nl$^ z7Jgq#6x>Q8CzF)f73FALxeuf6F+hf7=gIdWIs3TM88=^Y?r$Tt3Ej%G#P3m4Yk zni-CJ5z)*?t|WoP@Z=@ZvjDT7o~z(dgpu={bO!zYi1TwKE<)I@fRj$fc|TSn6Ufhd;A zx2^vLH5|x$qPTLaQ-}Z#0%S)QmUSM~QK&+-Z~_$q%^$Z1%+YYez0sae@8nzOIbwI9 zB%)x~we%Qb?_e*oRyaw%X);DhY5W{Tt^WX7Zz4lcwR;I$-X_9%<&AR_-&;Cg30uHK zw#;BWa8`y8<341Bmhw}7Na?4}%k#mJYP$~IZBMc@Qb8LHJm7{dWOGv=m_dF#>-t*C z)KTP^u>oo)(z5{SMSy;Y;~Xc;_Q3_gp8RbyG?(27J)qIH7}OgFRcc7TsNe7G#!j61 z@PeA?{0RmkI}K4T;=L*RS`sRK>il&t>?t9 z!B)H=)Ewmo#G>(`kZlkXu&3WN`{|fE>?Ek=;uE&dad2NmEn#9nn%c-%6TxA(7A`$1 z4}_RNl@(ZTPqY+1;T=J%c-u;k5B+6dwc7d~w0ru(BW=)3>%8I}50wvccEN_P=|=_c zh}jc4v@2pidRbjQISMy2ZqV`VN)7k2->k@+9e6q;TS5Amkk$z9?){z4sZOlq4#J|w zV>1P{1H<1)Gq<@oFEcHkQ6zTD`DeB?d^5+c&)4gV9*$dGCllCJn4c<%TQ~wgUkA66 zfT(ZUbO>}dCO<*p#4XGwmf`ZwU&Ler9p^xC5I$QBfx*tz3bJAwibib;DDWp#;skqW zjgyrk(iDtPe-FhgVP7KHJM8>V`i=$=EK;;uKnG^&nWOa7 zTIXP6lmcr5rSX<(LH6#{yTA08zC~`!Ze5F`_QNN`-_T9=|CFUR?8d6K;wMI!$%g24 zdZ$6nLEnYo|ylMo;crGK#pnbtdbS%>zC$P))&IKt3APoHS}dcoHY(eu%Z_ zo|Xi3*Q#IXxyp2}@5H4unl&&$*1JHZw!|@S|40vA#q<;iHE1D=xO5Tc7Yp)hX&*BF zf_|kdX*_?>aY;KtqdCsqgDqQVg$aNKxI+Xz)nxd6L?^IzKqMB$L-7w$F|QHy$|xIL zpj;p%1?uRNQnI1}GAJJb@{w6!&}`C8{VFJVDzL{#WrL~e%Y*flER2Kw$DpX7NR$CF z~Ih4Y(N6SS2(^0PBEJhRBM1 zPBv2k1|m9&*Tk-7OvgXFVZ>oYIVm=hXb|aZx_9FMM4%Qq$d+-8bB;6>>g_~zkx~BQ zNvkVC(+Pd~+e;h?l@*@Y9J*na7jD(kNN980h&GmLMFR!wgmIs)9>$y>H7gUKsAf74 zpRU{Iw@+&WAC$&~xR48|NsZdSbRfq)h+XkL0wgNJp}kNY>*m<~nu+w3VXr>7{sbT+ zkXcJULi*APofVoEF6qP^U~gbs5|dI)%`aPeJ>7;qx(ejEOlhZ94q-V9w7QMCZ5 zo4`FJa#`p$qRSX?8bDfsLUB6}W=QB|W%8u%0A9gS4MniEp# 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≻B@~wIfq6WnFA*EY$VMVtJLL-M7c-f^8jkQ7uld-`U0q?E=Gx!Z$E0b++ zAtiC<45n#8F1-Fb5*2g6NNE@lox!u}vbcC-(yn0w+$wkhHjb>aQ#d_R2ms%BlSXt} z*xkDNb;)t*OZPK?wnV+B1+RQ_AiWQ8CrVfR0NoqW+5Eyvbe8UGnu*9T!Rqat*bU*j z(=#Qev~c*f0r!bN2cC%@vgNUNe}FA#8F1_a1qG{_6&hCy7Sd;K5fRY*C>|s^4M}~O zMQI^zXr*~+Q35DVN`TMwp^eLtAb)YeTI%bM^#8G`6;CBy!=sEv+3-pPKg@5R&^Oq8 z>=m(=uOtVYdPJ;_g%#Ap z;6o!pEQjQgu=V%MFthaQu@q7vhR5!Dk>mV>Li`|kB!Mi>0=KOEuq9U!{|Q&^WY-}! zsfN54-kM+E&CHW+?{ur)w3rk=o{eupQrGL8M3H|K-4QAKlAus)hL*R`W87_uJt5*4 zWxg$v_<+dBbqul=V1pmTnCc%rAkY!#0M`U3?oWyygl&3oJWq0EAs!8yGizK&L-F26M+V@rSdyi4A%r=rtEFp=iL^<_Ibc}!9(&?(^Uc-VbLoL zCcrMGWYH}T-yi|sr)A=rI|jV&cML(GYT=Nh?7xQejXCX1?v}LPlw}vM8`%M&G#F)t z0Y~9iN-z%HV;1YbvLz2^R7~tCobs(4A|_5!UH1L+13YCDIxG>yrvQb|*sdwgWHdU- zZU^%?NTQM%^)f;BHIsWa|FZ&#JCS=Czy;Wf*EF+jmjSX!1>zams;gDH{hHO@?{mha z0AFXX+rC3`G8yeR^&}2o5zN5@_{}r+S&V5Zp_T;?Gq(6u=Z5?9+!oy=4v_w%ARQrN z0FtP>pqPSa0JJ_@aT| zAbP(jm`2oq$9@2ttet&HH2hWK2t3K2Qq3YlDl=V+Nji4=-_mPiWf7vNu_*&%eZ=Q* z$9m{$OaLx;hlYZhm6R#k*{S|*IQ|oHnLf*3rX*KV03VvH)q$Qcc3JJ4if05ah9fT# zoD$~i&{C?(jfLay>1y}Fqlx!WtktgBN1wgNvYvKbZbEmI+m7Uzt0+o1*T{?iXP$1( znLV}VTl2oY83E3nW?D!Lao4y7!j$fO=}_=e=<*OY+fCmQyImUz^`C@-Ee62|I*o7- z9Z&+p5oC*XH+YAL9;mkg(L+idB$h*iGsx_B zgUCYrE@KU5=9$6MdZjr; zn1F_b4)fSKJJn%ekQXAp*D9;`^S266VrV_up;b^(wWzd@JW||;guO?;zh)p$y&(`o zdRF^jY&L`%%G~%CT_S^oZ7yc6UZ8n(n#05FSM@^wCvwwaoUm$n3je+l-xrwkP&8}@ z4!Z2;gAA}5x-?fI)y&s^uPRTNEulMnp;BnZN6oFEno6CAIU(cRiEcuQVGh1jMucy zVA2sl%$a2xymIY~Us!*%*wx`)#N}hTU_3$$u`tEGNGq-Qyf=Ux9n~7h{FQ*%-WN#2 ze?as1ciFkUdt7soTNV$u!js$agngOvJ6HPI&wcfYum5}|i%KLL_kH7Uk;**)k9Rdp zPDI7_$UDxC45rpsFln7q&(Q0Eq1!O_sZD--q!}>PKgn1~(uaS>T^z~yy10XM4OcR# z=KQfn=4|&ygyr@DSBu~adqte%PIKRSe<&E6uuo?o&N8TiPe_^QeaH&T2#;XF~$AHe_}j&&)nZfV)Y&YDs~n|njg;IJ#9KT zeXG;9v~h#gx}xOs)1(D$8rH}g-o&n**ncg#d#p_4z9>1poL%yB{WR^K(A;I%tHV<~ z=E04nPl(OQ>s_2K13Sc)f`}*zZJ1U@4YP)m+VS$$t&a3uc!%BMHc&bFUulJsWjDLX=piqhTtga6O0vBMy8XNHhFRRftwTuo*lO ze)JE#;;7zRplJ}Az9;1*z5t37bZ?BJ$D*2N&N(jy8~`4p`OR1NRlztk=?YIJ2GQeM$#Px+&c2YN^;Cfdq0|Ox1!wI_X#c#&1 zUTqV<{(K96+=lNI0eZ616KJR<`)l_QtBbN^{rOzs!h4 zDSut6FbM-GCrl~&_7u4e2m=9K>L?~{1*$!NaH0ADA1XrnYj8OmvZLWa79ZfYC=M9T zuflBuGrTdE;+>>%uh@y)^|A_)wXbce*o|k(^}^r64aN3-akR6f`3W+>*d6 zT1qGDBxtYFKyX2r()uydV?~7o+>H_;>0+B^wR$0z7m~U8wSW?#bonWgEMk7^jGG(v zq-iO>{`M23SMOJ;Lv%@e^e`=MaYX^}X3DXll8a8umIwi0Rq*It9XK5FbH7xrX{7Nu zNdm)jOFnt5Ph;j$yDFQyyPDc8aO_jxT}`eBX^xDyP(mN5h(!RoLL2>&yhHy=w|#_o zj^$etL#a=1u6dX+&~GbeAvrs={TQ%|V>)RBS%B=1JRgyVq}mjGzU~~i=b*2)N9h1G#{A(C9XtTrZflr|B3|KWK zpvbGyEV=w1W+`U@Y{mmMFvnQu@bLL_m9sH5cy?VijW+<^Cc0actFD^g2JFC%X?6Qw z-khg|Kd+sb@zl8bmT0d$meaFSTt~yzkWC9VJFhZJpyJJ&>)rT+4u&cJ@n$-|Zk>f0 z;e(v>j~Pu2Chb9{$QfSyiD+RB|Aey4WnBO!<&ySrREMaCT>AB+$&>T;pT`ry4v-{) zA6jE@{H$1~UI$*%bc**n_r)o)8h-KM9S7#HS3e+4@;}f6V1@tb7x95{=7X->HtrW* z#rg-N%ni)Lte@n}B)A(~*a2^GB-$j5k{D9VoJ9Z{?g5x9T8o>E!`i)Jc0tjEMqKkm zeP9w=eZ9;;@Wh_9Slq=1bz~J1NCB9cShZEOtL}06R=T>W_-99tYI;cv%l_=2td39BV-40m~$02?@57}#Kle_Y?Py>jl??=hW0=YovZuS^*9kLHltq!<`1cN-LKC z&zkH>qdFXZw-=a_l`FS_m>-~^Wixj(38z2fl-#k(-jI#o*Z9*Nl-zRfA*b*2bc8UV z@cv|mQi)(FVbN2x%kKDkBsuA+M2pvL;2K^$#hU;qz+PX_;?7mG6vxvwI92z)P0|hi zxXr<>(x4l0)#xQootxcm<$VD3$PMp$Wd~v<9%_WUea@{tw0_~85U(leb#3A&l+G(M z>i}joiB%*1lv^ukcRgdS{1|6R zOcGUPegGYlzGKzew@)`V`f;@Vcl!q&?69k+Abn8K0`pAtFAqJ~w*)=OeDs)V#P}|M zq#U=uBCQ}2^Yv?F9G#{`+3s^`frCuDrymHl3{Z8n9n{$LHz9L&Z#3^b);8}Vh_TGJ z0t%JF5k1)yaaM^u^+7Fcd3maxu&RM<7`T^fFRXu-3TkJ@*I7FAb3wetZSS03%0wZ} z#RluoTYNTO5Wfv7kKT^g0j#HY)d8LUC2$rr#k{*jCxv|HUJXamzi7Xvl$yG`50pjR zCQk&bxC_P1^H@3bXrLXSCLsN3n04Wr<|>KT``z6ttK9MElBKS5->-N*|Ms(;Ryz?g z%$ZNS@VOX&+jCeE1RH;{d5Nj#tNfT=xFp5D{1ZOEhLTe7oeu{cApb#t&-y)vbQ(Gn z@Bj{zh*Wm)(1+)WRgqiI$U9d?ADx$Kz>xz6vk&E!Fdbfg`nU@7TEu~1;Fq1)`9!M? zBGlfS(zSk-4$W*WhwKBFoV9U;J+ zG)B-#yPi6@0u3a@FTH2+*-OKt;#bKPK&2aX-W1&i$Ws`C{H+79L-gqY*#(%pl=aHw zANoKIe=wSfnLELHJ3zMyAV5yD?;CbD5=mf%@Q5ik1{dC8V`5HDSQCvN4l#>pMWVN; z6x^Ql07tWmH5Ih|Z-pZT@Bdp!tajF#e1`@fp90v?w;!JBL}%k<-HzRkkI1#@N-z%^ zoJnf3SytFDrKs5Su*iUrdOtA>H|hH{Lx;+nZ6Op@-EU!1+Nkg-EB%DmaPl%Y`gX~X z={jFN>!dZwN6)a=YwSn10scvJzFTS&v*zpe2d@ds>mxv(Znbx(twmG45LO-%wXdD= zRPiwUgYJuK0h+WOKX&+av?Hq`xoo^|JGDhRRHE~E8e(|O*1G&9NdD<}GW+AC-EncD zE;6b9xH>ADd<{jP14JzzBy_49L4(VM^AnM|+ZH)V1JQj{|m{{J= zUuI{gbRvp&9>}CkI@qCD52@+Sqgc0N;XBm<{SUWU(=;Q?49Cf-*6`Ci z1otrdmVF^gC$o?a=?HZmBAN5g;lHEj;%+&Si@3uE;^-4ZstXJ>uwm2^>; zRr1-i*YF9d+#rwQA~(~z#!}+r=}x>x8h~IM89~SCb$Q@4*HdW%5NtWQGXU33F=g#4 z7PsSDmndPSe;%)x5K2INrQ1+4YHK|E&?FE5ayClA%`Ww5pdvu(PgG%Snw_MF4NyY# zG$GO0Q&Ue<4#bQ8NR_@spn$|SMxWuKP)sH%AR687BQ^(CeU4?rA#Fz=!_g`8 z%Cc4FkDIy|DU|?+O&Vas4($C%-Fx9sM0(IFqVD!8=MJuuK$_zv^lqXwVPhfV6h4&F z+Cr7vGBt)WylV`?43{k(y`c$jXj*zmu@D|*Yx1@09LeX#8EDBmC(;g(AV^ORSokG% z=!c?GDlA1Wa#$c(C<%CI%Fd0Xj?0<6zUpylHuhZD4}N&ib2zAL#mKReemj>lgp-o0 z7_%F!Be#P@LQ_&REc{l-7qPm#GrXv1VN>ew%*jY%K~(HEha3S@O^b<=%LeZLsyuA_ zi$#C#QIFGGqy#$z1>oBAWkd_oEnS9u1=+oAzqlg?N|J>|)Cm}^z|qb?=}*Nkby_GO zY=MD}hu`Ejai4Ev=+Tb)3cEQd%=frj7}|!lWbRJ_m0|_-swE%D53u~Xj#y^?&&K>W zBGUsLP6LCT%+ha=Lhg{?{Ive91An%@f2u8x71caDpHH!@~F6VkOzwQDd zQh7*CM$$LdfWT+4d_Wi$hurpC4}K7mfGlggyyO!(h$OGwFpJVleiHv1U>ItU^qDq~ zgU`E@EzW!MX@H#$6Deeop4iVff-b$8z=AFJZy+2;U#Pj++p93Jgb>b3+m)9AqrrIX zWrqN69WHpbo9iYR<34-PwXs{jgKE~bU#;t{{CNqQlZxFEmwbA@yz z;;oMN58$@KEMTOeM-O;5|2D~v7Lf5FxsvV23N|z<>6<tx0r z(eKysPVg}L-crO;kR#UZXGpW-WiO?HJ-R>S`tA!3657&ROI*4 zN;-8y(#&Z(DjDJTXBjZ)KKG(+I!10f`LN>NM@XM6a~J{;#wo z>pcffpU#M|aLUk+{9MD?6ML!pw0U;imfL!k%n|Q@ed(WT9ehlj?6};0J5$HrySIHy zc+b6^XfnLu?7%1Q8!wA$Gyijq?_xJgE+ktW%(^K_Pr23XU050KsmgpezIto+Nw$xd zA+2fT%5%1Es>|1g`9Pl*%gn5m7W5eOpN{53%=4V~2N7q#JrJ|QCU+P^*=U++YODLX#hh|^Q(md#QC-HX9f3J8wFW!9p#nIhC`-h7EOE>6n8tZ0 z;~gQB=aw8QT~O!0ZdY+rqe~w9Py18r$7LQ3{hv>~WDNQoV)9sn2LZkO!qJ*}YL4Z{ zF0T7>>TtD5?7fi9XHR-ME{piDu*qU;^XE(Vd zJSQ$CuAM-}bVKzdj}0$b&OUr|&5?~Yo8QaK9rivIadq#*J|n$fSC6TQh5W|3ZA%uI z^{-x}ck!gb^0B?HDdi^%6<)vbDsio8Tb3WH>-zD;A}8ZO>}>w2qjmf>Z*N_=d3&*b zv_sa5J9L{L$4@%=u3VZt;NxX`{QGbFMXwar|F>`l#Y=5yXz7#sVoj?mwS%2c_IQO^ z72{==X<7A4?NnX6ubexWx-ilxrRqwR{A1S^@x>B*g-z=k-@JIW?dX?xHPGx`nXU2b zxUST?&`K=|l~^~l79%P}1c^)Cwb)w4LUpuM(WV-AR3Jyix>OM>Dhg^`s@N({ zU63lm5f=~<5mBNb4Eq*gvXW#nbI$LM&-cBq_aBptVRGi2d;Q$o@6#`RE6=#m-aLKt z9NF-%u2~oQl+4~bv*V)BzYa`4{`<^@qh*UUfFW+;H^6ad>m<9J1~CHkuA3eCmlYsb!fqz$%UIr8oDbT_rCsRgEnB!<0Gs8 zx^<{|PraM!kq{PKoHKY@eCMC4zVqBTNEUTx&Fd!{61tZrwM^SNY1-*kPq=;qcSZP# zGp4Ls_-NzeG|%3ZQy1djTjpQr%+IKPYP|U0qU&wm3m<;&yX^eQ50_htyPu0XCR`s+ zF3Iorr)9m$XH>sUf*v+Y2B`yT!P#Ep>(RUM$^0E+Y#q7 zjw{FAJ#E`Ju*@@6^B`?hy4Z7Y#0dSmkdlB+**D^v?Ls-$cDQ zdf-*cg!S5PuY)powVx$@KFce9We*U8Mt9sgvn7-aiU0mp+MENgI<*YD9Qydz+ygxZ z9|{LJRM#^nE!Re>`a7r(+%mYR;VR<3D`dt!_KFoIiUjZp@~{4XbxAZ|LOP)6;j| zqsiZn9hul|+Jf)roT>h0&fL?6e;$sX_>FJ$?$FVj0*xD|$vhfvyd1J}uUq7~kJ|H^ zFTXA75r11Zb#v?3@X+pmdVO_3<<@k*=Mo56zMaw%+R_^m7JqVKY;x9a)L&&GZ;%!jk2 z7k_cOa^jdgW-}s|{*!9tUhdv(OJM=+imqE=b zEr(X#2%HzTnfU1+{D90g1^$uVsj@%yS;`ZY9|yK}8kwO@kS{*{(cT%e60Qd^Uc=nB ztr)xK&4GwHc^kJLxiW87KjU4mz6*Z6((ji6LA#1qH?{28H-Fr$&=p_r{I220xV2A; zUg$=A8G-KH6#F$T~{8!b-Yu4U_Pd-zA)h}+-=kagO1bv`pKjCekH&61tG~)L) zgSrhmtDfRkov^QV_+S1j#>|RKbI)Dfb6oDQ&-T%$8#izAaC<%2cW;mHmeu^$=h2)R zmzTPcwA-@Xr9S5dum7$~X4=Us?k;B%ZN`foCvN;a_{lfDehpEtY>U4AiR+S_he-!I zAIMnv!?oJdoE3EsyDmNRLCx8{no~E-}&JuABsI2kNneTO}sY#r_q@&ss?r0 zwPML%FZOlb+3j{w&cUmlXIyEydvC=_b^72DW%|GB`Ag?l?a(KEv90^yGI=g%7?}0T zv7}s&Ig5u6_`YY;wUo!7gsN&HHJta@`TqNh&3&g$+^hTN<6I%QewhC7;;dzk(SHvf z7WaC|+AS_)?qBj#j&?cXxk54b;k}gJtuyX+pLwWvpVc!qPV((PhNRE>aQZLy%$SzH zw=BGSY=B>V;IBW1w&Z%<`Ak3j@5!~>$Ijb-S~lVGq7Aod)<=(+JmBugOZyz>P7Ru0 zzQwEO^(9+lXI6bLC9eJ6>sapYRXuZe&;RLo*!*uVJbyK)uX%Sv=b@)kkMuz4_l#rz z{o>0+&i6uxmLGLWvkEk zc3FS?ZP5~#vk{<gE?!p}aWeKv*Z|LJ6o8u{I_$0NsX*pz;*Pv4rZUiyG_ z?#ZKQK)kMg_6g1CS#L*GMC2Rp78misQ-bMVj1iNW`;h94i<&9JIm-?HVW;BTV4 zHguZVZ_M)LIsKK>wx@m_KJQr2^N2 zzMFsS_F%~meJ*@7TM;#5-=SM!X`_GXR_%6Whb_S8yDQ3T(~fjx(29XRxUBeyz7zf{V8|q!6w&7uWsD*AM*3G((b38jd-|a(VRU+O+hF6711vD zpPEiuy8S&qcU1U5*SJYn7M|?7pf##6CP}_>U%`{}e~w(Stbg#3TSK}(QWq?~)PGC% z^_P=tcideWv!HL!UppO8g@*3kHTcNQ&Jo+TZLhHH-4U?M*Y?$^qO^j6Cm+5_I6LE% z$MTprCF?E^`}Tb1oImrrCc900`oq5uzUnA9KD!x^ar12b#E(MjdKwQz{`qq2Lir-M zevM_{7wkxjR%Ryu6ViN```@mv!%~>RrR@e(SL6hkafNp<~y24yz8F)@AbQ z^B4UyVwUYX)N|uEfhlw64M_asuZtH)-SzviXW^vvwFBjmJ?oQG2fsUK_Fi=1>Ao=v zq0(A7+UNFy$8#>FXMX+kVc3H6!Scgiso^1)>+@!G*zh7Z@w-l9R952po6na0I;E}4 zx{kMPpSi~O3c8UtanbxguZ-3HRm8pdeO|AYE*)ODnSXw>bjPeP<>{9z*R2^5Gv%kQ z2@CFz+&m^Uw{OaYSKVUfd3BwAproef5^?XL+J}A{_0#|DQ?n`g-og)`t?XUfXY+(5 z!y`)u-J&d4vpp^i|U~ z)!oE3XLF_tuck-!>Tv(zpn08t&K?`P=B;g~du={UWmp;T>qo68+8*RbMx*0VR^O<%><)s%i*^!)iTcjeFH)^~gS)xVc@ zfhUuF){#4=Nm+KgU!A?YiN0L)=KPhB?MVTtch2 z7g!q|Xx%KUNrVKTVa*&vAh?Zl6X*+Pd1oi$Z1uLqWx zCN7#TH&br6+OD~jqk^Cw{3K)70d$lbE_`(!(?P<_3W#g=iWuBVgM>zHss;y0G~q0T zMy6I~%4*H8o+9-xg#-jLm!TfJ0OIr71SHYB+)cz5R^m~n=l$h z9eJik^cf{d1|Dfu7XRm%4xpsSi0LQP!99mMC4(m^r6Z(lOL%SKbWznFu8`8YjizLe zSi0SmCzWp3M;duFoI0XRm<~h4Te=0mq%talg#Nks0lX2Xi@b^k)^MB{bssa*vs%EE z;E~0sE;qTFD2L~zJjReoy|Dwz zyUbeU;tFVKE!w8nC~Ovh+@vZMRP(~6P%p93wW(sycB-1tnc(t4_ufW#zOqD*k!_H9 z0XcSWt>sf6T2-{8k&1R~-3m87ABo<)aV|RoyAPntm=BCmOFBMN+2$)C(v=@_R%){% z6YqQ+Y7hV5GBtj#5!Vx|Jh_%bF$df86p|sNLuwGZbH7nF zvV+~-fKd-JC}0qsU1F}^dV$3%W4bsVP?>LF^;@i?#UCJ6i0-O8u~cRs0)z@G-S zzmY%6;Hr__#*Kiz6)vo_$2K&YT_5s_97@8`fVGZzI$&)x|AeZE%MJ~ak&HS-KPRFJ zUX}<}C(TF-8y4aYLk*@qF2}^xAXmEdW>6#N+)aD*(gUbTc3=s4tLU30juCmeIAuUZ zqN4NhpQJCU^a`_UPA2L|9U0Ftq*)ty=?fZQFri13@FLIa_tbEK2#TW<$P_~<16Nbg zuqyE&>ibv2GuiHt2K4%};vFoaMbSed5vcE4o6R+k#}%_hM;}W3Np+P8!Kq}>wNH6! z*wZP4qY1WxXDeTdDrx$}>*_Q`@5AY)>F2D2;PI;vZBg{T-tMh-c@AMzTmaKmXHx=G zsx;E{Y7=^w&`}PF^Pg5quf+TivDo%kJ)*w~R#!2d>`{0mL!X0)=RCHQ(0u;1=%FHg z=T%ur#F;5%pQ7vc`f%}@%?e*Bo^8(~4`mJzQ0SS=aS&?X$fA{JxweD{SVhN8w1v=d zPl;TtEjDha(gd<)?IW3xR|E~Efk;N!6H!~jp1%;Jy%b{CG@m=3$8_?G8pv<>a~o=H zVem+5i55NNHu;O7UruFDht7j$En9?+Lbzq>=9)nQv^4i49}2n*I656u+kskAHx$UA zBIyq*=x*0%sNnG-?AI0bqscw zHbF}(i1wrfoij0RgSNrjF+EH!c<8@scspCvY7EMbMH-0juFieOMjppStbzHy2*!07 zGKv|jV||M;@gmBLNP-rZC&~In@+SE`F`;imi`FKyv2-8(735S7Bw&i64yE|3n)jE| z^_4}U2i#*HA57Bq6>>;2pG|b1NR}~>3T9Tu=(G>_2B#hasS0z!J&M$Y%owRq9nY%M zpo{_r_vR4~j`|@VVa;St`pz8Mt|VWWD+O)GAyA1NVN{;mqu5D=L^T9%v|9?0v`W;< zsPc-9#e1pqvY*xJzkx?z7P~;dcX&p~x?P5cHo*w(urmc3h{XIYYEeFt9@+MX5jJQy zv|YI$4RN=4D_L@G1QC3oM=7-O>270XjhIx!PS@k$5=^EM-2o!(*&9NZu^2)3;K(dO z{KVxB2j48eYjsFv#|vq-*5<`~JPgn=TSYgQ$xV=XQv(df&JyYPXC zl}sUOrO9q;o=?Ru7*h$e;TbQP#L86M5VD~FX^3#DDbp`QWSUu+Cex%9Jez7^6>wf#twp+5av>rc(V!s%k1 zx=diA_!T8GsQS}{w#`so9x?5brMqcWSM?|7pE8mz_*@DmYh zP$Ns5krDYWyL|EgqS*;%d}?X}bgdexzgx6vv-=5e}Ov_|a>S_G{m?y}Ky%Kf+@mgty?2$y0(=>=jk7*-~R zQ5X@uiwbfJ>y}%ONYABEqs*9wLud|$iPH#>JQg?xmHHGDH>&(BR$pdx3fNlNVGimT zYzK)Y3kI~<{wFGd!D|_lwegr%2!-A1CuomQA>6{Aq(Y;a?M`%xV*F8?L`!j{F$!-o zmebe3Xc{Sb1W_KT%7o1HD|R+j2rWQ!Ei6d6S#(<-l4c58*DXCz7O~8>u~0R*4H}BL z1JU32p-R#Qm3Z_+0?lH27CVq#2`PwLC@6Ung?iwO=?ID#w6eSnj#Hfe6(lD>zu{M` z-P_oAw4l>oz+~)2%O5063Zt#8-FcOlkrGks4y&~*rOR&}b^iYhe+@=^8cMO75-wu(Vwkh?iPuX^ zrmV3i(P__*L$3x496Oruo}yqyo%$PH2P}g+nQx({)v6oc-xw%`fy~lvd@O&CN&jE% zQSe#E9tGLJC;1*pP^X2U#Y-h*WFTF0lTCMS57*=$Og2I0h0dLXg{T+5{)d_Ih4_YD z*Qg!u*tDadma|#UVQf)OpqqTBZxHr>^_;bU1Q{Y|lR&V|o**uJ*`{!$x2w}MWYZVx z(7;&h8>hU>s`nxug6=r^r*DG-sveau+bbdIr|%Oq6FHT<>;VTZPq%Ex1a%tzoeD7U z633tYTpWtEDiOo7^H@uUTbomP*7@hG3_)qgq3t4%HKcryq@rOI_z5-$tocA(igNjS zvlg{0L3{~CcD7Fj$cHq#`w}EVdLXl^<3|k;YktN_0WUcN>zl`zE4Zl$GRZ!L%b;!@ z0(8;QRkN@eM==n(tJEsKj>OHXc4Z&fS-o!GoC2mB^0&`5Xv-O$KXBDBa#>7QZy-8V z{jvRwE~CauMw2yglDEVPZaN%MdJ?o=c#I^aP{BV%i-*`Q3+dkz9kR`>XA^AB6wHSV zR7iD46aIue(h`Zuw5PY}8R!e$?)tHJ1}<&V#+A}jP3&qxH!`8=nmS4oo?V4UqO>CQ zgr^T=`jkoQ;RBb5qc3w4sIu&U z-d=cS5GRE}OhMW&YUL#TI^!B-&;Uu)X`k3LnG2{8{sl^A9&1UQI_;0MV!K%jik{|x zaj$2hnpg#|B~wtE;s6~_3JsOAcBSNty}mL5gM;uOpAwz57L((QuBiGLaB+f^PPVo2 zNuZ%$u#&eJh5})6K*%pxi`58f8(C994h<-IC%cG)!QL}7I!z5GtJm05;iTWPE;5rs zD9q6y12DikS9~Bl5axcoV01VFT3@Pm9776xR&Lk6BhP@$&#uU=N@L(>?YstS`BqT}r8WJR0AiawK)5Y-BSRo_De z+C5db;Uom4$$@2Lb`O&x6>on-ZQ+E}jS<~(sp5+W`0E1L=mvb4`v^%uaSD*NBf*%X zN(qeF3@}KcnB?f_fs&3^;dV32Sp5gofFjk);s{A)pcF8UJ1jU7Xx{_X2n1G*t6)(> zL5+vP;3Bn~LH{XZ%;m&j=Dl&NW-@J)ZlUo~G+YWW^X|BnnL){?G}=&3mYexMs1%3F z@!@kV3MoU1Obx?WkY< zZ}fNW6L7h3?a5%OQRnsM$hUYeIMHhFhpWP|+uCt;NMpkDNe1{qhq&hCGI1t$8$gGc z*(y-|9`q%DKt?{h7 z(MDr;{X$ds=OjVsf+esTrERD~y7P;ytqX<>U+23raQ7M&mHBzBFxyg8*zlUi6b$G%^M=Pr1=q0WvC1qm1W(IbG z3L2Uz{b=Ty$CNx0c?O(sKauAiQgRBHYrqHXB=Y#NM$E+J&LfUAcWct8N@Zs{5y=>3 zztQn&&(pXnDi7mV@`v7dJFTcjT~PJ8^UR0iV;t@z5Z|i)L($?+@;aOH^Atq)VQ16U zJ6%>rWqeRwywIZS`(bLhk3@df30hwtv_h9q9HNFtNT}>6Do#-;J=-Fq<5woA8o8f? zaF^r8e2tLCo&2g@ql?|y&j|oRZJMUI5x04-q$#n+I&II}ZTmyil(Bl#GrSRVji|`Z z9j2?{C;;{-HnUrGA!6Map{@vg?w`Q*u0c+s;Ng>+SY>dy{fLzTh+z}4D&UL(oWQjR z14JVSPys-m_)myrv2)xmDy6~8J}Rvv*6=|G)bz@-z(KIt{WX$C~M@SKN#27 zH5_lkjiM@_-U9fd0nwF$_B$Al;qpf{r%0mGejA5@*8<^1L!~@GZ+2739bRDTifkN( z|Kn{OYy<5M)M(?Fh+PQ9603hTLP}zdg2y>YrP2>;%lh{*^Vq-ZaYT?@3 zWCmToV6m{B3=+hsw^LFAMLsf`2E?wP|X}jto7Iyd`C}w1=1c&H4B~B`$zY z0n`%mzpZYKtup0tE~n8))DdZf-J*^pz}7lZM-(SZd?ZE!LBo?Kv~_BvMlwMVQI=~D zlompdK)tsKeFdzIV6UDe1HPYX;*RY`^^<@K3%;BYBQi-M`LFVRuu|%Q% z$aACk0Y;5EnM`@p2^F2Z*5k_Av&iy+YG16FC#yJTV|207O# z>-daQ+nCo;hBR?anRqS1z%%XRep3x=w+0a(^bY73B~!^Cj`0YUG;nyeV?;;FbKJF2 zDw^0~sRcR?vR+d2FHvMJvF;Cn&3uLtC=J*p&gk7JI_Q0zAv#!K`ISVXRU9hhI#D73 zunU|}3K-Wnlw5_OrqTD*tEpFC#{=#`MjU#ZVBZWQcxhYSQl2!*bYT-?1_nRnt{0>CB1MiI6eN@E2kni@@zEU^;WKvHA>kB<8xt>;8zMSLQ!&mH(fB zcZve2^rC*Gq=eCX{;4(hc&UCs2`M5bnEE97kv)-BS=96+%yPI2u>*_U=o8)ZQIFU#pATOG4pwk0_#9rf`Y`qIa z$N>0d@H`8o;y?7uSeFR919r78aC^Hv#$}O|!r4baU_@sXLfnkIkbEMUinUOeGuYrt zvYt0!dMbX6Q>5a0>uBttBpK({Hm=GWIUh3@Q*e9RT-+=1L%3(wQobJ58m%PR#%U6~q#kLQfgNQgiIL za|$5wF?J4vH1z~2259$mSaMqz|3R5HOA+h%=?n>eX3j+KRBN(IxK0tfhKhbax_xxZDGGE_<+DGe&#?cBx~N(dW#<49o=vRQ zYNzS~fqp^cWgrxXi@c_Yl0N^_&J`es3IQkwfeAFp08=|0RUDxE-KZlGyN(KS41X?r z>Gt;Nl~`-4x`aD?ceDTyu-`~^OO#j``v$a}tK)CZk})`i%=Zl#oorV)hA(=-HAV0J z`C%E^!A*H-@{ZwM?dd&w(w+RI6*QU8$u4-Cb4R-RWdXNU?=2o1djII9_B_PczGcL0 zsOBMwSl&b(1{^>$h1eZ{o;rvF4T6w4YWuB(jgwJLOF) zN9E^_;V#tCU5)gOHCFmAgDi#;5o=y1%HgRS_Op+{3cXzwLO#uH4{@Y{q;-TN=nxcu zd2SLHOgmMLATMS5q*W;ZE{>y}mUeGZRKaiw?r444Qky&NaIcl6oycu2dF(xz-baw2 zkL~BYbo!0L8t&QO;vQ)Wy;;f}?dR$;L9NT^SGtN$ZWvpxN{aj0BofsWkKxlHZYMdK zSzm0Mjy%WI7IwL0b`mvM4;z4}t2^Etuc5QCv-Vm%7qHS2XUA7nt;7TAL@KNvCikW3 zsGK{R=g2(#7rlyo*8R3aol>K{$k8($lc6PEO9@wcpe;eZ{ekAk4+s=oZx&l>+`lW} z%&CS_{vQ1!RnV!|+si%H&@sXGskk+SOroVBbYP2)+M4m7XQX2)2*lN8MDM%yTb7j3 zY~^ZwZc0h2oNltPDjko(9 z8j^@fJSX_CLsBlSR!QL{UuN0?=1N1+R`+z#SK;LRs^c-ASIEe|Ti9ygpGDaGsF7RIt{e+Wd1_n@%gqp@ss`p-$#ZT9e`IAv70Ic~~QlQXux> z59(tC(YbohZfI4S>T)R<*LwMR&@bW8}b6HU#T4O5(b?n;N)+nUDM9c)q+-KD3=1wTE$-o z_^$#1c2)}E#0#iGY9$*4ouUK>pXZ(7MEV>rc@YKRu)*_f4nrR%%te{7+ziR@mYG%P zGaO0HEEh_J4JeZyTquM~Iyv0J9X#kK3~pc?b*Tmc*e9l-Oa@{P2l4J8_=dw(+AIS&$;4iJyCUesEbzN* z1$8V}C1%jHW)_D~;Sq*u-$9KF5Pm5;2A`~bTA9DjFJv>?(8yGRyK12b8d2I&X?_nJ_GCljj9~ddsdFJ}f?hG|LTC9bg!y1XBRR}O04}yz(B|;ASL|(Q3_e}ZzTs^W1LJrM zxFQi>=hg|zHVDgE4O*F~{7Hf)chKEh{8saXL8B?m@H~XcZqC45#4BLyLO2jR^kX{2 z_%B4Q3dE$RX6KFa8JyF`i{TIfd9y>@WDKOv&4OLe#wLg`wMia;yFKE?)aMLWid#5) zk>JNelyN(OJ|NGKm$aaTK^duI zAbVTh5@{#6(omkB&v3L028p|*xyWHl3(tv@j_4u3dUa*AXFQ~;@rmsI-`bh z#IJHy!JcNAkOGm@q8IpdD$=nQc+Z10(U|$a0DP8|hlvCjC~&Flqx#iCf)vJx9wpp- z^3RJp?G{+)cY-$g%v}(s6C|B`D(wMbn*IgQ(>n`F)W3tX|2zkxt+x@|XS71+4U7nn#YkZsuzk^dyDq7CubO9SFAxj5Kp(J{XxMQG zDZ2nOSMmb?JPMtV0R9UDGzElfB36$O+M=PsD+HkOaKkCif@r!L4C+&&C4vEWsezRo zK-braWk1Lhz)mIj$vNTVZ>)n-{gN+F5x^m@VmmtltaOk&%vt^-?m8F9te`0i&LbS+ zyuzK&}fNQnrF9A4AXdT-rQ63W2O=9SZeE zN%Qil=Zq znN?IsKxvHlelzaqWE5ye;|rz*(kDQSfcAD&Xl%71cQJV@3xV(dN(E1~SdMQ|Z6f1v zg%(Mt_$qnv1oRx1XkdQ!r)QY+ukcdmYpuKn&$#%vRRNq{p_UU}-gAcxcxs(d%kHbB zhnU(V9n&Pa0wwW{M)z%W3OE8!iKR|U9;o9_$$#RJjWy&FORO;B1^^Ld2tejk_>n+z z3Am>OFLl0&`?Ocs;nqc@44L0AfxhOul^gOP4WK+pbT2=sXxEMd^mZTT<{>0JV&CTh zKo47qYfTc%+E^7`gZ{N@W%^9%Puwn3Ih9|z#-^nEa4z?7-ZuxyUra4ii4BZg| zCl)9v4VmHsvzCG)`dMfT0XyPGl2I$0%Srh_+4s=CblZG&e4glj2RFuxhj97 z9j^VT*Itlx4v6UdO2^Z5`VuzD?f9Gv3Q22gG|T5Thk(I-Lj$eC=hFkgRpO(K_Aw}a zI2|%UJb`n|oO_`Q0m~|mwnk+Fu78E8WkHMp4i5T-eC^txfy0mTda7`S8J7ecN09J# z^!+dX1oHZz+UgvkvH`^_W>Dc7Ps+iPIY}&u<_ZnuYXQ(2QWAwAdCDII@{w$Z2@Yfy zn0-x|3dl-`te4m9#8xfo4pO8jW_oagQ}wQwy1##O$QL3#J2{C18FdaU8qhMy@CkyT z{*sQjRnThaR7m{1bPR3cNdlO24fvPb_X;-A1}2yvxxh&pdpd=5qn>og5gU}nW8T_; zkM~Akj>$noHn4!R)iVy(=GR7pMXwD-44~#P#CwoBP63#gJ8p*yVh2IXn7Y$IL6=%D zzgPvP&&wPJ9hY>WQW<&$af;Uv0Ad!yP*=8Y74^Rp=$dK zn+gcUU+Vs+o&)_g3ClBnnI#qi82lxYl4-7dP7{mgP(fn@6Wd{Q|1FObm489#B8ST= zfx}HOXca7y7DAfALnJN3In!lOocj#EB!&vw$~^1_noUZX}>+LB||EhI49aLB#N|)Da+~)gsun z_$Mk91giy|Sm88}9H3$VB7{Q>l)8Uzw~8Ktg8MilZ-0M|_wp15otOpW4RTntWdd2> zL*2AeEHIhgrHX|hzz0Vmpj7ML%$#}10fm9oTk(zuquj@#oem5}mA@@Fx;NQfAxLl@ z?Kn;Eu?7`nG`J!EKwjhFC|@|^ONK2&k>nA611{VB zmb}4g=R3)-0aQB}97DqulFsS#$e_b&kXQ@bpNn>sa?&PZ0FDOBejhx2x!|Tgg=(~~ zpVYGml6xXSs_K}>TgBOU+TTbj2nT*J$>E%@5Q|DBUBJ&U978w3y+)7f!E!dU^cNj# z-$afwwK5?3f;0pPv06aR;ecO-qXO2%f_ZUUv?$-&qv5Aa(C!rUuT49r4SXMLfysZ| zYR>M0PC*wHFlQ<V2~aXoWAENbnHDs2Nq19MAI zAZb5-hV;rKqI=DGSf4#X9j|2Tk@0_80UK*+jn)q2e%wm$6H97^U55HwL14?lPMCED z09QkXIv~~x$Bbe4UzDI@6Nx&Ws|^R1bwI-i9R3BGKuh0g?J9NrQSs3tnsH?LFUN7$ zZBzvtHG@v(!FDj5zRvN>*OV0Mawf&+6*OgixX(oeY45eTup*5VK95%KF~mQS>6 zU}K)d85I!0JL}@SO1xd4P&l1+s{Th9(Ep)=`x(&)=IB@NKi?FSCfe(P40?+ea0t!~ zLZIJK6LY8#zWkfdQztv)8ts+`XkVlSgPDFze02I13reo&LX1lh6u)_(qohkw3xWi@ z^RviK_!cPLcT9-76{L(9DJE3`IOlpnkX;Dd~V8lD!6;5bvX8TJznFM1Ybfkr; zEf=)doW|`V+lHV&=Sl{~N^O2C#H5wyC=kdVo7`}NKu$G1gty$J5OI&D1Ihk$LM_T8 zpg!$9(uLzT`1J1O|AePbRpHn~RWO3(-VMPJ@-12%cI-J0w%0vk9lF=JJ=hLCI4r18 zWr{`*Rr)PvE%?OS$)>M`lqMFod&^B2Li3}``;;~Xq+5{lm};e->Owk&)C6%Vi28jS zFaG}iUG__SsL^qa*>DwoQDlw4D+*9P^pI%4LpUjUuM9l+4XK+XX*X_&uI5224t`jp`l=uI={38QA(AP=FkmhY?sMHh7VSWq^+ z#x!SH%U@g7zd1C}|1yQy&;p-HvSJXDx(1fhC#(ZLp=4tD#lb)7+rcu1hKvo| z1vEFq=`}SU6&I95LD16f0Bif>SZg^=rl&}k5kjCdr!LUmeW5wZ1_P~~phHhm)=Krz z^8^+8fbx4yikjJ2NvA0%yt;yG*2aKR*;7utOO|L8Gx-8%*NTp-hNJ`SQN%A&QRO_0 zDs7B6^7W=W!6O5GUr3jGI-SAe>#DDnL>b*@zT%BK3I0<9PVzyO)MnOVAhh$GhqMht znhkhV^hHK{6H6D6fq!qa=`O%j%zI}~Rv9x%azelsw;+Y!$LX0vCpnWA`mKwt>fuBf zGh_WTb(W0!fxCKWPd)VQqRHSzZuzts{2YX;A+x75lBSdyi~3WbZooLC<+a>t zA{5!=%~CD1fx3SB^kW(;Lboizz3~TBh(JNdfi71cz-q{Qvl<|uMm88pCAD0Gw({q; z9j&i39mUQh8nM2D=}z=_x&;b2Gw+C#RbB58FL&1WJ3J4gh2de_EHLDE)WxoM-o>rk9QQfOzG zE=9sY=S~{MlVqAmEGcbbAXs&0QS41qq_iy%)?wN6n6Yjq9l_`V$E^(@icCOZE};5A zI$E-1G&87kYzCw#ZUCQqI@bzf8+@Mx$wQyi2JeA9M!tr4wfw!Z1IWPNF~!cpfxelk zjt>C>p9?-#Ra~q9H$Z)f09G&B)+nczUh2XmG>$m8jUEaM7X6^uKo?pP<%$YVDJH`( zkSLnW@WpI^FsPno{!0-(_5k-;rgu9spXgY}`TERI7(2&C*_7lox+3~PU;7eE8WUU+alo%9Ff&>gD;Xl*n|zL>o84Rz#!KYkOcS$yj4sz@pzXDg5C0W z+>rR-UfG$Rq9wWjG$Q{m1)KzSB&vdfSk)BcTTPjbxB+xy#RdK}kSye;4v)1yV(n4Q z%ye@FDz}=8oYmHW9%`BIa?J#P;nGugym@AUty#GRJO_}hAL}W&_=o+gPWo ziGyPeIt{G;6*CkByz3GeR_;_$PS9H=Z8zovrKEDJC)j4AQ+7z}mFjIe43ay_cy>Rt z!4i7hD_gMaXH2rg_`f|G;zzUa{qz_}#$ARktlEdkM-HvEnME^6&B^JILJ2m;daruc zUI00HwNZ4jIt%E|Q(9ouDuhf5a#@v!@?Qf@dD{2?{ezV3{^IcY3oTmlfq4RSYJJa> z_sc}MFyihp41zcup5nOS3dl`JDIcSb*Sf;lU|7Z&N9Z(o9+VD0s`JMyR?#pC#&?1d z=-0qTVFHQ4*OBxECXlr00w$o5HApT<1V2Ja+>Gu;ufhAGb3r}T_H#U%=1T6cGVm!$ z5%7c?vNB>a65_ZfEdfo@h|+Q()jc9W>vQ0o zV8WCWGYA7LT`q3QpNrNztx7*~H*y zIf`~2HQ)wttr=pWyI|D~xU){t46Aek+Zh42{{yxwT%8s#=*;%!Oa*A&1T)(RzAr2q zVC{ERz*Fc=c)ifZf@g3qNcNU$)W+IFz^GC}rWhDioC}z_w6Sa}wRn*y425iZI=kGM z0gf7|axD#qtuV0Eog{}FwJLph@ZdKP9Ss3Vx6S5G1q3PU;Gb2<2t*ecQTfcwX6*r! zDjks9{fyfLrwxXj4lJM$lYGFDHZ^lC+ibIe$R>jKfAQr5Mo?y#;INizx#UOx#S1Ds zEhfOEO{xdX=rS;U#ly6>+CBo5ZW8Ss09b0F;xS1Fo5*i#LS41<$eu7JYAY{{qKzyK zh1~CZ+%h6SQ*kV4#S9oR^+u)FlH@>?YKJnEp5zW=3b}zUV2Dj9Aw0<@z&ES4G4`kv zUe2=wH<|u}%VRREo}v#p3kK_PJ{bP&mNN-4x-d#ZyP`aH=Du-K8z))lRR%)Ta!wlW z;`|*ekZhu)tL3VAAgMSsF^tr^Qn)Km{jlT;`&;z@H)^R1NY6T14L&{+au5S*@WcxG zPD}ToLbEK_=_&bc{Q;8An^=1u==0q3m$@pifT%yvqS{<8mO+ZT-IETo&A!>JSRPQP zL1q`yl`!a~N*@9gSuq{esPsi!kQ9J(6p;{s@&b3N5-+6!v`vO5$18~tk8V7`xejF# z5t7t}o!TT<(v$ds7f$>j#N%{kpFnD~fw?cIEv(%vdjyyx+wCbyXEv+=q+1<_B&}F4 zxQ}x9!;v(}#=QSE>=f+uKe5YGa*8o2N+4?yJCwoH8(hIoE5L)aFP6F=mq5lJcpu*2 z>;?pRY7P*9K%8kb4zz)x(%}k8*p<<|LiD3o(fwtTOiI3iUcjqUlS;Y-aAgvi4UL-h zi)botaOS9j4_+~y7O3x${T8FigSF~ z)IGr1%3vrhsbXsFwG7Q8dCUg095gzub@CLWE-c1Fk)K&B2cnNdiy^qz%)*2zF`-U= z`Y3JHil<0Vd-og0%RrwgwD&BL-+WOa{06Q*k5}Yy``YZU@CpzOt?GB7u=W(u;u+(( z0i_!V3_MV^^EDEPC<^j3TnM%ITfQ62>X}rS66}n+(Ksr|)pN~yR8GLPUhJGKnf{ic zHLOV)?QCV3%fhWQgB{^0jVXd#KUfcdLj^M4P)WzB`|@?~82T;}uvO18D@iNz5?`x+ zp#l>eSd7)Hy|^R@*a3ej6pofWHNe8`2D2n{6goMkm;tzDAueU~sv6Z@D@s;0atggn($v@~_22F3Tm*2|9wX6jM!h{6UQ-DgT*v1bzsRtdh z%^D@9ld+O6^`P1W8Ith9M;dY7s)jsNRD&P3Q^Hc5IWFY@OrEX&4N`f%-^W(& zIF!;t8Vq(YL?IjUHmlR11_RJ5pRffGg*Xj_(y&BG5?{ALlmQs8L00ZaC!<%}50y4p zQ5u>CoHToE`*}tO-Vg6~1m0*~9HVmu zmH3)>#$Q67GL$4pr*WxMe6Z@YTIRAC0*3vxLEE5qsmK2>n!=zX@1rT+xD7|+YX?UUw`ZU`n#W2l7}Jf$))wk^}) zBujW9g_aeeH1M{C(56heIt@*x!g6yZWa@J-vAQ4u=+9BlT9_8b8Z1DtR0C~@;Za^q z2lA7iJZVKjF--d<(DgGxwm2FsYkl{MwWL7Cna*{2aI{6)AEbjbf}({0*9h2{Ej*BS zMicY?72H8;NRVs^6pl{E=or(PyCj`}l+oDy?rl;5QVTJP6!h*g15kq8<_vJyD;VW$ z+R;^Q)e5&r7ca359t_`$11cdOO5KBO(KHPG1AyCh7u2E^_M7GUDyupT&!io-vAkAD zGRxOiK<$&{3PG4Q2Na)`Vi-(GS&OHbWQ0qu@PvT?U3{Qjj!OY4hjUQCttG02TZ zeApTPx5NHG97FaDrSXrWdelSovQwS>;=@O5`U@+>1d(*jx%(x29m#Ge|e^ zR!GW1sx)aMaW4Et2Hbh6J$i7y5s1^@SWzT;VThoH?#nZj1(h>?L zSLbR^S7$OSh%n_a;K9FISajfDG6+r+=oONWArV7JfN*V$aXJaZCGsQ;*|cp5LV6|G zjkdZ3SlD1-nc|fcN-Q8$LKb^)GT4Rb?U@Q6d#ySRCXriHhoJkcMGQU86R|EtNN*7S zA5GsL*hH26FQOtMbk)@=2oV*kvJe%aN`X;v?IMr(SVch?kri|+W?d`+O6MX7hzONu zfm$LWc3s3#u|_EEG)PwIA}eV@BWk)W1bwsb+?BU}Qog_eYid z7POJ}nls^^cA;RgWYJddF2CrWpdWy>i}Wzo?AWIvfSeI+c4BIGiGBp&avkhlkZR&e zi+#!8NCo;3!FOmwD(raO31h9*yX?P;b?CZ~Y!#jtG4BX?Y*B#ZWTPiFe5m z#3cXP0@CdMV)TFUrw> zet+1z(elGRo)0bv93?x#3s5an=pF3Ko1Z8&XGsTic_i7EV2b!pX9I~Q{yvW zH}s2i%djyD=w&*W$LD>smXsTQqW9;6Rhf6Dni}G-s)Cey7LSm<{5O_4{qJ!*PSz;h z^e61a-%gNDgoMmB{D9`==oY5oJ~d}dzH9Qa7a?cRv!o^!s zO##>ODBWOq$0<1hH)L_ocjOG1t$aki7|rbT8E*;Ll^N{TAj0#N|w@ADQAC8KFocVE`E>49ppqOZn=gYo#G;$&$>SP(#VnDdUchb|O*6ba zIB23?$N>^z+$UOvWWRD6^dr8;&1>P1die%P7LA04nPQhZ$sa5+1tP2EI}?wxPR#PB zj!mrA%YLz_uxC}xpiu$J1CyZ`UY0N27V24DB{Z5)pLZ^4*LWen2f>6^${xj%he?e@ zRsj^eG%GPZ(n00V319Wu#Zc|fLakXV_^riTUu&>Z9i&Kkz$l~@iZ!=m=~M|ZaIjzo znV;0y_=e#$x|&7iRdt;cN65$#WOwx_Vd7hmMyv7mrQ#v;5n(+|zUhM*EsWY{&WjcD z2NMu~`vUM^Ht|}%iDgDQls&i=Hf6$-r)r*QNscFf8LX1_B5>rtdji0I1hMl57qbm_ z(5O3-x06YVg3f&WCAzawFBOcA)c;DIv?JB`hKq*xbLR1@7c z2<}d&@+rUdu-WKk_s6=BybHi~MG%YG7Ai4ziiQ~MIcUa#iUi;vm_j-)I6LD;?~(Io zDXb6KEByY?twjn$^f2iMGI+T$(u$O}XT5rRe9|h7odZh%G7oIXEP@R&qaAiml2OR- zU{hMHB+T59_5E19;JQ}1*8|`;Sn4tb$W%08M&3Zqd1Uba8a}WEA>)1ui(r0 zKhK6dbb_TQMZxu(M>>@b4{|qqWoxCZmex4^aia-i&OHd)1n}*zMpi2zopC^0_#e`V z7LKha(I8O0Bd=a|utI`%G%W7?&sqR5>;S^2t4fTQq|QV=0pjx%&;e3bd#_^t4JIz0 z_Dci*2_8&>@t`1kb&ORglkDlL^$s?Jp7x8z!lDsUs*5$0HxO?i`5^@Q!Fq#HdENU} zG&l%mN>nL8I&>w4OXG`sbr(3KXswdpEN5J`s?0(HM?YzA1E1P*nsj)9orK){S#nV> zzE1(X(duGFN*lB@tY0!TTl2A6a!LJ^vY$Y_;FWS5Rp`Yu{rVvAoqXi{v3?lcGOTbg zXv!eM008@4QmGQNW9G3Z##hp-UY02(@4KX;xzQ=`5iFR3_kKenvh@;zovO?VdyL;7 zY`pk8D7>kBT&x&$$nv>poH-B*+DZwy?)QA;6SWKu*$1O2HVD#ol=aA2ijfy$GGDnb z0QE?gUY*IN(Wt}x?zG)6}gRgIJ z0dle2OBHK2jS^orSnaiZtyZsuGWa;5tHj8{24bc4iDXZ!2&*@nMhhBT2;Ey*LGjTN za`eUaBwj4_wb0_!#qXk85~N*7ZG9Wdzn0&^_hk%)R1FnPNm`=XupSDO`bc*UZYxjf z^8i0BXM2qer&I7?00n!~K!rqu(@rr4(i30Z1%B?u$K@Cg(z$draQ zf&FoadR5>xi)ggL{=rDTS~MQv!{+g1eBPgoXU2&f<4%Oiu+U>!XobsivG%QbS_3sR z_*;p1v&bOU-qADmv?NX~oCQY)*6~3FNx@Bs`H$+ty1O76T1iubF$3Gj}SEbqKYAkH1V*L8;uS*+fcN#@aB8W8M zlLUYJX3JU&5&ad}LlJ*uMPWI)3OK#rR)cstD!KElxL2K|SWs(ZAL*3~76KbHaTC1< zC3NKcZt>A52m30&CGBDhFO&1Hibp$yK)0EV8|&~&Zz%={1<-4wF*sMiyY{k!G5elI zqGt&8?@urxYX=#q%1;vLx3gQm%h?)bwdxU-fv;Dkl^EL~Httsfzmt}pOW$e8kQBv6Y|7&a77<<5V`-Ma97a&V z2BRSXK}BtdD;_cs83Y;EUJ}DRijd87<1+#$6NA!Mn@u>jRssC6UQ4<;mc}@1Kry$y zlEnIoh&GpTXt!tGK5)8mvS~As5(Fzz=fTR;<8c6Y(`sYD-W&DurlPqy2Jovv*T9yN$jV4;u6x6qL!M zYyFo~LEuK@8(|bQ)H40%d!;>l=4Ww^`8B;HhpO7eB=I6`ck2G-(Pvovn_SwQYAuxV z-O`mW%qXpNL;VdT=gWo5sa7YLFc6^y>}z^L4&_bQ23}b%sf0GL#?gX=OF51BM4yuN z(8C;5&17?&-SO5lq^g|8Q?1!jem{Nvq6!4TLu;|}j+fI-C5EQk?^4u%o+`}%p;y$z zr8-cyE(C_Psc4Qa3)ccjNH(t@j#!=r+GqSciD-EC9N38d+TcmmQ{1Q+bzG=^~=4<%T zC;9Q`PBJ-U0||J|woeRNY4^f6MGz@g{8fvvna!t{EHPyp$`Jx13%#27xF!139+0Ze zobP7i9PT_S`IL@ha!9*G8Q_IRubxdmqu)=Ac6%R8gwOgPOuSrLs+7fl-z)k=JmJJ> z%&U)_(`bLqW^{P(Die=PjAohR3gXEZOA&MSX&1M@YRd}xk0d_37;EXZ#Q*GO;}FAN z9r>X~^tpdaTt$~d&Z~(*hSqSyeYB+=yjyom;SnU;NS1RB(eEoWF+ID)E5*WAy`#f> z=}O{jFqTzwTvdyGj?Ji)L%9jW3Bx2J9vA-|vq8?T3Su8Xx_p0cRJOhbBo-2D6HZka zzesy-7rdv=IcLPiW68AgLqJW-L3nF`FVlTeUi1z5un#pe+4H*JdrcDiRSu5~AOD&&xIRct)$#&^ICd|j&-eW|g&?Mbg|S$rG?1Hls% z(-0%?^&L`_^K;{af9cX#<{gRe;wXJF@>nKl)S+}J3d}_Trgj5g`DgB-$1u$x6MR`c zkyS{Fn36q=Sao)XbWr8v4w!%4YdwOZU|AzcFTbLC^%F7stKTVz)mxAZ>wDD3uC}CD zCL0bv9oh%_LfwSqowj{&^Gn0_wtZNr4wzKG=U4;MlcaYsQ|YJz61t6dIv)n}ZBTno z;csEDu5^kCf=^xXrXiByPRPGY@<9a9yMzF&MUeQ#-c}1nXCKs4Nc7o!^ck`nqUO|~ z-pJkTUkQ#cw3uD0C@!*D12N)kMzFypT>)6py4|%v2ox*tGXL^Q#oF`fB?lkpEZMAe z*W(4bl@I&iLF^F67v}Hw_&PIn7Pb=zJ)?!dcHl!utqG<;Qnp}Pfq9}<6C|q~+7k4N z?6xFn!&UFn|AJH}yujyQkVD2*_^^&6dueMt`IR?c!N&TESc_@-0)#;mz^>oM!IBms zDV|lfsSMGg4)1p)e;c+uTPH9iC3*0JTIm*Xubw$Tg3NQq0#06w`A@z?cbm1Ha%hk_ z@!IQ07qiS4v3SfB!MK=n0J8y?G|wF91(1xre9(P?o=Uv*;`- zdza0nl_L-ee(MaMJAU5qENv|)j}4fdOE%yvnHvFAbmaU@toiArT@ICEb=oE!%W{%~ z!e#GkP+!M*@HLiat^2SzlYCfSFDlu{JD*QBTmCB-gbu4via3^$x&3Rc)nndHaO;!# zZjL&cDS++&s~{v%!TxM`l}XAWdelq)3+MGFc6>Z&xlKaz1?Zmw$e89C{720zhOa7C z1^WP>M)Ihc2*}j#=WVIRX!!cq16#vhh@gZdNFoTOob>m+>J;~S`3Yy#_dA^q3);(8 z-+bD=AaHgLPeM#X^P4YB^$W4o*z5)~onA_um>2g>i2JKJa^@5V+f}UF$w5%CmVS$X zde|$*5+aHnOHEuf*&0XkSj2Wd5vmOd0rAR0K8%89Z9qh7F!c3I(D?opOayg4Wvefl zpcw#sJASwIR*ztqyAcsrp8&2!4S|>;ZQ_o0ige`z>>9n_Xe+nR!FG21U3U91{G*kB zYnXQ+HUkn7v=tk2h=$D%$q*kCI(r?|XFwgk&hgoo@$;L?#2pm~!s?x2``K2}@-P3D zSjobgOF#(o7h3%e!r2-JF@*0MnbUhd!~I9j(TDR0l&pcfsGtGwPB1?z=!5vz?$z&N zU9fwl8uT`$BhD6u@a6v!b@gy&n^_NP%@3HtAz+9LM}dzHBVr??mSZcYQj zq{o!|8fO_e!e;Ji1F2kD7FrJ%nv{JDU^UDR8+m*-EQ^%qfh7em6yRbImU(fn8xHFP z?1FpABWulK{N9@gdjr~lZYx~SDpyG;I)EVq^OA%p_v*b9D7!Ou6#;zkXcGW|ae+=n z5GM|f&dXS-lVCb+D;IfahF!v#d+&nYjXEU!OoQnK-*Lqxb{QrSpq`=dKtkcy*|lrU z`)FlVo7ngn340&3qfpt$eB6%m|Gi&Y0AdV~FCPT})(pBkD@&z1cnIcut4%m|%_<)4 zHi(Xs2}r%QK+x@gkAIUxGq45l@NO7PW3d5^F|Qz_E#x0>y`y*Ku(Bdt#PA<6@y-SU z&>^T{?D&txCM8~mhx5UR^Bpj+cejaXjtL5ss!v!zb=nQBwC`*uiEqIkC78Rtu^uiA zvJ@!Hv6uTDL&Uo)n965J`O4cMv7Ey#>s>{PDPpQn>(7PXi{)`Y1j^q7S@c+uDgiti zgtrHXRfenRe)AnH>(dlv&|U_H3eaeGdLrq`*`wwnO174OeUR#To;xAafo`>P4@Z8i)7-BbWr@q%o2zM3*FktrVoRc+KYJH3)VPTZUkTxs=MUVfc7=rJ<+55lqPmc)zu5}0H&@8>+ z7fmv~R#CAkX`&`yfm^LuUaRy-qS&YL68Ue29+1FHPnmRCe4e#zp+SNjY|NWpG@*`MHKmJtbnsr*&xpf!UT~6#AY5>{tc4# z-VV`4${o0puj*HkJgjwtI$RO6AL{_)Mz(gI4|?KPx;@Kd{)z11S&+@kPly@73Lfutxw&CKLu5SQCaH{l%COxO#`Q%eK>F2A@U*diCj zLW8%W5?-3zQZ8y$p_#Cm4d=3vqIH+aE@ORLcCKYYJS_^Qr~5Qyxa} zH#*U3fFqq<`ZK&XS*llNfj=uzWaPCVd7FuEqdMVsLHAGO>;Lgety*l1qz2ZT=_SXi z8&%xqv*Zzevbxb>9d@+XH{O8FWO>8(XI4S3@UO6opMES>ENb*1nV=UE1#q4@WpE4S zem33A{q>~6Gi@R9^k2+{^s+`U>g>zckK0hOOrl*0kBX_*YI<39wpyvrPSLe`(ik z`g&{KCE4iH=IVYkB*I^KFK$#w`B>*5;wp`{IDSuF#Qf~#gvRSfMnm;NU93|Y?MAF! zUKH@N4Ezr(7Fs+97?POkC9~Br6MP3AiuSJpDq`jNT~Hws^mi) zt)UG;5@)VC@T8n}f&Q$TuhF*x{;@zDxyOVkN`ik3R?HQz1rX>QaFUUjS_;qO2C6ti zVehM$)h+C0Yb^AFR6t)$#I6(s?vky;2HEGojAMe$P{l|3;gQ43#>L{^Y5bwJ5iAvB z#vwL})I0sI6~QjAwH6^>=3Hv|yUYs%&Qw7hpd4uW^LKQ?nUXM+4(M}BHMDcE55Inq53od6rsGQ!2=ehc}ii8nKJ`=*VF7fC4V zdoHm8Eo%mCvBmvB75Dm8d=sJA>WH=$Ke2_aW(=hT)A`ec#AIVD-`wH1K@d9j9GS+~ zD#0Y42^YH!0dee4@L3eo%kINXAbgO1USzY_3$)7(hRZkYPC&YNBYrjEp5A&oKb$aZ z;e+z6dY5LouzTZP3(gZocDw?%bc!{SY)PE!&xh+7Pyb>*Lc35&w(l_Zi>SFS(`P>6 zc=0P@Nc4gY%HY#Pw0!Sl^T-w1C;%4Ip&BZ(PJr~w=Mx1D4bZdssBA3-gAdf+eXGdJ zu!IVTRYlc=`Ice)-51J$oUWoz)A3zWSc?{da6fo1#UuT^#miWnzv!AWS8aqwAVE}+chwP+0t{FavU2Kz8pfo*| z5LI1DDfw_zDUHAoU@puGlE1Dfyb9yHE}_J-R_`XqRjxZN$b1TsA)33Wkq@(`K&p4J zIiUszs&N$jY?c$Q@{2qy8_38xHw7?t4SjFFVojr*A`|E!?Xtn*KgBL#ARu9po2y#Z zdL{10o`#HY$E^`@KShkIMd3jY3hmSj9V$q*d3=26Jh&{#I3}jSuizUzlb@hfVF*@U zD;r8cJhuwV$dYk`QKjnDnsMh8w2;ogng-_@lZr7N1zhYykU_Qk7V25c`;4SO2X?2& zG8|YcgbN?OG4TrhC@b-SyZBqn$O*DXqo2<#>A%dms)3*WLKB9s&=*|yFn_cspvx+1 z6c9eVQa!E7&}EoI5Ab0#!N|-ct1UkwaFS_jq*DKIx6?dq=e^oh6Wo$gwgKiRpl;*} zQmm%K{0n`3@Mhd5EcpbrKHdlEF$h(pAs^W%G^WNP9Ln??R%rDxFQO*Me)7~6RxElh z(2Z;b)jUkYAZ-LNo%mRl4`~AUvN0neQsGswUi_v)vw{uP{Q~RF4k&Q}3T!`lmBA6b zD#Q-(y^uNabhu@pYgG}HqVrmQL=!_vF(k(UlCe&(7Z961D`ECUs63xAoMdmcY&1eF ze6wr@R*+QHUKm*9)MoudcW8 zg%Z;7`mxu%29Nt2TIff&auDHn^nhL@+ScU^Q3$qu-XJkD`Ol4VIzQ4w#P^6AxCEG* znTcq-cQ=PgB*V_a_M}UDvbd3VDn^u{9R z$!iUU>*JN6&1u*yuWsOV5}1Nz`kRS_K=4oOfY3GAw@JV6i*f-H7EoQ0}0Z**Uu}76qe9j4ytUq2sipgYZlzvT6 zuOp8y<6BDl$o^Cwk(x-w3-Agf68Ikp1F)4gsHZ@=m|Cw~@z(k1ueJOY+AzZE7d8)& z;%|HQd4=U&cQ^7LR z4=U|mqdsgu*Wrps*fmza$BcYZ4E=Czg_Mi2tf2$o_5T02WGmec9@)d zRs7<-8uwefp@Q07c))8CkW7Cm2~}4j-mC&ts?1kFpF0t@zpds-i7Us|5(AWX8*cJ; zK5Tn)DJkZ!mCT#TV=@@}d9AVnNH`#>p3U^_dMy?1xJOi7dTPsrUq`^t(l#wzM+f}$ z)~+TQ89`a5*A57@? z$`@7mb&mmWvX+7|5g+})Sku^?hWUp=UHSyr^RPycPuLRo(lWr4sM{G4d+CNgQ|mn6U2MK9A4qo%7WaGibmA{&cE<%CGTBmSP@HK2USr)(f!MlaD6ND!Y8s{6x=EQVqF zt8r_njym!c}#OlD= zY;c1oo+jlriK>7pwM%jD6MAGZn}n@?Dc&yn+GR~e@^>=fPGD=G8zOJZ%Qs9X#Y&fO zTs;1o!XmrjQzGG~51;_0wGQJ2BdTwRhdp{RCibeZo&GE`jaIA|)c{bneRl3uT9M%C zEfdFkWT}|C`K>BLGbG^r_o_I-U*;=842wvs_}2I5F6CFfb=CBqlklz**6$K6@j~a{ z_%9b>9b4|hLrT!~WKyufdCka3JvO8E#d7R^6@!+^X4Qyk9APSFCAc3^e8CoWPfp@P zvJv-K#y?9~iJp+s?6HcmO7Kc;nd!2VWIZe=(0M zQB99DoEAGqNUC>4L{{&J`E5UqETx^AR7}?KTa~au=fuSw>Ht!w@?{3H+cgwdRyDsh zo$niDsNBCWB;NZn<+AH&5200g)hxjWxZmo<0q5r=>&`Si!tP-`^(j_e>2#(U5vKAp zPoW&P6ym$G-gv-A8?fF6nZG)q-J_=0_?d09!Zwr+tETKi%GQ&51eR5@_1IhQOT|DY z?N+-I_wL}!66KjnYg`aFRfyhRV6bHWjIlgLCYxFfh@j-Y@JFr~UWq_*%c#$-)xb_L zqTap8pN^H01_!L=&hrdayu)s-?q_i5TMBRwi!HzPGCy$F2_;%rg4^BAUs-m|1Q|oS zi{JXtY>fCo5F#+OES34IzIffM7|+u{x{KYvi*mKwBR0sZ@ld zXIQ)Y(0aQSk(`ECeTozxgz%}eKE&dODKp_ZxLpx8%JACFPH0zE`H^fOMR14=r9(vU z$hr&x8y0q;UXs$46N?O~qr+*v4cvZ2sdK9DWIIGB0yrU*Xir3Ip`{VK2$b2dBrgL2 z{^&2IvQ~h|-cn%v@LKUdm}2fLVh35v=R!p;QexXOqitCKGe&lpCIC064mw%k}x ziYP`h8|C)8I&IJ#tN%A#;QP5T$bZEyzdwPGpM)knN&5D@pkF`CSLO;p(Q($)@~(Q?PHQ^Y}|Ogn6xUsW>MhKV-qjCI zZ6B={ncun{P(pW91}r@k^oM+&T_&Qo=8U)(^(gbCB6`JZOykKl2Cx_r(g8^lLLjQf zI@uXfZU!C)mnJJkdFm8Cdev)e3ETfxDq;$^B`7!Yy*pW=4yb=5v#NB3Uo?ujN?Qsy zDNsa4#@2w7p#HG;yh7%^H~P9uTuWYZuItf{=CS5F&zgtB@{_U6+{(W5$K}C3-Sm1A z{LU(A_{>&f)8di3@a5Aq%Uq~!0bw?_m2V3~)5Fsu z=bijBf&AFUMjhn(QICvkU6cba4fzL|o@{p7=bTpQ9TrRPR>_abZa#Qr)VWj{kbSF} zc619psrETdPF?#1(zuk{AE#@)bC#j7;#8@4$YbIsMKL~;o)W9N`GBP3Vik36A7E=$ zs+@hV;~H7XZ(q*dVwTcKh9!1x8??C(VAN+|89!bDONqq2dw#5>8cJ=QtB4woT^h=Z*%XS^hcfVF1Ky^ zogv@NogJIx#Jd&57T38_r)j``Mg)hVt?Wr)?omQmn475wOcm*&Cg`#F?yo2<`h;Nu%qn`Qpo6 z;-+7fQsZa2<+_zsCnh?1FSE;D$l1*JA+xJw40Y^ylRQR(3j!%v1$DWbQtlWq`SU*M z60g%0a@sJRn#9*08OuD`pXfVcl)u(6i}}!Mj>#{7R>40KbZ1N{$=2VRlQZ$U^!=CL zw+8N?wl_p_w_A$kTKk`BUSFC%F?q!HZx7S;&Fopza27ubL+f07dTs4} zk9AB+3)Q-p{^<{ujwOl7qUw|O{v^0|=CXm`c6Z7LMz-9>Q8FU?iFi${PVl7OQINIz zIH+?0uYBC`=|?R8=3ccgzY9)AMn}MRW%Pbu)j~E&^3zwJxUowU^E!j_iIHW!!_VGy zV`5R1AFAMmHwiknS#xsWP95Fsk}rpxQB(kEunjn*uvFu(U5iAw5NIq?V1D6q%7==T zrf0{p!oQ>DX8@h;^|sw|4R& z-W%3D`u^mhIh8Ly*&O$>F>}m&KOG#_Ghe%bOxX4mtx!)alxRZ{O@hM}Xa9Yp%izqj z=smvvqgqq7oq~P#ePj1_1*wml3@b-9Sq2|So(qFIw^(Y{jc$H#NR>~{IVKNYay==q#x|$Y zQnFFGy?z+Ap=DF{C_3-YbEgR3-5t+v+miIoCFgzmi+g<3T7TGmTICzGLvJtP^%d^0 z5%(;!*0^1D%VVlXZ_XxblaR+UkRMFHOMg8!jaj!BJDo|CU!1?}4867Pj7p#FoOwo- z3}uCIOU~bpY*f|=`ba>=>W5SNe|p6gi4WZ6-?QC{N`rXl{S6BLXX~it6V1Nn+3qdr znc9|@)Z5mb3&@+E*PnUdKF;Qt7uAYi)=9BVDg5$hM(66EuMAyKXn3oTDChg5=?-Pm z_NklHEQ6*$y1ju;x@&si-_DPxD!UXi^1V<-pWUHzMb|2x*GeMq)6y?%Uv_+LK5~<} zXOnaql1hzKXd_;{82tDj9Tu^U{2{9Eugtk%o0EqxTiK&`lZUhspS5W8VisbihOf_(evpy%Pcb<61^d{3`VZ|Ssf&JjP1|9aP9xJ7dSt8;6rebEYrLjb`<~XMBril=R6X`po6ViRDu|K31K7 zps_^7!dWG%T9O|rZeug69KlaNPra3{YuX9p_PQ$I_mJxUNr9IJnX zU2m2N=O4e3-}q9i8@&f!W~S2eTC8f|8-_6E^bX72|Izt$4vK^hq+neRDt!CFAZz+r z&ii*GorV?+xj!3OXC`cHUbOwaO~>*tTI`XkR<-)tk|WpGGRPWNOw0Y_R`>H?ZxlAQ zHG1E8do=s1nUGsNX2Y!``IGFK$A+3e!E2B8BdOYVXYD_ z`MDDVEp5^4>k@6hA6J~P?CjO8rv+YKGh&(E?ls#9pqvKsZ#7hik93N1MzUEIefAMTRw-MZ=Z zwZA?eH0Iaed*>P7asKL36JlrZ8glvH&_aR}r;&Qksel9uhXW!S_^SBMcfdFhPR zXepOY*B;2IjRDBz96Juyu$;eh!2FzjT$z;f9YOJPm#YWCQ5KVVp$&{ z-&lSh)$>qSDwgPoc(=JrZc|g~sgM{N5$7s)LJ4hE9g5ZKIwR?x$H_Iv^xii{x4z*Z z8-xz;*>>X!LMgjiWR#ixOPdb}OkEq_FNTtz`}(%hr#bhwbAHD$ z%Z0;4iwj?Hjxho6J*nMCp5fflR?pWo^3>}%wZ@cu$$2Y!{DR$JYeRdBx4TEc5L?T5 z8vK+I7AMA-`LtDLV^D?!KU2>q&$EPYEIzrDJO0T@wZfAv>;DdZYZpc}H8w`Yra`Hq zJZm6*#4=}-4aH%CI-`czq)jFjqJfGF!`p$bl}y7tYsm#@8f>f$sN`eNKXw2t&Cs-ol0aqQAkp#T=L@T3%%>CXb@=OAQ4Q6i7xZ zS(v7&IKVVb0=eZej(XFS!?_1I$RDAG81nJayrFaFRA$<_J`i4JwACdJ{Hk7}^`QmadzU2N14LomEYXOXclwO6q* zKc5FzJ%-Yy!j*buikpk=LcGp4y7{1Js7v8F4-l{)h9m(~Y)Xl3Nu$x`$^<}u5^LVt z_^>`kx>Tf^1EAO0f<=^LFQvWCf1tgWoh5a|KpoKUc(Za@U}L((6nw?Z82>flxK=oB zHwUwK_vt)VJtjMNAwr*Wws?uI0>>Fh8(sH|`_t#?bXp*TZ}uyi$MgW;H0$=33S9uy z2TMoCeRRSpQ1TibLvIvNXBtI5P)bLMrtQ^4-luO4;EBP! zGqHsZR5z*Ssv_FtHZ$BN&}})8!fTUh$c@%@NT;!d)A-V`>ORR?Aq~;qcT4}`F7sgD zpn^=hlQbGqn)(*<|3POisna7oY3Ci)xwI)?%!;fc0q=cN&ns&sFvwJ%#xCH3#wyg1 zPUZvaTyKvhot)HgjW4OM+7Pj}lPlKV*G3)hA*D77MWvQYqOX z=r5lgO+Q)MS}JXDj{{J-u#pRVBY%__&e3NPOS5K41zh*;W>->Z7w&?sCqdVPro$Vi?w#hfjl9Sj1vZR)+ti;f8M7;Qq&_@nCDvs2EMzAw!i(}*WQb*;Uki_36rbbQ zR)Qhqe%BfkHprof^PEbT`JHvAWsIqkHXKazhRbG{Dyl0^ zcH3i$?Rkjbr*c5Mh4B-uae3LFEXp1 z*)Qrv*in`4=oD6^v{bd;Wga9O9-1a?m^Y*yBv5k#ZJvdtj8{ptS&BP&EiFB9;-`Dw z7WdI7?mD0rKojhrm|sm-=!UtAcG|PksbVaY9^}T_0z8X8-l+KoJeP6$^*j86-}5Ww zATX{6<@Y0+xAfasp=zB+!L_x0Lw3>us#-~WAD?;CAFMbmGH{nSe~YcGPa^Gruhr1R*Ebd_x{4h@UtTJ!YHX@#CEMn5Rx)B{ST&D>hpu z6-v|Gc+tuMvuFku#O*X(uq^WM%EGTU`P2!3@w7T@XjPt zZqu@81%HaO;RZ3COHf^DCOK#0gCKd!<6!P|vU|>NM_6nbSN0H%e-YkmGcpmTOYAB` zOdgHs_i(&*T1!x)Y~!;mh@8C?}2W6O5A*fbi1R~w*GVCZJIvD zW*!6FV(ldr1*BVXxIed!B_=%0M9>x{fX`+Q;=^&}K%O}?)~psdaGl#I|58L@lS%BfVpXwB!I*T37kDA^A4e*B&7 zn{cOp;m;rE-d~sSb}^L8_QbR*a}o{pLy}@93#OAfL z6QGyIiV%(YXT10E&K&E6wCMOvLyo(r{yC<$-4?qQ;&TC;tMJ$iYar>gEsg|0rRtb% z?y;$C*Z03AW+v5|n@G;;6S{fx4XE7>7IG1p_BP@+Lz=BhS+ldb?H38|WET0obQbJn z%WclB5ka`q%K7(X)w`pX@3z4%WqTLKqfUJv1qIy3QN6^*P$v&mP^Yza%XxmZBvR3u#DQk6rLA`TgspyQEQ8%bVuAcL2-4tMGMT^G zg_=I6HzJOGAAamd!OU{~C{CFlQuPz-(-tJc7zeIaI?QFUW&{>ibRrc#*SgHhogWj@ zS_yRC8lvbh-W29V#hue!A4BSeE0k^lLR@AG&<4aINv?3kjm6@_!`TArXPy+4fLh6a*k4R$rcD)M1dy{yQQ%#U+6}uS=1X$vJi-u9W$@w#L`Q) zSKoPhtO|h|cVXMrzH8mj$ptkC(^smYO;7 z>{5JC_n0pTqZw>p-k1}IU5#he5DIl+J0>j-xe+lLbT!}_#&jfJU81ed?sPuD#jlDX z58qo>ZjBN2y#%)G3~O8xZ&N^bX&_2wJ_)<6go20=q+oX?1RPpU;_2AkOjFrj zQdZA*zQJyBkq+zn`2%>I>Zb zdg}*~cjxF8i?P1>l^h*(H8lDSc=#tuV1RKL3O_U+)S0!|_-r))Ui_)I+?u24*+{fm zFD&$>^2h>m)=fioJWktk^zy~9WZc7Ayb7PkkLA-H6HY-k#ZVUfxrWmTGU4j^ol1O2 zJF2`3#*hkBn+@mG*P&Nj3WrEuMn8Es+|uRvenCRobvF#n;lDydjbWR_e;vv){rq;) zVbhCjJWfv7j6ogN1)g-xm}}1P-aoJZ$DpOxw=b!$7`5*!$f2CmwyUxBIzE zcP#Do`}&p}9_)R2{f9%#u4!Mt^qR73e*b9EqaDS4-ne`6_F=>A3(sVc=OWK}8$Z}{ zY1 zJw;Qv@cR6J^m;d1`CM(;?x8FGd)g*Q%WcBFT`){vjeEKRREfU~4Bl94P012qtqe&@ zs)1Q2?Y2t8h8<&-5s$hj#BI?b48@-g6BV=J5SD$Qrbrftl0iNcJT0R+$3RdQ=M>c4 zvkEKmpMkwtHdqc5t)}nVL!;3`5UTTh7@D()RP?y6tV;~Ruj}z1*V2o{%5aomXEWbn z>N%SAghT+0-)}L2@8U1Uo#!Z*;t3ZRBGOZ$X~VEh)KIAf(nyyaS|xO86zuglxz}PT z&_KFPgSK=-J`WBX`J&HeH9#P82M4Jq%)ge8#6Q^@x3pbJjyvwX&3oCDQ)8+-+j$d|BOVt~3*j>S9Y|+?i(N<6fDUgw)p0P}%=&?rcaL6q@DEhSQY^>c@WH%? z`MfB(B|A8yL(vQQan;;lK=vXXU|=24q9=K0HP;Z(>hi{5wi-ljT4b4ycn1BWb}O zj9!WIdO3jbiaT~dWEn@`M|%Ko;DGixMp$)5GOj(|<{b}7zePl7W}QS~s^-vERJ*8x z-HkpDKZs2&@=mK3_x%VT)9Zjarq@DzYr2tfrQSt{H=1YVzB|y_W8EC~y|^g1(VTR% z&vxJAiH{qFE2>QIn>SK4<19S)qg8l~uU=m5BCXzQKNs4(*PazVspIee!5mkjWT1y1 z{KayYcJh1QsKNv%?}Res%*rrGzuk92GFr$aaPLz5i@eklV8?owG@pn?0~V zMSl_w--!L1ET42h*eoT|?}Uxa^5U?QSsol#F=RFz5OSH7BOOR|GOohm^F%}A&IFwX z_MW`A*{Gg2YL8&&le< z$+r?GXCzLFJtu1tCtslhy7f+JaAPRV8h13s%3M)(5pf(If6OpD2auvFWk|OthYWth z$YSHhr~lEKbY(2L)1&W~28RIz92WFJJ*Xt;suf}N4r|H>vCQhAF0bEiC$oQA9`avX zt6GUa2L9N({cm>g-{ti$n6v1pC2B4V)`#~*>5ztHA^+tA3c5w$%>$u6=CZe+Fd|2N zAu(zB9Qa$e7mC)h&+?;Q!`G&`=#aRDa6T=l;$Mg=nVeWxNk&8(W*OVPD#DzVgddXDI(kWB_imgDI?McpN;DGD9 zaKOrOP$vE@@oQZDGO;bV4W3Mn$dxY%f?AEjK0@-9MuK;%lt%s)A$yg^RDBx3Z=_1rw-(n_pfYIl+M&8k-S^SNWGumYxRG4dv#8)E%`QMv;+c+ z_jf>Do7sfe4|F}tHs_%d0H*JEnhq572hfqMXil%SKH-MP;Z^f59S!F1BjU&ofcEwz zgoL7%uDD?9o`))K6OA8~?Jxm<|Cpgwt@Z_(Aw;)?oyNSoETgM*W?Wk!btGY{e_=EF zwJAbJDeF>J{t_sCvRF_{C*J#QNqz@=#XhLt2a5 z{n^A5D2cD<1QeL-;&Fl3z-;Ph^4Sfvv@v3O0yN!0SS@_C(*l7dF1ENSiYyPxMn%N) z#{CL;%rXnf0n-&rZ}-`Z41O1FDwBr^yjq-sN@SCtDbeN$tckQcS1fi19H!+CRuQvw za#^s-#vfVERh-K{PC(PE`#U5}v71I^q@nQ|+ij22#rL}5!|iDV+W72wZu_smU$CCA zHr%c#H+TM+!>Sd4@MGBL#g2)3I>|U`c&Zo2Lz+3by357#!LoZo&qonDT|RHLtM?1U zbUjV^`O2{CJPZ4Bc;!v$gzbxmgn0h-4dlNBhU=4!5Oz;auqFPCZ{-~@C8M;dK+pFkDqNIv`amu&WrD@paM-BxDT8O0It zsfR|md9QdV>AahC52=9@_P!{1-R<`+Bwv4^Un@|n$a*RsvY&S&MIBX;(HZ7x>1#a1 zZ*Fo8H@8S0;ctXZa$d(&eVb`kNiTMPZZ!l^oGrWAXN$fRMEUsLrdckDx}G7qV-Zj6 zCCx2~jFn14HrI09{F3bp_k!ovej|M+EI1Th^quwk+rpyGf^(WQ^YW2xZeBg>YvUqX zmsJguSp6*UGR;+CpZIr-#wjsAC>!Pf2KHxcUYEHWaNuCjA9c5NSFPecV6|28Hu=TF z{6dh4;hcxE*@Fu;hkrbu71V{Vgc|;&QsXAo1Tg~VIMkJHG?Lq^2p(rQFSv3*;6p9Y z4MaSFRmd(VU8U`urdfPm9OWM~%*}wgS-yl0fk{5%Arnjkh&*hZpo>qZs89T0`+DTR znfoY`c)_OMd0DD>hgR$tSeA;D7i8%f%K+KHA}8gCrjbyO>Mzaoxof;>)Ft`^9bpFz*!? zbXKm|U9{ZqdcvGtVilRcszJ1(F!-osT5dz0USEm~i6V0tEf)b|4yNS_AkDqBTrmD0 zZ*Tq&RsY71Ymv&WjVKi&siaBvCDSHJQYk`AyGo@^vdt+fm1HehCnYLr%95<7l0Aen zA%^VhFf+_{me1wBKi|jq^B25-aXHJJ^E$8PdR@!&x~>8&9j!*;CP>3X z1qdWHnm{@^W3p7qogtdgo&1XaRU*95F^=dC`JI9}BAo~!OG4Na*E>%+4(bW}3 zLyq`k<^C8HTFUju<|CM007ePGJOeOQI!5!ysQy?rl|ZQwf0R&82Tf!9rc&gI(lcC4VfXo6Vc9E_T@g+e4ghYkv9h`_a>^%ND1smO`Nd| zzKbd{G@5IHgDPl2HVM$jh=(X+(gm`N5kgP=HCvojJfTD%Vq#4+G6R*kkY95lKn$;A zi{+@IL<>M6m>X?IvPdoi$Wz)kOYz(h+-e*$A{8`>p7 zL){+Huki8x7QSZr%keKSs2BM$VMK2|+dwR{lN|1+so?Q1$V+@$7=5DOsF`rhEpL^y zhJA!^C;3)XFv&rSe$#VttBYh_E7CPd&BpD{Lw-Y_SV`5TR zdSer@y$lfxJyppQUC3pO5lY64_jx1rZPbBL+7$uB|An>VbsS<45T~`CS-dW@0y7yi zD>FOq;@_fk?)g`Xc)=Vj$Bg`0ix%-{qu7H)8U*_`<14OP7048@+wsv+(I}-2*SJo0 zw^7{%lonk3I@!{OUJ!7aal7kC^C+_&&zPh`-K|eXEd{v(zu|xn0$+}xS%OcV_M<{N z(@8>DMD^e>|40f1#Oor&o#V*Ce;2Vk+d00R+9Ecu-Fq}Z&_39%dYMyKAaG<$f;o7+ zfC%zK|F)Ap9Pd`u5e|piLQWEP!-yx^OqNWNk8sqJRBa~HCdpD9@g%9uBy*B1$HBh^ zSgJzs!T|%*eh^6z;FN_e^%kuQ^a}*`XIn6Ch*-iJ>vzSb=PL(^5sc&5j&cF@rKnP&@Z>0||ACd@ z5fVzpS;is*0%C&(nB(rGG8^nW380dJ?W2&^RZZ)nU|_IRM#e#v12hx(k&ECQZ0=D0 zk_nO%3IsEtgCl*)Tyhf#Zjedq^27~N(J43lchDodAdPS+NUz8@C2Rm*T1EQk}w*UXc@xw(1*WbkEuW%FzW_^0SDAwXb26A z1$>r}35qRvyFKAsKr7_{fgdv9B;=T5z!4OJUyPP905rh7{e^@ATkud4cFmVSY>Qwz z^iFvxL29Fch07NR1S5!nfaiV|h;m~d*l(uD2=0Tr8%D6xL#2#dcrz5N$c2+#K)_)S zihV9z1GADhsSHA*09ST_ACut4HXv_J*+H>jBoyREDi?Bb8<0@TO&~NNU(>q4)E|a~ zYN5UGp$S+V3Bv$&C%~%*wr2RyBs`8RWnP~2AYvc|8QcY>*F^t1g{x^i6pYDWJ%Q4i zZEyf<<|YsldcKzwLeJO0s;NL~$et-I1`6F_31()}0BnDbm@*XMKnZ22{6d2J@h^>s zz~Dfs3=)LI4j`BT5e@{#^b-)66xm?AhlW1{f*X*}fk+HU_#F!jrVTV66e3137A6O# zNpKZH{VNnCj;Rp9NfuTEN03=x2aY;fSOy$H#$OP+N$5doSpDFNe~FH;caX#c5O7j$ z1_ByU7disn_0*HhV^1=kBaLholK9Fda-Zd1MC?dc{ z5=q=s$flK&P&t)8Cr9LkxMwrzIQ2H2%n%7^LNjtdIHbm8fApraMT}H75>FeW{6N9Y zD2q(<#mbRZCC5!2xhQK8mQOeQa)$W^)q&16yGhzyZnTB`{pe-uFwBn{C5g% zOUV}?2jXeIVOBLHVJJZ>nX2H63V1L%)#EN>C@M!v%(y7EmLz;pi}n=(zFS7-i=xsn zjuPW}j3Yy(zK<X_2;pWM7%2>@6%7izy| zB0W+lDZx0T|4l=r!84=|8C+>0YE=0vpbqI_5=Z}DH7te^FbSX%NRmqL(i00t7t&+u z7^I5%1NIEG+!&*hA8a>qjd0~&_OYe+w=a<6DFyIb0r>$43ruA#UcmF49&Cki=8%#= zz;6rLl^mZP7v6Ls8+2a?N0NvvG&w?yikD=G%2i(USlK~_JFGFSA0KE$ct#Ld%u`?! z(tmnAdyqQ}(uBZin+XB3y`%)~TswxX5VCa$fjuFJCfl%)BKP_97qA@)OOlQ~M8|k{ z=~TjypN2{7{FhxIay&`fNr7E0h`F(nZly$gx>)8|W z%EbK|A%}>+@He*J^E9!dH`e$z+W!I!zK%uyqWIYMJ5da5CY|jw;ojIc-z^!Bazx~D zzp;4i4jS9Jp#Es``e#M{5R<$U4WyH&(0V4=0P1KQ;0tod2HK34i6I(kWOQwEP zmmvKG!fpT~h{f}ZC0cmz&c8DsRU{tOzEM?BhX&V4_rbfV;#_^Q%0-9ec=A;E7pose+H_t2DUCaXkpS756wM>;KL8+G%O%@l6^$w3hio)<8k6lvm+V7JRfcx!P9iWB{oYM2SiVc;%7FK%|mu)m;n$b3w40{Ki6 zx^%TdbcMu*lsYGy*d|`?`sTO}m$$6v%0O%(P2+u)FmZPLG z>1P}~=~s&)rQ~iju=3cr8S(M1h0>je{SPff!HAeiTnL?%^dZXR109KD7&!;VRb^T& z>WjG$*S~3bB7R`a@{!a5y685Yy9|tFJkU8|%Y(f*_Xnt%%<(A{IDn=+>Pch-j8VV` zn*gMlTt^y;q1b`JR8bPIfmT2x)POKRvcwbpt!Nm5PhquT$DSByWrq`>D@|FI#d7_v zkPLUqKEr<64sm~>kQiupe-r{H)2aKTopHd4dTt}Z!B?g#hU^&p5mh*fgOgh?AQ|xb zGz7^4O_=nWVpsEDAaGLSr4b#@g<)QhZK6920FX7bF7GrbUjmo{=qUJQ^#jNxtqpxs_BwbO zMdF2+i7^V8?P_RHe5M?Kz>SHb6loL10~%lNN( zb)>IqeIL2}-`}9+%<(S%2($s-TCQIOLnPcRVr%KA(xU#Rg$)SO^y6SVH--kobC!m7 zz#eS@#R_H*(L#==UjU<@`ktvPW*A364|NrH3wjU)#6Oh)ZUBrk2n-S{OKBbqb z3$C6YoTa4M%X%zM;c6%Qs`3}6Gcdafx&S>OtU}xH6OgJmt!rk~BRgs53$O-!uW)LtPR6%f?nS-6^ zpL&AO9tmXu?rqY;-;#mF0;qUEKn)`C5a{P%&N%t)DWNqQ(_zY?$^Z5(`r35<($2uRaK$TJzv}f)AyJ zKktTFCe(n-QFO8dQDrgjtMR3JFqyIt(LlaHDK^4hp(jIlC%SS%;Ug65Wd6tb+ zT%Zru0I(z_@XxNn38irqnPbWNHV5O-#2!Qxzmf)6+Qpz)*fOvlI0^o;EItRc7lOwZ zvB5tY!k4fi5J?B^MfWhU3=jzk42mE+bh4C7-pcOWSd=Da+FPReBt||=4Q~nze%KkzCoG6p(|FRfzUMV)! z@F@iFhEja$Q#j)&IjxkKI?I8xD@)0#vmmaJb9$tv)PE{S*!ES@Q{99>^I%Ysy(YJ& z#){HU`@6GBc7Zz=CFOc%-P8Mb@{1qyArXfMz78e{xIzu^c+8p9$`Q%I?kr?MN|Gq{ zJrcKtNAp;#fFRoBL|T3HVJ@aSb`I++$n7H z#4@;L1xTovGpZZF1wj>5y@_}@DG&MrJ%gQKA##PLeWnfNrmzu5LQsxmuwik+Yun)R z6EH{((EirJ*pKP#9)yECQ};54 zL9~D#Fbm+qw)m8eRDhV0Gx`IyLo)38c@%mEuw)Ywke>NA41e%OLuc7x&INo90JVW9 z-~D&0H#5B$^g3ukH*IJdPX9u>;m-31qHM%5*>GtWio*T~>q3ciX4G@29SB)L8xjC6 ze9eD1>;dpL#$gCO5`SnR)BhXRUZ&S>lw1ZK4-672V)a49aw$oGgCG1nQ!Q2kf;-bd zOM=2I(7kNZnF`Dr(pY+k1qhZ?4BHlzw1AdE+&^gng!DkdIzY|F1H`yd2ZDsqBm&sR zt7&F0>Oej7gZDLI91ho`k8i!3jFiT5DE;hurt1$BvOVSUIYl(Tt>h@#vKaRxS%f8@ zlZIa3KBD^HUhaprzt^D?4JaGWAuqu%i5#ekB@l>m$TMOAq;RJ`A&SH~qmv{3w8%hO zALAt((INzpB$<(BM^Av+4VNQeb_>~%IhvMgH#&wgFjI0}09S|bhSZxw{7OTz03rnA z`IYl<8-K_^*vgjx$Qiat8MGF)L8;G>`>pU41|0#vCoFkLY)DOE&xf_!#S(?V+Ku|R ze<7tZI6oNxUN#Bfn&39Pi6JcJshK#YcZelo4hR7GY)6=qIssgWy48Z)Hsca4(v;Ky z<_ay+145Xh4+%Vro=AfdlL@pw*f$VEQql+KA6STZ{|OE}B#~x|lF~3CK@b1{E@_QU z_5Re+2pqw+6&Q!g9m3+e9f=b77qX?c07HRwaDq<(Oc8IWfde=Q9&i$J{eP?FE9A5V zMp;J^kb=f@7X!1wIOzBgR>rS{M-qK-5?sK5@%7wG5|Cpx7e)@C>ba>10*QZHf$O#c zv6s-mz6mQFxD@dSnuHG#wR}h{0%>;m5@t0?q(W@oZU%N5+5tJky7-)_tc9aMxI=W9 z(L$zQFaaE?4IHX$oYe-8?_~PLv>v+u{XoZ}jkY&$x-G=S?$z}jhJhY&c9w88QnU`jOc0T%8q*C5-=c0R}PD z3kR?>E=5N{&UPpAr~cyko&&9DKg;z82Z68_B{F|;02fyO$va3J4a`qP=*8^}Ea1N( z$I(%k{xV1#_`6k~A(a+HJ_}eKSTPD9bzZ6+0ctx{=!L*HPii2^G>GjPrqs!7|thVd(ey z5*NZ7{sD#pVdwS(ys73nqdVcg0lp`12#*EFI=~kBqPVG!X=m6lutkJmJ~l!4|A6!p zvI9J79HChQcTVvZKsZkE7HkNg;w_MmV~V#xbo>-=fpGX7An>vYAn?#oAmq@>e6cLO z2z^Z8vXBoTk$}8kMUch~*M_5b0#An{0IsCN5u=05LEEXj!14&fg>VQj0pa4`=1!sg z@fRRmd?kqsa0_slDft852yzSizdefzZEJ)T0+STxHwxJdKzu>rDLf!>Ed&TWr5XtI zTl&vlHhiO(cq(q3gk&h}6uT)d&W4`7AciO%gv8+_FuWH)fZ;XLI8<0t@j!qXN`Sz% zav*Rm4R9gA3?ZWk?O$dnV1uXyArBmoyTJva3Iwd23{XtESmY^~6`~<>E@)$-2?Vya zctVUmm{JgNn(dTeL6Go4ia>11RFnXw5EUjKB3n>HQ98zXK_gi&?NqpE7=qIn#AbNJ zLklVh?c2pT*uelo5<0-HLvVI904|thd?U(+TWnz45l;a2Tp(hSzzeA3L*yjCNn0E< zT+bxU;Kalb348$TJ5!oZ0Q??Imjsh6fDd6aNnis2qk($Po|8kc()S{`+0QFwWD+T6 z{LnHX{UFJABMK-KkU!d(s14~xis4bJm{b7ir^ez z6_6-mO4B4f!|@g{DvtZX(lIRUhEQ5s3=sgLv6#=v0=slS+mnn#SK^XH8qX*dVZZ_K zEwEA746vcVwWl>%EH*#@%4n44mCl}I33ce9k!sjGv<&ujd{V*10-vC7hkjv6ya18{ z6Jlb3t%bIS)x%g8(c+1K$sxRq&&h=Z8!&hP4~M}6e-t~CfRf&LlR^njhsJ{YK@Kf5 zhN^aKS~!-^_l(1!fmW697}SNk4907t2&Om-`p%>t6m?glN;9bXND zz~IGWO$uH3p`Y9-uYhu(2mu{s#TN_(qt5-K1mq%OZ`(*RXb>AQ36rwm zm0*ha&F&>(9}SrKuTNpxzrQ9I{QGO<_P@WT?%W9d$?NeH3-El1qaj*>Ve)P0CDhJb zi98X@CWL@^iaIS}wn0Htq6_WC*(0nJkqAO*J$ZEq)N-C7?4yEw@s};P|KC7Dq1H(e zJwuhup(Zn6?-Uh~Eq;6ey%?Y%zZEUid`_?7kS)}Yp_Al@CkAG}ZVDEM^m~f?a6WVU zW}*`vpp7@88v+O`A{CLvaVic)vYF#lFhbR;?x0}G6~i4`r+(23*o;l*qpxJo-zv-) z)5C_>bDM?U{m3MP+E1Tk0yJXC^Az1GObepD#y!4UaU~o}R4aPFSZ;uq;NT>x;$im8ZQlAOmUXs|v}h%hXZ{u2#iWK9AS0wMPTu3HmPbGK*+v#We`vY$h*>geH$du%N%k&t zp;0|ao`!$7k)#<6Vq)e31ja3F0hNe~4iM7TTpdeaOC1|(d@usgP%`vP&ZJQ)G!YgJ zD48JnGsLoFH2@tkA)Cmdm-bKn4H`itEb)o~QUE!Pm^{w#)Qz5*6aQ|%7m?yMAJ z=FE^DOHO>3(}cRG&d;&B7^g%Xt|EgH|2Jh_y4aQ=-wRZ3US8$&B+XOa9}-M~x7d3`9E-WX-X z{}RHY!6pS8R-x(UfN=>`G}xTg=!lZdA?`Fn*>!;(ud-$0s&6c%wePXy=D-Jci_?Kc zd2T(B`WSPSwB7hgxN!^@?w84A;Rhx;`?&n2TXuW#e`fw=(;P}Oaf8~VMT^-AAxCzeC&lNiqtlmhqF5nK z$I6hmttK^Rb!%=+AFHoEF1}vm>-=eHKvay4-CUY{9=#w4SRR{;E~Ht zCu`FE4;fg>Zc{el|NO!&{1krOF5S{$z3Z|#^7uNrCUq-9^_}ZKbfu<73OZX2Zx7it z?``9cfUWXbc05k;s&hq(D-CZO`#HTk%e@zK^WlmY{$h`c`7+^dZb6l^kK1h8k>Kxi zPvys~70XBZd0joj1x{v(t@IVrZhiaK|GDu&-CUh*UQ?IlwN%oZ{Z6~V_M4Nt=iuMJ zfnE!2uz^z!@0QNdelz+)k6x$Fdwau*SyYA8=c`#xcqH6+)vFiFY?AwS%g@%P#|=>&6dyQieS#OM5gICR|Gu zeBlk}JLis`&{Guozs=}ab+2jQ%QS0WRp+gP0W$(Tf4?Jp^4H6t=J8vja#=-`rzdf{ zke*9cl!~ml3EHs(0t+JW{Km>1-Ms5=HFqUXZ6!Nc_Xh*U*HPwFXe)Pb zUO0HR{j??HAJ5)ZoAKnY1=AM#()@pQdto8hl@kZ`I-}=xVanW+xwlTu#>K;jt}o91 zlcl=6E^~2Xl{?fp*yHE#;282bX2pp$iiy3f_m|B7o_4%DHaFB_+ROXCA&({Z?*7IP zesd$$;x*9^ywl_rv?!^TXF2PHxDhRDj)`K_9(&QDeIxLf=(qBEycPS}qOJbGz8dP5xJQR}!nN>PV<7Oa9W6^VmpW`0F&DhhE{BoIxD7q(w2U zU*mM9=kmp}ERUHHNufC>EKZQsdd0<*D?8;)#~v?>{e5s=MoJ7@8zl^Whj0CWE>QZ| z5D{cKoW2n4OaJxoWC-pi(79z2Te9f8dCW7jXQKSXLykr_6fG(oeWG%6Jx5Rckn?uJ z4(=&k<8$Rke&PDTb9v7MNr!qKP7D@$t~ru^Z&n(TRlM6Tg0?lUJX-tf%dFy$8h)nf zih;*D)mn?CAH)i7VXL!#7rQYX76+JLJ+{1<{9l-IFI78=EbDJh+Z)q(u6I8BO}f$I zIYZ;;9psOzr0$Qym2a(R~&vpjIAu8p&@=%z2oR7 zR$cYE$j6(pz!d3EkzYR^7yS;r$lNPmZ=RE#G*np6MU|CqAdQ@%hSWpO*x3 zzRON4$Cb-%qbRF;a_0E?`rn;ztHv*FjG}c(C%ys1*0vnvc^Bng zPoI;hTYQNAF2(fS&~RMk-^;zRQVW06Ug)A@ z)bg2Qk+W6?HeYq#7DAbEbNZN)w zD!W5ta#m;T?KQD6oAt^qaf=lh_w!6PuarZJqdj@n_E+GkgO!4%Ajk+MGYe%2n?uB)TT*~Q%l2@grV9fX{U>IlL?~vaURvMTZVU(!j(2RPBoYgdS=f|Mb1DO|ZOw%x~_i=A={S=EhaHpJC-(w(Zti z*!WtF>^bn~$?D0@=EnQWP6W?gF?UPOr<~Qk_1i~SLUXH`B|}Tb>Jhm|C0977=4!p+ zHb}nZZ%C|*RdcU?ek%Ru9%sXq!3QfB<7L;?n`%D>I9JdnC8ZqnV#P$wu_dQdfBhBE zV)x%Fji0BZgp%L27RrAwH0IGAzvf5i(8=}PRrF=2Hd9T)9Rt{u18q$5sW z(0A(BuH~VY(h;3TPPWuFo@gzrQU)r|R z@5=Fkv@+aqtYO1=k9AId>KPT)1Oq0iI@vyB8sY0kFsAxL?3#*rDs!m<_0}kwcg3S|BuY?*Os_9ElR>6RX6BmN*VgO zYmS_(Td?I&cbF=*I81dRt9osOuQj%^w$(!{HJ~C=S-ABCeWl_8#t7@E5u@wM?vyCb zPJ8ia^;NNTr`n&VmR_+#VJGhVd~fnmr4lfAh zxHV92&de_=4}YKEP}v@FT|YAO&7xOFP9JJIb$Z&jKkb$OzgFVMENC3Kc7?>rl2bbs zKcD8jO-USHI{noHY`m*nFs||Z!_$b4@KYy&EFnL-d zGUk`~bXhU=(e_Kn+Km%*JKtpW=G5(e68cn~7-rY$$A{ z{8kh+9%Hi2aU8`4!BXFj5o`0Zlr$=K zZ}eRqkt1@=J`zt;%Vi6Zd$g(%H^(90bEOk!BV5;49#CrBc|hs5wpRIXy`vHOh}w=# z?_8R`+!&Wo%rX6=rYFcB&yL>vvEnUtquzoLqpg{E>wcLvE#oqb=NVT{bvkdG z=KHe4ezeww@m(r8vr{Ad6v*8!$ufJzzHLH;0-)cYZn&~In3QfMwgs3FrIq6ND!RP? zv#3(H*Vd`Bo4>09W?+oX*TEkRGxBu^8FRO3iHY{bS~RZeq*7!nL%6|bzA(tXC-QCi zbp58aZ;$WC7OaoCJ}Rf&z1^8o%SoWkDO2j0RcE1{G2>qL-}pB*yQMWoSl0kB#nXTsPmy;LPSm8CHL7p2+dmCcUfPfWe zjeobt=%cK(XL26jJv<~@!7!?zqen56d^j+s^D;*lc7Q!SLnhl6>^CyK^WCFYP^mzEviLYS4r_z0Wr*+~! ztBTh)e<51;q60;DkF%|IYQ?mKt5Q~a+ijD2qb2}c?N=Wsql-HpRuTm^0BET3;T{Vg zuk526wF(VhW6t}MKdetaTXD?@z!O6QbM3c0T%_MFF-XcupAwG98=JMA&t}S4f3I30 z`k+nam-ul{(CB|+R2fxaGT~m^4=iYJ$Q>ugUTsKDuE{V+7?`zSJ(EYNQk`w$DE&v{ zmPei)Qkup*AHP~?(|+_`sAR&joxZg?RH64Q@hG;|*s<63!uq6t>H=3Uj@~@yflL0u z^@=C;zH8ZXgTlB z&?ofKu+=+HNrcVDIk(jU4$92XMf5KA&X>KHldb*;GkhU`;OnxF%TmO61r zigj;n8BaFd=i@Z<$NYDa63xJjfGy`vh$hqXf3nYfk#6!$WUgJ*v~y9w4`r6Aw#n*n zFR7~i2Paw?TkPFR9@{OQ^GWqxSaRa|A>$w!Pt$03xRb{lQ$A+CokNd5l2{kKlIb={4oU7+CncWRh6#;W|Lj6kshC>*%|aWguE8yeD~utb~W2E<0tO^qdUKKbc}w>=K=|Hsfo*`770L&O<8()+%QTEpLq2 zG%RxOdzz!QWDR0j<7k%AS8dLq}<_?sWv8uE~S+wMsb=V#i=H8-J z(#|z|dhZ7421y?dA&*uFgBPBGQf;;$8yIJ+yzHE>2zMIZO6m_u+ z_GTzI$<^m-qD*C=h8tl2epm@4hTMf;v#7y|PE=F5#llagu@2jfRaibu`;e54iA&+vYzuC=pIcJTAf;s%B7 zIp&lNYl1KjwJ6I~>)Nz_?Aoo;^WIUEXKk!L`^cW~->U{v`*)W{^?r`?S|PDsHZN>~G|e_FSgh-f*?8&|P@pOz#QCi=xjLhCM&p zy;t52kwf@|$xrdUDj=u4dSZ?ioJ;&`YQ|*!td9tMJpHdFb$Wa_GdF0yNC4N3|HD*#M ziP}~3K`m(bAAZHK1Lus(qFn*mZN+KbbcAM$F-CjBJA9^zqLsNrmw87avaCAq~;Z$ zm@tfa?~J59bw;j^1m+F--*m|K&3`hvEBZ<7CH?^Ad3fByI~z=Ieavt`$-eJfCYCKa zjENFnU7!n!#hJaixMI5%7ILzePG+6DNE}E9?5PiZp1FV~wX*ij=IZc6y(tH4os4UX z7E;!4Z8<;pquOb)0eurwtAh8JA~bvHipQ)RR9*KTE1(`f+l@@m^(fu#7}-4h<%uRa zt(RGmA-Y&!TO)oU87=+r)M?Mh9CgD59eH1zt9*6qfBsf7>A_CFTdO&i(YPn#8-FA# zuDGke>g(FG)%xl5zOI4jPj^3!PcL?{ zO_nr1Sl;+@^}&0NzW<~q>jb=9d#bbTe*qW0%@VS1Y^LRAzst==XFg<)&0XcOa@@r- z*t&d$iBDpQQu;TgQ2#vvi^4vKbtDJmDXgLGryB=Zt5tWWqBQLy5jxu-NUjp3ypaEEo&wcP2Ob>|Ha6VLiHtuNW~d+2peOw^wsZB1t{QiX`*U(et)7{_?qs~(t$a3? z=knFfaErj#{L9xus27L6)CXqJJ#15^a#1yMbz_j-nxfq*i)`Yp_ie7RZn~A?D<`YD zWa)b!+be&Y?vI(S6#SZ-_|@Z@y-IxjCBp)}=0sJ8uXVy6Ff-GYl?1GP!P974b%&UR zZqLyyZWCMgj=Nlmy-S+vv^~N(&+afb{utA^d%=f)o1L?|)u#v-uvPX)0^km$jN3 z`);%+Iz?l}F~xrhGLn)k%!olzJewRYjc;_M`d|qgJ5Rl~ajL9|`)Kf{>$`tDfO2UT zIV?EJ26+O92Mxp9YHmCa4?vL+<0%)<9O@7zsZw@ZF*L}{bacdcowzlJ2- zHA~Vzl=tMwN{fAlrA&pqYZjY5-UQisUpHesQ1r=6-J?H!jqI|Ew?fL5Q#ITI?2BSg z>|VE<_Q~#SPl-hP$Y*ik+tt_Qey19~)H<~`iYI5GaM|eNou=y3o9^#g!kfvZU}38Q zU)OWvEDqZ@Wv3iEe@5DvgH^{=Q;d%vG7PY~@qD#>9=v9FugUmvTr$rDeEZPvp$f zI<^f}erKe?Lff9}7TeM(r9%Bt#|GV)!zPGMy2-lvXxUIqxmH?qqe}#n*tFf@>K9&K zxOGL{+DDWPW7emJV=r;MH8snrNs0-lH44@s>9d?nG~V1_%1itE?ZMD-Ya828y{ERr z+Yk7+g{faS?I66>(nw)n+GsV(ov>4jG@)GS8{e$+{&}o@J9+-ByO|WsTf5-aaVeqrUgOKQ(3FX)cb3T~KI-j|Rp0x2U->U-W&EHX z!c{8A4czbCnSV;y=9u}CUUT*e>HXnyq1yJ;6{}yZden2?Ll0ZrGZbxiM<*POD)s8} z9^dzZGw-IqXprCB%)vbpEJ%nL!z&w=JcYTGy)@K|5r#CWp58Ns;`_$t7g&?ibaz#VsTbhUrUFm zSr)G;+A*)fF>P?DukTL(C44bs+a8NHs_WjhD~~PzdAfsl(a+B48g0&z@yFM!+mBL&oX-{Pc8O{2@58ggOBWcV^ytR2YwX5* zW|R}3-s#P365{;-g$nTDi2YvU?aPOL4h>}XR4kLrXI$CY&H8bvBrjEYlUh(=LIfm@ z+kQ1-ZN=cg^1;3(d21I%@y^GQ)c-+z^vtXAHotOd>cOl?--G3WO*;(g`#0&v^$3cu z?#!1DDBkeIGXn7}WLx76p5hs*Pbq&Q3Ep4x;A%-+VaxGz4odn?UlL+hMyyO&i*EXu zwRGzzeUAt24B=$-Khq+(2fQqX1_O85Wk*boGUXr4T$}TC$Jtf5D3I$U`W~?B!RffV zaD&?p8FwuE6sMb9XfXSCZpKg`z zpRfC{W5LLbV#W)DnpZEgy?mT{k8noA-Xlt4V`VRDmWNDd`HJv|@8+NEcagpLYHQ!J z6@0b+4vF#DvpJOFrCz)IL-#!_JSfK=n33+f2ERDn+HKxwt!>}-g8aveZ6OL#$54)< zE6skdepsP9_`BP|yBXngx7=$wFOHOs{G&_R>GQV7mpRh3X8^3UFqL=?#sAp)RX6rIKK(5t9jd1BK7pt+G`&#w==iecy`bKReC$}U`p&2)hzwxO=TYz*`B}c zB+uhpMveAv=Kh~Mv^BZ1Z+~&0C-TmP@vV#UsK#YikVWo|GS~eLdGBaRXD{sF-eV>lWI;5R=@0%K1_ZWyjyd9 zf>6+kpFXr`e_y2SWMraooe#2_=DRdTt<F(xDhF}UV5{o*&D{k$9DkuwK}q;J?^m(HGdi+tL= z_wk$oL{73)d7qp0iN*cQURDP>;a#?+@y6;P_ek#zEcXLDz<nI`WkNR?MpQiSE{%+3F0^GEe-)&wCCRIpD|v;52KwB zOVADJ4v)FtpKcs8*R8pKvcu$>e;e7)|CP?B%^*1{sP8elR?+x6MsIhrOIQgpazswD z-#%llq0qqiX6GRb`I>WTv8`j#+gF{f(HA^FtyEIQkKDIDE7DPK!$W2Rsc-=~?z%7k zLEyoQUBsq$VLsaTW<008Z_6#&7DZv{Ts5QjS;{Y*pE=Z?Z^x66>cP`pCR9$YxQ0m0 zYg@B3WsddC-uzcve%F)JTl7ABiok3vZr)E#$*IU$|54uFTx%c_QUGgUrQh$)F05X< zzUS1PF9&-*A0bZ7R7N89Abmaah*lYT#Q%gh^Mm9cEV ztx9%w3<}yg+}dq{?#o!W8?3%yitK!P+B`MD~ z|DquGza}p!u3;Qug#SHv_#YZmOHL;u>XyjbIcWwsJ6i44r;25WyPv)#Ds#hVm1&Cx zcfa|ed>baBw94i8pJF@Z-Zn)!pH0#r`-p7MMS0;GxWRdDBjn__#EhN3XzqOP%sZd= zjr&Bj+bbb|LVsA$`#u1Kb+Jl9=vvs8b^&UA^-ELJQ1`Gr-%oZNAXPJhCsz=8Oi z-ltHPK(u@Q(V`WL@Gyic92Sj7^`&tauYQDm%M72nanmQe*Q#@R$4-SGycw63cRZaH z7QdRdr)sDpKFTZfy`W|}Q61Ya@^lRSv?9@s5#h3Jav8x+f??zN$8~E49YzUtkM;&yyR+IU z|5fZg$Nn+fc*e@DN4Dx+!sa`<+_?M=iVD&CDF<|Ohd*whlU^FtC9|n-q?^xQ4%~5} zxHiq>Ylklu*-48#P8EByC-oVMvdX>7jyuHB zzyCUP2*s^kRfhcc+>5-aR%l^$bIo$AxQDhIdzUq^D=3iVaOnKYSXF^`oa?U&=}S8q z*B*xN{*?0eN!4ceYM;HlTeB2Ot5{r0X0U!wF4f!W{a|A_yjMn_U@jUl#rfL7dmi?2b*6vhv z{vomV`6Rg&8@kuLcAI0ydE>pxEt)si(6#cs-uOD}C@#%hzr&ipU%h-=W|Zxh*Nrrd z7m7X1`UA!5x~|#GI5g?8puC%7>>x3CKnvP7JUGZ#ijX#yR@<$#@12NsX23P7z$LKl ziRiIy@BRZh&%Jh~4#YqBwM1@ho#K)c+xOq!bmg@C)!jQzFHU*0#UNtq+$C#v^su#) zvJwiSYDJ#JJoJpJ!s?@wX`Z?rgV=Ie`2;liR!q_=vCAA>*<~*~+nU?7a>LXP@uY=ZEi~&=0ts>s+pL zuGjS%&-HrT<7oOSD2I3?-9L6P8;;_>ZugC~U!DF4#cfXYU2mHoUjPpLUEO;#jBjry z8&tjyW0{NDPP2BjJ~Q|8!=>j|mE_b%&#lW0)-~^+xb!e>#i2}Oyi7{rzE1g)i9_9< zn|Yn^M=L9i_StgNo2h8J_LE-Pm9a`rXX?jX%6Q1*-&tlSGzD#2GM#0je+jN(r;lt* z7PPC?z)2_ST$616NgjXS7E)|yG8w1Nd>KIf{L)1QFK1tmij^MX9Ehx3{g&r_p6*f8 z*8ET0D}#Eg;6rl6h|C}p1Ezx5R7CCWi3E$;5C2F?kk-SV7 z^;UfoaHFqBUGBYp)yko;E-;x1P^vZ}f^OYfXz`=%Uu~ZV#YI#KVIB9S<=4P{MMBbNuH>C}fKuue` zEPL_2tlr*Y{$GgJ;+_?S#6PYdBH2;g*30iDPj!Yom&>vHq-CR1cO9Dw249)!xlLER z`Di4AYsy%!C+0=jF+2K$0&C&opIA&R`BYA3Y*g)wXqj)qc;13P*Qesk_S2`vI~M2fHC9-cx1KU_9#1L3 zYG1Fh9nI$-%FHruAhoN1Tv=K0>Tqs?eoSC-B?j1Nb zFvo*`M8am2@>$E|xZD#b{o#M0E!1zn(*t&_)E(~eZ7Y(9K<&d)uU1K<^YgvQ>Nk%HSP>7T1)ZNQbA&iU+U}ed_01+ZEl7oX z#At2Hr{<5>uP2;Dx|}wy*Df^#iP~B$@={m27Vj=}WnqJwSip`90sq;@m)M0uGuw}m zHq5UGat&Ig#wuT~w09DJ?ep&adj@Sq*E!-Ga7`6(&XqY)#5v5LC~jM1`7L{=_C~2Y zw~6IPLf45%QnuQt(kEtFg9U6#$fG+)hh^Eq-Fm0vQ!>fgqbqtr7sB|19=e=w?x%$a zq9o{J2F<7|8U%racz$=*@(dOCUO&$3{0Z`E6=<{n<^@wx+}{vhZfOOP?T1GwM>lzN zL(}g~CfL67NAlFZ!>*mUxEs9KsF^~(pxbY=EHvb|kbgc2vA9?GAm2ljQcCFwvH^7k z&+;Bt>kecbXDzGbifsPzK|jVihZXZoo_QZ$5c9lhv3<@~;7J(x5_>!@EobBcNn8EY zj;#{sl?(hGTMuttj|*p8NhURPMa(ZWG~g2+B=t#W7OUs^`mc_6<3ORy4PewfJ$c(U z+sJGgnKQ8S6%haJa`}1=*SE9wlZ&B=ni#51b;ui|UqtR_=3FI{3I4dV6NB!a*J5Mp z&_7Oze>~A0I@WHnkceniIq*5;KQhfug}G9dGMDu3hj`SG^*w8Y;DU7?ip zn*wr^Ef~Z}k0`{;w>ik`ACY#48uJ^cXrj2@IJ-Sj6z$1FBgBn#u}=28h?)2r2%Xfm1A(GTf6Y=?EsgT zKLjr;6(qs^dy>gfU$B^+4BYtz%z~YZKiagW(@BP{y4oU4^=x*P-TZp3`D=`cXCV#rT)8IVCO-~+0fBjt;rk}Cr z>!!%Ehqz|b=R@t`duq0`^F~2<&~W;`R($OtPl1}GaDDQ z$}E@w;^k}C&zx33__MVH0Y3saJSe|CXlV|r*i0p+P#k`x+T3+slNx1{=T;eN!Uzta z|G5Y#Umv2y&%6?XW!!wYto8w_^4KeM%zZ#Ul_4ihPf%At*EZ5yjE9qTNz4Bt^j9F& z(B&`>cRag~J-^HU)#j5(8pT+!MUS-6faB#ne(wHDNuAagJXvc0WYtd88o<>pZbbl> z1Tha&cuh@4Xc4i}O~q0hOF+}7xQl9c>K9dx1)ZNqR-IVjBqhx)Xj^3!hvr@KD-`-t zu&#VbsO&a$36`EU()SWq!q8RA-!V5V5ckURI^9sISHCj(8jhPGMzqo@Yf&iA^(cr>#ajPo!+-MVuYA#hFB@MX`95JSel-dCw1h6&C@#5{#$G=5 zDJkicvQ=rLfAsx43K?6*`ET7Ho#`9o0-1T)Eqpj%F$LpyQU2dBG*D5dRKsyYdE%*(>G|yf> zBIn+4K=9pMOADC3Vdu2`-S80Yro$fH@z|`#ik0BmTff$!xHENCHZkV2>?M;Xf{k6c zkoQNO!s(|C_5P>c=Pe!-J{7jleNp=8US#NhurD7gbHF_BbH|=8o;ZKYT$&MdnytWY z@y2gi&-o>`te=Axgqd7oY7n9_dsRb-!@)3l3BLjN_;DUFVp3UMi$s09BfvQL|o0;uI7zc5k2zN>diZk7nCL zN>=rsMwBa_c;K^C41#G3)~98fFKj<6U?WTf)E08cV2a3(IE;R|%GqLW)97wmCPw(s z!ve~N?_;lvy%Pqy;_qyKr=*{a$$khjh8p{A2I&u&|0Os zaO?4z!7_leg1JaU;4sS>WzGA1YlBZ*kEk+V1Os>1L%YJtHs4anjTe4u4s(n*{D|?y zJlu%hakhLSa@lZOlqdN}lk>Aae?L3i-G%tLXm^y)ns+MNK`XhTon58sw3qp4*)nH`DmOeW#Tyh6WtIm%yQ69_D;*&oaxB)@pU1 zmuD1yS2zWw>v1t*yIaJrYgCgcj?a3whvGl8$8t=btkCEG*m$CGfh%wOENSM=Z65B` zTQa2oNHk#|9%Ebn9*^Wf^$!QHzR6$q=J-vn9YnEl@r$swb1C2M>-*t;B3`5_1($%3 z5J}$Zf7AaoYti>(dXKX%1l`llODRJ)MEvyo;UlX36v$5ueC%l{rQGML8EGy@C{iy~ z%q~LIQwUQHGk*Ky^v?Z6^i0tfxvv$Tb%_@IwQYP~YZNZyyyY8+5)`fe%-*`l7;(#w) zW+|bqubl&sHfK4^zBrYKic5cp{m8# zlaEnidatP~kVdRF2v{KpR?qI$%%YFINy;L5S|IHv`^$z;#X)-N3G_2Hu;3ROZ@~`R z7vAd)B#+6&s=yW^m{Krab@RekA|&PG^!7t}`hnl+EvD&}Z@V7r9MPJFT7ZqSB>^A*JR<41M=; z7z+pTs7jAwW2^r^SzlK$J{I*%#~g-1RhJ8;TT_ak{Fid*0;4yr+EZ}7S#KYCxv1af zkAQejklI~7w8#9}k*CeFE^m&7_AOVdWqI1HoM0RX$je;1^4_r-NIc>yezcKfzWIId z8=59sN1z>}F(hf#t>A`toj_h&I=$rgvq#bTmm=OoCkU#oY;kaoLSn%U%M%`=f$aiZ zHPHSaCRzqf^k8KI8q#ln^&73;LpS~*X&-|m4(50uLpkQ%XMJ)Gn~Nr{=c$T7UR;hj zs>Oa}()TBD@c!_dN~%|%=YdBsitJHewB@_uIDThvKGu8MFD6*%s}}>BCAds#xAWCh zB-^fn`v-qjs@F58KEw<*`#XN~J+)mgbNGRF$&_@cllOJ2znjYIIy#~nJ=%A%HNLj- zLLbhd5^;MU5zMDu3+GT9`iw zQENHn?rPrPdM&n449Ods_TvSWc1N|B@$9sQ3h7WjQF8fzeakWN`MA_9n zrzkzFz#=pqlxiI``qja2Re7oMXDE zd}2tNi_*ZGhYmsf9;7%oBN=p1QQb+bKglCxOlr@8aL_*734EqjDDSF^}V- z(z{;VMLCExbV>c%%_tjy+M|L(TEX1ASn_x5CjyBPbZh9~-;s=3_mjQ7J|GN2@+;L5Wwa1iL& zr^PLe^rE^StJ8Df4#Qi%cIN>ahX7WKML=!YZ%!5}Y+3Vqd(gHVUgmB2gjSl=qT^Th z%kMHFx*)tpPGH2EtAOGm6tRN~-uH;92v~aN(qnb`()Cj24&_Bc{L9WtSMQ07TS68_ zBA;h8pH8aZIhplrAd>whu2^lCq!o8ob_RRLhy=dm67Xe{nYZ!`zF5iwJF}bU@5ySU zIVI+;;7kkCIQ3mpy;qYbyA@$nWAqu{TR12={U*z)hduD{R6Ye$5xS(<_?8;q zHTxUGzEQVP|@pcaPw5I`U$Xl60uCtc9oa2FDsc zlMRAzWpQ?$6OT|jFcaOV?!0*6=h64ylaVNo;5n5%6nQMR$`RHI{Mp#3X0hTs!3=4$ z^#+wcFFCOs-*|@TS0Ur5TV_u)05o0i{gsj?}@Mnt_h!*2G}hZC#x@ndZf0k&RC z5v&h##|`4tI5a|q?GkSPNRcUL-08n@Kv zY%sM|1I*N`J2=g%+QT-)$u>A7mi-6O+IGSDTF%1evC5wzJNhy4BPabVad5KsCWM2P ziQ4S|*_;hrvO6Xzk&mkw9-(y(WU)B|oO9h4KMWEPRV&;NZOBKWa`5bUmd*{ymyo={ zs=iLqRfv9daWOH*ROaX(v~a!j-K0Sd)!{VaDhz(_dl-9|o=yV>$G%g!yMIXy-R|^e zpd)0~Xy2dV7g-r<$|ZK-N-bwmD+F$y^JltYu*V9pCtck+;>_3R_7ouBFV6TU#c?a` zm+JVAMhnWPu;b#F`nzEff-#d4|3oKge zu01ikqpr@<{*dI;rRzrmC*r5J#FnE@Uyu@kxnn013y9RGA!!` zG__L>N*D|}fniF3^lDbNuGmvWLAg68Yr>REWz~t=N5eHv*6Cl$ZseyDvCBq8=vUBW zMFON2Kc|Fmvb1Z?+=~jB(KZ6-0k{mzo!}8uB)D&Yqo&I|etbRyn$Z4o@j8&pclr@? zZ3*om=Z+g3a=2Qy_J|=0_exu59X8+!zg9jj55V6@yKB!0E^mww$c_Ut>Jpll1t-rb z9JS-3VErF_jtQyrNdUiwtJL#6x>du&HA(jqE1>IZ^hKW43QOF28sT<*{LPWi3kOSJ z6n+evABMI`KcLxI#o5A9T&b)6L4uT`{MkIryNx)4bfZrxTr$cpkfQ3RbQRSk;z)wO zaPJE-5jc$iewn4f$btsI_Bch%{LHplw+joBJ2DTt2h`LFV@-eE9;tGf!lLSf|^UhBp;DO3#N&J{p6mMQJ%1^RYdi z{8MWbtNf~JK#ZziP3$_qfOBBt+2**!TaG7(pXfy-X8-5H54>u39a&?JGPL3={T(27 z)ny1?I3PgL*`um|%RAn>W2}+6Een>I`C8eYVm!9}yvs`Cd<_vI41o2I2&2Pyq}$}t zbMir(pbMc%)5JJO@$2U~-Sobp;fsv(N8z0ef?PIz{`!WnjY0 zHPQjoKJNzYTbWc6fQ9#uBTg7`dt_Rrd8lI`{PR`L3QTBNH4-oTg6wIk%Z zg*x0)n!XRtj8XU{6wLMlg3lx_4m%Xz>v?}AVift`+S~bnELpy^Th?5|3{PyxbGB}L zYNXp#{t#z}z}BHTYbITT@A~)O^atE||EaxYso6%P+#ZR@bG?WGxb0P2InQ_sC>@v6 zJKl7y9|KMYJij*TjYF9!YOP!Bk6?V*FCJvKhTmEi9%NwfYj3~gk+WqG&mK|=>41xO z>psS(4WPY2|EZ+%zHDgy371^_)9ZN=O0E5qDc0kw@=vvUKal$#W}+%q^>J;GmZ;`P zhn#`zQ+(|Tmbht>@K3C3FlvUN-`K(~uz_o4m*UFbF;gD_eGa12<{Ky0T`@6lmC=tJaKF(%ejucK%fe-^RpW zd~gT-$EtkhE-I0|6N)Hz-;}h&zv~=RU)@WELGGzT3K#;?Qi%6^-k^6b)TI<0k~N=b zpN19heLmmKnFe-xNEXOCR0G^KWbZ9G+?RQqIrR=Iq{Eg?-vpz4@BwKzLEY-Gz2ms6 zuG>K%o4%g`OXc!bU)n4C%k(GS+pv!FH_A|ckuhz$x2c;6{jY!cK&+5AAbT;l-MtS1 z=e+w^EfdY>!*RUq_pS_H*Z-ZiV{@pe@$O^$KnWpXU}16UujwL0o61R)dgM*@Xu4zI z-*&HGq&c&&HPnIbkSWi0ZCq4nk%W=vU{=_qof!BOiwRi1>ezB&3m2~_&nLxryksAH zsSRxJx=a-1RI{2ro-mV~eJP5{gYp*JX%}L?Z?bzyjS~o#m~B8xz0~ULS@`U@JTsoM z)Q-6qJk)F4n3b?>{q(Keq!gi(;mLQVk3A&9jtjaCvjMhy^|K>axecFuCBJA6yP8rX z5Sg^XyAv;~<3AlYjP8H&Kx^c&g7eiH6ov<#hB0I0X@Im?gu8_^N24;z{YQ@GUOws5 zQ7+34Hd}EH_@(1%(CUDfD^dzL-E>Y`(8om*#;yKDd6UWcVGCHhF<3tO@_jUKBa6ey z@5Ss&4F|EfLO6YkCMv&P^ps-GpwtY@_Jo?_ZyZfp&C9y->O%F4gOn9tlE+D7mZ(z1 zn{VtP)sKEZ+&CPR^x|fwcFh1E)0)X_oWoBw8Oj z6xX|w(#dGtoW|`;7o8&tHi0dnQ=M?d;3`Rwer0v*d1dha>!)!`ZAW+ zT5E1ASP>Jhp*?wh)>P(43ae&CH)Y`M%pU(&$-@b!CHa=aYNq*IhC_b3=IB$j^;>lR ziIs&sE=3c4`JRG%$$aAUM>FC+E1>JCV|aAbY~f!-@|#<<MZ=NA_I)*3`)~$(KlaH4cqqQb0E%`;54x=<%GUdqUn`l{v z5iNWcUGuRLH0>mp;{sSV+sE6Iv!_~i{3f?0bm1L4;jQ^T?msZCKbXp=vz-dngf(Z| za21xyc!L`BdUpP=n;@IYpF_DQO!i|ugzD_Zgk8Ng@>^8*ky&B%#*&8pv!#YJHxdsP znpb>yrj92-ktvK1-g;oZirpvX>{~F(@;gcC+#LM*eWy_ss^~#uhb}OH27HS$WlopR z9F3KTauE9(SxOrJHIu^W16#PGavI+eLtC>Yc9TO7{Ij;= zv}wI5SR)3LxA)+SVcWB~E90-WH7t#LA?Y}+kWF2>_DKq^>hly@3^{OrE%Of3+zZo~ z#x{ai9v4g=wt2^NLPFbmc!F+bO|~nnnn={l84ly47a~hBnNsk9Ij?HdRwm3T^-M{S zHVw-`FLTab{o?IgM)8;gvsw*rhNxx#_0D5IguHntMTEL zx@xIpVYIM7mM3(rIo#4+^2Yo*BK3MC}z{&ybk9|iStSMP4wc? zkk{@WP#PZpobP)75egH&pg@}rQRmtenLk-Z|KqatY!@O$tvse^{!n~VN-VGQCJpO4 zQrS$O98kD!6*l>Qbn?6gWf5Gt6N~h|6yQ^>9H|Dc)B~7XA-vOmI4|O-u%V=na%1AB zah!3YQx01ED_^%)aQyfbLmzZxZI~jCvRf}n-F&q>da}zR zGnZ2@J(Vwke>gO|#lPgInF0k|5RapFVHJi1kI6BWh(0L3OwR}DYd((>5>P#Ad=aUg zy{_Iqzv7(k>;|>4O7PPR7&U_-Y@Y|e(FUISK2XrNU4D2h$lj#&s5`-3C!J+deHa)3 zNxjz^lvT5fN;0`57@~jtCo`0A1C*^d!qgJ@XR3RWTJR3-x8oTifV~s+z81cmL>OLD6`c*Wq`t7sTa2(bQsn(boiZ=Ic$1M{La7 zfy*NhqD9q4>4u+0DiKm7exXRF{LkYgCM@Hl=!_gxCrG4o*FI3VIEGwiDC|ILnQs~? z=5%`6`0SGM&h@*4hui($w=2IOdQdy~x#lDu?Yg)V#vs@VmdLHAf?6NLg!MDcaW_0u zc?=lsDm7EAOEMG)@?;1D=Cb?8!)bqwS*&HLng!vMcmE+brw7=PlvR?An7f;^vq({- z0q8Bw`_Z<7FQ<;BY*j^E(WqxJV<$0#1#^)4Ml}!X2ow>c9Gq+>``y}()iKbn9xxa+>y;u+DbP5!BYA~;qevBOv5fb679}6b-j+34U7+YNf+-$Nv(vWAWZmkMTx_iG z)2I1bL#&ZbeKYvG8lE`Qv@&qeu!DWW#kI?oI;19SQVJvnHFzq0>rg!!pwRQgjp}ya z{BdK0+mWUt_B?ZLhPP5J;d6Q7xDN6ijSaOlbF$unz#Y8eI}d2TLwvU9`!20T+ECx0 z$0z+x#clohmGqT=3(MKu=vSA{qz`r`KZn=d0HFq}f`E4aKm*3`v8|T&LsjgSWS@n~ zqO2z>#9SEaEJZ##t|PhGp)8$(Rbi#{e<8tEe{bCBH-9C6xhakzTq$b;q54MjmmJm( z!~(x>z-TYrtFFaDvEen?hlauGkh$vMqV0+^(fxMCYIQ$4-{nD)zl^xfg*{>&Vd;(? z(KQN+jFRP&knP9QOA#Q3J+Nqe3-lbVm}>xR(weJVnd{fepN>a zrBTDG>mjujUKfM#(H(p+y;f*cdmz?v+g($<1y1{_8?YDhPl$tjYfks%?kz*uw~yCG2PkpLi-~v`t>>+(DE?%iDF&A*2Y` zMe&m}_Sd2tvpJ87UcCGDdh*i&TiSm^8qVnn(td7l)F}b6 zcN2Z`<3alBVUe-~W=>Z5Yobm^w{C{XdJf)ZzQb8*KlJ5o=ArFx8p4r_R$)vh#e^2H z)D9mKlrq)pKYalx3)2k zhF|S@0?!ves9&o=>b>0OsEQYVRdXU)aYf?J)?wc5Z8iD#R5`+gn*5k-?(Q12aPU<@ z)149N4uS7lv5s4U%LPIEW8J*^sX3B0KfA69_Xsi1L0h#4`|qMtGV!gK?%tr3<0-o2 z`Av+pfo?V(cl^3ic~dqNwmK@bYH|N{@d38<9Jrr0kL!`U4YkX;6#~xt$JKlpC><#l z_HIxTI&)0wH)N>U=F?r|ISA0R{WXldyJIGC13D$!a8k-wPi>ijxY|!&{(E4u2tko+ zQ0@EfL`l?^30N$BR+EL3E%h93M|JQ9uv1 zfy+iAmbXOqq;I*LXB#OeS79UEvHH-LQaYUd{&&?PvSFAF+4!IAe=u9pvSr(+_0zNw|F%6!}vyn@1dxlN+1 z0i81%Bb8!?_v-VBL=#mOjw$&gP>_7np9JX~ML-sv*rHvX@Rc5|k`vF0fjLt!>YxKj ze`f@7MXDhrwlQf17F?`pIsmMhCR~ml20Bf_4sQ$-Kqc2{EkX_gwuZceRp&&Uz3uK$ z9Jy=cn#aWoym^0d!G`HKi$g)DLb8U~^nk^Cb1JniN)r$DntcpY(Af9smT$y|QOGAd zp&wOIzF0%qe4Z+yJA~VW7jJMQ2HcC?rR41Z_YRaLLw8SCkIKHdTfOfvnniP@+FWLD znt=sK2zk#^n#bsm@3Xm0%Fr3C!_c*#0UBk4nCuisvUcNl>qkvZ>g2{#7g1zv@+F!+)F@(DFMwNIS z;M7MCH}3Z8rHe(NCc(c~`035-%M)9m>qXZ;|4~KpA2q%}_*f=j{I`v~#4uIV{s@cS zD>wYY)!|1t?ZHuV1-nGK{Wc2`PW5@0W*3_FW@N?G_IFIMR1iDLy_wh}>`+wHb5P-z zcU^Zd*-UCb2x4RA!+)y_9bqb6TWXyi312UlNa>cYJ#nbp`3#V#p8Y8Ew(ww0_mL?` zKK>L*9(@Uxmsr`ZEOykPZEZxDlcMz`P?aX0(Oar^7f_kI_^6_{~Lbf zpB0!M#QZdb7WUbgO2O6qH{{;tUoGc$5zIf>j^ZLz-cE8F(H))9FLMpP2k{Ts-|;Pb z7^7nq5FyW7h+^b}A`&jAFNIdU7M-~XmtGCm;0sSJUJ@)DJ!W-M%Y~Sy7I2K)1>a8Z zynSb9-bp9s$gb{ly+=tG;ri4+P^`RR*|yTB<~y>wUhZxG14BMvk-{Mys7XitIKFa5 zcBmR2rEdUbQ|rKf3=_Bf&*RH7_lX^xCj`%_@W8v;BkBGnxnUMADAk`;N&wmyEcA1I z`AsAxey+}L@7;m?{o^Q0YGfA50)4Ocb>*G{t^bh5cSVW|8UL9R|0BN#)ri)vrV%-Tx-^TDF7F*v z$*5M|%OU10rdLreT@i^5FAJuOj~-o=WlWqmR?xJnX0IqgxqwCwK2tS!r*39X39zb7 za!H&TQN<$F`87@TLmoZ_YYRpruVsM&SR~GU98mdV0 zl>!4&2|@`66Um8_gd*- zz2inE46qD7yL520Bbwht2%4vSat*6b3jzdOlz&?emyme(Dem5>C0w;0^3Hgfs!gTIUHyMF`EfTfZP*q9PMW>A9ank zct?8tc2F(gvy;c*0Qc9H6->p$$XhBq?<0|A`t^MoT>S_LA8{tVDE;Eo{Bq!DmpfQh zk390Wn0y!=#Wztp`5bm-)jk%7`0w4o#~bo}Bu!H7yiaGtNp_`0o(esZYxX0TzJkXqPFPAHQ)Neab98v3o6sdJX8!kf`UD63trusakpI9sS(3Q?sxB2qdj@ zrr(9No{@UB6T?gCa_9=4K*4l4cl(9{BCQ zhOmwv7g~?@F3thbdh=qVHgKwe{7vqTpO)q`hoHl7vKrNmOOz^mPdog>(-k%5`0ZJ} z&&m;3c0OctjbrffuSE7}-|j@Ok)M_^@%*q6i;4$cH*$!dY|}}CoL}ij7hUWN4-d+4 zkT49W3@L>LDx0Xlbd}{n=_1(met6wH{|4IwXE9Fs7H(PcWsLnepWK-vj!S8c^9Hdd zN##f5i;l-HQqz_Anx!TVwDO_t5$=;}DDG~<9Q^ssdyn^ttu@5xrtF)O$6V{aw54wq zSBr5lf}Z{MH2XFn`)0ma#!;9J8MQDOJ|Mwd`ErH!m_3jvVU$V4DsKM`gt*xF+dIpU zb6x~+Gq0*YtvGra~DXg9tvMO;rYzBZ?R1CR9RNHmRLF`2pB<-5OjN4GFm+*ME-tM69)l@s@vU=Fp=63LLmdp}~*l7eaB#4r!OrTtiX>*mLdK?b(BWGS&$N zK1so*n-Q`c$sHi^+TnTMr;M`YimDw4q6C5mZx9*K+mD z-2MrGy^dkvU0vthPv925fLDeJq@Lee5G)5?bSEHzL>n(Jh^y1(JOqVCXd5u=P?0nl z6s|7qpe4rKnI`buvGllhvDVlL@YN8^mM5<5{ZRIUA*g~)<8n7H##d%%J1EtLAs)jn!N|334Fg}n+&%gFZ)Vw28 zdT!E2R+Lv_-Sm0#f3iJP4PFQb(40eB|})@^0C>4~TGVU0pWvEDyIoIbU= z_#KZNrCtK++)P5xGzAKyKK`zS0s=;Z;sc&whkLelK+*1lvKtC5)ITA+8-dIAmAJ9! zp|2)>UZp=Onsi7gp6ChFM_Ely(K7rF;vK=3IM}xBw_L&+hEm68N)r_dy|~nGT_63t z5Oz6FUd70E^V-E5_G$ELrGw*-9M}5k-$F$3OF3h!0U)TU&)pgYWx!I{4OgEO@4rAX z9-CUl`#$pRIlX5%?j66F1aKgfqJdr)B z!17o>;Zh1Df6a2Mq!WjtD$|FYf+=g35Fdj2az`LdMdVRA-_IPa|AaZ3wV^11OT|0> zC8}sVtn7Zfj}XH+olo``HRX2t`p2eswK)Pcgf|Y^m2lJ=8M3R_pPU9ea;piNgy7zhDEIfL)JE zcOfV)U_z#35~h4#Ku*vnN25JMT+psZ%u3pgz?o-+L)LC?6%*&UWFj1z{Al`@-nw{k zZ=T)pqEKV4L%dLahoa%j80uIeb7a9;FV$Ce&A8@0V}uEBWC^S-939;E<6%p9Q(D-w z8Gf7N{9LVR)_oWsDLPMP{|qDL7Hgcb{ayW#A2o_%^q2meTwW350{ltPuLg73^`K_H)4MMG zw%VudyT_}JDs>AgRH-8Ai_veb6M<^W{`xf|Kdp3ZoyZ)*IJ21D-8~%C+&>|Linx;% zk(!>6%vI@x-#g%T8K;!KQ^s1a%_fS%xXrSGCwwB?Wgw4NMdRvjul zz0E`Bgr(xw1n%|V7A_VHXf`@{8NSA2!laQo9XL8Z`7ya_WnznmU8afi6g532cKv$mJOx^n)S7V+!g;mdg+@vPHV2Ut zgo!tF)Fpv~1OQ%Qi!%;8dHaL&v?c`h$jLy9WBB&ngbkTp2Q;k6wGB$nc5LO(wj{ZQ+ zIj#mJ(Lqbb-}(+Kl2VDO$-N2-av9U8mVwMY9|l{Fp^W? zvr?cSQ!*PPi@K-zs}lnO-{cAH$YlC$C?bRxApB)uUV{L%Sc>)Xk`z^w=pF^ozy5t) z1-;%EqmDx?v{#Jp4$GO0T!{NCLZ=y7v=Ff5zn>pJP;?iidYCRYoq-FjAcd4H;WFsN zUdA+d3>Zj~GI|R@TG9^G0zjmB5ui`w4zQ%XWzH7_G4*-q#1asY2>eKVhQHoCK-Ul3 zKNwsB+Yh7HKqVvU<&(cLXy`k(&sKN+#lpi#y(j^#9*zUGfliz$sItshLr}1k-gtyN zXZ|1-Iz$)beEO`{(Q)_)$}wRYd*7l_z@l;P<%ktVdvOIi6Z5y(u&iTKOe5Me^tH2k zQ?zr1OngX-I|mDxFcs|90BsacKyK@%oZsLz@=>7V|G-_A@T6VPT7vS&yB;%W1UrMu zMqGlm!j*xWCp+kh-ykB6XyOFQ8ML^ zZ}rL&8y+r$`Z4=K0=GeZ<{(okTHvJvh`a}N5(<`T4H4_+VP;UTrt*+m%}r2$A4QQJ zD2XRX5u(F)8Ts%W9W;HkMG6edhdRvWVg|bD0qR8CIwEH9oU1ty2jYls>HFR(Aa5%#3i0q zIKY2sNSSzGQ&`LR1I!VyG*u{&ME9dV1Hy6B(Ac5R<2Yan#{*uTjHU z)};t8D;OGdE70M+zZcOd!m}695WNI`YiT$t9=?opZlT{W9+iUnML8~1zZ8CH0^G!s z_aHW1s2O8oMzg0Gxt&dw*TR7Ewj_*EJh+M_X~Y=308mEMU9lN7PMATJhx%hX9Mqwc zRJZ$)u>eY$y6Z59#<4M|-$1sHcV5Vyr`_Pnr4zODy`U#Lhb_7Ca5c6KEbZw)sF^YL zsGT?!fZ7ZFIRj8PgqILW0I?d(VrO7?!5s#v|5XByQU`eIS}~fM(hOA{!Yf zs!^$Ib3Y>{nuyR~V+>-94wC_20DuGA2fJI0Yyu6$OEErE@jP>XAg&^{b#e!o0~q&~ z_Ymw7v^i%{6thSx{K{#3HLrr# zBIy8K3b*%v5`(yszpc%HI!3@_E3liLv4e@10_$i*1f82ujmr(|Hie$BF6|09jD+m# zHK;Z+`{XV=ZI_Led;?C-*joZsml>O%+QD@ct@<&7Xbpw<45A@gFloX2_;NKM61@Er zKLI2Fbl)z8JqBW}pOH5j%|smrB^f)}vaUL$E!-&vHxY}Ah~hr;_MYbB3EDva_~Ph* z+_!H!EZ!@I_TN16ci5|2+CeJJ0+1MveD@g_L8o#T4Ab)gGK^x4(k#>tU;<$d(NwHO z{&_QqB1(`9G0eH*&ls};5q(tJ&oO1iv4jk#e%wlR>L9Io3+1x9%0r&RXTQ_5JLc(u z5;!GXfAWMlX#*=~Nn~gAATJ$fgfmW((Og8H>x}r^a%fD`i}F9!iYS`E2e8PKh>d z-RN#9|2^3B&FUH@wtdsE<3Mt~atlH15C)nDoEo4^twAQQiOCen+TR`+!0ZJtw|B!j6eq}duBxGDr{QH*yM|waXgMCyckVrMjEaYbmxksQqhD##PcKbw@}RCf+J}+$P~6F6;i5qL8l84p93w+-y}OMPIP(+vqMQ0ry%PSv zA+69gg0^lIIuTV}P25neFaNUd{s3n=70b?boGp5$DAJ99az@Gb+Bj{)?&Lbx6W zv3oP7ftZJM9*$my^kNRU<>!2zVbr6dT)2xgHX%UIC_t1kk28ngXr-|;Y%it&Qu+Do zi~(Gt59Oe_Gh!23-a(PGMVM}Q$Q4=RxH*`=1zrh7vhE}9LNkHwj-?-vC^ZbD=OZF# zcHj(!;dx+oAPiNQgh;)-3v+2P?+TMTqApwkpNADOUNLth>^e}}kcVi5Y&q9&N{6KF zC_iXW*+C|0&yQc7Ar?{!_9Q;|!&y_kE#^c!(fPK%d`vAOY{6Dl<3qA=!~xUrED*EK41aOyOv{}4jB-wTh5?9svk(# zHYS}Bwl@Fd#SpEK2b&X$@ChoDn8Dsn>U00G{_0a95&k3?^lcpoN}1=c(@gXw02%mY zeD(>60(!62?N(Vg{_3VZu^D7&i)bs-$$1sm#7lsE#?%yZS^k#Vfk6Ym-9~n20*SYr z#DKehTN}z0XET~XjR0I*4DcJ1O8*z}PVMvW+dBlJ?h|PoU0P1R?(qlJ{~^*Pclr^-F1MN z-|j*8O(0{G=h2sTwI^sm%zRvGhlgnbw4AP($%lWN=cy#sZSR45F6z?^k>e+;iT%aw zSGcJK;7j!>OluqOUX0)LCt87b3H>u7n#sqT5lz2P*i27mbdL_h=Ybb__uc^l3`&1R zAN8xf&THpFGtygcum+8@MtOE8@wL*ki8$cp-U6DHu?k~n%LxxXAhR=W9Z#MvfGT7ud7-E-HD&)7jER?LA(Ndyk%hSDZc2jd+?FfS?IJ(8X5Yrt=r>h&AQjciHb3 zcr9m4gO;)f-bWeqfG4j2RlEvg8kaK(PpQPkqOMYK92>s-H2MH;1$O%|8Q^bm+mI=^AT(-g2UoWWVzTGkZa0Al|{m{fdPty#*7x&RauA1jQ0|K<9TFFDaEME?Y zu!;#2fGR2rTbHEXQ2z~Oec~Y}h_*JWx6szH6~0BkK;Og|VP|vcY!G&yu|_)sY$I)! zKc`u2S1^Cy^fuY_qpLngeaS9l#03-=<77QfkKItYcC2KsRnAW1uxApz8WBH8#f@Us zU;dOL_ls08j2JprUC6;_^@~lEileDr1sUrKtD_C;h6ACw%}=ytlOu3;SwA zmtNpkO3b8+?rUbP<03*{U)Z8nY z<#rll0N@BCBX`88CXlnh5TmkzV@Oj5!x|NidkNC9qk}HI3{jh2FzV1Q4?U4&$qndx>eLjRwl)hfWH8KS@7xW;0C_4$J0~c3eg<0ifSW(csDi-u7CoDK z#TyHK#5|0`J#Tsnj?x=o&0E;ABK?M39isIzV|xi&SPbZYwv09RvSUn@LE0E$0vY;$ zynS~(TmScesacd(YuBE&YOkU;wYB!%l+qftlUD7$N^4W4cG1=rN^N3PW5?b_>_n3L zz3<<@zyCk{k%x%5dEI-@>pY+5dCpS@%d?@N>IUUQaR4g{SMGT@+xT}sLtM`82=z)Q zO&)POmSW4`6C-R7f8%Be2uI#h&idkG{}qqe zjw0E9_G)6N7gpaLnpA@Vw(|*wd=(qj${zc51h{Mpn470UqRaHyLkV;2%O{(@&UIG{ z5H4utjoYYRr029B0Z$IW>QOHYI(tMS3uPm@ZWsFoqXzJfFy^asYWza?lPeB_C1ecw zTJQn*BX`~Pf@EE<3`_~8^3=?3^6Joco&B~Vm>T5Itcz+<_@GI1;yWnw#)@hs{jRs; zoV2l6rpE%X7`@^8cOj7hjVaf?5W!-swOAwUe&z|a5{UQrm3Krzl1e7wf`8+Bnt$*5 zJgvPPX5XpA+i3J61>b(Ei~j^>bXSJ>IAzSV{WTo?Tqxg@9Na1NY6;eiO9if#aj>gt z0JQh0hF;j?bN&Lh7&!0`2s=*&DuF#1KG6=hc2=$26?(-6oPehG*wi}UTP+luir0dk zDzDE>!!`%-lge8N(2BhZ97!x!1BD-%g3e;c%}b2`pqH>Ntp5VAcE*N3#h0IC0wL?RsfVrQXVl0-Awoem`d>)UhYcJ7 zr1&i$^dycn`r82rLxENBp6X5mAELyS{(xy-6EqPkgE@!VV!6%Vc0Xamjl+g~&-Q`P zntf=Z0*ua6#plwCV91N}cm0UOamxKZ<#7Oi>H+51>lV3SKDueo7H~BHt*}pg&NL(& zfzRP$Lo>6pp}hc-!JBv@M@$};?wZm!3JT7=BEjfy4EVAuLtY-9o8zpMLECmF*tlh$ zC_jNN8w=KIFbGc)_4|lOb+QH|hI;DHnU7^)v;f{~)xK~Td84ct%Yi`)vjVeVdp34APDP&u>Um$&hC2=b}+!kEB4zw>IXzmLyaZ%RbKszJ#1S4S(`Z2 zHm0>(`pGQNQcrW&a7(J|+8f&O9?;w+cl=p*3eQHj)i(KMb=epWJ7K~$5x!N;=#!?Q z_oQ>UU7TSM+wuZD=r${!4z`sCf>!*C*1_yK4JCz2H#9h30^& zS#MES2osB~10C64lL}BWY#|HePJ`Sb*Hr9L;IAXW=GvoX^f@#Wq=-rnSmzAFyP4kE zsm31d`0~?XP%2HQww%6pq)j)wFyvd+MUFG)vG@@0GGONj2QHr>q!Xf9COr&lIR3MB zKhXaT#Y8|*;5kR)L%)%~pl143E+v4y=EJp3AgRZtfYDaqkJCDum!Kvi);SOZb$>{;tV?f$82odEzyZ)C&0D&mdcO9o* zxHcI6e^I=PTuFBV0v%W&w2)mmi3T)ilu4i*i9@eezQa2N%ZYLI@J zuGi@0&N&Bp5eq@_r%=VFP0$UPWA&UAcS}#Y;Xd?K<`f2PSGR>KX3ZaA_wnPfi`1dv z2N48PXZzy!OAdgvBe1SpBysm@=rb0aYI8-6*>9DwQX(`17JX0l0Sp+Fn6bRri+T;E z2Ud99@8R6qz_Y#HMk}t^?49FSm%)Gx)v~#3Do7J@WdIVvdXM%WqHl`Y?mBg_Xz~kZ zDL?MoiwB0U&!eFN6bl2_7JyU4K;zv-8^2Y4K}~-RT?6%7jelSg`jfsF`+VQ|&-1!% zrHi<<(0OTN#Ij_I^`d4Uo*&nrG8d;J8LLOQV_-_c^ElAqOLP8M)P1m~YL}Q$)5~;` zF0Gn0$R|m3(;D(+#FNM<4%#^6M*$q^2pgEy^aT%1 z&DQg9Abq>buCCEYAQ`~L#@})=h2DId#hCGXNqNI?D?X>=knLpKzj0j@PX*Zrb58Wg zCL9d-SYap?`Viia#d1JpaVK8?{<~)`%pYbM{@vaVu@w?k&pO4NFLaD9ycjC%;q={} zp=4s621o&3mt!a`mWUPh`@tZOi0HEc zp1hSr^%%KEA^saSUQaBCUPGwPVo7o9e=_a>d7rWXSt&eKKpOPg_i6sP@ASY8b~a!g zrpTh%l3ccxI?~vNiM*%V@bJ|B^a=rvuW|Msa7~x0KQW!TSLR+<`$>ml=IKo9_Yf=L z#$TT}Or#wep-eW{d1^3+=wq2Jv9$NtJb(_mqkQg#qwBjoL$IA$XJKW8WN84^uITpT zSS%YDeApSleSpN$=czc>zzKg!3fro0AU*Txu8IBA39b~wdM7f>xbXSN>6(+R`$Q35 z!5*>-1*?%vMc_8xpE;=De5y6;eD%`{6xcE$!F(s#oOzW+)EzlCzl$|H)>{Yn+#3?u zei*rjrsUeIH1~pR5jo_EZ{jef`OYeh1a9FBhRnd~W8P})Bk{ucG-&R|5kmgIH$qB8 z+UD1An6O5yLZ02e^!*H=DDgc2&0{=>WE@kut{_Fnia)v&h2sDu<~}NKz_Kp@36^o? z4fD8bP!U1`BVN9S?^=KVwE$Z~L`q_NkaT%k0RCFY6_Cdn5|P8wrP0Fp3HzI(com@I z;;fno3k)fPPn-^W>19;X*0~oB`jpH$2-M0Lk2Xm$waL6`tH;7jeq~TJ$t`q>?pUpCz%gf(pKDcEG zgJe{q?d^z3`pRu(+56|XeZURIySW4H0kzS5Fy5(0S);|;fQ;%*JAo(xkP~&ybu!rn zZ!s`{gkG&Zk?cU9%1kTYApnmpNm(O(YulGy4gda(G&~2%Xz&01JeKDb#g6Fk>qPi5 z2((Wo+0b>92$6OVlk;o4P@%GU*Bv5nwA^1{) z0!z2)@N9#+p;((oXOANo`#4~9jUG-GayHoaz~kFxKpK)s`Wmr@?PKd0p>4d*JC=ch zy~&I{3Lbhx2ICJacX985Dz^U)(Z2Yee1y!HxiB$Ly|sm|1UTvk!R`Q~jb4M%Jt`+A zjYL^zX0IXn^{?`1tVic!+1ZYQGKTO?E59<@qmckdO*X!y{m*)R0eB0Fq3+-altD}~ zu*2n%qP&Bw*chqj0f6mUL(FA}jUY-4b0)~{REwWz3r)b}OO@|2 zR)N7SLc4IV9+$V`d^Z~z4|SBokI9OxY@D;5RnzzbBxE7!K`Wwo84uEuZDbUr7z|SoL}S~m{nkH=U$Lm_gQpNKeW*@S zI^u4FJIJQ%bc1xuEx|D8PLU=IO9!J?;D$-pD+6Xu%}@zEDi-f4)CAQ=E3CqiI&>MH zx#L$O&-jIp2SGeI_3K8+bXLOkk0A;$nBUBJg3;w;h26PC{dx8+1A76cW7;lP1*3?o z+k)F`wkC}`&AgYZ)ks3MsOs~hX#f&op)p+6P3=m>EsHnh^oQQBm%FhAM=ku}a9r0Hn;kX`4!L$9 zv&xfYzuzpI8UDc~g5eCx%MM5|kXt!n-$VQPo0ZQH1Ze0@UV#Rx0F>|Bt+GU&+6NOd zu;0#p|Au~ngcq}QJyIWk>4nm=#!hBq4V9QsT3qO&GmH#ajAfyX@xDT8N$64#3_P}n z<&ExUV;SP3(QpRmeyWk^zP#^DWcH^)k!H^3nV?UfRy%mbZ0qqeI{>~euh_qA+{U}- zkM_he9Qspcu5}E=Srue2C%FPa=u`3(@S_JUrF8!%qlI|4 zs0%pcP_g3>;X+8T1)$V|r?y4;?XaC4B~pS^4_&tUuIN-ROkxMc+^BpOJ0-q*R5pcC z;0P}77zXk3H#K#}8+O9i>#mALCj^qoXYZ9(`z^H5ozRESBEZ&o8lqd2(X8tO2m3$Qx9DYXH1zrs3qdq-t0!H!)QTO|J7&+`0 z=UwyZTZi?vbL>KscoK`!=sph76aXlJe!AqtoqMHEq61%wv#?qSvd zT^OF^D%$hf90e*GezhV=1-yT$SK>$B?T`C5s67e-nZ69(+lL!RSPK4Ppca~_dkOG35OvWlP9w)aj{^8I=I0q`NHk*07wmw&ME(j3nnk}g*U-&+G&|&* z#tozEOL6J5$WTtgUlllLgQ);{q~2q-(G#zCZ(Fe_g~|&$XhwHBj&GV;2Qb}XnHnvR zX+g_eiwVu$b%iD#aosV9!6OE$nCbouWnkwm{O;GkbGeYgpF@-8!Gb(3pDyI3hne^c zluR%ec@X60Mah*sN+HQ9F5h>H#`?_~-tVsuRBA2&lY>_;)C+&~F%*(WvtABWY?lWl zGp@2$fIu4Uy9>vW72m)!XiZza32W-(ow$FtE@RY&s~en}Amk5w1-te=^D+|O1+R1f z!ZhJ~!91M?xtR-&Hj&ZvLnHK#FYEcdegnt#0|)3l?XHAUi}Zb{O+E^0wV~gn1ADr} zzV^>vqk*h85#JL8iHMtF3*QcMqQAH;nETRF9{s*q<2HWfCD|<7#X`CX&Tig!pyM{eTUqN91#g)0l zChM2Vm3tMgXksTVJK^C|RE-e29k>nxq^6J(x7GnR>RQAU47T*&e^6P1i+xc@hoi#t z@W6jHit&1s46f}k54MX~s(?aI5WzSvEdJ~WoLQFuQMd+`c2af|;4sr83CsgH64=M4 z0`x0bE6RPDKSki;pu+fBMn~(v!1A_t>)**hP7s5T-L#B#tR&jF1Yu)3ffuzX8X@t0_ry(d?!y4mq6A zO`9>Kn^4d$z=%thc|$(MievlO!O4^{d@Y543r<>SI8#p@v0u-XRqw}mg|pkDu%433 z_S54>&oEFmqen;8#kOQH1-6y=Tu2Ie^Rr(9N?h0f4G4W)a!Ik73~Dro{Qc_~R^~v( z=4kIO-!AZ@fbX$VLH}rA*$M~&SB&)omD8$)womf7_Q6PLzeY?4F#jWhmK;@_!sE542!f7J^83s~x*4br;HZGKv z3tmAnddQbV<*Vn^J#6r!A^+nqQ(d`5WW8mxOG-< zt6At85&k9k-{tTzWbb2_XYc`S=)N3YMA`BL3yvLIz=kH>TW^SAQCqxM6+58#|$Cp@V@G_6Q01{aeZYxx&-r97e+M#Kgb?_>D@-&FM94Zd^A~=+sk} zHZSHz-cL;+bN~C$0v)WhRVF`2hRQwM$r0w}z<{i(GYeU=OI29vB!BH$ZywU7kt|9P z88DEf_DIx&0ZD1+`<40EL-pS!S2b1B8m8Nx4Ug;hH2S|z0+bCANzr!tPpQ;iA!gd7 z;|!OopIp7p9%tMJ_aD}!&al8hsW%<*lMwx^jcSMNx|*K`M}PkSnHk=(xY4$h*M=%}s;7XS4?E_TiX)n=25rf9-t*JaS{blpE$4O69mgoFo$1`Omd z%6Q96(akIMp@TXNR*t)YAHLv)_YznHs)g5(CTJTeyl~pK$O1Qvm8ygnX zujY^#INiuS?UGJ+&D1D(Hi2$x#EhjR$ILt+sVr>*kwoC6{KzEHSg3}n7bjY2$HHddpX@yQ6ajV--(Wxs$DW}3*(DGZRVZ*His8g zd|uWqd+i^ZT+ZX0NQ`SM`N!P2IG1E)?{*$gI1}}I8F$SL$`IY_D3P;sSi+s>FmpEh z4gE~pjUI(-1qF!mszT6|sC^kS483=dxNZ)EU$)!4CEsn(%qR76qgsznVAGh=2`^^i z9^;*H6&Y=OCjdDTEre!mjY(Q>Ho=u%><2FUV zKPlx%F(K}5d#H4tyqo|tW!8c#&0O`GT21>u8i$soBBCSG%`wA-kqhfwJla)>U&nr1QC}&kF8v=ZfBb`V@6B zU>~jmjJoYM!*Hn2sq_?>3Qr|gXgCCd*L70sRCsLmU^gsX#RJ03Ia~Z_>TdbOcdieY z$&;Qm?Y_B`+3Q_8PZyEseloGB1vudY5zb|180tLkSiiBC{S8u*@i`(qGvKW$0KOmz z`G|*qwb-oj^7nNM)m-kc49t$geq%A&zK&SlhkNsT6{w%03A+mq6^GnHESD$F{1a|Z zS4g$4qfcVW;Z2*8hV~o&6UtK;DBB?&4BJxHm+(dY#hkyMk7*SkX{z%r-AM?TSy10n$=7E;KIigF+zmn9e#3UaYoFTQgzoud zd|R#4Q77yDu|x8cl)K?EolHHUpLF&3$nIotJSHDjx&2^}TUqO{?vLKXkWUmkyNuB9 zU^#m7tyCw3zFt;n4;ky~XiD@ifsPcX%t&|Arp`lX+XQBmxuC8o{~i0=8AIAZbC zduOJdpW>o@)8Te`>~k5pj}O~41H%0^ozhYV>URy%f6I9d;ttlgRWF_yZG|D(hBY0q z+`oyn60#pk!c`|1QtxwIvu9-SvHND@kx?~@orM`e4+@?QXl2}9xmf+u9-W8&ci|8amyw0x(F&SU}Lo8JI>Ep8kE_~H`!TdFTsHVi3nmO^ys8g^Jq$6@#E z+Tt}_9>m8L_MDCoQ%O!I)ixS>2fY{@BqgHXBs%Z*E^)ySuqFM+i zcW~3@^m;5As-KSAVJCetoBNG@r&XSHJ+~?RgxeCe4C_1>w;74y z1Zw$h2XW~eB^m#KI;blPi`c0nU4EPQ$w8teh zO7B)SZN8C4;F_sQnUz^B_pu6vB%elcS=Pp;ILuF->+fFmKuQ-)%QsDnu)CI(!;Cy! zS!xQUlO>}jydULyi|pUE3GrxnPvU6AF$n^7Ig*`+E?GOOu(76*NcEgM?C=GQxNlC@ z?w3VGTQ&V-0v^MdE|R$~C6K}JkCU_Y9yPg(-=;_ykNAD7m1jRWt?^IgeJ4BbnNEZ?$|L zSaJ!U+yA>MaHm%Vt}r!y_3>+n&Kn!0m$OWb^hgn3{Kgo$qJ3v38b~ zbyr{{-vw#8Ydv`i%=m481l|w^ZRv***qd!f{F ztl4LAyPrB+D$&+-p(WX^TEIa@Ajp7gX62&X=x23G8=W4Jm1N8P{ZVRhQ1azlbES3OXWkHn&Kd53?}Y7(jKOi)J9HFZ zZwzmCN0}us0-CDepexD2 z3aV?0Bp4lNXdFv!8V@GTXyuz`D7pNw%3QTC>YWXo`a>T}Uc(w7@K{%hidr$o_4OzU zele=C#wO!$(c7~5C%llW*^=w)yH4jn|(>+Mr3id#LutV9#- zziWy_QL@Y(pO$`p*^gv->AXCY8HoOi4b+_~Bo>KpV)t%I@_o$FqAB8|yLq``z0DNA z&JoZa!M{eZqX}&=rtFtfJSUi)*{INIGQqx-_m)@m7-vS`K=zRJn?5SC)xE0wT85U} z&5X3lX&(6n`DomgUg=cz*S*U6tF_BVpMlVtR~#&X1+UrJJeIfI_0OdX4_`uLhl6%W zJV`IrrhnxrE-Z|Fct*=Br6;6$bNG*Sw8Bbb1E*+nLB%Dv_~UZH7UTJ3_V)qloS!*} z{tiBTU8*D6Ow8x37QE%P&6OEFDP&FHn^ti3X-J{QBR#3fnPp(*3k^$a`oR$6w;DAu zd6x=$T26x>7q4`9{)M#%JRdbyaIX@yGC)b%jycoTv#~}6gu{R5o_rO#R}yGCG;LLr4r&6|m2%RNdBnK}K-%nf_A@bCIU=z1`}+ z+@i~TsfzE{eG1NKe!92h?dAvP`7a$QwD&G^Ewq2r-BvVv!90`qD&*z5#4V=>UbE3| z;j#6zZBW@QyGL4s(VYV2-s`KRwdAvMa$ORZKOGStVueh2rCXcbFsyd{8ES*clJ7*D zzPb%6R!TzC%o4_2ch21DH_Rels^EEv(9AZ3R~$7ruwbE-!NjAAeK5q-vQnfH?xY#= z{Ns|F;;NK-ZccFoS^RTrh|2dYG;wI|9)-tne9ooW3wx2|$y?XY)w%D9m9BEsOS~X? zCCG{Mw(Q7j3Thr(>MV;ZucBv{Y&hvCJ>Z*5++B!?uC%Z-^Y!1FryFuPfA={vnvt`q zi8mIx0R%)Y=7Zcz>~147DX_du?{@TNL?IUg#F!+h`Kk5_i|Fvyeq#xWKaB7_{Y%IR z$UC7}C8@;jynFrkgTL0Bx6OAm`IFmxT5Wm#hAelc6Ef*jyWC__MN^}5B1TzWJy5aj$FO+rQ&_`ay& zE>qEvA-i&cKc|QMn0Z^_?0%rc7llQge^A-p%|FXww{}M4bKoB>7?dQxKlCcMN%c(= z^g>Ae7QIJg(lJi3g7`Q!5X8aTN$o4(d>kauDET)`)hc0eFMOt3Aa_fp2BQ?&qar9U zeqVB9luS*!WRz&G#X#Q{LzU7y|cB^KyFYXCOK`lp~4$AVXMbcg6S%wN8rk_Gm zA8$$VlYTXztl~OGhnPt-FVNBJmd;b2avz5+L4=)sh#GVa4H~6OXY&!JQ#r2C^d9ah zs#?o_&nKog`mfyg>{^M!$wqIq-bdgEZvp(Az$(~;&`$!3jlj&Aj1M$@n&_+AN_*Zs zGeSg49-jWH*XGX$M{8VU<#Oh}wTDxPeZaSU?z~F$*>kuI&E7^OrCs*VDh#Lf)Y^Vh z&Z3D`B2*XVywz0~8CuZH5-YykmKGC;|6$2zwPn7{zxuEyPp(?`i#M5XhCXsRVM1AN zT)yN>h1G7bF7KK-6O^IG3Epsf!w~h7ap%Gx|04|VXmVB~=VRB)vN4cs+V>#m))xAw zcy;cxrDTm|$vKTWx~?a5(KXJp*wjv<(U*K2#}zlOKY#w3@a9TQu{zduF_zlUAs@xB zlkX`zGE8-|Yn04Bo=>#PH1yL4FQ42G=5v7zvEll3D{xYq=C04P5=t?T5+9p~opY2c z9Kd*Uioed;zNo2|96Z5^g>x;wG*j>$Xm^+P_jfHHXCJkEV8_Q=Vc45>FKikzB|yZ~ z61TmafELe@eMv~N%5!er1pJeGPQRZ%g$?Pj0-C-&-h59@{lvaqNKEJH^GqsEf}v-( zzoT@z10KAonfkENsld3uaI*Z0pMq^5rcqp(tcc=8`mua4Pf(R$Uv*umyegP%F>ni z!u=iht2Zm58)iAnW;@Hz3~Z{7V_yho`FRV^dTVzV>1$VK(jRy6FOs~wH2x!Fq+2#> zPrsEPe@@{c2@)^~S)}{~9$Hc^+-|J*`}9>xH{AVOH<*jxZ{xpa=7{D=rK*}_T5yP- zQk-mRB=2BjjOOc7lng0YyFTyM(sT$ACimsXAR*G))%P4{@_G?i%LGn)R1xHo?eK(R zw9xgSTtt=Bl#{*13E2X(8=3XBi14e|4kL0(R@-H^(8Rp4%iudgpHJO6N7+5U_0Eb& zquxcn=dSUngw=bhZY1w1>OWPf&+EQ3^>{YwUF$v;=Csaa^%Hjp(?e+NZ_;3Dke*9A z`dpA}+TtquP@S38SiU+f@2l1R1(h?q0Rn>)Kp5eAm=SFRDJ;v<_Ek?+N zE$eaBi(DsFup`|sQAe#XP^XS>OknqCIm`g@Vf@lW_m2KCCfBL%_tn7&ikWFM$kS4| zUh8Q6Z6}ITs#K>?m?_nW#e+l5Q1cN~3-v%L%})ML5&g#LFEcxb<9^`}UuCTg{O!5a zil6R*Cfo-|TLCH_VQD41uUu1)_{bT8m(0&LUsjyCkMv+k+;)J}TZ^QAJpP0A3JEtz zpuJp9<(}z!j~;}-D!$?x!*h*6n8)y@pX+K8;{?PN_y&!fj*gyo6^`ggdO1((=>w+74n4$v}HJ&o*p)qn0GF`ZGqrt#?ZYxx;w#U1suJFSgafzH@Ipa2KLW=SFZ%UG@WRoN5@niBfTq_@+FmtWIbigNQ*ZAH-#{I?M zcNb(nE44DO28E5``!7^V`W{yF;cGg!_}^C={;R5XePQ-)O{bP@6V}kMc5{qy$)~Jd zZhn%x*UH>l@@YmokoK);^E-yXX4$5Gc|cf+FFC9LUm9pew@o}zf%x4#5=e{;!}(Pc#@pP#Vy<6Ab+X1m1)x(XGr zdJp-e)S~!*eikG2jL%noH>%#{C8|7-)ULB`qjc|EnK|ibu|U+gI4b(ap^$FKSLEb~0Wq^l|L}|AvKKHKVXq&s3A@(NG&e-+&-#Z_v>C$=*Np~rPBvH}l zPpM)RR854;T)WsmJzK7mgkM8C<{mr_)D1bhXshRie8lo}Z8rhXo}ie!u?2{=10B-m-+hm%^no%abgc;iqfW)KB)9w`j+|L-a+^#WoGj1f*Me zE;lGbI)xyU@_a`HXZXfw!>K6Sh%s`U<{2C_z(EE3@h zo*lTT{CL84J;)=d(~d^f#iB# z>4S4~^&Cg@4INM^S2vf&KJfSNK8xH>>jteXz{4jgbyB0VW4Mm_UyX|IcGUU5c4iaN zTi>o5n3EnQ%Xp`{C-D|y1C)3oO+S`bN76aTlp>B!G+X2PcK?&ub{I@Lk5yE_Q(&R^ ztxM?1Op|*>Jp@3wD+h*J3zWQO!Wc3@=F>KTNBtM?2y-W`r}sTA_4Ji_dndm?V!it- z5aW9BBtOgFtL9R&l86}l8wH>6xIz~SYGC5pu7l5er8Rd({Wh-;fAXJ|Ya(G%?=x4YI1_U1ox z74kfc*?F2-Caq7|W{fKbXk73qCsKQVcU?wLGRR^iGh~TXUxa%;37mVC2^Sk(KN<5{ zd$w}$e2w~~jp@s8S+-s&3#X7Ur?+J@_s|#CcaGg{wTnLNyFqkIHhwyZ{gvYBwm#8y zeg1S|!Q~hF6g0NJB+ni2wBM#Z#atzGr#xZfXuq-l|1oLz z6JPY#mBfh;nJ!dhJ(QB_F(-~b6zvM{%^x9hP{NnU;*a2p_RoGp{TDZ?J$UIe?Y`l6 zw0Wk2xOd_H3++?+ZpD3G^XH^qCcP~(kA!FIt8a%nJIqY&PMvy1w|X}g1Xox^eoP6` zYx&~*1(`kLXWdV6!2u_ry~X$lOnj+pN~EkC zk@4_n*nQ^0ATHY#C36?@ajmVJiP^(9t+?1j!&B5QeYJSd&n_+z{`hRZ#-sfE_iL4> z=Q#31-g&++pe7?&Rm|RqNaQfn(t2yx*lrCGgI5psFGQ8({3qJOCoe{&l>BwrI@%$Ac{a}iwIXQp znW)u^TfBwpU+kRl_%xGLD#1P7uRcGNHFEqPJ3F{_m1N(29%!2?pos?PX5ehz#JMLS zfv;6w8jAg02py_PH2os?qgd|!nBPqAu4kZxnc2IGz<%M5qpA0sJX$NSrp?(7p20Mq zn$V-=mo+9No_`HZg1k62%fIs@R&hJ!)2qbwu*}O!A2FU@?AnQ3Z_{b#(J3}+aL9Y< z9bhi}^36eqY8Od{#?vsfxO(>dvmNQ@-KBo>cJ*i6aB~7JUxKjMV8R7i5QMPO&hb@QwBySQYS)sUB ze6O~o;?=qL-k5)zGZ!t=<`SHh8CIp&Q=1c)o>{-->sxPMNwOXs&BU^dkQxv>SkNFp z-O=y8i@m?StxC4k`eyA9ZIYNP6}0i;kf^|Eg=Jner@Fn8U{fN=FMm?MTrlxn&kihj zb`t1zro_nGr|rU0TlGPO0aby1=r&F^WTa|wT(tipR|cpT(=if*@4dKVD#0qHMY3hC z4o8tweCzPH{v2JXu0PYL=84k*;?60c`40z1gs5D5B0M5v-x_HWRqZ9u zk|R3C#OaAe698uIrq9-yBXk4hZKDF~%GZtzX~5;H^_RyH_9=-X7Rw2}8~Us9Mb&ec zCJZ|!QgM9ptwYK9nz6O8+E=0ws7j*w6CWAV#~5bwqHWWm5*PmY=0e1kOUK{m-)I{y znY_K_iYPB+K#x~D24M)WyP-JP zBlJJUzxbY7NJQf5$@c5NguJ=At9Cj`R1xkWc?gQ9ligZyN#mo>8c@1GnfC8@Ovx#R zV!1dz-PL}f7V?Lu_3z;4ltBrB@>7FiBO{haUl69%o(@}a=5e2e703Cr(?;{ZxRL3H zMOU=-`@NF6LSyjtTOaDKL*i-Phm?bAuB@%!NA|fj}`?@s*G)eI8KXh+M0AN3)3$E%y`{i!+2!Fn2YXlPQep0%u-)=ypDzardj+9KcM^ILtnXWX zblLSExfdCZOG(3cVzJyPRiBt!tmzFBFKd3Kd7ij*6>yi#qcr%hvMTvGk%!?Fp5m&+BkTze_d45A~-7<(G{@VDnZ zi7SUAA|{i|NWS^A)0%?-x56-iW#|ri`po}Ags4pD^Z2q;KI`R=AKNo_#$@z{$*mUi zkJysSU)-S+K~^oezm$pX-~ZAh5S4W<=8!qhIR57=VeWma`iLcK2_Sb1QR`vabMNVn z$W?$5xq?zf0LyCh5#x`;Khz>dG|5T~yU8L$GHS&w^?RE|u*$OEVU9e=4y|EMBgvJq z%R&37v}J`~TX1Klm9guR*J=Z7HO^g-wmq0Yz z=WourpF1YwY!(w3Z)`MPeXvI(U79|P3a#E(6|)E%A9ge22|qkK>@<`YJNfi*-#1CM zDm_U`l;?VGMvFTUEo$Y?lY5vjY-J`d@`j?p;F*5KzLnm~ZekAprm}UG(ydUr0>n(C zmCQzu@0j08Qgb!+I?3l?1sg51<9*enP5p$9RtW>xcS!7M+~;N3#DV+k_&u-NJ6;dn zQZsyio&Rc*`TI-qzl8AX0s`yz-CocD)EPQs1}zjmG|1 zb4E2=Yrx4Q!kh&TGw7 z=s6Nb`FC|tQoZ(MIex}=jHI4t4Wh`9#s>X-h2UPEAsJ6kylr= zrhD|DjIH~#w%Was@@S>mogB(Ds>#js=!HF;EY7ZuZ_t6k^l>fOmrzAlD zjokE?ih8>I;3 zD!zD_L<_4p-W|3_DO=e%CaiA3aRs zGi=icuG)q#m}yo-bHFx3{{^W?QGpN(dWk#MAkfrjq}6eMvR1#6pz;y+y2sTeub4Xb zDPh~aAo%sGR&LPk{w&Xj_weP-s)aj%x6XJC2`X2pg82PI_WqYt)E?g^UX#_NrqrDN ziTkADo6Z{bHnCngRy-x^3dxo*R>xp(^om=BV)Eci_P%_37cs|;f3Xt#15Ii zMZ9?md#7`*jy?~Z-bxfxZ9&aV59P^QOEXsIPRg)vB5M=Pr1EL|pCD_Qks(&6WxBX|Lt*)TgT&eEq`$0ai32n zwt3_6ZT>&BCjC`?=DF#la;*k==TW_l`Ew8E_*#rPXbR2N>VDQeg%rfIH+h4uFvOwn z+0v5bE6#cvV`bAtX9A@)!-%;pcikPe{}_kyl@`PsbCCsvVMrMMMVWBFgg7n9e~v-g z)Ssl|@ogI8dq4AeX_$#v^GIK`ZM^CyTJZXkA)jk29ATZ^@u|S(Mxe%|_U)f(Ey~?g zV`(;}Zq~m)IvGfo#{~M&Y>+(DeipF=NBSCl)pW|&rOHiQ>?0dM-mP?ceXcqGR5qB| zYt1NKfZnC8sC=f)w${3dHM64rr2L_%BJb22)m_JU`Zr2=t8hQl@BWsy{BEo<+_0Tc zY!kQeO)e=_E-0?B`NO?v-lwfHBw9$HpwG*EqGZ6G#$QpDbp(ag3nQ|c$ ziQ2??)Rxm|!zT_d|JRvT7)NlDSDdvUeMzD9MdSxP>(C|swDk)66Qat=1H-Yf28~gz zjW4$X&fV0S|4#1Tm5Fi{c)*XE&tYe^5ncW_wWpXraC=S%N10$WDv=a^G2be9Oz|g2 z#cv=vUQ@I~eJ}aM)gtn(vL-{+x54V4G23QWiyJ+QQ^x^($6zz%{l7s&2Nm+?{ZefY zu3K$S&7#!KZ|DmtS?(8j*gTK<)Mh zIYN_9!>GPPxczUPR}V!U8se;zzwqS~tF%4WGUN>x4?RqIj@^{8>GGK*{QtOm=l;0A zH`+T*8#Qihqm6Bw4H{!&+Y{Tit;RMQHcpd?ZQGMfk~`nuIp?4IDa`9L``UZ0YrWUl znWz&(qfz8OmQgC5iLt!w_eO1+mYVzAy%_D3Y+LFQ-9O9OPKL2aiHtDT2%6es=qJKr z%#2SoQVj*B$~!hHHz4np;r_Q!8wdBnY~`Sz`~*2yZ8 z*+E!AE6M2juC^i;9$&Bl#g~KN+T@R*s7lJZ&66MY(X}A&x51-l10j0d7nvBH0-Njx zX~>h9C_kbRSf>zK){Cjs{?=NC63yTXd$Q4D7bOBtbpk3SiLa*dnIcLe!X?Y>#pyc< z{-u}rO{U`R6SiKr-`9UV&jSQB<4;+SAV}4@tAmgW0~!3LulfczWk!z>z5HShRrRW& zSLuf3=f(J=(;G%&dPf3uSeD*()^bQp@ACEX+;iGEsH5iOJrCI-RTUQg29jIlrdauV z@t8?lb=V)IBl3gkNYu%v6&Kl$*j=Glv?pm{5vp4_If|05c8f)iMe4pPYZXz%qcU1R zw@_d{$tw{XZ zlU}*05%Xx|=K93ThkEDrtkvQCbavMM+3P7eFuzOCOBQgxF68~ZM?+6I>pFC^App$| z4!?mC{>|sjHWjc!a_*#L66+_qxLrX{pCC548T?4=C2zgpPFgjSzY3RC|4R z%+crU_0v;3zpPxV>*m{d@nQ2ttIwL3hVVPv!bn!!K-nRoCv}md7b& zKZjp-bHpaxpF6Y{L6C={!a7EQteFvMOF)9UPu{lAXYJdk_g&@TNs6I*nvvV2z|?gCs?bc`Eq;sj{Y1@oISR~kc1y~vP(OStyl#f z8ywskLH=}0h5?BoT@l+Ms2dg-giY1(^4WCiOMH!k@av>ir-?{P71D-j#P!CWzy1ie zy{oPPW1r-H=auiaYpvpX1wS=RU77MwBgZT5>dL@ zssZNoKk2Z0dUNre+|BH13FI_V+nkt&JIet_i)RvFCi3F;p%vnEe7JhQ&=uu*e={EcnB3kSc3=&Y9_|9w z5K>N*3jy7bN2C+Iu@pk8)77cEXqkFeVCxVN=O_0kQuINfzpz%^*H--5>C~b#Sa3n% zXTbF2As00im;bBqhS~l&^Q?p$avnd9-J{38)|RLjB|+mD*};-0KXSBuEAsJc5g%>{ zWnoRHO_Ip5x5C>m%uw#B1iLxq!+8ccaOU!T$@W6l@T%noQ3sK2+G@|+ziNvLL_2mx zz$~u|$w9@V(vN@vR7^XGxyPMsor1^4BGR5`?Qx!3s($1JPU$AQ2II|i7^=dS`%GY5 zvP*baRFA!A8C?lVtMZuTNM&G`(#a`59l?bS{~vUe9D8j)m=kUg<50kHEjMyf0Szv| zKGNX8yAZIZt_$PjZWQb1BaIoEM!Ahrj7E9OYUq*#s@}?I zcsi8yIY8A~Tb07d*Fo|$EM@~vc3Wfo8{YF-(Dg#d57As)u0xB+oH6;$^X>^|0?e(<4rM2t*hD_-D?Y zRV$%o-IpB(4W4!np3X1oY;eI&=h3O)E|QAd3YQYSCMPzG&y0pi%Pr1L0*}Sels=e< z#LGM(?8T>|BhlKt)6$OeKwq;D7_d!J&8=2+gqHN@mJxQ=Ba^IGke1yK~j0Svh!S_+$EStk6<&g_BTYA^$ya2Jx)eud@rYPU!%pQFm~ z;Y;NlV#X;O)nyF)xR%93kKV|a&%298XS*y$+?h3kNehRayDKLtxSLKa+OEb}SA=`; zj^@}(UL@VF#wivQ$Lax>K6{h+?7BOBmH~FhXh3*t`jM?&rr=OsV)s9>O}{Aol+|vU z?pt?tj7ZJq_5~ylDE5JjR$gHMCt&i!yHsVyRuU32s|K*42Ed$AW{H-fcY;IaP5(_3 zK77tI9A);Zqb|n`^qsIr##fI_D#YW|N?$4bx@T}6W~?XQ4>_Z!{$shj14kOLp;Bn; zHQHaVD$stA;W_QNpHcSG#ahs0pHB(mZ#%%+8#rd)xIb5u(-k)eLpWA- zZwOsZM&V6xQ?P)W=9&xVNqqERp0>kPzjuBhS|ELAwJt*!Yi3%Q32~v<#3QArBPU7_ zeL8{{wZ`Ek1+QIewz)cXwnu!IA_}k={4`i_-mqMicJpoEf?bG*WKUO~ZkBv!{+rNB z?F$CPnbe%?D3ZWs=-gum>+$;+WC-JeNNRp*19$5!c{e3I5Z4*5tOj>l0KM3iTv?Y-FDo z(vDV!p7fxr9b|)7OdFaw1;OX$?mNaom;f#-8mO?{M>-a-{u0t_$Vq#tw&6zY&)@p) z2eY%6(T%z>2YE-fh*I}K9W2s6a1Lb^^h(hit<6j^Ff5<55T+OPC|F6m8=UnZ5#k$c zXBlxHtncj(GrK5h>uJe6m<~(SYz=-Ew5$lfUj3Iui((C!`QhzeZ>KG*-I9E*>CDNw zE7|zZ@k_{mvvRCcU9+j=k6Y&S!unC8sLj;d4;~c;)4$k*jNN^{stYdy+&9bzWVMG&VN5^$2xgms3Aa1QBO^Bti`%5JU(BlOB$~M0_e@yK z?hRvF4j>+m^!5DP*NMd?X?dU;mYx#u(ti+_Dt^g)smS8<#ln8Ky+_vqz3b_U}Kpb(ueOo&dj5t0KH+G ztGipM4uRlXvWsqxHG6+&fmkYSCW~!nHI>&dV7Z2EXT(3oL}Q|iI#dHNhSJXk2a~*yvr9hz;57#-5*wx)-t6f z^do3a^>fo-)73}UuA&!9PWuht6)PGlHuvreN%hQo+Dnk+ZmCUF-Ke?oRq{LL93VUQ zcrNV7d^B0zqEOFK3p~};4{5cqUoIZ9`M4X{ow?nwhD0yvD=qhp)@v4uFIRb|vB`Ax zY$s1MeGylVY1#Bdud86HueNj0&?fnZj?J4KVAgX|OkJr&DKN<~((uqgO_btt-Yp|p z)SU+NG@l^VZ6VPb0EL8&5hR5h_qn7BLq6+&4fNxrQD0c?-P}K@zLhnyiX_3p5lNMq z_qb<7p9<3p?_oKr&Da;2%S5CglZjmltjAd3!eF~FbuxU|Pq2UUpUo79I7 zU7C`*i|}Md6SsT#XmxXf{S)ax>Madd5o#YxZpoRqHoUDI6lkIpti~!a8$REpc^n>V zqSK;sMiBc{RkrJ#Me4Na3&Cj?wDjsyF zm|or1xJ$)2=IfjdPlcZWOk8HCqIyPc8PSal*bPX<2QxdM93VNra&|*rQ+TXdWrby= z%qZrEB&bPG4nYHy zCffZW|MD^U!(?Lhj}6Ywc`<2~LDmO~gx?-{OKSVzK^zL7d1`~L_Z37^$HkV%JDIk zy=_d}!yKO{l%Hp8B|lM#`~U*4m!*0iai)b-Kx{8(MJ@V|Vst}Ix7Tq3*!)X*;IpFt z#WUvF4uu|Yk%s%N@n_FkUipvW1aeJ4ts(;&;HpKWY2&Y?Cq@mS7M36yS4S3mDL}n! zwn|(#&M10#?2cQIm*?|d<+Od!?V)RKSO)%uN%?JOdbmy?QHj5}bo{5ONF|;0vG2o-iC!vDsG;Ckk5B-1nnZvM zKJN0SHclqA%(ZWOcV@S98vq$&#{Hm?Lxpjl5cu~aL6HA|eVmk@383zr^pdtdh+>L0 zjkO8~od(f@tDM7==yuSLeK;9gyF*{z;J>prY&$!~V=wEB{oU8NQQ3s)DUl8B^3d+D z?|K;f+WYsKWcZ{i&}c3QwyT`(W|6cT!!B*Hwct10n`M0)-b0lp{RTmUYGyr3^s4B; zlm%0h zd3)(|H#;vVkE=sA*cuvBrn%NxkI;}z+-HV}uZA8ho9tS*RRNvCswr01P7!t>E&1>v zf}peTF7^P6zUj!XY^A860|Z@~<-R1Z6l1IV66KT5=si%2L72?^R0N88eEiyc% z%UV&W2uUI#r3w4XDFRKCrcr2V`!!|}&v{n;7N%DQM?&<)3o~Q-UDoi(UhD$h1lD0C zFMkIM@|y8%ZC~6aN8X2^i-Q+7t8;mc9X16~b3RO+5GDfh;1{+ibU2tev60*!cI6iB z{?a5NG9*Se(6`NqaCq#hUp-~&d$48=`bo?j8m1Gkek%X)-JGMjdM}lVi{r(#8q?vPblr~Yi0jx1KMGrC5OGfqel>bh0f#E!H>}Fw~sWM zq9M&bb)Gtxamer84LfTRpNlyNdeArQlsgudPd*%P1}LvJ#r=Bvyt?#l^Ao7Jc1EOQ zssu6R&&L({ZAPgGAXBIR>tZdKlISm(=B>lO=YqP*yt^mRDcxa_oBI(T6nFzbv!QZffF( z{Jok@#$uAquzQuh(3ipdNI+_;u>|%m)p%jym`9@1Y}EAz)b-7TI!D!O^N&GK?5a*9-%Ylw?U9s5ukzpEZoD)d?9U*QQ+Z0oSUb4X%oxR=n7n;z zjO3xJ72@?|YO(|#9^xL>UKP;S^^y!NdL%5y`o>EAu~xo}=+a8>z;k`$XH;Nv5hzys zGAf~8tFE?Q5oe>+rN!x|eq0n~dMQ>Q9S`8@gI<{oe$gUIq95s=jz9bQ0kAmei`?`= z5k|&Yj-_+z9SP(Ttg|;TxHLvv<7y?8n8WtUplWc^%f)#AWweEcYrZe?#Zk9gSdERE zOEpNyPbjG-w_f|kNaot1=2M6LWzPEB`|pn?YU%4)mvyHb(@4$RSvjtsQ`6W}wKvNz zM!N577JPk=x4ga0xsAAht&%*xY`;9hz^fi5s_{_G)={Y}R7%eM2aFFDUQX=q# zU;7;Twk^(;A#xMbfWT8~P%0y7msyA7C9_DEi^VJ(gUQR|$2Qc(x1xh0#&wRSI zQ9v>FxhqWXsh-8y*=z9j))4ZJ!<(ln?875^e`@M(Zj`6b{=nAi&8x}nj&GweMO0Y- zc^W>v==SWSvJ}eJC+Uh#WvD%8&7?O!9V7d;bhJZ2vu9l?{v$HU8iiX`n*^4c9xn7f zjmI1+0t};*hyfp^wM=gn^fZlquQ%rH{|p&ru#8W^-O zVHGvoOGUTtyP-(QA;fQa$@5@tviYPTPfHkU4}F9Yna7~i7>XAASjIUY%U+Vk`;BJGL8@`AYzQc#ph@GiYg33A&Xzu|rr)|q)ZqJ>`z?Dq zYPaDrH%g|;}FG!Kije>ya=rElW@iExeSK6tfBGClpDHF&+;(B0~;;|N(MO)Q9N+yw-& zLfV=B9IRjbG0?Jf#G|B$zGVd{g-Rtc{DC%J$ydP-BE076@E0NHmR3#_I3Zh^|GIhf zWutI^dcRA>s%{cKn&PHO+tBl4=XfULTI2{|ee!XLHKOlU0wsX#QP@rsk@&}+17D`Z z7zH6J98PH%cxl8R;D;(weaoZW zsw~Mi0XScu`%s*aZN9cH_ea7;G=}5DX=3M1qXtR9-@lOdoObm7)XXHr6ZB`_V|qXH zWcud9?B{p5(#}OTR3*!JO)gi7gsun-H1FCVg`_} z)Bi7G7GZ{hlXk{|-CqFRzC&k*;P>0JmVoC}h}}S>sGzTuT|Y9tgVq0o3{)igF0^eURh*6A+WX__BSi8K=cfGP6k@U(L)8Es zchoq?^ltq97cB7B8(}?W6&d^(L))#f!FS?dL%NTKC^_nuRLKpk%614F-QK-QaXL-z z%-Pg}x2GpXGF1+pLO(LADMlXQ2|p0)yw>`vO&^K_*ClhRilku5R=co|l&jD;V8FC1 z3HNa7)O^P>_c^2)9BG^SshrJK7f>a#$h3H#c39i6FX3yI`EURqALm(Q`Yqyy{x-C6 zQm$0p8<;7yT61!a46r{5QU`sH%>M*}UWVbrZFT_;RM<>()TA+VMFzOK$TiyQYY$Go zNV2y-MGfHVlo&h1y#2^h!J^IRr)C=*rOrg^% zcfyL3+5tOBGW#jYHQ$NW?R?}D%@;OJtsd}-{53_)(>=$|OXL0_&`VY>4Vbg;`w>a5 zzd||d{JjS`W}D^WAnbP2*Eo#=a}C6DHg$csi;SKjAWf#_t9F{epInNN#PK@Vw)=Za#T}4v1hY()3 zR^MCp)#Re)WH{Tzi>6K%ZO{6gHxyhqlj7y1rqCwdNtTx6n?q{milCo5*y=fk@$-9l zH*CCzDozyF{6`%`tAbwdl#XG(Wy{CuW8EyrX}fKkKm~`wPAvw}nRw&kNI%g`U9{u) z=9p+gAL~dzZgM7A-_QYsg0yE)mcnklXl1wNO^gL5p7E3k+J|fUViP^**_yw-|BQuP zC1=3g(x^$$8KLXF72!d&a{C^SpWRmWor`E*zACGk0u?;N(&}$&6X3!4vUhGl{MPya zrZP-C#!=dd4fCc9Mp9LH{ePmO^<55hR-o@}>AXma>)))|_1%xLhl+umt9A{ykSPY( z$vmAQoubEEMf=>eruI&Q2!EWKp4|O)adRniC9s-WH;zz3*RP~JYAD83nl!WZaH-uG zoA|9((qk_69=6$^0J@Z63M!5nTm(;4)T^+@KQq(idVAG{kj4zPm-;MK{nmfGUrm(~ zHVf0<0T#E72OnhtdEH@`UP-B^M=dO}GS+l14)X5QN;~=1Cj7OxztCYY-wf1=&&WaLP`GjZ zOo)MV0r6jka^NnlecDR%$+FMG#_`$W>3l`MmAhB>*s{9yR|02QI=uTBylBC1|9H4C z0)%LYe$|+R*B{BI&P4-b2J!qv#Jm!EJFCMS_&X;o992Pl`YQl$e=3m%YPt2v#~Z|_ z+aA6_lAl^T>Epjn_`lTcEmkd)@c;(SC%>p>gB&=!BuJrkWpy4z6fwN^*AAN_q@|E{YZbyIFkRK)cH0r?5#Q( z{#F%xscvNlq3&#>da##nFHMtBl^^2|2{D1QSHLzG$ViQ^r}o~ai{WEm(EPZR<;`S>_5VMeKe-*I$~WY*(? zoO?!77TJ^~_813l#antvQ9_V!5-(9cU8nxJX{CxH;b{TI#XgJVs~i&)&&I8N{`5-m zxMiL&>Z=cie(z<4Q2&T4f3X++Efw$aA5O&j>wccvy_)*;5!dZH!!a!yZLiCB;0;yO zIjaDUzx*ytC!uYY!XX;L`PM>a$J8;XRbV@oGLN(x7JX+9Vb@IMKADJFuPnLmhb*@M z+kveeaiI2IHdS%9pX(5k;bzHCbD)+k{&L#eL}CS=Dg0zihWJJ4U3m`X?dWOiU^WAR z&p#}pkge_ji`0y76VY+;P)o`S?PT&^;v~8_&@8Ul38(eDm!)+)j$S#5Dqrel0!0m^ z7eU&-JQxSuOk>!P!d+!VX|n@R4~Y$+ zt@?$|fBS`zVaATnugBbaBgGUQ5N6uA{ICD-Ii5c(gNluYJ$*w}G|x(aR*Hdnf}T6( zVpm1}@907*#>{;=73x#92+GC}c%1VD7fb6N{ZhLc>WwQRvd`)jD1z82>KUF2{?rFH6@F)?@zX()w~%kEl!dMoGn2CuA1PJYTJQ03un~N9b9gn(p4` z;M4Tm1O2ls)SB??#Vj5uaiUtHF=$E4J6deu>yfisGL_apwESqcZ|o4XWe8T2o3C!_ zLFYm083Pk1+73x%p7{&Kn4;V)shFN0#^5jZ9%`0eo+JZUqQ%x@pdQ0h=eJV_N(jJ@ z+|FEhY50)qIBAOkXo|h_j6CAegpt^7I{(#AeDJYD+c}<@F7tOsTR_L)W0dP>^A7q> z43qUoX%{;hH}Alj0*N2j>YcQ2y}}DZBNbpmV9}4W+rzNB{mGUKsWb4q_Jhms97FqO z0fu;PO%fAd4}^l-?fN`OXO3b_01#C_A)w2?)qLW8kkJ5-o4On4nOO5LR~fF4o>QIV z1d9E4K-J2r;?a45giI?>nQ-~o`$HWQSEbS$Mmg_1dx#@Nd(E&BPe( z*+^ybMit$_B8iOt5y|z*KTeYu&o3$E9RI=G_ z%$kBioyBtQs4_sus%Uk(pTPg4+hb=H+#z2}+UnYaYzQ|xy3EbQxX|ozHcKKXXHWe5Pu>zljZM(m56#w&F2#`rKJ7DtT7T%8h5n1`qbDr{T){AQ z{oTp-lVDCC=13q?6&gw#sw2;Z8N1jwcLajtO2j)!$%tS&c9oskWdsE=HSKC|xvBUA zWbkY@&r$H4Y5>>}gy-D7!%bI$n}tFhE^ST;W7%w{ahm!@&1H)YJ#QfXjYovf>3S(b zaXk9Y@H8WBl%p2|nmnwIm_jBwMPcZ;vQqL`8Jc~WhC0!D=++?4i8ZbWu9v-yxxy;o30RC)fz99q!|4=-8MyFM6g$yqUpFk#c(Z z1lB$W;tZw?4JCTOP+B{!lF5H6;F^>UjE5F^j_d5(++;|7eBfO<+{b&N3jEp@mx|0U zh+k&E6)m!`qNx$&wrYH=M7MFyjM*tUIC|RS>}p*KVWdxtz>fLMiKWE~G5gIWi*rY( zeT=W{&Y5FJo~fi`!Jsxpbv&qo0fG{e|axOairy zndkY4TNA%x!Tvx0!Nc~VF-{TC{d}VqS0nV0j>}{o@=+7(u9%2!$vs+X9~4^a#Cp5Q z$arABXULFM*nQD0;l>)ddamUAe;tR>566MYeiN)0|A>wBS?wwt{YP+E^_%+J`2=_J z0Gpg5h7X?VgU55Hy(+wD;_isWG?qt|QeQiAAf;xO06*;zt`Zw;XQ22@r z#oIpBgTM->0(RYAhbg)j>@xipBQ(8m-c=E&j|FNyZmk?G27ahikzC#)$dz}LS^FbL z51AWBu2O}dPXL*B>PBBVI0(Vj*j$g(+qWsSEYfSUyOLNxFFN;Yf~%W%0Dp^)(<;|A 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¿Ifq>pa(id;jP7w{9~0@*4P#k(|c}{1Plx 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 z zoKCtL*wfe(TT_`i$lq+tc2OcgZ99ucwAwxvSxD>{7%CIUfyXU`c=Xud6a>i$&ph5Q zM7*T8JbMH-HJFI}q$%^5u1*OgTDmypo3CDSz;I&;Asq6%=O$*QllB8nw;z$W>b9<8=J}5Qbwu?ItMAnzfUN{F_QaBLJo^ zxznh6M@#V<6D)u8dd6_;J6P-8tb979tZnt(RY6#%(Yp-vfbYf8KBpqg zY>}*$kx}>tVx}>#Lez8}hEp4lEt;deW%(V&EDFb$Jwt2-mBCI!`&|wdL<-i`y11TC ziM$_`rdJmmB!~)^WcA6q*-$aagW7KDFbwl2huDhC*LNN7R&Y4ps%F-f7Ol@bFLNF| zo?0W#iER4v;h5#KT$j;U?(Xtb!QyfEEOFB3`A_Lt$QqoWO7#jf7X(ipl0colQWjxW zlmx#;UWDP6O~1GGkK9oZ`4;Eqh^H;#peb#iQ9)!ITr@LWHfJTCrrtGFn7UaG3ACxP zzN%wN2v?pld&By4?|k{gBF9^PaN(zeu{*X>tkih=$V^#vWC#D6_S5}{1k2qBH|N$X zO8rkM?{Qgs^{kjvPm;As+pCUc%YCSoaI9je>b>P^JlPoJXbt4H&Rf2+g$YrFyL3kk zmq#c+TiS^@c?2RIYjoN*+88+FbRRo z1-p{=-SIVfThcovSRV8ae61EF4v%yH=QEb#bW?KKyq7Pxrhp4n z?f)}{Zep@U#r*R@+m949Jf<01Y@Use-jj~h9^0Q6ht=tAqlr4g{55G6jx$(tvO_-J zD$7C&A#l=vzpEK^P{Ug$Q=&BXs|cQ;*Q%xyof2$(u0-C+=XA@BD1pipi_k3vrslG8 zipu@wA!*Ic-iMCkNrRS{7y7-1p}xT_ZNj_mKZ~vkO*axRcH6ukzO4E{QUPt~&<#rg ztN#3*F2wz#q2oIbtx6Srq{GpW0A265oU3;j{)WFDws14L2qnLiGB5Na#6xDWUpu~5 zBbXKIfQxc&`^SYN?rOu`Qo0Rbo^huY@b8%{s?V74zEdI&wuY>#LZOGQJ`RhIvG1EQ zqx)ZfVeqY*!Nvus#u49$H-SMkHkZnX!pz7hjt9L1` zu0t#h>g!{{pR5VYpYvMAW8)iZ9*SjeI!UN6m5%K|akDN?i?SAlwzbn6wQIA%s!Orz z|4b@TC1HW(T?bL55lLK4DK6&sUlr z@?Te#3Casr@n3D;v!i*vOf?$RHaJUpsxevfy+leq4;0+BZjLtFe2$IBwcUm_1aT`5 zO0F+JD0OLGfT}XCbPy3y{m{956BVG^Pkw))s$9=&HRS#?X7QL2tFu=VpKjSvbOvok zzg_Du_B!n?ZIel{NFF;bjvMI+4n6f~E5gT8(vLKL9dalsMN9X5^}94wVO9)zTgRNV6%@r`kDJ^@6N*t(CGW-ACe03)gF+|P&zymY z<{WyI-F;3fa4jgTz&$T+)a@z9x}sO>6T3#SOF-FPR*?jr3v$mUPACf(~e z>7yhj`47FP{gp(qfNDR{0j}@r!Lx?PLw_DfrHqY#^H|I6cjYcOQN<0F{SYzO?{27| zmF>Gnr|{sdyN{m3c}XnLCNkvX-Iy%1<+=mdyXdo}#!)lks+x0_C~r+|AAq zVA1azm+|wM)`6}2;@V>k;(V(~r&p#EJd9s|KR|xU0(E&Hi7%n8p12*Rh2s^PaHZvQ ztK(fPL%==Fd+t&cLL`Qly<$_Ae=QdF?`~!}S)H46jShWHkz?LtD*0A z!Uu|f?s*ud?k&h=X}*^rFFo*gd<>E_wwK?5jX15Z{|;`>TrULu{i{|JG^?%lKvJ;j+$R2n@l30 z{?dG0Kn)V${{JbFve}~Hs(gd4moS%lykY8&N%`_t)o(xS!)Ntg`ACiAxz^>2j z$r?fNAVlcdX_YJj-<%9qihvBl@;gE=HiXVp&u+jv{E@!Nr4fEf-O|DKdT<$sCYieZ zt+u62W#teZ+g9}5%h}%TZ##Q}=S`@^RH4rq&4K)#WAGDSn<@9(m6!xHQ;7Hw$;;!z z*(Va$`K#OR7ana6Q75JD)>iyEHsX83-`oguze3_DxLiDsi?Pt+*&>yeow;7cDSmC^ZWcj z+k~6q_5zx|RhYep(a-g!RtJfD@fN5u`gA3>6VscV-Ra_A8+B%D15904w_4N}$sWT~ z%^+6gQ4+1tp-boAG)0bD55nWW54tAZWI&a8u&S(v6Uu7dDk_uSd6Vqegx~o6XpDEAr9zAu^GuHe`b1hn$3(}^mlHlvw0XyK2oL<^|G|IHfMnt z)a-_FO?>AqSTpU$4YPj)9;1oO|MN^lA$r(j^J-M6OD^|G+C7m5KQ*TCbK+O4LC*wm zMlp}hAM@NnNPjHAMr|arzMBkp#J?SR;?Icy*+&a1h(5x-6_Ys7_F=J0?{cI)E3ZEm zEJN^aTzN>%QbOKvQz8D6d`Fl_oIfzpA8^S!E;anZv;K$A=gK2owknH}zowkdWc}8t z{M*kt#r#HR1J|pwsCKuJsBD~2bwar6PB(b%m8NEXn}U^CHtkaG3y8>bLWghznXe>qIplyY8HBxg?ye=CbF@G~Su2&wT>p&`pL&-)Pzlr)= zxCHNd@64m1!7sAL$2Vt~NBxQJX3nA+HmKg`S9Sf+g0leyHPm^A*VJw301HK(52B-g z9_02jrAui9DL%y%G|*O+)GNDUIbIrBFQDq9mlfX|=^2AA-HBNJ*H%hr0w=&%D&)=h zjbt5yW;amM{sa>TRdc(gjZuHVELVGTdXxU3sxE%`L<+Y5!b`=Ml>Z%dY4WZe=caex z2*#eEF4L?h1?l3irW@QH81h>6;fq!@JNMVz+tG)!?kDEPcQV{99<2mEj!KM9_?N@BO_&M#c z8zFMGbaNhjIh79k4Kwm}a`N|zm7*k6q;Z@_2|l-SI`FO6vXPi%L5d8{rJLFNv;U!T zsJZxf{vhcYhP&;O?^Rrb-|#Kiec)xFLF#=`x`~GjTT2M7j+<6&X$eGQDjMw$^ zvvW)Q5Z_Nqr8jTL+8zhfWNF*B*E>~gUk#ms;`vrz0n#B4&alkLQQg%=4|EUi)aFOZ zDPc&|YEehgs~-G`qH`lNy0gXM(Y5^`^l{E03^gFi=+pWGjEd$96%krUx>AI8xS1o% zYfU=Dpp30|#2 zPkR%l(qvu19l=S@t3n2bbXA=6r#$Za8HcoPynM;Nf2%MHysR|0MftToQ~gc+%N(@+M13*0WiLIW zF)GHZZiOA}UfHH2NU-?EbUytrbeTd4>>Iirc}*r0M5lr*Y5W*TjEvM--PnZfvdpFI zynsbgF$pZ(l)>|kCk)5YK?2Kd7CvMz5qB!3Nm(J@;FN+)bAX1VPYJ706lGqiqzDUm z4^DOOu8Vl1G;9Eli1Fh2SJG0-*zo;L6xA=fC0J)r(bMGQeY-H^+h72iIT=EZCeJ29 z?dw<*tcB8$lZw4??zSiwXsYd7buLtb)b>< zN#qjTxS{0lg3DSK^Y#z#j8|gSkF^4p4-l)^E^-|V!ynM|%;A82; z=Boz##BlIRqCguyclIbR?u#@=F>0l0N*}zJ!lj-zT9H34SU%SOO|?N+!W_RG-ilU# zUbM-wN^c0+MS>sfcd3khi$g;xldNBfFSPs2j7M^Pc`~B^=I@{YSad+sa7f<~k{9TQ z-d(0O<7t=8+pbv2!yd)WwDDh-{oUT`*OGSdaUJt#`}6tdRTawe)*WPBXr7)$4Z=jf z2Jthnb0I+aiICM}8@(`I-64Is>vINU?U4^^3_o)Xs>QG{|GX6q%iZGzJ5uNNY&ZA)gnVC!x|1!!%+|9-rHj?tCLP5ny>^5Q z1og=OLobDPyna>o`W2Lv5wRkzF{8HH9DgtEqoVJrLM+HE4#bSkzUF0r$I+>N<16^A zqXhGYB<*Qtm@YN?z0hT=Mpxp;XByrJ;8>`heix>gaCDrEs^QE4p6=1l`lBlh!D6mM?col=RA(G6PNqpjd(H4i1o z<8RJ*9P;$*H$tyUSb=EXxMBYvPV2le3RR1tAQh)l*0SS@G8zv)*=cq!H_Ta(3RLe^DD^txgac4xWkJvFo|0cwX;bPCb4+vQ3!pI1BsUF#K9 zs^7y-0L`2njFjjhy!akbN2J3HIHdh4)ODi<;Yc>d98>Y#P=zr2nDz;|iha?F7R7w{ z9|BfFN`k<*0k);R%UE7#CZq#ew^0U4ZP?vw&el1KkwTIY0+bZ5{NT zv(L@VzH*~2Gn+xrpFV!n)nHxHeq&aiZ%11zo4EURRYk?vM?@%Y^GYS`Wb=I5h+RcM zKiG2jxtVW6xmVJzoFq&Z$8ni8Ru}lOxAP;utE>CRxNg?>+BO%uuXTj3HmP{rr4Xpv zxY+&++2ngQr;~HyGo80_$J`Yw9|a6dzww!Wph`D55z-JX`2V@n(TWm{!fHXr_r|tzs+n|YkymsqRs^Gp_|uJ3@{bl72FMqu0=L-jQ06WPc$#Cf zau4s=-z*CqB;PN&oZT-ViW?L80s5n>Bs;PodmiiMpdwyA&oO+qoK}9NgJQ@R%0!PM z*SR*1hGSg{^0oDMN)n_i!V?QSK)< zh!OkG^GN*FARlQw43P!lPvrIB&K*1me{TkkKY6tPFLe~H^Tk=2`MqF=B+Y`7jSK}V znz_MP=a}lv$Spsvv`;V-R`AQ^w86iUD@#YZx*wrRB61^|fyOv9%6ebT7qpU_M!j)# zv%RUAxy-I&d4FR|Q7s%7|F)eVvM>xY^7VX%@mKCBU7m;2Amp1wE!*=8BhFv)Am6RK z$|AMnIa9vB<|bV{^YcVIW8~J-UvKn$z-+Mi+;D}&o>wq#9z{`=OQ))bTzltxwgB^>!1F#D<-7!!Najzz1PhD&7!0xtTNEjpl0#V~M6{ zm~+;baq&Ek5@H$w&o67cgh`OEq^jtIDFSJMgy_f4s73SoGRVlBA3jJtqRmj9o+Go8 zS96osQxZd0c9I?uE%Iq5O*&}p;agABn4 zWgI3Q3PtY@WmUkJ@>6P8#>QY!^g1f!YO3P5_ebKsqX^&Y`#XWSJ#?19Z_MwLJXxTd z>zIm41Rnw+|5%n}b0%Gf`y)p@(1?rc^XY^& zkl_YAZRC<`v9@>s!%Z0}91J^gk=r7(WV2oZg#+`dxDbUpQB0})g00BJe; z)sI}dQ5gMeLGr1WT6%IrJO?>q=NDO8(E7_;WK}{;i&k$e#vvyYrxwe;zuIzamui z%5tIpq|64mFr@taBB?HzVW?SqNOtL{6tW|WeMdFS@VX2i;#1g73o#gdEiRpKFSpxn zbodjJdNdu(G(VTf`7*am^T;SXOgHAOc1WcHEFeI&RN$X>*wrj4@rQID`x2>Cx(L-* z-@-SQc{Lx z@uxXe#q-i4)1zGl>upJq4$CXDM^R3$^53UEnGz00ape-9#wT)J{yhH|+9mAwE$B+?FCyUsYf=krjxYLn?Vh&g>>Y{o z8e-W$MQ2I(LaF_aBUppS-_NcmD)4q_zSkVB(!4l-H!Yf;A$!6HzaO+!epYOAJ{ZrR z3|X5giZL&Y^tPZ8COcJk0X^zA>!;@Q^^l1eAk;a`W@u3wDzDzjzm|mMzu@!DB+&!} zT4yJ+VCU<{X% zTTzqHU>>HuK*Pmb|^&jLRk?&q9F$Q zsda#(O$ic!A;xQpuI_AsJFX+v*UW+AFgGX}PaT^Ajh?@}>GryjUcxAYE@T6j*JsVa z5VWT4JD$oPN@+(QVakug{4UdOJ-XH38IC;w!BjF-oF5?YQ&R%q2vOLZnO$P}pG&S4 z;QUt#RcFy1xM@A#cmJiAI>Oz>R#yt!QJAZsyFwv_p&SM6D4C{Ezv~wmrh;67S@@}6 z+@_sY-U1mTzU&?$ezf5?f~gR5`m#esWV(CHW#+{G)^Pm;<9WHG*&;gm)7V`HwVzd+ zdS|{-O@_W-v|m27vr4N(ys|94T#<~Gf>{j z$_j~y?%$mKV4Y{49`N}~9R0I(28*f<4aF@D&YiSSKj@pp4IJ-iIn_SOQ_U8kG`0L` zxmoIOdu76o=k2S$dmkZd+Pj`*9^H2B!E{+M9z)=%cc( z!j{2|zF9wIlzO0RcmLZt%Z$MZe_6k68uG?t+nspf!&%AZ38x9^pIP$bLe$FS-!@+H zhJr`5lX&J!NvR_Lw7y5<;1PHybnhtfoy(QJ!`S-yOR{mNk3f>NF)JO0emW%sck5a2 zO0H{DCs%H|KK;bnaJT2Rxy+5PWv;0-=}PY2M*2pU+=VIPoiNEevj@}@cUJRuIR2|m zKyA!w9&O}^+b@SW#<_H7{4*3{z(SLyZy9n2a61Vha~Oknc-Ia2a0kAFijR$e)h5 za-k3F{F39$jQY+~gk7t5Y&1XkoAqWOX4FHFo84))eWPge3a@dG`1|hTeuZt^E!Gy} zL~YvCyTbuB?`l8ei5p!Ve0b1V;kRfFbUac#ETaUdwwt0|)}u zebgT62*sb4;l;~xY=glkFz>Gdrly;7sgN+u`oY{jlbh0_$I~EaTvst;#|Z2t?9-~d z1qB!`Kv|QY_71IM)kKt;lx@AP40M{B75MFRVbl?U(N)fPX8t^Sh7-suz;8Z8^^Q<@ z+tI-O=$^5nRjw)`()y!Wci{GEF!o^xX!Z9%m#BE;bgt_VpIQ5``Pa2SH5EFq`dmeg zB}vGCwvAFIf$K5%Y40@}U26>CaP(KM!ZDo61RKn*hkhXoG6A+W_sGguupc zFWZJ(hs)|V52?IxxtnAQ21DC$YAKy6x_;E$>=J^$5O&NVU0&r~8 ze!Gq(!<1Aq;9@@O0-4dgZ&NxWbg|lEv7o3@!aw;Vbk^;V1u3+{bK5(}{A!Q)?cSTm z;L)dJ&{p@JgYEO{#D)9y=ChZI)6dpf{*)~A@@DX5iuBG(0eJ`0uy7q_iv3M1f0g}` z0sC0A*h_jzSVy6G082O_+3}syUqw?iY};QixAq)JT(h9;vkV^ZRoCx@hv3L68MnS^ zQ`A-V=3QGoz;5Nw@u*Pf74W0_i~i+>&%L?)L;7#WVcM2RQ21nwvW5k9LlDg(F&>kS zz}IUju76eArIP3u^Xp;yJoF%wD<-@6_uasyu&E(=nK-%OND+sE>yn8K*9HKf%5_LF zF0``PQLegioJ2D!{t-h5J!K{@LBxnAa*Gv5zm55w=ShIC+XQ9IFEe0&V#E8fGB@CO&$n( z$`g(TYSG=y8;vr`(-}g+H6FAJnd9Ggs*0zNz|R6V_66HAX8#1# z6&00oWyJq`q>*P#%@vv(v9dIx7uLG`gx z8>zexOg5o^FwE~c7xZk|QPSU>&^e#4Kr;q6ysnyf=~2DZ&s(NbFI6n3B#f{gwR-r4 z*vBa#sblcm@Ra9iOufSPi+{$K&VrisR^vA&AwO>3?bxKXT1PHsqB9IOjh{D_1ZbD<(+#9hVMBgv+9=u^cMsvl@qpj%vcg+@c^AVS}9Lz8ris&`9PjZBZyl)zt6P}M;H!i?XdS^(Lxsg#LFMBY)uYMhqKpl@& z7KT_Sc;kZOCh}Aul+Vq+6OW1E+#!@Y7{C3V^?w`Ct6(SBk*udyho4j%Gv3`^`*56Y zU}GS>v8Q+2y+j3&p*lA1Y|NRws_| zUFJFQU)p&pFX{hzThiy?o83$X#l)Y66103WTb!Z2_Zv!?C3g!%%khL%nQODq_}P=( zmSH*7q%5Jj335XRT1pEEkCnig5T*K@W|HSvX5JPA$;$*6+YCubeVwmHUJ6e*PvLw| zO->)yTYOfzEhXW*HC|$LAv-veN~&CuK0-UFZt66ljadEMjJ|+(c2Hv*qM(5%V}%6| zXIMV`*5QtOrIUweHo25R2=TAZ=RP9@o3yC+ROgAJq@|jaz2`IRDMz221urY)nvWN> zb(85Zo+W+Z8&kZ>%J<6>?Uzr!?Gk3vF5xt5N@kgblg@QO)3e6@0peMgu;}+L1CRPY zs?()J#4=67&GmBhb!;o=Ix-QP#P%G+Erk%;$q#dSR|L>I)kLqwQAl4|f@ z#Dd7Y7X%nlq@XIN@q1M}@OMrjTz$>OX^0rYTpz zqyp2L=pn#k|Ey4m%SX*+ys`N?nZL2GyZ8)uDjzN5f&TomG7c;eOiLhcLRPO}f&Lur zV*g1LkR;qqD01Lu-XvrH_}95d^L?P6yjXqFvWlXc@#*l7yXD!4eA-PysF!0F=)+xs zzI>rjHC8Ywmo-$7LVwc6CgNxMcvrY%p4FBHMPDOd6@0JkO>v{2E5~EmCBIcKg^o9e zayx?(d1R6z{gwh&l}0!Z3+VjWck`#}z5?QcBUH<`8YX^otgf8GK?XdznsS3(a;L3) z3d$%|Bx}T(JL#ghoFoIEPtvsn7fa#6v$C za^m48r;p43G}1n3ECt8DC50q`1da#i-`*2t6ekCI<)!5dGjiwg(>BMu)%}utwD!`( z1b;IX)N|JhS7L?hQP8r|WT@nmkT2KF@|4~1tI{81PRumhPmv|_lLyyEy}Y9xISA*Y zo&Mopu5+JcB)5}+Pv^p;mMHwvpOEizvd>Q-5q5JUj8VWeL`7orS9b&$8Tcm1tQ0Lr zbC2jtc^M6CU#q0t9S{-5GJ7Hxh99bvClFU((Y@pfBoXQU!BkOuvc!J+96l=)yn`M# z+D>toao<-fPj>lr_jqq#Nu?O9O_>?>Tp5xxn^5wO%zZ!aQ1a+8_R!*sdT=}MXPn7{ zsYzWrH%@YVHj#sz+;_?1C_E`~dzCaC1k3$G;ThCc?pC%wJPQZ|ze^R;i}QV6P#b47 zlv>Xz6&O2wq>;%7IywNj)_mKnr@Eo*@>;du3NY9(V>^t8b||&Hs!?8gRvoZH6`tz0LRy|VC!0zKa=r> zNe(&jRhZwz`8k`)W>x{uptnnvnybw!Lmbof*K`#w1*M;w%bE#(!^U$Z52G7XjBH`~ z1uJw0sSaWS{3o2lXQ`X-%m&W_?#*ttrpv7L@)X)6Q{?Zca!2uRd+OX14KsSMvE!Y7 ze19vE8PejN+OG5ywP;N)hESiS=74p0q`=_WK~XBakAIPR8SBG_?kh?@SjE8~o=jo& z&Hu9PoE$LuYJ&^Y^i|;BEX+atwX$HlnsfgU%kj_$$&nWZ;t@kRRvCo2jxu$2!2_ zCCdH%AiaoDq|5ugru))wjPu2c(6qXGIj+>Ow%f+(+h|(q6sZC9HIY4{nmOdq`Z+M!vF zH&zO1O@{Q+H&<{jgn|waw=n4^8Zm6z^fGaq*F7n@&md5tHpv%s`$I<(vkHr^Ru){G z(@D35Yfx~3{92-dkQ76DYoHav%UO@(gs=SeJSq|WFF%@g6(o2&|g(( zDLFs5=a>C=;jqe?)OO;_`+Vn^&4Njlb)W48Qm;=) zLD|oKy{d`D^o^KCEt{N$J>5dsPNZ_Q4m&m6HQ|3MT=WX_5xlj(t@r7}QY2OI!_#-1 z(QZV9Jz%*dC#(8LP@8QJ z-nPVEdneA-h6b*mXrOzayXwVD0JCv+lH>L4b(-@NUpCeNx}mVJRBBZ+QjgOI zTVHCv$`O}_ztK&gS|?K~i$0hkMm?d`57?!zjy!VO>}TMVehI&2tRc0mj@;r;A3Ehq zi7|ma7`&)%KY>=1WrB&6h+Jm~Lab`U-A}@7n`f!9vKhR8Py)nAOq#D4MQ~I7y~c;G z-4qfz7ZgmDlFhvSf!7Ic#l(;guVT~X>Dhh}!1b&`!s33s5Q#In5*X&1+n+3xT)Jke zfoC?5`B@4}95YB%L7wmJub=nsO@Y^Xv%I&P!E3W9X?CUm0ysyshf^cjOF+WTpy@JbX_s?v16a{WBm_1A@b&$mzlvG=UX@b+lpWM_7j1SsW(Wk51k%N#QMD)YTf6r z59=^~c`_=G6{v-0$MYfbB#ovQ`s^Bc?*jcR0G&Nm{DsFZ^>(CApA_4zf(dW1#9ZN| z5bj7oU-NDL^VUc_GfltTgYdJog@DgqDmT)BJ2z|q%kjufEv}1NBjh2VF9?wH zPwvEY**$$>!4Y8?RhQ%KqL4{yq%q2?VlV7*_;Uks^Mb&@3L@+J9gu2Q!AdVpT>ZQh z_4?*^`c&>%@o7hbWiuYU7DV#-W$-uyJ(a^3Kz;$xaq$V%_cra>wrdlem!}C{q9JI^ zeSSp!L`+Vw{69es8%IZVWYa3zW8r6IFF9Qf@D14bUe}VfjFSRCA-akqRo2_=$_P6J zSNdHB1jz$dra<-qIo%+H>xX*}$(XUsh=ymY(k8vnei|DBQj0<7tllXS$u?2!&~YRS z3n621F;aJWk&7p%^0iWrn5UbUTT>p1c#B3}jCI^$JXPc;m3z{4%lDFCCrF=aYi3lu zmd4bX{PElDlJ<#C6Lv(c1I&i_FcL>Q-}9y;zLS8y!CLi=4A+*eX;xux(KklLkhK|9 zgo@0NVf~KkEVwr38tH4Bo z1Dylg_*%Ib*YJO)?=Osm*b$nzkzYs2!rL3o850Q@)yL2QvV&O^TPwipV(v2m{@o%H zHLJai1OyM002bofZ-`b&@4cjzSxnPT19(2d7v+J;MI3VFq=2Jvi)+v;H1Y;>M1;F~ zi|1QAb>vHqzQ(TZzzMuKQ@36)pjfc3o=AA`>&5-71(LNfbb~Zj*){rX7AEFnpe}Y2 z36V7{$;NdY28J3XD)*B$^Uiu-Kg{=Q){8KI3T0IIU@c+4*hAfd2vmKDA8|#*Fy;k) z&r5$t4uhSEi9P({b9}_Wmi%g9`FqF`C_P5PuG@9{hyD3Grx{fSb~#8|$MDwF!@*DQ z!G4q*cm)alVWz}Sl65hjE5Z64uU~Gmoctw=acPrXHte}3a(wFl*e=(VT_zS0^Cs4A zEl=a~U`K*6<8UK1LrO0&yDhALAv)ff6kH!GauNjbGZzD` zfAP$Soukp0kmA1o+Ifk$nm@h*X3}eecHDC}3FraXM7q{0pfJy12L9kJ^vfMz@{RA&LsB z6S8Tow!o@FCH>!ixn1<`Rb&WE!cJRKgkJN7$RB(Y+XvE{@`X`Ss&R#;s0YaV4g_`8 zj7{kR>V%aZM>Y0<+9&k*i1@(PM+*=ZbsU056H2vBC1r$z9r|FlejdelP{r#ASNAC5 z!sGV1*hwHhLBzyG^mNJTEwQ;}-K`A#_U&S~S>brZX4NLT!qbaPFj1-&M@h&bLI@%DmBt@>rx3dVfd}Y zRN2?aHBZqlKxX}*Hv6&oeDT@eh`lRLXM7pNfzvxBj@dXpWNVgsg8IJtf)y*pQMkAPB-i8pfTvIKoY(o!5x zOR9eP`d(M|pqPy|j9pFMVBk@9ro*uxd%*0)cIggeN&@J%VKO`b* z#xH7qK^P_a6;l`#ttqk<=cIq<=k`Qn(Qy0l?|=@HRCq^yForoH`#FOanFNS=?M{4L z;+BwmD|f^P@BE$Q*o}fE$dCD0}n4vle+wo9DmB)QV_ zQ^rnf_2O-yi!3bYU(6?4A@;tlrQ4M|jaX?2Lz*`2W6{%-m)0qUm^xQYMcm;>NoUMN zbd<_=a;(+mNCFonqw)JUeZqHXWdI6(BryxnMU~Vh4g4-HRFBe7{jgD!H_VDekQ~K=R?)(-dt^d*qkHgFtq19T? zBBY4)-S(c82Qtd?h^4PbvTaU(LT)7fbF9VH$7pRJ@BCFSy_wVE%GDd;6ie|>xmz`H znM(0HY?bZT%qPUvd|#XW?ul}!6x#TlI`pH%&zbAijaKAVy0Q;a8(&iY7LoTF8ZKJ1 zIb~gHKU`__{;&6oy^8ga9A27qO9P52yyt90Aj!Zw$ zv5=RQ-$uH&I*piWEWE*mPD*enrG-d0xu_?t-~+zL4}KYs!4Uvy)cEfkBt-k6)V}WJ z4BY3A(p6q}l;t+#1i-x6tElg|{(o$Jc|26#|348*NXnX!Eky`XWNcZowYpY*us`${$+{Y;7cfAex3%5hOBGTyFos#z&+dkrU%}n%N6|B4Mmgm=+OI@U78oC!G z?MMcBs{hOTjc1%E0&?J1FZzu`RlPQ#4ku{WVyO7shf^>fQQj;NuyUoQVBG5l_ljj1Q{=O=dm!!`78#v)uUdglDUw~VfT z*yxz-@G}nHx_(~#(@FEM+m~JW%9?gvbN3v5senz-j1kjuEE(R|gD9md;KG~DEZy5J z2jp4`eA}YEP_F_tp%cUMr+l^vx-@Y2J@U>uw=!7zZ~W;oSmuPy?)~UUe{?cmJKWKI z^t-&MuG8@Lw24eFiv+F&@w&othYWVXcEv(M6pB=wY$Pb%Gwka9Rdsr9VmN!Y0|d6g zKAWb(v^nRHC+a_ym|fUa$^HGpQSoQC06}Q`Od+3!$#2KStZr6|$F{^A&weJgF=Kw~ za;n;)i1Cym(m-s0;kRp=zQ=2cWC>C(*&chS5A%}o{>OYbHSQz&e|TW9`iT8%(-y~0 zp_4m>amw3sfgl4zy-e$tR`WrX9XI@T8H?%N-1mpy_i}6Fe@mY#2k$*k+}b4Qrd(Gp zpjEP-Onr<)!DbAN-ZCb~0pr%@sP#rWFivmI`2DcZCF^jF?|SxpFgs9LO)#MXU-Vu$ z%J|CH%S#(>WyHGG+{leKjd(O3e%FAm_{Bp;v-FXPtYZcKE!CT(D)|0<`oprIX6xe} z_%8|)H&3_8Dr9kuc6Gj+(sN7MoUp)XBE;6W=833`9q>QLpHDTMhVfGphti$-_)_}j zvwMUU#id?osL(S)5A0m=|1=TV+orhtX+g@N_0=_s-olI31mm-U=Q&Y7TNdXiTb&K3 zXpwu!ar#C-Pfi|H{gAzS;B_~5@ae>=WHrj4ws)80T#U)Mq~B1~#|s5OgvI=K+GH8N zO+OSHx$(&A;#U!B(>Nhf$Id=R?||G`2gImM%}^sVQ?op4lvluCcWE|)z)zDU7n zbjSF0Wa^dq_SPAXOtBI*~G+wY-8UHU1> zfpO0dMo8R{^kJI@vF?>9`LSDk25Sv|QG9+ypP@VJeUeF&yD>@o{^UMO`KRle^YPyx zgUt(yc7Z8N)yxX;HOG(a|7^yCwe9Cf4hFSUA(O_{YUHZ3k2U$ zKVSZy+j~aL8^pp?_WvG7ETOq|!rg4yQQi4)#>ss_mkk?w!#j%5OFavv7@tXPK+C*V zAwhG=o>ib;Is=enJCZEZpdAidE(v9cdggU*7zR{v;gZI5{?3$pEqY(b8Z0TN6 z#r!p>T*G_cr{Seex&HZP5$KcgP(H0o0Y`k)H5!zWAn<7R@#|&+jwLp$$%!?|)&9A2 z0hM1T%v24YKK~I}ICdbymZY2@=sY~<4vY>1BUj(p-M2HlH)17wVu3X65fj!`zx5AJ zvOU`JDtneq=9fCZWmh}10PSo(ThMU+Vg~i##!vpg-5hL9%;mByIDeLe)jBmhZ8S!J zye(_}KN+VL(UZ;u?UupnfAhGdz9WA!LrgzZz?Xh0$Cdj&xUkwdVx8vTd?4h*+k@JB zJPM1b3+LGmxCo^!ad(6ciM)W;zuy^c_(i^Pdjw58kW!&VT-bjWWxB|~Em=Q#=GJ+8 z^v3qedVNV>-0NXI6_9Z?08u+7107d$8f&Hl9LrN~ryNMgwEMZ4Q1*gpd_q-rR z%^L;kEJiA}d{BR;8ZEpeF7 z*c;8NZ)cCD0d(W-M}>VZ?vn#t$yN7nibv~QLUIqnUF)Zx*42zTifRWif3l?!LFvNME)icKq<)AkiQ2I!@O_m5t6DIS0YO%T>QhMnb zsb0*QHxd@*^?IE*8ib^|6%=x)ns1%hBev>lTzE0v^$?K zrEvA3oq%k4>3<~~7D&#*(N$2o&5k{Oks4JVyF3Q7qUVDj&Ko@ZmGWJ(>dwq!%{_hK z?sns9VRyuTt(IH#rK#J<=YeY8z7A@)pR-jwaS zT(j-Sn)Og$X$i}z^y#5RA33po4?dB8xo^AP=7d>dGsbqSuijq0m*;yR1PKh8x`D5V zw5GvGpH1JHl=@!6mcUa_4)8&5wd zZ(35dhxN5%(o>*2g)O3rAGPY`9t@#6`oXLhArs?-RIR|;r;8MNYx}k9CvfjyP3fvJ6L+3bfx@_2; z1dxb!i{4o2L0p(E=}4I?IPPHEWEXJjX6@7)8}#b>yk=}j+SWk*=k_ft!s7v;Xnl~{ zD0B%nuTqI5I?^{r*yeq!ssbacz@v_B^ru6M(3J5RTW6b}3NyJlF}I}5KIb^Mz0EN? zBojwhIQ$T(7jciDZ#;y&gCw@SgxsY4)OLJ*v)FldJDwd~NUj{TtW8^5AG$cWqt)h3 zQdm$=Txkg^zrQESmY~ZH&+(5ww>dvA-78+*2wRak7V9UU+kUHRMtvPfPq$!^&~^PI zZ!S{UF(;qzUC`R6m(x$|$5B!FDihZBI<#L$B+k-Zssg5Zb-w=E;`Vm5JrC+KFj`S&mYdy^Vodk>`Fg5L&*D|DA6P2MqHojOx9MwW?X8Tc-FqFrBb;nKmJ!iz>Sp&#Q)B*3_jIlZG;$Lz z$DMW@Joa{16y`UWE&JDhg!_O{NhQq9zXwJK55L-~gB_if)Msn9)HTp6(p$UgcA9%- zH7)K{D!UDyC$eu>K4psbnH20Xks}8n(n7vj(+>EqbVJ^X0{0DQxEX&ZF}Zz#G~65w zsR(@|I_!mh%i6F=XG+VnzsTqR;dbh&JY`5=i@S*(OEzUO8K0dbvq=-DUi)RVUZR_5z#B(OM1ojoDR41I4cE4Ej2J zeCWHOd8G6F_9BCgLeW>x=Hgcrx_*^`@%x?EUF{sw7JDaST0{wgQ?&lAwS+ksO-X7ntYVD(k-;xG| zUXSALM7<)W2g!E7xB?pyAv@Afo{?IB{}5JewfD)62taK)Pgr?Bf0@lhhri6!2v@ox z#^0_#HB-$5KDpt4h^i`S%psn1?#&nOqXY%?r#&z#33PRsl|}i(0RP||Hf{Xiz)Zk8 zkhvEjrgs7s^CP+lrn`gc!o*&+hhPn$*mk`*->fW1to|Sy+>xY{b0yIjQuqjZc?JG1gblk1c9>`$ zY@yeqe-7{V+d*8%m$m7@jIU%BbJ2nCG+9qMBvA3kz?hzJs7{ubBAmC;DN{|MwQRXzjkZnJ&7`7!BR(yKg&m|yp z6#5vePbu^nP*{JTK}_F+<0WK-%!qIZyrkE2*EuxS97Xnz(Rcsh1}af?i!n-2TCJJ#c>fydvL-dZ~Z6RiNoLqN3Dy%}$;?!^j>3@r|ckMUXbJQ{&8 z$to?kzUcPvS}$K@QuNTd6NdAl!8l6^nCJJkqLg;iCYV`JesjE@x`TSH6<7f*IqMSU za@=;gfazxJ2@uFt;67i)PX)g{hse{JH;XstWHrpJ?e@}b3~#>WICCV;)s6iJQZxaI z*^*u&&5_ncS%Y!-f4sUATHjo-CbCA0S;|Z*uq}#cIg-?Ss4j_F|K0X2;}Eoa-|b7I zoi(#&Wv~G=qE9x&jW9PtgD;p}s5}#?#rUQF2E(^-fAGIrk!L zOq`YAoDvI;*?PW?C@x+q*gZC^QrK|cD>SorewiX-P@C}lu4H=Pz4(?uwDa|&w}YqC zsqgk(IDScE&rI{l(^coiD#F`1M&=8%Z`xkIs#>ind~{q?#AntCrFop1tPJH<%&H*X zN&70icV>OFQvBx>e5k{9iML4adGIifql5^26@U)gKsC=cUG8L z-NH-n!7hcQJ?G>9cIHYvo~QOwqSHppCHtXQm9ME@%wXEYou=tShG`u#T&2JpJvniE zqD59r!;W0ZFvFQ6qacZDoICaQMr|FTrs3kNfdDJXS-HobsjvY`{IGp~|GCdKxCC>{ zCx02~0W!ashNJ47>P1$k=nml-klaiQYencI|b}fh$3_lLPaPPfb_D98# z%HJnw&L4b{JeH^dFW0Uu$xY)S%RV%;ro&DkLgecwU6%6&yZ8sUO?k(jbYEY#+m+C^ z^=OoXpxtqzUw3?Zb5uf@88+`+I8M>o|w`eb%Y00rN zK?&lL3waC1vdM+2q$a~U>d)hgtQN97xzd6}0?Y{I>Do=7tz?zne$v z-ZJMWD_5{u`{aOoF>>esTYAM;tNtT$u8}HTmSS^u{i5Yi?G24i7q)Y?IG>Bwt$6pU z-A+I%Q&v~@)XcVgx>4)KWUcV+u8-OyyIzZV-y8}3vV>K(yfh%5I{9?xV=T{G_fr-0 z@|};tmEd)E7*@|g@7;5_Q^0%0+cej}8-Yl;oF38k%%QlA86I{_Q|`mc@$lCD!kT(e z*C4HgP35s(j1`~Xk^gPClR0Ysw2GG(d-3TggR5;88g(O~N-<9P-uZHvYBs&0ztAI~d8`Zlv>j;@>S_DW0WSRT-JsLj=o~D@NIE39-z594N>SqgOr2LryJYoU z_J|;mH&lMxD_d0S3+V8+$QWW%+)|s-&OJg;>|QMOMMMrPPx((rBl0lYu3ezNIZJ@6 zu-QCdCGY~iOYiQ9#NvzEQS3h^es{WhvRkT)_jn%r2-2jeKBdQ|s;zkc(_U7uow7Fk zDBX62IC7ckxJ&!Hr(sCj%j=xLtDaw_QzNfTD7=s$uc)`JQ2u$)nELCPx`blD0`QCOiN>?yVD2IvbuN;yOFbH#hRYF%D!V$U$ z%?%e?)Vi(qQ`Yr2zTM$}RyIZG9IPAEoUb@M zIhFXE?i@(?2{#phRCsb>k9yjIPVm3w5s`k&hj&9?@GBRE32lkC6`Y%*I$QsRopX~S zF08k!a$}!R`l>$Km7DEuH(!>%scan)E8|;ap=^C8)cqA2z`jedLBoPmnMa&bZ=kE zpZnttpHw%o$v`!fl?`NKS+B|6F9E`VjZY5X>Zi9Y2?h8nh-$Qosd0{y-G?RB_ltPX z<~B`RCfjCIZcZ)Ro;ri%X-T#yjjS6!%E~hH|EWt9>#=&kF!|$iZH?7d%Svo6cKa!Q zq5e&K9<97aVH0*I^y^jo_k(Ih)8(q(vO1)1$>(1b2Osn=k@V?vs`ycLmc>)xfUHmZ(p@AT)RUhm zJRi4Ap;N3!AD^(^as(;)?(J@!G!c7R+jgrE`A|mIkkGoH`|d;0A*tUPB4Kdjo`5uT zn!t zlCcg^VZA$i+C`Rq(nD0SiEFfVwRofY4GE`(+1_n;Q<5CQ+a4y;5?@8OL;9SJw( zYRD|p?>vdv`q8_0DhSPk$#_7uSAE=D6Tp*lx)jL`jJz2PDpstebN1o-lX-bXtb z+_5JOGPX|J7D!bK2cA4rdD8QWm7d#Fc>B1T%l$E%91u^Ew2q;+4-~Qzsl}0;*>NuQ zz|O}uM@9#l96jkf7&=kwrs1&Z6T-PHJbg12oiVkE!y|!V{CqPf6u?-0rxjiRdknaB)j+Vy*=HsRDCfnfDr z^<{h7XM{N;Mg|)~_`kK$y(;@VK&q576MYE~pd(j5D3sXwRUVd{q5UZ)P^`Ni^ZLzm z9~#vK8=StkvA<{ij>%8+lOF|zOm}8|pVXW2;xxsO-Yk{lp;2nO$!|(6-}E6UX!6Kg zsYb13Lm#=Kn;DbOTOTuF=l`A_U+{$1YLUXdnKmBd7^P`Cy{Lw#MCE&m z@dC@7942P)nc7vp{!r>IxTGcde`Pph#dvF{r!PN?lFNhx4j814zW0$;`MIHKVV(c5 zVsPN~{H*YiS=Xz-gIDVL#l;hGb7bU4y1?Di13@}jXIiK&t2TJst#_Xox5tqp`#)T6 z73j*137y#Hx_#T0wp{0a@(m?aqF`VG%l6oqV&i_!JnBR39tHGXgy@!__+hDk#6NgH zC|JF1{F~ScO_=5|4}|O$m{SpCH0XUO@H8fbUFUo+r(IEO;X5bMG(gpUch^MM*bjJ% z6+Am~Qub-hjrO|0tj>3O#}L2??g}QGx7Ewx02WK9s($fe&M zk4#F$&ht(zBoDBD^`isCsV+F7R!j`#IDcy8-nnh-%SuqJm1!>>fW+u;gJ*&g9Y6eI zc#}^+=kw#ebP0~AaSmfa%BPq5%dB+Jpvf!9>OO-Uqe6JlNkti%*EsLyM`#kls?DOi zk-VhjwJPJJ!R9pORHwV{f|n^?x3M_%de$kbN%%^h-d^5a@#z<8eV2ZIv$f>*Z`i6M z%fD%(GXE*!$3lmxc9W!%ouA2A)Q3}&TEwL;CWg2FBa5O&O$ea*xgeJ7wg7eZUB3tX zcPh<7!`FR(2{!{DsTl1$AgUcS?J|gR{`-R@Sbx4-^G=4RO?QLk{%J>GYE&$_EATpwW zl;BuV&~gnG%RuMwreI~f53kEJg8HbF66nYr1r!UF;-MV;9T4@MfmzY7@Cpg25{S;T zLIKnbDg z6B*tV#ZV{*QsrzfVBP`DP;P$#<&UdGDGpm0vt;?-gU}bixr6&|ZdNG|9R?EiSy-Ld zTme?H0%JQ+o;9l1%A|1qUP0<$**T)l22^1@pBnv|El@s-i$+;}*f_ii8q83#ehSg4 zYhFkxq|`D44AF7p6!z+zXe?7fZyNmJ6Btsw{el(BIN36Ys>G~Ge42$jHjoxzEof8Ec)}f%HQkUDu)JgU5v2@!H?8XqcHwMb?Kx}#&!uqtQt|$xk3Lbrk5FmRkkCGF z?;#PQciK4R;xW|0st1>B>S@sUt>7tWGZ=jb6#8W@aC7(;imqd!g}b271XX!)MtS=+ z0MEO9dE%oPiUYt`MK$@Oxc-*#HxmCMj$c~7k*$NlO6Or%8fAyl2MEy+(E!PrBvEtF z(o3q50Nx*l4}xDY2FQsJG3xSKaYn>(Riv&14&on`M1O#mYNWDjSYqJppyp9WoR})G zyO%#4ism1hMY;(6WaOdE=}4x+*2_dqPCSvj3LKiE6?$MeuZgY@J)Ob!ZJb&Xz_0xiY*&8*BA{O@JCfIn-%mw%BL0JcnJv?c+p8ZQxuZVR15iW)wE8X19T#of=KaQR`vhGcN60A$5(f`k*}o8N(O zpGvv{p8(+Wib_L+N|-5drfDJ2y}&BkGA&-~32x&zC2Zj-yhey7Jfo9{RR*p-U>fURuC-}5O*t&vq*(eHp!)jBRnA+4pp4w zBTkG1EmnGqXH@tBlJW%p6a5*MX4{Yz1<(&gFrzY$XbK%@Pk$4O$l)+Af4UD!-^3X3utFS}!U=3$eHUySkvGeF z2f3W%&aze@@kZnhYnFD&5H;mrqu%(4IeDV~hEL#4x$^`@2ch+Wz?9&p)(1q!Lg@&$ z8INcn9pu$wBtgr0ggSt6$$V_snhN1il~dW{vrwlsnFNjRtg#pNG5F7PQg?{ijgpnqC zaU`ogP8>tYD<3EJ3=*&dx$T5_D(Z)*)VRK!vdz$3Onuvb{`cZoxQ{%!tckmrY9mOI-R3ubIH$24J{+-V z3Sn8HiU=kvJtq-WRT`pU_7b;9;T!?e2`NG1Vrw;M(Shbw2@VNr)IkNDtWK>e&?R=O zdgwgvAjDdJcIAv4tAue%7@snFTsd>bnSeujSYZ2Me0j$}WGg)9)+;#eiAY0q$Dnm# zSS^%OjNFEW?4#07Gy*SD0W`bkeXAxifVaUAA7C%KB5aAzeuP!P{lT|&#r~U<)NzdU z^HjLclz*UK<`7maP!l8|wMkY4_TVhU;Ptjn6jE(u=RofvuHaZ?RXE$j1c^Wl>o>i6k>y%-$Zgs#@E>c3r5Z05yb`W0-Ph9TBf5R8^mlO1>& z`qgi3W~oVOzd$+5iXqwq=MeuD;z*#g5o(yZh2;;dG()ZiQi^n%L#1(yVwDwk5i&Gu zV^yw4jC;Brn#`w8r{QocBXe~)1cY_{C;(ee%kIZkpaagtLy6){sVJoA(|T0FOm)Cj-aAbKiBsLX4>0(sPt4k=ZW$t&l%bj&o2zu7M)o zov{(XVK);-MhjD48B($_`Fz-PrO@z7VdrkhfZ6(W*qNCqSyxW0z7! zXkT0xNbZGPMXSTT4P>I|+mZz@9ca@Dw%GX8o4efE3_E9wIY%$De&T zR*eQJQ*9~yvC3nYR1@Bliy0Qyb6fXg6lNj z=Wj|>id@eCeulDj()p{#Af@AhJdYg*`CBD6N+#QfSx^*RhIsvON55;>$}(O*BbQlR zeoXyIN@!2%&dAzVdu^kaJ^`0i{yy*s{e;^i44^saQU{7_i$|or328TNMl+C&S=3VQ zukfDP=3$2v_X!DJjoKGZ&9<-~L@67-X~UDTSvOOA$UcBgMxDQ(=>AWVA?QpY^r~^v zEk9Fbk4+m3^+K-YT&mycb=qrj?s~)qbYB<=+h;Qm_Ymj`0BND%1-S$(@-UD~5>3$} z>j_-J{eGzHRGZI&5>mX9k4c%MB$gk#njbtx&G$l@;C`B|!{pyc{0^$bF9#|Y+ia3q zb|mJ+R|&+&GOr>OmwQ3<#TMQehdxMO7%D5B@zKZVa zp68YXR1l?Z1plhR6%)B)ddYD7&STw+G_`xblp4~ZupgW9ngjCfY?WFLEc$-uZZrMh z%GuHgu-AR3Wqikj`juh}I^Fu4H&GF>a7l{XlOkXlfN&L*d8@^k57jn*T_1wJ*Zi;t zZ)Re~o}K}ljTTDvP2y_fmt(<_2QQEp#uT3MI2XBxb>zaU^EfWa?-gs72sGvR&Mo`H zLls7U?Y7U0VDcY-`ZcpDdf&UYEaKZ>=(`^sJdN;}7`pZ223S<8-EtVbb*Neozg(3_ zAVv}6au>-hRv7)ZWh1+{hWp+PV2< z*dHVtnjxWLXbx^N17%XsYS0IeV&o!*C=u6b*RUxJb;Wd1CXCS7ze&7&?8z#WkFG#m z>>O_j`VDi)*kd=?g!emxybA?c8Xl9u$`)`}7nHCv>=P9kh*)J3*smdG2Kyaw68lX; z!^IbZVSvI$-3CjHE@VTtO0(GOv4Bd%Y)cuIF>Hf2CYIX66hqvcEya* zG%7zW#tfSpb2WJw#x2BfPFC|aP{kyMB#R<|4=)x&z+69bJTN#OPz*dlDKiFKW4W~ejz6YdKgt3nE&3LN{(cf4NvI+?-n{=DlOSy^V@R3OD?Yzpg9uHYZ?Z|iwl#QxA>R` zzYNmAbGC(1a@St81~@QhEl-8P(%0)XHY0UTEL`$xE3OYiKL#*_u_5;gP8_z1S8Bta zLQnCjhH}XVqfj?hW43~_F*^_w>fVG3s<4U?Y3>$6JoG;LyAnwHrPvIG?hJhK9o}j9 z8*m5*BPRIUjOekt&%(m6^i2}X@53;SF*lS0aFPx{9@0l^hcQo9zCYcVZ{wc)BqA}j z3kTdG>j0)`7C>I(ft_&4#Kpn&_Uqe`DK528tNn#DM8|rkxYY%evGXl4tSK>8bY8$1 z;)#4DSiok0H%g~YUH$R))(Mr;bE(`#5pRKyczxP3hOzIXrf4+o=2O9yeVh)P*#) z^TFm7AW!w4ufb>ZaRJzn!buIGDt}$JC&jnztQs6K%OB~Df%(fB#%$-R?v(}JK`@mp zD}dp{RaH%qa5oxsoTK~C5dvg649n^j@7;uR!qoyU++@5`B*0acFWb>UIK6LGiP!j- zgXFJ$#{R$0OJx6AQcCz!_U^sF2%@Ltyi zh+|qaV0GRY3|w!-QkjN$Ze1}gpM(?(lBw}{PBoY~6^Cr=eurc4#v^#1gKmS~0cd@o z5-_`M*TreX0=M1*`vbhrYMyac1+qkx+9MvJ4xB87-QvzD@^c7fN7XMgDHG}e!_-YF zzzDnq$mM7pB7^z1IVBt5%R=31yu@=dZqCgjYAc>$3>jeD8b@T6Vm$z|g+DYT5G&9g z|0FZ$1n)m3c?FZ`xjPZu?>w%Vu}qolm;|gk<}6Es=Knre9(6ZYj3`B&fpC-ina^FoUOC#F=&x;>BZzX|URhT-A0_|14K7lt9;=WMk=60N;gv~p{!Zo= zH-Au@Y`qBBU!$n2y<*;*okACViAUeUy7Bg;f z9cOs`ERBxVn31U1ZW!^)7_&xa0OyqTt`|2=v%RcG2&4g}dUoK5&WwKDwH=p5-6fEJ8@Fc#whOUSXQh!r8VuEe>DT;ELb8^Bz zkugXMXoW@oMg_eEl~6$U8+As|fbzWN*X4#;H9&jNM2Ksy2kl}KvK{ofJE zHQA=6zk7^3!yzyjzuKB~ef$w#9d;PrVKxMcVT_u$zzo8MBFS_UwP}y1M$Y~JAtR4p zqStH=wL4)4d9)feQjYogPn;Sk6*rC7U~}KO{5{Zm+Ibnxz@%I|eC>E{7jJeBGK+)g zI3Y3?&T%eK)e2oDgW2dCAv+s+;IY8hgj)CS(c#i^Y{zqH(3W16bnHKo7O3BehsQ3p zx3c~WR8XN*YKgq41h!ew7wRVOURX{<20o*1EnI;5Tp35PRnSM8?_fuwQqM$iG31@H z7(@?#9mb@=11HzWLzqn_UE%UyE|RxIpHyNFIJ!b}uiQW`IGlnYDBmybIa#Ny`g6TR{wIu>9a^{`l7%E+e@We^X!vbZ6u7=!vd^ zXh`p_FK%rF<-ijJMk3k|^EYvHnwljzfR+*q@W{H9haT%btFL&MA9Ms}cq0ZnylLix zft7F1RqfQ>rcFEbC_1g1uw>SqxEQvZ7 zKDSrhTx1DjM|V15DzL%THFC$H6dcRkwVOwchuPLOhxXN`cIMKjd$WsxvId#U_&YCc zJXSgsJ{0-&q}g)a-FJr8V8Kvq!7B;%9g{Ggp3vYUTw8vcVRydsF zv_=x1y}wfjxp(&`2pduMN6_JUuuvtX^ht?+92 z1Klyi65hcXA84>dbMRxnY1ElcBk&Ed zj2|`29-r{e%FdEZP0b%vf>pL{A0NTZK|)O;-H;|bdAftZhZl!mBtLSZC~=~;eWz{- zlZ7!M)=YRsOR#ct^?G1dHBI`=$$WU_LIKW11 zX*^F_b~jQ5kN}AVTp*X>5j9=6$FcYFHT`;67aZFOFo#78C-xf#!z1L4wklXGF9yFnf^lGd-?N?(T<7mk zShJASd(-ZLQUK4qGA)+tcA=WLDyhFHm@_1WIu*g7$ikpj8|LrPd3KkzX^t;^`E0@6 z`0noA%U(7Dw`ap=^nM%9Y*Bu#?f5R<2UM(w0}iJ^kK6X+H?I`Z<6s&{Vs^ar5myFtc%MMuS2M60wMXa5FN=6v zTXV?+xfqAsF%_M^nuyNB2DF&lq)mGBnl|*#QO=)Ou0P!^AU5C-A zusU?lIb9xz2U#&V8l|;Ji+A)kD_rOZ(K;*-J??48EBVJ0(zN-O8^m@d3asVr(Qp2E z8G5J9I#m>1kwqNT{3*Ln=k23tbrOg+yb=CM36KR^aF7vUny_UyNcT;%CH)*wGtN|a ztO~mX(iAzs*rNZDym7$q6HbliRvK(?P%J+=L;c-VRpFS+(`m}c zJtW7$D}B7_enZo7IndAfOoLGN4{&-+|H^tIdg_4#`(3F=&p(*T^*WG|EQVhS+@hNP zc8lTe&qvxfZ}kduMt!~oVI~gZJV$7El!myx(-HV+(v4H+JRWW5(-+s-h#XEjkbEuT z=s)gU5?Y!3b(!k1L1u0YKcXuT-_=9YyO;DJ9GUv&cnp1#<;@uTPL zcaWc23DhSDVYgv@QMwzvt9q8OyGMKTjiaxyD8?7eFU#23h_@HL9~X^38napF0opPG zo45a#7(+|G!=smuR_{yIhUl-lTa+3^`MGUj<9>_EIwIj)h*KGsUUY&5Cc!%3mrE|>>AvAyi?bYy?N_6eP9+N+n& zxw(n0u4VAHjPMar0p#H@E^ZdTJp4CBr$Hybx_(?1jn8ff%AK9^@K_GV)@f*9Iqbi^ zbAY0`(^!Xp2!==hC$uy=&?0D>HNc20MzK494DTm1GGP__` zaw>ISrwqxg%=H`dTW{OGCr$fWeM!WD`5{oo)eqtKghhx>Swe11XI@~#lK~AuVfQlL zp(vrWldZq9RUX$ka++R8Eq;b1i0O%NClBvOqtx0#0@b%gcsvI`~=T3tG8S?f{I`Ne1iEijmN&L+uvbA=a*9g?2j!|SONeKbbJOf z9Z-7U4C}*20}YQb8dsDnL1;9 z>OitKjUMa2PDzT)JBhV^9YGZI9B@hBE<_U3A+Rr|al=`g&Hl{wSZdVA?9Wd^J2UGV z!~C0>qqgVe&!Jlp2J+BM7{9k|*8(F6fl`+NlP=eU4E%4Lh6u?#EI6 ze0p@vJ4o^zsHjfw>OIxPbZ+w_ZG9Uk@7NI4?G-ohn^G!?fqscGBZ8}yj$l|MO5)?= z138VOfZ%q%4SXVeu`$Ojehy{`3#$n5{buaoljqyXclENbZqUULLp_~Kp;xc!UM2V& zg17r4u3c4rEX%hCgvtNk$6}-K`JE1V>KeM&KHPzhtsbL{hm?v$pO;emo@udlu_dW* zCVNrwvYo2di@h-)E}psQeM#D)cd4Xdee4dc@&CTmnU=U{u2V7G*-IDrudekU8}50i z68&$t5{?+DgxkFf+eMSUc)O6|d_o7u4G3>o`9!fX<mvY{pE_zb^vQNV!C&TpkpUxJuSHT=+Wri-)@ZtB% zMEi$NhYsW5KIK2Vp2%Tid^M@Qx3XsP*>6s3Z|XYWN=^wor#+;-*mX}i%3xr}=Jenq zouN%C$8`o$Q$tGz_@4hi0B}H$zggwe;{2M3z~3zMX-gBEh5(zkM*oxRw8`5RzoNM} zoR>EZXMAE|zh+<<->R-wdEH)*JKenracQqtdAdc7FAIWn$BaWTFK8Iw3|?=j8^S6? z#i97Ds?$YP=V`G#uj)m{sL}rnv3-n%UQJ33LvYvCx;BVU-K#+OahA>*=Xu+%9^Jir zb#*m%AQd8gvbg)v(Tz<=s*Za68{^2xXRq>URTI}`G}f!SXxn^AV!Q}vNm53)22kcjQ*^^bwtx?J|hMc{(R5rA{kuHbgu05gxwYm_yOGQ z!G8AW^>stojGxjFd^qDb`MVatwjNK9Hnn+tcY1Wkml-!~H_{Lj8uo3mc+JFlX=rm3 zLY?Lj+=SXac2?4VP3FLa^#`4{L>?Y2eGM(0R_FYCcg90ti*?hoB-3P(7W*2qEA-I$ zv$Fclj*W)Z9R{nQHhW9THC?V@n>y2eo&x?NZ^@92)0g&l7OHGEBVZyqoiTrL--n33pI6WK|HmqiZ}#zzFx9E&B_9L|3k2}Hmd31 z3r;ibSYSpDD-32tlko%km$*BfS6BSPWmc{U=Xtd*J5o)fzQ~t(O&n|ZDvRU%JR=L# zj?d&LVR$Q9xjW$EhBieUhAI5#{$ zk2=t&70p$dEiXR%h(L6mx|3I@$8S#4H^)z&pQhiNO{(vYzxTYl_8I8oW1#d(yiT5x_c*m@#UNJ#aGXtr=#9Wq;Ye4jix1Uiv|6+KjAxf(l1}6 z-+TG$?2F@9zt8u(T!0Dbu|}K+Ze|VRg^C|V(n)-v8YImo)nzWsvVkdn?=PNzl;+Je zTjjIQK5FZA-gEpj`6 zwRzM2{z?)0vdu3t08C2JNlXQSp|HcS0jNdRNDB+-1viHUNxDDBw z!jk&vJL|Hb2ZkFxFN*2gDm}?&d0F1j^mB?1)2B7LVWwY+V@azZJdY}%%hZbFcg7N8=+RLw`7 z-w>;uS!V_T8yxYlj|t=0m{cQji|Kjs4t5{xCSQ-cv-!c9Q4T}BVM&yO@L-KVjuL!^ zy&A!KnM+J32oaJYJPFD{4jsrOKS%Da)J!UQnF~qj8Gp1Bh~F6IfqolFhtQ3HE)kF} z3Z!kR2l}Q!`k*3z3XL>PqNAYkgdp+V8oia*z}kk01u~Bm^i{o?h=p&F&t97#*^-(( z?z%>Fd~-%(kdMc&=}-CArY25^?BnM`_ES*id*2_*MqvCT#RW%-mMS#QLeblg6(Rc| zl9VSPZ0|FQ$m!YEJjyR$1f2s%fsl4hwQEx{F6ou4&xo83oS)AA-2ZdX#u~oPO6ZjANAZ zby=nv{l7219Zi%Xi_3h4^|v1a_jIP?10~9m&*&3>!DM=bObV70oKQt|;#EPUT2`$j z@IebSCqLp!3;q0CYym^s6rUxB(T zB}Ht}{SY$xiYcy_G`;R*l;}dg&9lpbM3)gD&)fPkZ0B~OOF2HB;d ze#m^7(b%tOteV`g(gqptC~vDj*qLJDDAJp>0`x4c3C^o>6Hhn-7i1zX*eKB2W&zc9 z?YU$n1>azY^@;}HmpQNhTWO=AB=t8QCVU;&zso#7M;?DyT)rvKT`<%274dXAQF{&x zMY%n~Ggwuj<&8D*MhJ=Ah-ST7RYd%A=FB=L-;`X_^P+6kppZuK+sLX%sV%;?)iM+k zQKhtI<)}Oy7>E<~08nB|J8EmnE!SH zcjird0bf?&!YsE~OBSHNCs~|?aU@M5@6LQe{D|K<% z;I>UbE4BeOv2BKL$V60F#QIqfwpXT)YR*D(_MnYX7Of<;es=o+R zec1Frt>o9?kmt@Vnd3PYjOQ+=XTt;2SBktvaZX8{tE`_h8DJ0)VW9(2$c)uToK=!O zWVKq8;a{J_*mcs>7l#R~9&{-@OEnD-J%(j*%<<3m%thiKH*;9SxaHJ*o+GzeBd8SV z1$b*F28S^)CA==dZY(%?Pj!NOWEi(j-xE`$sm+3@qCqix3D9BpIX$&+>Y z*8Fu#(w+q_iL)SVxQuT+A-F~^ZcF9&Iq8#vT9>!W!hV=hzLBY7s@7+!Tc}%P zm~O{+=_%hG~Ia{ir!A_%v(J2fUPJon-c|dO8u@IGCQCfXKgVRtkoQOe2!Pe`n;H0L0p%~U zcPH5@n^J=LmYCBU#bUkiF*kE03t4qOy`J`F`fH6R;;Qw=^W#%2C*2PBr<#jH0+5#M z@aD}}^5>h>#_3|!x&>4Z_BY3iw;{x{0t*GV=0MY21=x6Kuy2r5lN1fpmLE6W)sT(r zxIG*tk!3CIH?OqMI`J|olSWruksXw5j`J0!M}`c%dK*hZ^7z4UNA?fM(nwOw`2#Hi%enGU9`2~8K>I-Pf ziI?|QYF{pm(F*%iL?je3qTwO0GinBKD?hfa z>Dz{dsaRfCZ*%6_7RhAwfuoa!86vZ@CWqhT|8#=foV)bjhv~8#2mjvQ7iRBv%R8F- z|AtbGLvljHEiOqWt*{(-iSB)G^VR|)|2ksv9yARx5rJ{mm2*dSfVUEpD2=*qxm_l5 z$yw;rijxGy5xBdU?!1G&M1X>*}Q+`!O2nMV)8jMIlR5r<6w_IqNIH$U4O2o`mNpRp1epUF=kKb>|HlfS}*`fC(?|bOKTj{i)JJWyrg}eV> z8h;G`8#Dj9#MoW*`+4mN1O)DgU5n zf3Y{v7mc_(@SbFSFWq-5efG2E2MFUcQXifLc$1UnD`ZNH{g#+l?a38crFFYnw^pTR zicojB?`dE^Izpc|zNVBTddC?fyi z8{u!p2ET`W`q@&>$FrHx#H!|yRJYa31P2Lxk#NIY)Rkdd{er39lj~b(VtHS5ub2x`G&Qd*0DOTT00zOI6Lowpo^GTyq7hIRh6StnZN zSKcV$Dy*A1t4pP92yc>2-`3B;f;#V4f7_4H?u@2-<@ogFC_H+KV zd;Vck^sG5oMXnaUKo*6pV>tYey#&l{Cn4~s z0Q;k(sET&@Lp`g9W!#4kPhgz!C`p`YILpcn1HQ}%Ux_C#zEygem1}OAl~>ty7>9gK z7U0hZT(`cX*fTzcFpE4_d-WlvJM6zEm!PQGU23eWG|2M(F?=K3ZB{#P$Gc}Xb8}^; z&LGTL9bP9Mr%%I_6noQt(kTQQxQOT8iup2^IBfz3;U)E3v;XZmR2S=!()@Y6TK}`9 zJmrHA4?thLEHOz+RFe%N0m)MiwDC#6bRBlA(v{@BI~nWS^4@SL3m?aZvNAs(u40dE z3O!w{5vE7S=tdR3ZKBWH#W}a)CH~A0c1`BRC4JvB>vHp&2C^<88inMMFesA1S-}Fx z{so~R9tMRjiXj|M`t|n13qN~PL36ZqF_mD*BdRV4bQDPV`iCUr`+2_q7v!F9nyuTf zKnWyLY82|fP324(`u0 zvS7I?3gu2m<6CjhkS@|;vV75^6-j;z*PiSa8P=vZmntEmp$7%Sa}kyZKv|xl)qWO; zcB|3H8C#qRx1@>owBye`%dgNA@-d5<|Q%+o}@P}$GlyYn>*lb9^pG`=s zlNa#5DBK2t_fgb0P)nrDUl-<_iS-L;H2J$0ij)T^0cb}xWF%%D6~s+JqU2|Dx#Sz5 zgXjLJlb0`>HIG74lUN}y^9%CjMUCkEhEUqBjy_Kd9=@aLtq{B^0*%C+hTncRNUIcK z)tkfD{8@@3U-6%Q_aE-^3(THn?4~Y42UQ{u85%uw2R0@Gw1Vyi8I>8cA%rjbp4ZzVnSI8%5sZIL!Na>t|!eY>9(f7PS=&r_fks{ zP4N1fVy?yb?91^R8s&FsSuL+e@8f{I@gg;%NuDhlk5C+FAwy3_Fn>q!9X^m=I@F&R zS}gP?B87}4J9o$K3=FJ(l93p7V# z{03&||BnjX2XZBI$gew!00w`#GCL>8 zP-5@zO1_`>)}8jNz|M?m$!C<#t1BXR%_}@cog$mxbQpx^q%$2({?TOlvppD|^biG_ z{YzvWU{KD_i)jJIS>&|1yDXXoEAm+d{F>@kQ}}f>`LkOLb@BTP-`-LmLz^k1-?-ZJ zUcvn9{JodOtO{XjE)aDVOHrw@+``Wq0nzq7$cN@X_r!Yvq<_vyXV-GygMPBg?N))m zSyIN+ByRP&+dHk^wcX=;MAw_|2x@WPSMLVmXupE0R;WL zsL8z)0TV|oH-C{CEq)fV$FIfvqy!tLP!eoQinhr4_}a@Eoe6cWx6osJrgZs#=ft&H zQNH)YQTFp^Z{EIXdj71DZdz89^u8t8o|V}Jp*bt28Rs5~j#1;q3vzSq^~*J(ImrKS6ehnl9B(Au%G3$`T<bcd3oIWd315LmOv22mgEIH1XBn?(6Yl*|(I7~ti)S5V> zX|jv_n~;Os*m~#h-Hx)K=V0X;c@@b-IL~!MJ_tT8XCJ?&YkirO>pU{Y@85au`tD>) z9^Z}i@*c+ixa9d(>7eXOJEy;|XgZ9KpNZ{qSj!g~RN%$3LJ}qfsq8dJu3NecXT;#u z^1QfM*Q{h=J#$PS))FNnM87qwd@7Jsry+xX_L{wZe1=`;lzR zh!#>QKTfMvA3Z&N^3~@bjna?KUOfBqBlew}D*ah>Xl^s2z*YX55;V-ZXE9Iw0|e;J z`}Nilm=6|^!R`m?3oJD8h4o4ehdV-2ELLT{AemF%t~Ag4e!SToJatQX@AkT{CVrUw zCBEmkDcZRucS)S{{=Tte5QJ7{>U~Hd*biogSF+^H-Ef!cZu1D__l7lNRbNnw^9MPn zlu1<-%eVALcmlYJD+h6i6}MHqr94HP@Pc zyxlzCPKyZ0@mZMJ{6G!jr)xdi^uZkQH8K^i@?W$rXzJcGb89>IKO8`m5Xws8s}Dfx z8|D+vw0=!4`Jh~}V*v-|n`8hBdA%%t(K;vZo%H^)g-_CiU46|7{YJ>&ncmw?#GAaK z8R!M!wZi&<XA+iAT0gq(@LN>1Y(QJ+~pq_}39HTg(a+5DN=Y?`y#0+DcL zRLF$>KSlfu0lTW|x9l|Io1z`{S45X#SL8{q$%n4lkRZp_*6SQOwp+1Bl>caMjE~Vp zy}Zh<8||z?Z|8*d?YkRNFAA{xu^WsqjW=wMXN)GE{B%Agf>oHNtAZ9{H=@_?@Z1ePZ)mMkmdg{#`b{% zn$cU+>uFg`O+O~X(X=og62f)*W%fXvlyg$|{_ftUC7Q3HeIm)TVJiRllrX&|UC$)v zOoIp4Eb}X}j!m0kVZI;8Mcnd1ETDhBfz(M%7+=;^OI%H}VkVD5SPBZ)7&k|aB?Z?M z9!?kmLhkFz;m^XnY`wm2+I%s7QdMQ1E${q)Zk|B8g$|#E;frIE3G0fxg&1>RQ;Otc55AwPirNuZO!!=l9d3$1jq}3Gp_FEC~XI)62 zmFs4HOQGbpVlmb=CBR$qOJ!6_+uLNq`SaT|B=-p=u)H>N%R(~GNIE7tk=9^vD|*IU zyN*{uljx?3V}zI?-+%LHIP{-HSj z@6SD7Q^kLC+~lihCKr=lu>R;sCDL~!>Cbc9yV9Iypu}t1^#^NG!?-svE!eNC4trx@ z)zazG^J|5OoW^xCXwrnI#CK}z-g3GOD^C#A%jA$USDUr+=t?vq(t=IK#S=r(x&tgFZ4 zXOi$KB%^u!<|86ATdtiwUHuWyzF=QC}}j1GW22X`u`4L|8jXk2KBc2Xl|Q^ zL81w9d*k_FiQd?oSn=R1QlkX9Ya}wb4ef{7EzZ*#HID%lOQ>$OKSh^wJY!&HzM+;9 zRCQgCDMtDK7S+!mYz3O~d3A9?ZBH@Q+j_~Yi&dpLwV*kJ&2rVl>1lN{R#t)bb;d2c z@6v=Dz6O#-N_$p_uOOWC=r&ZqqH@|^uZXgfHL+Z8 zb?3((7Zme#Km4)Bv%Hzs1?y{G9}9EKgu(e5KHXAGn=igyP@;j1(vetY3)KBk{d4E> zT_4NtxbDUVc8k#-fBkSLaOO3ML?r5VSFqVvFP}&wE7&*6LKjR!*)lfO%P6c3C5Z{>*O~VrW73b$d2;I4M;?xt2F=Y*ZvMR|hDf6dUn}s4oUp_0d ziw44T2XdM(n>FK>b)8f4b!PNF879O?WE`!kl|dNsr}-*o&Irj+LRj#h>uQ=e|F1Dg zP%+QyY7td49yLb>=2t||@d*pCymMQlg`PxB$7AFkJ#JxI&WpNf{Yn3b^$UNTD#yz# z4Q0W7Xo81;P(}o*>W$b5*SyU#7X>eh{~JiNqg#{97RRQ#%qinP`(YT6|Mzg?ZSZ|x zj*Bi>-ipKIP2q{3tJ(Kb80b^!;8KEq?#$P~b+Yidi zdWw;@Ktz0}84c7IAt%e^dMpMo7W3U(ZEN~ zG*R!PMSm7`H@mbERS65pha(}G5=d%8dDJDj*2trd$TKOX^G={pP#iF&*Hx=&VCINd zh@&k%&M20U%$%iW2u*v1r@F>+a5wn*`u?xxm9G1Fi4cQ%rjg*+l;*|nUz&u(*4IVc zrZf!FcgzBChiSS=?(7>17F<%~=R)}i0dFU&XO{hR0p852S?Pxjys9bY@RC7&`w#+U z54->crqv>s;Bu6bvBewaou+$&P5QC)W-@*C%c&Uk)KIm2Oh zI~KV?o1YgYDbmI*PTk&4@#o)=;x?@u8p2*7*gB_7-F2{*rhG~4>iCg0duM6C>89Rp zrR+QEoqF#Pio@3)gSfT6UdHcdpHI#;Hoql@{3P*0ZiWgTk+Cyvtiq6K@?^fBTX;_% zd15_0rmJ>`RgWm_pMA3N5WgUKf091~2Dc=i7un46vbf}MLb$IJkQlPvLbh%k+k0uW z=kH-sKF^U@sG;I$HjtEAOIF7d22%7bmc0XuL*m2=>K3Ep&lz&}Lr;x&Et-Kpk~R0M zqG6Fe&&q~h5YNi6RKbhj?#nJx(ca%D+Vu0R>~v)m~8u7f+43SlTcjjizc57B1ha+h=VzhsNur!6}54^)XadUAFN}(e(>kb1~Ey+YY}Oiy=6VM zsv26nx`fSd^NX$`sdJJtxKJhlU1aZy#hMa&Yvv6iO-KBQBvV=%gSXdPYtA~Wh3R)q zknqh6jpU8I!YPFxqp)L|qrB0GT-=Ho0OYdxm0$VaWV4yfEa4SGF<5)f%4Sw2eD3e= zy-zwZ@|h~@Z;V2!k&HDjCHvXcMq3m>O^Up^Gfuy>euwjjqu#&J z>}PR_>T3?@Ybs`sl5fKG!m~HlQ#b`V0@`&Gg)zzcz_j6z4*!NQ_Hhh5xe?)SK=->K z-H6ka0;OD*sG;*Zv2!L9uZpbbx<&eRZGAy6r7JYyL2G_!UDtrE6kr5GaNgkU3=Xd@ z--1nVyLLtE&9{=PAGvh$(brcT&%aK-si!@}=BTm!x`J83`T9_;@Uw_XT-<+F#oZ;M zIN32r=B3>z;ZacsDGjYP zTpIXT>5Mw-*r6~X_aPFpDfePl6M!Cdv;oBsCJ_FAMZSiz6B^G@M`m5AtJ0b0+5Gn= zB828pj!;L=`0JlL9X4mZW)+EvJ1Ia?9A@^^m~zL}yH_`jb^j z%vI)K(@@BsX_6S?#VTfjiJmKuD5|efYV&~ix>RzqEA;#u&j zCh4*@0Xe6oXi|kOL16>V1721ffg$1BU%cKu^5!zH<8z zdYEWZiIQEA0r#f4G(Cr&~XT? zkB+SK)QFiuZ;>8^fQzp`hcb?o_}?Fj&8`? zpiYY$Zr%qP+lIGg0s_uUM&>=UxU53(b>`o~5*7$R(@IRYhYz0rp&?Y1Jb`~(77ZI^ zBiFX!*LF(3fl2j5`So?v=8G{xxbfN3$(uS`HW{m$(KjIF->r*QHJlU1K;Nw!iJVE* zx~{$KjmtV z22Yf5Sgy-5nr4~P(j@$$5TbD%X!!6;Bm?R9(QF9BhWP8NCifVrujXuyD~Ckq0@sPMh_F!?K*&9oZ+iQ6UhXR^qO;Jtoq2Lg`_N7j{1WT6}U7~q5}NgDRn>4|XdL4gr*G1|@eYTO^WuV*M?OqIq(j00*6E`o@^}k;oRz-SrYur3 zt&55A=3>mTnIR){ag$p5Vey-&h+A?Op`Kgzf|X2Ldfh0HomDDm2tARb&V-tE%rJ)Fl5*-8BjicrimjC}UmxhwDs)R#eW z$Bl_bFT6zRjq+t!f`C6p7=*CMtG0&cR`}fH!Q9gDbSLof-JccKcggIhI`zgix*hw! ztaBp5rlgja@kg5t@o>L~pQQm>Q+K;D>I=PCc5nbc_G91Z5S|vzs?BPAEVKiMEv8MF6OG|$THLUJv$Vv6Mz zVwNjpV@ygZvsx#%uJxYejarqQZ6>8$z}cK~VU7%vE(L1|SX#;v>Oeyiq8n^W7joG+L;lM8*HRp^&CpKD{P+gJ+z{PuJCvx?mh zb6%Q!x+Z;kZN2qdPmXz$b2gku5xzx=ZdDhTMVV6~iS=z~;qz-*>e~!v=7*uTAIa_G zT22)iJA_~(1m=XVl-ysiQkC6o_;E4b?|Ve@noi^R z7G1r63edj#!y6~d_?!3B{H*PDa6fb{Aqd}oR^B)ynZ7?POxK+yt=nOHrrv1-*O2Jz z@-7}MaT^f^F~8k1sQit;+40%b`j^Yox~}T~pAB%9Qw9j~{GP0KPOGWc=`UJS#(>jX zK`JlkLUMh#7!7|OcTK-SzLVD10KGtzizF+r;4xh>NA;|m+Y3Q>tBgHdzJ|~FKIyvm zGW49KM8spVm7b&0O#`zfp-3u{4i167CtvaBw3e~XBQw7NpZ8rYi*+%;0YkxwL!vQQ z5J5EUIyD%0s77?-doSbnGqK;~dOd%hzsnY@GCy)%*>xD|>WkOu@f69{^s>m(FP}a+ zdDMA-TFvsKkDk7M@tJFDe8|JE&Ypgj%@)P-@a1=(es(Cf`stI;P9FWfn5*AcjrU@9 zb@)0v5A=KbS-Nxh?CiM%d-#-spu9eNN?+~WKYaS+CoCM&b;a`DJpwfOi1GkHsXKf# z&Vk_{FDq7_eO`MnGBAdp{o*f*XokPrb z`np=z)BN_MqOdMKo6*QfX!IJ%t{5)Hit(QSYN1`Z)SC7Ar?foi*ZS<|K`4;M) zDLPEOZnvyA{rUK^%%4u=UpFtK)N3+If0B~N^yz22Bt7@;?d*(qM(GK4L22*Lmid~D zYB@?@t|w(NB^CLmdYdmln>=`s-Jjn7bob%C{e0)(;jLA6biibTUjM{%@{4L%M>p=9 zM)&#`l_zCEnLz&S|Gndbr*OltoK2N^n@y(tk2k7FlhI{=Y^%*98BN2XM@MED4vX}> zuSwQ__OM2SytIh3_@pMSvqGGF>l+|qq}z(&1^Yd*g;V8;I4U{ z!uVS>dVDuK>h#g%Sv{SzBlCE2#B^r)XII2f{PEq%QBOc`J9Tw7E%S|&*O54WLD^FO zh;wGp^kW-9qhq1!EI^&7GF@0-o*nR=Tk;{}~g7#&^P2m#)_ z==h!{JwRw9BDd)K11f%h4&2VUCNalCF|SHu#8EuGI_Vfc^6MO0U!~?d4ND!j|#UM($AKo><0Ovq61&g z&F42J05^dBK;CBM%P`VKb`76A7jE}>3mK8R1}6d&XI1^QRmey2l<-W^`+s~o5tH|-W|FfZI|1={?M&xstay3PG8bG zbRXub_fRT%LZ>UG4!2RtX~?UByin@vJS!XSY&^gb4xMjWe+B9|(=Nq<>905qlc6UVUvG+T zDK_85G8bVC2_@)dunLx56=fNj9&|iepP%QD=-c^V>6dnv@{BxJe#^oaxCHEqG=8;) zn?=ZkFv;uA->t}{FIpeRTMhhYM<8F5!Xh{6nt~R18n+b4p4EOYecSDm^p;)P$%vQ$ zNbO%!Yg$tyVt#N&>xYfr2TI{r%Muy-?1S;vg(^ax7&qr=ik-?#-|4HQXpbjk_PXG0 ze&eaAC-b*D55H)g*XZ{==EFA%ic`oOB1zgVP~Z9t|S{gjfj%hAb)NK4n$&3WlV5KtX|BOci~ zg*2q=Ldc9-I?qUPOnH80?{D^OldkhwjEQ?_F^_TS;P*{SXM{=D%%#ffj$i`_DZxUh zmU=|>Oeaz()r`~E>q$dvAYkc^2_^SDofXYAt7nnK|1AyZn+mv3^ALN&GHc0`T(z60 z89;>OBh2(^~gohv0chpOeB^ugrViB34^0 zau{)^LDgBgX`zcFK!GiuL0L`T%9~_7Fmp7560Q`1_!!ocRaA$czgo6M+3gQWI~qrw z=M;}oVz8ORD)CAg5scoTOrP|O5i{?k3*ypZ1(%2h)bywyq4dv^qv5R+-A)Jge2g{V zl-D5Ptrw&|L>0dIruuvzedBj>14((kjaU3SuEGs#bj}A3`;O%SGtc`?PfA*}&%xbw zafz0kIDTK0!%o4|V%q%$U+VcH=k%6QF1H^aA!@SuVOL*gE=kxZBfrcwN&a5`SO|#J zdWa6v@Vc;_X45GgzDa&vAxDLH>uO$5i1EI})dkAFpnnaSzOloXq`DVKU*1xpZF|YW zu~R*{=9zlWao$#}-^ZvEk4?egmWGTNv3@ai24!W3puAe-9lMu7KF$lUOl)i&X2VZM zMz9Gvwe@*6eUD(6QD=&(foRqf9*M*(Ivmeli%FY?u+G;@=GCku=UP0l_NvkVrxBin zvjHoHi1{7iNsY^Ed^)JazPL3HjbBQ#ajPeeoWZ&S;vj+h^?*OC>P6Q6Boy&L2csa^ zc`mx}6sqt}jN!hi5aK;uZHP1P%Ny)^XzW_|`^)U=xBc;lD9fK_(?DmcSwCb%=3%fQmd1 zUZBb_Xr4J#!7wQ>{a_XxCK#t#J8agZ6a`WE7Q#>oOJAFaLa1uipDnSgfXqXJ`Au== zv)gm#;`g^mzMvns-qig64QPv2eGkN=UgmR#GCq5iUCFPSm0)40)M!8~LU^Itm-NKacppDI#JMrZ zcf_&3y@zJ*rMSMfn&!`kl32Hd`aWr@i1FLdlPC^rU(qUjcd>3-N?Nv*@mO;&i*PnQY~f27Q`;S!G2TL`#m`1>H8SJ9&3C9 zmXJRmVv_fU{|&IqjeSa5#-;^j0V;$u(FKTZ=AR)VXNQm9CvVrAu)7`1^W}Px*POqH zFWG?}#)^J=$HBW5H%4jZQ-gl5R+6$Ar)TH9+T`L(4Ey-$m*W?wZ%hiP?qnc&eZpJf zQ6FXAr5?}pt#FP=5PwbtqLsVqy@>R)BZM#C)8*;O;RpIZ{P~a!z8CCoK>illyJE4X zP;Sk{B*i@|E)brtHFrpQl)`>lNzc=tyfq*ET=K3*#Ge%gjxcbT#`SpYXN!wpzlY!3 zjwMe-_H@# z3QPU0G3@Q*oj$*Q?cj$$A7s~Cg8c@#)#zDtIYJh1a!rf2Ba?Z8(?Wbfc$mafxn3-9 zHT6HI{K^FUxnfr^)Xx^TYE=3)`St6>ydg*z0pBv{4PXDpMCA4(aSp@JPVD{-2;uDq z!)u)~51t z=mIuY?PXNYt?2P}Lhjgd<+3SGs{NnW) zbTkb+C!4)O0Q!s8Ijybsm#+o{?)IEJII=WzICt>HLhmfAY2{+wuGXaQ+d9t{AzWQ; z&Fh+e3)<-@GhIUQtOc#`;hhi=%{;~FXS8qy-JO+XbtOV06e1Is84%O7Bt%Pmw#b_% zyI|EP0sO7Fg^X8UO_AQn3{CQP)RU@VJ8RIgEXyE^1Tt@ScXoK$tFB5;AA~@OldGEb z80;MZqL`xf1~si_G}kbvK}Y<}lDtha=@t2+gl>mcAsPk&2FIUF@_BYy5S)VFCg=9N zSVmme2q9w3^W+*3u+%=n%$Rv5;8%4)CVgo*M$!Jb8Q`4`0v(kVv#djGJARYZ7ddMk z>!YYH(=^Vks9_Xmt zjlW#CkMB;8F!7z= zNy#V@IWNc*Q5LlzSH8R^3)Uy4$<5mFhVZwb%ky{HVnr}te6^%rn3MS(>VvdhO9@xg zmqNWWPQN=ZfCZWr!pg+b)O#;kr~KW+qd@-mI;F3{2-7u9139mR2Mq@9YXhMqeZ+dt zd^qls{kAjz-8u0-G5vXQK|SfZx6|vesYa*`h9p6R;c8V-Yso{>XhNu-UtOUsbf_8> zQG9G=xrcH3%u)K$ZAJklK`ME9@!3be_ZQDUQqwd0?4!0`_d_eiwDa+gJr+FJpZV;g z(^s#)eAP4OKlT_5#=>hF((JbVJm`--o@CRvLBm)1tk(?BV+tVZVzP#4Y11claWQX4 zU$IJ@QjfhC$q|T-;&y|3divz6&u@eC=XIWknHuh7sPns+h+D82bmVhJNCm=bR#lcA z-hfefW(kkKo>)v(L6S!o_M!3Pc?GKrP&}lj%THxNt1C$9e)iF1U6y%2vZ3i+96bil zA3Y%mkMHuYk4c87b;04|(c`<}U;N527^dns0Eam08-T(L{0+eQeR5Fx8vyijU6bH{ z1AtDhv#(9&yI_ny+cw6{5pDwa!55j}rAmgp zcv`}-y!OfpzsK<(#_FtsV$_2Myr?Vk*C4$UZkN}$p{WP{X|cE&_N-Ve-W#%0nz0Uy z+d|OU;Vdy_@7co>dg<-W*iX<5if79>yy;a{zfEbT;BOiu+T3~1?q88gtefcQJOrR5 zq0Y^pbOPaZIahg*rD13XEn90 zbnCj~p26kIguFj%I`92>jDNBGbwa}#KbQ0htHRr|5a)tvHE&*Vc!NBuTlethDu$f? z^7?H~VJGD#pH??xg{kA-ZfhTX?$rDdgAx{%^f563eKr1I4*jmA!d+fETr9ZN%nulD zVj#*>8;z*?>8hZ(VwQtu2q5u|;bU5ukkzPLb^5c*QOnD2 z_1g^gmaK65iR^S7szsv@#HcXchZV>-NALG?X%@dfo4Gd?d%>^Sj@^>z&&uq=*-7Oz zWn_O1DXlX}Xw5TWz1u9Jel2I{Jx9*7r3UntW7gK`IYql>$#wG6yb@$4ol|??z+k?P z+kLx1NMn;cXMBymFpI2TE5cw%-)vuOHRykN!7TK6di0UELimwcBJ@9(a1P(}@Qxw) z9>V_rs{b4Y*0l84JZFn>TXqXpBWnc_dT1{!77AJdNLjjmKmH^7VciZy z`|uh6#!>&KrtQ64T6}YCvx2vtHd5ou^#Uwz7sF>ovm$rF%Q4<^Zr+FH{<7OS85z4| z5nCh)UxxR?0_j$qJzT%;Z1Cqa7$Ef??a(TkY6{!0@}@l`&k{6EXcjjkn9TG&oSn~ zir;$BNb%Bi-E#6}idgf~OE*u>&lb+F z^4a@hT>so?JHhw!I={7^vlw6CrJp;Tf1ezJ@V-c2^IJc6SU(|6^S(GwzL_k^*TndX z?1Iv++4~~Bkk@|h@IJZD-kYVT^v=&6#^0S&cJO^szQRl20M75D_k)F>+u?hx%Z6CD zq7-1(c#C9{yuBh-;-`h@l$X!2fPl3HUI7uFqNU-C9mf#5GtUKOl;+jCoWXQDPbTY| z$PYHvPraq9?of1Hie20rkt>!xnOe~zO%QjurRZHW`;Sev0 zs%yab#^>(6db=fQKb&44yo{DDukA9LENAP=Arjc=;u|OAYpX;mij!*&I8$051|}>A zhX0p2X8?)$1zVC62#Z! z5n>Z+i_*U(E8TwHP9!xyJZbMa_Ge_@_*YCQ9FA`S=o5;cEl{(D5RL;~W&AD=<-^ww zZe)+IJsL-%+c5@o0GOUMrI$JqC(dw3v&yH%c|lEBCp4Y&LnYAq^_!_CyUCL|*|sN4 zHYT2YvTb|9$+qn#>%_^nC;L=y_ulXOFYF)oe)hB0`YfMan|!2j_Ox+zgOAFbNRfRx?Pa8u` zi`~rQBqN=h${~KRV8N{?*J?Gqx2L)|Zxqwy?C@NH(BrUMi8MAlr)_iQK?@ZQ$Do+B ze1gWy491(}EvFd+b_7&drTHnTmHEt~|9QKCD<|o`@ds|;OFWl=oluhGG3EwO z&ielF%DK*}W;17)u0I&}TTJ+~Evv$d;Fcuue?DFD#NFtV2ik7o zGy)r<;$pvau0Yls^`;#CY%dA(7iF8;eN}xZ5U*fV8Dn7;gsE`3WMJWCkiI|NSCSf7 z9_?0UNVN*W`TE?2;)ZPVw|2Tc5H+AP9v@B-J8c@*OBoIiL)x<1F#1wJNk}Ic&%VbD zet=|#ru@w3cevt?MRqhL&o@y6&DHu`+MohSS4+7rxbXa%6lW{eEGI+KY04hbjH`xW zqmPN;%Y8eeFa|c>*aK<#3f%LHRMfMJc{gdoVTuj?6|VyPF2XXxV!F8yvU{_ z3scYh1UuIm!-%;K_qBA7wQ;g8a*{B&ss{tc#fw|A!Pj$dDBu)QhMDbs!x-;Ln=f?a zj^&0UPI~dK)#P{)M`zSdBFvT`%x_f~l8H#j6L%g*@s0O0PT6b*$0sAXH)AHt*qiLH zTW@CWhn>W(bEIf{k6A?qKg7^>X>RbJ*xQiqqa#U;x+Ycdd{$*Y{1V;PwMub1 zMefAa*o?oYFHJI8`uR7*$gGw)d4wl?f2`A5%c~AUC@x&5?5QfUf*E_w!aj1g!k_+M z%)3%>_ot3cx2%7mLzOlXDb9;7O3i99?AYr@7C|u>5#U&K~{cHWTgDsf?YG0WQvR4L}2( z0q~0yN84jmKY?!1uVgqKJ9CYFyR!`s+Wj*qjYQO2!8@BVVMx+k7H<1V_cW)?Vv95Ulcn3Y~#CgjyW;!M9%9AqP zh4H(z|GZ^hf)};G;p`JHTDlpu-Rpn7q2Rih6)(VA!khRf8QM~B_9>thAwP{LtLGRd z==bohFY)fGxKZ5mr#o;h3i>^hx<i})`4N%^h~I(zTE=~(w0tH{AJ@sJF_KcVk|K6jJHGx7_Q}u^X)mu7V!4| zGZu20oDO?Kqb^BrjG_NlfDh5m{_}AB?7Fh=R6z5BsH|@0q2L*oT6bNO0RKer) znPmI|&e0vzEqJ(51ZJl;wsri9@W-w0&fZ^_07wIrp48R5aD@{()sk|kp_o!=Qq9-H zrFUa&;b@pG^DG))Mcm|v`p_J znkgl0=BK_JTHG`oXkRhqbcJ1bC8eAmHS_Ap=y>NU&W3unF%q(QS4`MJ5h&|qX6Ec4 zF1Oow>>Dg>!JbWh#y3p(^6IF)v2f9i@^va37iD*HrHy=R6aLEEU-&SXe+KHrXXKz_ zFx;eWCghh>9`P_^smCrYFm=<`d%SR!Rcn1@%Vu!@dX1td8V9c7NXLp zI|DadV;K9vjY9xuj_tVJjHa>jyE*{Ob2>wR@bk#V*l%hU| zqYCmiz6#Mgi01ey=T0_LN2-vjUrSx=z3(6O_qeard);m1Q#h6#al ze}9!5*Lbxb7b;uPjYfq-Vgjm*MwKLvnO$Azo*Emmf{_o|D7f9Z6#YnwurX;|)LmJc zdFdaDp^+EUhWXg$cINDYO(%mLl?=V&Vd8^#Kfl)d=en7k6$<|p>&8orzjCv7BvmMW zbJ4}>r6?E(ynP#o>%SOQeUvnR!=E+wZEiPqyNO=6l_@&bCz6*}AjyXy(|o z1-CO8{BB9wk_`G7+fjoT zz~lu+d=Za~u7XW{j$QDLH$^jR7;oS?{WW_eA21uRr@XeH>kI8CzMcuv|N7B-kHc*9 zjtEMIMv2$xs2lRUfqHV%ZoSH%decE|=@9JkWjPVHK64pI;P((d*a>d}O8981dNXq7 zw`8WRVhQxE?>T>+^YBzpHfy)byk{W}K)B?@K8eM zdL&5t##;KHU=QzF6+qqR_xxpDrBTQ&0|U zl{r^&%iRWryJlJnjf07DWh>}Qf#^py2OSGWO4+yY${JqRB2ntuQ`piV)Umf z>LEaMB%#-m&KWVH?TuuXMK?@m3z zqBz=5nvCOqn$uFl?;K23RoP==UPKqyR?^mZT@)MHwoi!XtyviFX6C7_bo9dUp@Oo@ z?M6>zsQ)Qv8h`@&HZZwkLPVe;LUJ!k^UZUFhk~9Fl^(v47*%ONZ2Ah_NKE>?HHL6W32!NtS$hKfnGqzzE3vepTG zKZtl7yG>C3Yx%NmfxUe=@smq?55#GfNH-_f#_&TFqugvGnlDkTvHc@xmzGr|gUmU) zdR$dZn_{&c^30$=KM%Xy09)fZ??P24U^3KGChFkuX#4y^Ry$z*Oty(uW8i!7(sCzY zaAR+&NcrNa+kGhr@1g1qpVTk;&pBPrK=rz4QzTX*V#fXPzJ9R(VDHePy?fhcA-bW5 zyHpuTBlSFgGT&k^A8Q%k=hX!-;I`{Lt!?|Yb|U_B1s)BJGsy&p@w6bxvtayZaJl)stW5_U!rp`*Lb7FT!qz>1JY!PXaGHPz41ptC>F9sw02YOdAjgz;>fQRp*7K7 ztEM}GNH5%$8*Z`xEyyHos*bpr;-(%|BM2WOEsYN1mj#<>aR=R?TLHphD|b;fAjGeW zlr4}lL|ID=v&)2Cy+!Grd$+hc_tu{UagEw$0mYX@9UZwQKe&gC#6ESD=7yIS@5~uN zz{&cwHU!DO`a|vvXBOu79%|hC_tb$tw5+S{luuV4VAPKbz5Vo%6;8-Y7*!AQ_60$I zH7iT`^Fd0b8_t0hml;*4iq#oD=J(eN;{gQ^uZ$5fzjYJ}2^@o`ra^Jp)*za00ZqVY}-!5WAziz82NAE~I zUH_i|7T9`HX!>C2f8u(v9r)n*0sTIy=abJ}3CiT#h%w2n&aPr}O20MeHxt^^7X$28(dwB}gbv$La~V=FhQF z_$+xIm^p$kg8fIxDu-n-&CFCCo=?h^J(Hmn?uY%;iqG#NZAZv~pfmE8<=AHFCSB^1 zY`qfpQK{G^xrGFD3jKM>Rm_L5h8qWVkq;59mMME$LQTQs#xkA2Uk zH5I3)(t*eMqG4FjI#teX^v1l%m@k5Y$Zwc!tOViod7$=N^u=BJn^1cNmfDh;u?u7} zWp8H*wy96!(7^L3Gzh`tSYr%6dg?%?X7;)Ix_>aIJ!q%-r=An6Q5fV1Eq-{Ri1y&W z1?ynuP)BL-X%w{P3a=`1q`;m?S|}3#wrh9!;1;#t)fId1;W6YJk^A{yff;mM+|V&0 zk4bzJ*TQ`6`n?w4-$*xp$>>4^otAzT~dIf@BJEkM>E-EbMEfM!VGC zEQOMcaO%G}I�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%0AHN4_TwZ^zx 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%0Au3iIRMrh9`L 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 TP-$T>9`IKVs^oyD40!iH3xTc# diff --git a/source/packages/log4net.2.0.3/lib/net10-full/log4net.dll b/source/packages/log4net.2.0.3/lib/net10-full/log4net.dll deleted file mode 100644 index 2d9437854206ebaa28836176a6cbe0c25b9c0433..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 299008 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�F4mFg&FN22EXxFl>G2cD9 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 X2waB1We8k`z-0(rhQR+PA@F|ztZpb7 diff --git a/source/packages/log4net.2.0.3/lib/net10-full/log4net.xml b/source/packages/log4net.2.0.3/lib/net10-full/log4net.xml deleted file mode 100644 index 2b9904b..0000000 --- a/source/packages/log4net.2.0.3/lib/net10-full/log4net.xml +++ /dev/null @@ -1,30525 +0,0 @@ - - - - log4net - - - -

    - Appender that logs to a database. - - - - appends logging events to a table within a - database. The appender can be configured to specify the connection - string by setting the property. - The connection type (provider) can be specified by setting the - property. For more information on database connection strings for - your specific database see http://www.connectionstrings.com/. - - - Records are written into the database either using a prepared - statement or a stored procedure. The property - is set to (System.Data.CommandType.Text) to specify a prepared statement - or to (System.Data.CommandType.StoredProcedure) to specify a stored - procedure. - - - The prepared statement text or the name of the stored procedure - must be set in the property. - - - The prepared statement or stored procedure can take a number - of parameters. Parameters are added using the - method. This adds a single to the - ordered list of parameters. The - type may be subclassed if required to provide database specific - functionality. The specifies - the parameter name, database type, size, and how the value should - be generated using a . - - - - An example of a SQL Server table that could be logged to: - - CREATE TABLE [dbo].[Log] ( - [ID] [int] IDENTITY (1, 1) NOT NULL , - [Date] [datetime] NOT NULL , - [Thread] [varchar] (255) NOT NULL , - [Level] [varchar] (20) NOT NULL , - [Logger] [varchar] (255) NOT NULL , - [Message] [varchar] (4000) NOT NULL - ) ON [PRIMARY] - - - - An example configuration to log to the above table: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Julian Biddle - Nicko Cadell - Gert Driesen - Lance Nehring - - - - Abstract base class implementation of that - buffers events in a fixed size buffer. - - - - This base class should be used by appenders that need to buffer a - number of events before logging them. For example the - buffers events and then submits the entire contents of the buffer to - the underlying database in one go. - - - Subclasses should override the - method to deliver the buffered events. - - The BufferingAppenderSkeleton maintains a fixed size cyclic - buffer of events. The size of the buffer is set using - the property. - - A is used to inspect - each event as it arrives in the appender. If the - triggers, then the current buffer is sent immediately - (see ). Otherwise the event - is stored in the buffer. For example, an evaluator can be used to - deliver the events immediately when an ERROR event arrives. - - - The buffering appender can be configured in a mode. - By default the appender is NOT lossy. When the buffer is full all - the buffered events are sent with . - If the property is set to true then the - buffer will not be sent when it is full, and new events arriving - in the appender will overwrite the oldest event in the buffer. - In lossy mode the buffer will only be sent when the - triggers. This can be useful behavior when you need to know about - ERROR events but not about events with a lower level, configure an - evaluator that will trigger when an ERROR event arrives, the whole - buffer will be sent which gives a history of events leading up to - the ERROR event. - - - Nicko Cadell - Gert Driesen - - - - Abstract base class implementation of . - - - - This class provides the code for common functionality, such - as support for threshold filtering and support for general filters. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface for your own strategies for printing log statements. - - - - Implementors should consider extending the - class which provides a default implementation of this interface. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Log the logging event in Appender specific way. - - The event to log - - - This method is called to log a message into this appender. - - - - - - Gets or sets the name of this appender. - - The name of the appender. - - The name uniquely identifies the appender. - - - - - Interface for appenders that support bulk logging. - - - - This interface extends the interface to - support bulk logging of objects. Appenders - should only implement this interface if they can bulk log efficiently. - - - Nicko Cadell - - - - Log the array of logging events in Appender specific way. - - The events to log - - - This method is called to log an array of events into this appender. - - - - - - Interface used to delay activate a configured object. - - - - This allows an object to defer activation of its options until all - options have been set. This is required for components which have - related options that remain ambiguous until all are set. - - - If a component implements this interface then the method - must be called by the container after its all the configured properties have been set - and before the component can be used. - - - Nicko Cadell - - - - Activate the options that were previously set with calls to properties. - - - - This allows an object to defer activation of its options until all - options have been set. This is required for components which have - related options that remain ambiguous until all are set. - - - If a component implements this interface then this method must be called - after its properties have been set before the component can be used. - - - - - - Initial buffer size - - - - - Maximum buffer size before it is recycled - - - - - Default constructor - - - Empty default constructor - - - - - Finalizes this appender by calling the implementation's - method. - - - - If this appender has not been closed then the Finalize method - will call . - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Closes the appender and release resources. - - - - Release any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - This method cannot be overridden by subclasses. This method - delegates the closing of the appender to the - method which must be overridden in the subclass. - - - - - - Performs threshold checks and invokes filters before - delegating actual logging to the subclasses specific - method. - - The event to log. - - - This method cannot be overridden by derived classes. A - derived class should override the method - which is called by this method. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - Calls and checks that - it returns true. - - - - - If all of the above steps succeed then the - will be passed to the abstract method. - - - - - - Performs threshold checks and invokes filters before - delegating actual logging to the subclasses specific - method. - - The array of events to log. - - - This method cannot be overridden by derived classes. A - derived class should override the method - which is called by this method. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - Calls and checks that - it returns true. - - - - - If all of the above steps succeed then the - will be passed to the method. - - - - - - Test if the logging event should we output by this appender - - the event to test - true if the event should be output, false if the event should be ignored - - - This method checks the logging event against the threshold level set - on this appender and also against the filters specified on this - appender. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - - - - - Adds a filter to the end of the filter chain. - - the filter to add to this appender - - - The Filters are organized in a linked list. - - - Setting this property causes the new filter to be pushed onto the - back of the filter chain. - - - - - - Clears the filter list for this appender. - - - - Clears the filter list for this appender. - - - - - - Checks if the message level is below this appender's threshold. - - to test against. - - - If there is no threshold set, then the return value is always true. - - - - true if the meets the - requirements of this appender. - - - - - Is called when the appender is closed. Derived classes should override - this method if resources need to be released. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Subclasses of should implement this method - to perform actual logging. - - The event to append. - - - A subclass must implement this method to perform - logging of the . - - This method will be called by - if all the conditions listed for that method are met. - - - To restrict the logging of events in the appender - override the method. - - - - - - Append a bulk array of logging events. - - the array of logging events - - - This base class implementation calls the - method for each element in the bulk array. - - - A sub class that can better process a bulk array of events should - override this method in addition to . - - - - - - Called before as a precondition. - - - - This method is called by - before the call to the abstract method. - - - This method can be overridden in a subclass to extend the checks - made before the event is passed to the method. - - - A subclass should ensure that they delegate this call to - this base class if it is overridden. - - - true if the call to should proceed. - - - - Renders the to a string. - - The event to render. - The event rendered as a string. - - - Helper method to render a to - a string. This appender must have a - set to render the to - a string. - - If there is exception data in the logging event and - the layout does not process the exception, this method - will append the exception text to the rendered string. - - - Where possible use the alternative version of this method - . - That method streams the rendering onto an existing Writer - which can give better performance if the caller already has - a open and ready for writing. - - - - - - Renders the to a string. - - The event to render. - The TextWriter to write the formatted event to - - - Helper method to render a to - a string. This appender must have a - set to render the to - a string. - - If there is exception data in the logging event and - the layout does not process the exception, this method - will append the exception text to the rendered string. - - - Use this method in preference to - where possible. If, however, the caller needs to render the event - to a string then does - provide an efficient mechanism for doing so. - - - - - - The layout of this appender. - - - See for more information. - - - - - The name of this appender. - - - See for more information. - - - - - The level threshold of this appender. - - - - There is no level threshold filtering by default. - - - See for more information. - - - - - - It is assumed and enforced that errorHandler is never null. - - - - It is assumed and enforced that errorHandler is never null. - - - See for more information. - - - - - - The first filter in the filter chain. - - - - Set to null initially. - - - See for more information. - - - - - - The last filter in the filter chain. - - - See for more information. - - - - - Flag indicating if this appender is closed. - - - See for more information. - - - - - The guard prevents an appender from repeatedly calling its own DoAppend method - - - - - StringWriter used to render events - - - - - The fully qualified type of the AppenderSkeleton class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the threshold of this appender. - - - The threshold of the appender. - - - - All log events with lower level than the threshold level are ignored - by the appender. - - - In configuration files this option is specified by setting the - value of the option to a level - string, such as "DEBUG", "INFO" and so on. - - - - - - Gets or sets the for this appender. - - The of the appender - - - The provides a default - implementation for the property. - - - - - - The filter chain. - - The head of the filter chain filter chain. - - - Returns the head Filter. The Filters are organized in a linked list - and so all Filters on this Appender are available through the result. - - - - - - Gets or sets the for this appender. - - The layout of the appender. - - - See for more information. - - - - - - - Gets or sets the name of this appender. - - The name of the appender. - - - The name uniquely identifies the appender. - - - - - - Tests if this appender requires a to be set. - - - - In the rather exceptional case, where the appender - implementation admits a layout but can also work without it, - then the appender should return true. - - - This default implementation always returns false. - - - - true if the appender requires a layout object, otherwise false. - - - - - The default buffer size. - - - The default size of the cyclic buffer used to store events. - This is set to 512 by default. - - - - - Initializes a new instance of the class. - - - - Protected default constructor to allow subclassing. - - - - - - Initializes a new instance of the class. - - the events passed through this appender must be - fixed by the time that they arrive in the derived class' SendBuffer method. - - - Protected constructor to allow subclassing. - - - The should be set if the subclass - expects the events delivered to be fixed even if the - is set to zero, i.e. when no buffering occurs. - - - - - - Flush the currently buffered events - - - - Flushes any events that have been buffered. - - - If the appender is buffering in mode then the contents - of the buffer will NOT be flushed to the appender. - - - - - - Flush the currently buffered events - - set to true to flush the buffer of lossy events - - - Flushes events that have been buffered. If is - false then events will only be flushed if this buffer is non-lossy mode. - - - If the appender is buffering in mode then the contents - of the buffer will only be flushed if is true. - In this case the contents of the buffer will be tested against the - and if triggering will be output. All other buffered - events will be discarded. - - - If is true then the buffer will always - be emptied by calling this method. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Close this appender instance. - - - - Close this appender instance. If this appender is marked - as not then the remaining events in - the buffer must be sent when the appender is closed. - - - - - - This method is called by the method. - - the event to log - - - Stores the in the cyclic buffer. - - - The buffer will be sent (i.e. passed to the - method) if one of the following conditions is met: - - - - The cyclic buffer is full and this appender is - marked as not lossy (see ) - - - An is set and - it is triggered for the - specified. - - - - Before the event is stored in the buffer it is fixed - (see ) to ensure that - any data referenced by the event will be valid when the buffer - is processed. - - - - - - Sends the contents of the buffer. - - The first logging event. - The buffer containing the events that need to be send. - - - The subclass must override . - - - - - - Sends the events. - - The events that need to be send. - - - The subclass must override this method to process the buffered events. - - - - - - The size of the cyclic buffer used to hold the logging events. - - - Set to by default. - - - - - The cyclic buffer used to store the logging events. - - - - - The triggering event evaluator that causes the buffer to be sent immediately. - - - The object that is used to determine if an event causes the entire - buffer to be sent immediately. This field can be null, which - indicates that event triggering is not to be done. The evaluator - can be set using the property. If this appender - has the ( property) set to - true then an must be set. - - - - - Indicates if the appender should overwrite events in the cyclic buffer - when it becomes full, or if the buffer should be flushed when the - buffer is full. - - - If this field is set to true then an must - be set. - - - - - The triggering event evaluator filters discarded events. - - - The object that is used to determine if an event that is discarded should - really be discarded or if it should be sent to the appenders. - This field can be null, which indicates that all discarded events will - be discarded. - - - - - Value indicating which fields in the event should be fixed - - - By default all fields are fixed - - - - - The events delivered to the subclass must be fixed. - - - - - Gets or sets a value that indicates whether the appender is lossy. - - - true if the appender is lossy, otherwise false. The default is false. - - - - This appender uses a buffer to store logging events before - delivering them. A triggering event causes the whole buffer - to be send to the remote sink. If the buffer overruns before - a triggering event then logging events could be lost. Set - to false to prevent logging events - from being lost. - - If is set to true then an - must be specified. - - - - - Gets or sets the size of the cyclic buffer used to hold the - logging events. - - - The size of the cyclic buffer used to hold the logging events. - - - - The option takes a positive integer - representing the maximum number of logging events to collect in - a cyclic buffer. When the is reached, - oldest events are deleted as new events are added to the - buffer. By default the size of the cyclic buffer is 512 events. - - - If the is set to a value less than - or equal to 1 then no buffering will occur. The logging event - will be delivered synchronously (depending on the - and properties). Otherwise the event will - be buffered. - - - - - - Gets or sets the that causes the - buffer to be sent immediately. - - - The that causes the buffer to be - sent immediately. - - - - The evaluator will be called for each event that is appended to this - appender. If the evaluator triggers then the current buffer will - immediately be sent (see ). - - If is set to true then an - must be specified. - - - - - Gets or sets the value of the to use. - - - The value of the to use. - - - - The evaluator will be called for each event that is discarded from this - appender. If the evaluator triggers then the current buffer will immediately - be sent (see ). - - - - - - Gets or sets a value indicating if only part of the logging event data - should be fixed. - - - true if the appender should only fix part of the logging event - data, otherwise false. The default is false. - - - - Setting this property to true will cause only part of the - event data to be fixed and serialized. This will improve performance. - - - See for more information. - - - - - - Gets or sets a the fields that will be fixed in the event - - - The event fields that will be fixed before the event is buffered - - - - The logging event needs to have certain thread specific values - captured before it can be buffered. See - for details. - - - - - - - Initializes a new instance of the class. - - - Public default constructor to initialize a new instance of this class. - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Override the parent method to close the database - - - - Closes the database command and database connection. - - - - - - Inserts the events into the database. - - The events to insert into the database. - - - Insert all the events specified in the - array into the database. - - - - - - Adds a parameter to the command. - - The parameter to add to the command. - - - Adds a parameter to the ordered list of command parameters. - - - - - - Writes the events to the database using the transaction specified. - - The transaction that the events will be executed under. - The array of events to insert into the database. - - - The transaction argument can be null if the appender has been - configured not to use transactions. See - property for more information. - - - - - - Formats the log message into database statement text. - - The event being logged. - - This method can be overridden by subclasses to provide - more control over the format of the database statement. - - - Text that can be passed to a . - - - - - Creates an instance used to connect to the database. - - - This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). - - The of the object. - The connectionString output from the ResolveConnectionString method. - An instance with a valid connection string. - - - - Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey - property. - - - ConnectiongStringName is only supported on .NET 2.0 and higher. - - Additional information describing the connection string. - A connection string used to connect to the database. - - - - Retrieves the class type of the ADO.NET provider. - - - - Gets the Type of the ADO.NET provider to use to connect to the - database. This method resolves the type specified in the - property. - - - Subclasses can override this method to return a different type - if necessary. - - - The of the ADO.NET provider - - - - Prepares the database command and initialize the parameters. - - - - - Connects to the database. - - - - - Cleanup the existing command. - - - If true, a message will be written using LogLog.Warn if an exception is encountered when calling Dispose. - - - - - Cleanup the existing connection. - - - Calls the IDbConnection's method. - - - - - Flag to indicate if we are using a command object - - - - Set to true when the appender is to use a prepared - statement or stored procedure to insert into the database. - - - - - - The list of objects. - - - - The list of objects. - - - - - - The security context to use for privileged calls - - - - - The that will be used - to insert logging events into a database. - - - - - The database command. - - - - - Database connection string. - - - - - The appSettings key from App.Config that contains the connection string. - - - - - String type name of the type name. - - - - - The text of the command. - - - - - The command type. - - - - - Indicates whether to use transactions when writing to the database. - - - - - Indicates whether to use transactions when writing to the database. - - - - - The fully qualified type of the AdoNetAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the database connection string that is used to connect to - the database. - - - The database connection string used to connect to the database. - - - - The connections string is specific to the connection type. - See for more information. - - - Connection string for MS Access via ODBC: - "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" - - Another connection string for MS Access via ODBC: - "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" - - Connection string for MS Access via OLE DB: - "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" - - - - - The appSettings key from App.Config that contains the connection string. - - - - - Gets or sets the type name of the connection - that should be created. - - - The type name of the connection. - - - - The type name of the ADO.NET provider to use. - - - The default is to use the OLE DB provider. - - - Use the OLE DB Provider. This is the default value. - System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Use the MS SQL Server Provider. - System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Use the ODBC Provider. - Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral - This is an optional package that you can download from - http://msdn.microsoft.com/downloads - search for ODBC .NET Data Provider. - - Use the Oracle Provider. - System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - This is an optional package that you can download from - http://msdn.microsoft.com/downloads - search for .NET Managed Provider for Oracle. - - - - - Gets or sets the command text that is used to insert logging events - into the database. - - - The command text used to insert logging events into the database. - - - - Either the text of the prepared statement or the - name of the stored procedure to execute to write into - the database. - - - The property determines if - this text is a prepared statement or a stored procedure. - - - - - - Gets or sets the command type to execute. - - - The command type to execute. - - - - This value may be either (System.Data.CommandType.Text) to specify - that the is a prepared statement to execute, - or (System.Data.CommandType.StoredProcedure) to specify that the - property is the name of a stored procedure - to execute. - - - The default value is (System.Data.CommandType.Text). - - - - - - Should transactions be used to insert logging events in the database. - - - true if transactions should be used to insert logging events in - the database, otherwise false. The default value is true. - - - - Gets or sets a value that indicates whether transactions should be used - to insert logging events in the database. - - - When set a single transaction will be used to insert the buffered events - into the database. Otherwise each event will be inserted without using - an explicit transaction. - - - - - - Gets or sets the used to call the NetSend method. - - - The used to call the NetSend method. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Should this appender try to reconnect to the database on error. - - - true if the appender should try to reconnect to the database after an - error has occurred, otherwise false. The default value is false, - i.e. not to try to reconnect. - - - - The default behaviour is for the appender not to try to reconnect to the - database if an error occurs. Subsequent logging events are discarded. - - - To force the appender to attempt to reconnect to the database set this - property to true. - - - When the appender attempts to connect to the database there may be a - delay of up to the connection timeout specified in the connection string. - This delay will block the calling application's thread. - Until the connection can be reestablished this potential delay may occur multiple times. - - - - - - Gets or sets the underlying . - - - The underlying . - - - creates a to insert - logging events into a database. Classes deriving from - can use this property to get or set this . Use the - underlying returned from if - you require access beyond that which provides. - - - - - Parameter type used by the . - - - - This class provides the basic database parameter properties - as defined by the interface. - - This type can be subclassed to provide database specific - functionality. The two methods that are called externally are - and . - - - - - - Initializes a new instance of the class. - - - Default constructor for the AdoNetAppenderParameter class. - - - - - Prepare the specified database command object. - - The command to prepare. - - - Prepares the database command object by adding - this parameter to its collection of parameters. - - - - - - Renders the logging event and set the parameter value in the command. - - The command containing the parameter. - The event to be rendered. - - - Renders the logging event using this parameters layout - object. Sets the value of the parameter on the command object. - - - - - - The name of this parameter. - - - - - The database type for this parameter. - - - - - Flag to infer type rather than use the DbType - - - - - The precision for this parameter. - - - - - The scale for this parameter. - - - - - The size for this parameter. - - - - - The to use to render the - logging event into an object for this parameter. - - - - - Gets or sets the name of this parameter. - - - The name of this parameter. - - - - The name of this parameter. The parameter name - must match up to a named parameter to the SQL stored procedure - or prepared statement. - - - - - - Gets or sets the database type for this parameter. - - - The database type for this parameter. - - - - The database type for this parameter. This property should - be set to the database type from the - enumeration. See . - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the type from the value. - - - - - - - Gets or sets the precision for this parameter. - - - The precision for this parameter. - - - - The maximum number of digits used to represent the Value. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the precision from the value. - - - - - - - Gets or sets the scale for this parameter. - - - The scale for this parameter. - - - - The number of decimal places to which Value is resolved. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the scale from the value. - - - - - - - Gets or sets the size for this parameter. - - - The size for this parameter. - - - - The maximum size, in bytes, of the data within the column. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the size from the value. - - - For BLOB data types like VARCHAR(max) it may be impossible to infer the value automatically, use -1 as the size in this case. - - - - - - - Gets or sets the to use to - render the logging event into an object for this - parameter. - - - The used to render the - logging event into an object for this parameter. - - - - The that renders the value for this - parameter. - - - The can be used to adapt - any into a - for use in the property. - - - - - - Appends logging events to the terminal using ANSI color escape sequences. - - - - AnsiColorTerminalAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. It also allows the color of a specific level of message to be set. - - - This appender expects the terminal to understand the VT100 control set - in order to interpret the color codes. If the terminal or console does not - understand the control codes the behavior is not defined. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes each message to the System.Console.Out or - System.Console.Error that is set at the time the event is appended. - Therefore it is possible to programmatically redirect the output of this appender - (for example NUnit does this to capture program output). While this is the desired - behavior of this appender it may have security implications in your application. - - - When configuring the ANSI colored terminal appender, a mapping should be - specified to map a logging level to a color. For example: - - - - - - - - - - - - - - - The Level is the standard log4net logging level and ForeColor and BackColor can be any - of the following values: - - Blue - Green - Red - White - Yellow - Purple - Cyan - - These color values cannot be combined together to make new colors. - - - The attributes can be any combination of the following: - - Brightforeground is brighter - Dimforeground is dimmer - Underscoremessage is underlined - Blinkforeground is blinking (does not work on all terminals) - Reverseforeground and background are reversed - Hiddenoutput is hidden - Strikethroughmessage has a line through it - - While any of these attributes may be combined together not all combinations - work well together, for example setting both Bright and Dim attributes makes - no sense. - - - Patrick Wagstrom - Nicko Cadell - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Ansi code to reset terminal - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Add a mapping of level to color - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the foreground and background colours - for a level. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to color mappings set on this appender. - - - - - - Flag to write output to the error stream rather than the standard output stream - - - - - Mapping from level object to color value - - - - - Target is the value of the console output stream. - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The enum of possible display attributes - - - - The following flags can be combined together to - form the ANSI color attributes. - - - - - - - text is bright - - - - - text is dim - - - - - text is underlined - - - - - text is blinking - - - Not all terminals support this attribute - - - - - text and background colors are reversed - - - - - text is hidden - - - - - text is displayed with a strikethrough - - - - - text color is light - - - - - The enum of possible foreground or background color values for - use with the color mapping method - - - - The output can be in one for the following ANSI colors. - - - - - - - color is black - - - - - color is red - - - - - color is green - - - - - color is yellow - - - - - color is blue - - - - - color is magenta - - - - - color is cyan - - - - - color is white - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and the color it should be displayed in. - - - - - - An entry in the - - - - This is an abstract base class for types that are stored in the - object. - - - Nicko Cadell - - - - Default protected constructor - - - - Default protected constructor - - - - - - Initialize any options defined on this entry - - - - Should be overridden by any classes that need to initialise based on their options - - - - - - The level that is the key for this mapping - - - The that is the key for this mapping - - - - Get or set the that is the key for this - mapping subclass. - - - - - - Initialize the options for the object - - - - Combine the and together - and append the attributes. - - - - - - The mapped foreground color for the specified level - - - - Required property. - The mapped foreground color for the specified level - - - - - - The mapped background color for the specified level - - - - Required property. - The mapped background color for the specified level - - - - - - The color attributes for the specified level - - - - Required property. - The color attributes for the specified level - - - - - - The combined , and - suitable for setting the ansi terminal color. - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a AppenderCollection instance. - - list to create a readonly wrapper arround - - An AppenderCollection wrapper that is read-only. - - - - - An empty readonly static AppenderCollection - - - - - Initializes a new instance of the AppenderCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the AppenderCollection class - that has the specified initial capacity. - - - The number of elements that the new AppenderCollection is initially capable of storing. - - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified AppenderCollection. - - The AppenderCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - - Copies the entire AppenderCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire AppenderCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the AppenderCollection. - - The to be added to the end of the AppenderCollection. - The index at which the value has been added. - - - - Removes all elements from the AppenderCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the AppenderCollection. - - The to check for. - true if is found in the AppenderCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the AppenderCollection. - - The to locate in the AppenderCollection. - - The zero-based index of the first occurrence of - in the entire AppenderCollection, if found; otherwise, -1. - - - - - Inserts an element into the AppenderCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the AppenderCollection. - - The to remove from the AppenderCollection. - - The specified was not found in the AppenderCollection. - - - - - Removes the element at the specified index of the AppenderCollection. - - The zero-based index of the element to remove. - - is less than zero - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the AppenderCollection. - - An for the entire AppenderCollection. - - - - Adds the elements of another AppenderCollection to the current AppenderCollection. - - The AppenderCollection whose elements should be added to the end of the current AppenderCollection. - The new of the AppenderCollection. - - - - Adds the elements of a array to the current AppenderCollection. - - The array whose elements should be added to the end of the AppenderCollection. - The new of the AppenderCollection. - - - - Adds the elements of a collection to the current AppenderCollection. - - The collection whose elements should be added to the end of the AppenderCollection. - The new of the AppenderCollection. - - - - Sets the capacity to the actual number of elements. - - - - - Return the collection elements as an array - - the array - - - - is less than zero - -or- - is equal to or greater than . - - - - - is less than zero - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the AppenderCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - The zero-based index of the element to get or set. - - is less than zero - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false - - - - Gets or sets the number of elements the AppenderCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - - A value - - - - - Supports simple iteration over a . - - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - - - - - Appends log events to the ASP.NET system. - - - - - Diagnostic information and tracing messages that you specify are appended to the output - of the page that is sent to the requesting browser. Optionally, you can view this information - from a separate trace viewer (Trace.axd) that displays trace information for every page in a - given application. - - - Trace statements are processed and displayed only when tracing is enabled. You can control - whether tracing is displayed to a page, to the trace viewer, or both. - - - The logging event is passed to the or - method depending on the level of the logging event. - The event's logger name is the default value for the category parameter of the Write/Warn method. - - - Nicko Cadell - Gert Driesen - Ron Grabowski - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Write the logging event to the ASP.NET trace - - the event to log - - - Write the logging event to the ASP.NET trace - HttpContext.Current.Trace - (). - - - - - - Defaults to %logger - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The category parameter sent to the Trace method. - - - - Defaults to %logger which will use the logger name of the current - as the category parameter. - - - - - - - - Buffers events and then forwards them to attached appenders. - - - - The events are buffered in this appender until conditions are - met to allow the appender to deliver the events to the attached - appenders. See for the - conditions that cause the buffer to be sent. - - The forwarding appender can be used to specify different - thresholds and filters for the same appender at different locations - within the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Interface for attaching appenders to objects. - - - - Interface for attaching, removing and retrieving appenders. - - - Nicko Cadell - Gert Driesen - - - - Attaches an appender. - - The appender to add. - - - Add the specified appender. The implementation may - choose to allow or deny duplicate appenders. - - - - - - Gets an attached appender with the specified name. - - The name of the appender to get. - - The appender with the name specified, or null if no appender with the - specified name is found. - - - - Returns an attached appender with the specified. - If no appender with the specified name is found null will be - returned. - - - - - - Removes all attached appenders. - - - - Removes and closes all attached appenders - - - - - - Removes the specified appender from the list of attached appenders. - - The appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Gets all attached appenders. - - - A collection of attached appenders. - - - - Gets a collection of attached appenders. - If there are no attached appenders the - implementation should return an empty - collection rather than null. - - - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Send the events. - - The events that need to be send. - - - Forwards the events to the attached appenders. - - - - - - Adds an to the list of appenders of this - instance. - - The to add to this appender. - - - If the specified is already in the list of - appenders, then it won't be added again. - - - - - - Looks for the appender with the specified name. - - The name of the appender to lookup. - - The appender with the specified name, or null. - - - - Get the named appender attached to this buffering appender. - - - - - - Removes all previously added appenders from this appender. - - - - This is useful when re-reading configuration information. - - - - - - Removes the specified appender from the list of appenders. - - The appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Implementation of the interface - - - - - Gets the appenders contained in this appender as an - . - - - If no appenders can be found, then an - is returned. - - - A collection of the appenders in this appender. - - - - - Appends logging events to the console. - - - - ColoredConsoleAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. It also allows the color of a specific type of message to be set. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes directly to the application's attached console - not to the System.Console.Out or System.Console.Error TextWriter. - The System.Console.Out and System.Console.Error streams can be - programmatically redirected (for example NUnit does this to capture program output). - This appender will ignore these redirections because it needs to use Win32 - API calls to colorize the output. To respect these redirections the - must be used. - - - When configuring the colored console appender, mapping should be - specified to map a logging level to a color. For example: - - - - - - - - - - - - - - The Level is the standard log4net logging level and ForeColor and BackColor can be any - combination of the following values: - - Blue - Green - Red - White - Yellow - Purple - Cyan - HighIntensity - - - - Rick Hobbs - Nicko Cadell - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - flag set to true to write to the console error stream - - When is set to true, output is written to - the standard error output stream. Otherwise, output is written to the standard - output stream. - - - - - Add a mapping of level to color - done by the config file - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the foreground and background colors - for a level. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to color mappings set on this appender. - - - - - - Flag to write output to the error stream rather than the standard output stream - - - - - Mapping from level object to color value - - - - - The console output stream writer to write to - - - - This writer is not thread safe. - - - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The enum of possible color values for use with the color mapping method - - - - The following flags can be combined together to - form the colors. - - - - - - - color is blue - - - - - color is green - - - - - color is red - - - - - color is white - - - - - color is yellow - - - - - color is purple - - - - - color is cyan - - - - - color is intensified - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and the color it should be displayed in. - - - - - - Initialize the options for the object - - - - Combine the and together. - - - - - - The mapped foreground color for the specified level - - - - Required property. - The mapped foreground color for the specified level. - - - - - - The mapped background color for the specified level - - - - Required property. - The mapped background color for the specified level. - - - - - - The combined and suitable for - setting the console color. - - - - - Appends logging events to the console. - - - - ConsoleAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes each message to the System.Console.Out or - System.Console.Error that is set at the time the event is appended. - Therefore it is possible to programmatically redirect the output of this appender - (for example NUnit does this to capture program output). While this is the desired - behavior of this appender it may have security implications in your application. - - - Nicko Cadell - Gert Driesen - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - flag set to true to write to the console error stream - - When is set to true, output is written to - the standard error output stream. Otherwise, output is written to the standard - output stream. - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appends log events to the system. - - - - The application configuration file can be used to control what listeners - are actually used. See the MSDN documentation for the - class for details on configuring the - debug system. - - - Events are written using the - method. The event's logger name is passed as the value for the category name to the Write method. - - - Nicko Cadell - - - - Initializes a new instance of the . - - - - Default constructor. - - - - - - Initializes a new instance of the - with a specified layout. - - The layout to use with this appender. - - - Obsolete constructor. - - - - - - Writes the logging event to the system. - - The event to log. - - - Writes the logging event to the system. - If is true then the - is called. - - - - - - Immediate flush means that the underlying writer or output stream - will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logs events are not actually written to persistent media if and - when the application crashes. - - - The default value is true. - - - - - Gets or sets a value that indicates whether the appender will - flush at the end of each write. - - - The default behavior is to flush at the end of each - write. If the option is set tofalse, then the underlying - stream can defer writing to physical medium to a later time. - - - Avoiding the flush operation at the end of each append results - in a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Writes events to the system event log. - - - - The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. - See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog - - - The EventID of the event log entry can be - set using the EventID property () - on the . - - - The Category of the event log entry can be - set using the Category property () - on the . - - - There is a limit of 32K characters for an event log message - - - When configuring the EventLogAppender a mapping can be - specified to map a logging level to an event log entry type. For example: - - - <mapping> - <level value="ERROR" /> - <eventLogEntryType value="Error" /> - </mapping> - <mapping> - <level value="DEBUG" /> - <eventLogEntryType value="Information" /> - </mapping> - - - The Level is the standard log4net logging level and eventLogEntryType can be any value - from the enum, i.e.: - - Erroran error event - Warninga warning event - Informationan informational event - - - - Aspi Havewala - Douglas de la Torre - Nicko Cadell - Gert Driesen - Thomas Voss - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initializes a new instance of the class - with the specified . - - The to use with this appender. - - - Obsolete constructor. - - - - - - Add a mapping of level to - done by the config file - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the event log entry type for a level. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Create an event log source - - - Uses different API calls under NET_2_0 - - - - - This method is called by the - method. - - the event to log - - Writes the event to the system event log using the - . - - If the event has an EventID property (see ) - set then this integer will be used as the event log event id. - - - There is a limit of 32K characters for an event log message - - - - - - Get the equivalent for a - - the Level to convert to an EventLogEntryType - The equivalent for a - - Because there are fewer applicable - values to use in logging levels than there are in the - this is a one way mapping. There is - a loss of information during the conversion. - - - - - The log name is the section in the event logs where the messages - are stored. - - - - - Name of the application to use when logging. This appears in the - application column of the event log named by . - - - - - The name of the machine which holds the event log. This is - currently only allowed to be '.' i.e. the current machine. - - - - - Mapping from level object to EventLogEntryType - - - - - The security context to use for privileged calls - - - - - The event ID to use unless one is explicitly specified via the LoggingEvent's properties. - - - - - The event category to use unless one is explicitly specified via the LoggingEvent's properties. - - - - - The fully qualified type of the EventLogAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - The maximum size supported by default. - - - http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx - The 32766 documented max size is two bytes shy of 32K (I'm assuming 32766 - may leave space for a two byte null terminator of #0#0). The 32766 max - length is what the .NET 4.0 source code checks for, but this is WRONG! - Strings with a length > 31839 on Windows Vista or higher can CORRUPT - the event log! See: System.Diagnostics.EventLogInternal.InternalWriteEvent() - for the use of the 32766 max size. - - - - - The maximum size supported by a windows operating system that is vista - or newer. - - - See ReportEvent API: - http://msdn.microsoft.com/en-us/library/aa363679(VS.85).aspx - ReportEvent's lpStrings parameter: - "A pointer to a buffer containing an array of - null-terminated strings that are merged into the message before Event Viewer - displays the string to the user. This parameter must be a valid pointer - (or NULL), even if wNumStrings is zero. Each string is limited to 31,839 characters." - - Going beyond the size of 31839 will (at some point) corrupt the event log on Windows - Vista or higher! It may succeed for a while...but you will eventually run into the - error: "System.ComponentModel.Win32Exception : A device attached to the system is - not functioning", and the event log will then be corrupt (I was able to corrupt - an event log using a length of 31877 on Windows 7). - - The max size for Windows Vista or higher is documented here: - http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx. - Going over this size may succeed a few times but the buffer will overrun and - eventually corrupt the log (based on testing). - - The maxEventMsgSize size is based on the max buffer size of the lpStrings parameter of the ReportEvent API. - The documented max size for EventLog.WriteEntry for Windows Vista and higher is 31839, but I'm leaving room for a - terminator of #0#0, as we cannot see the source of ReportEvent (though we could use an API monitor to examine the - buffer, given enough time). - - - - - The maximum size that the operating system supports for - a event log message. - - - Used to determine the maximum string length that can be written - to the operating system event log and eventually truncate a string - that exceeds the limits. - - - - - This method determines the maximum event log message size allowed for - the current environment. - - - - - - The name of the log where messages will be stored. - - - The string name of the log where messages will be stored. - - - This is the name of the log as it appears in the Event Viewer - tree. The default value is to log into the Application - log, this is where most applications write their events. However - if you need a separate log for your application (or applications) - then you should set the appropriately. - This should not be used to distinguish your event log messages - from those of other applications, the - property should be used to distinguish events. This property should be - used to group together events into a single log. - - - - - - Property used to set the Application name. This appears in the - event logs when logging. - - - The string used to distinguish events from different sources. - - - Sets the event log source property. - - - - - This property is used to return the name of the computer to use - when accessing the event logs. Currently, this is the current - computer, denoted by a dot "." - - - The string name of the machine holding the event log that - will be logged into. - - - This property cannot be changed. It is currently set to '.' - i.e. the local machine. This may be changed in future. - - - - - Gets or sets the used to write to the EventLog. - - - The used to write to the EventLog. - - - - The system security context used to write to the EventLog. - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. - - - - The EventID of the event log entry will normally be - set using the EventID property () - on the . - This property provides the fallback value which defaults to 0. - - - - - - Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. - - - - The Category of the event log entry will normally be - set using the Category property () - on the . - This property provides the fallback value which defaults to 0. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and its event log entry type. - - - - - - The for this entry - - - - Required property. - The for this entry - - - - - - Appends logging events to a file. - - - - Logging events are sent to the file specified by - the property. - - - The file can be opened in either append or overwrite mode - by specifying the property. - If the file path is relative it is taken as relative from - the application base directory. The file encoding can be - specified by setting the property. - - - The layout's and - values will be written each time the file is opened and closed - respectively. If the property is - then the file may contain multiple copies of the header and footer. - - - This appender will first try to open the file for writing when - is called. This will typically be during configuration. - If the file cannot be opened for writing the appender will attempt - to open the file again each time a message is logged to the appender. - If the file cannot be opened for writing when a message is logged then - the message will be discarded by this appender. - - - The supports pluggable file locking models via - the property. - The default behavior, implemented by - is to obtain an exclusive write lock on the file until this appender is closed. - The alternative models only hold a - write lock while the appender is writing a logging event () - or synchronize by using a named system wide Mutex (). - - - All locking strategies have issues and you should seriously consider using a different strategy that - avoids having multiple processes logging to the same file. - - - Nicko Cadell - Gert Driesen - Rodrigo B. de Oliveira - Douglas de la Torre - Niall Daley - - - - Sends logging events to a . - - - - An Appender that writes to a . - - - This appender may be used stand alone if initialized with an appropriate - writer, however it is typically used as a base class for an appender that - can open a to write to. - - - Nicko Cadell - Gert Driesen - Douglas de la Torre - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initializes a new instance of the class and - sets the output destination to a new initialized - with the specified . - - The layout to use with this appender. - The to output to. - - - Obsolete constructor. - - - - - - Initializes a new instance of the class and sets - the output destination to the specified . - - The layout to use with this appender - The to output to - - The must have been previously opened. - - - - Obsolete constructor. - - - - - - This method determines if there is a sense in attempting to append. - - - - This method checks if an output target has been set and if a - layout has been set. - - - false if any of the preconditions fail. - - - - This method is called by the - method. - - The event to log. - - - Writes a log statement to the output stream if the output stream exists - and is writable. - - - The format of the output will depend on the appender's layout. - - - - - - This method is called by the - method. - - The array of events to log. - - - This method writes all the bulk logged events to the output writer - before flushing the stream. - - - - - - Close this appender instance. The underlying stream or writer is also closed. - - - Closed appenders cannot be reused. - - - - - Writes the footer and closes the underlying . - - - - Writes the footer and closes the underlying . - - - - - - Closes the underlying . - - - - Closes the underlying . - - - - - - Clears internal references to the underlying - and other variables. - - - - Subclasses can override this method for an alternate closing behavior. - - - - - - Writes a footer as produced by the embedded layout's property. - - - - Writes a footer as produced by the embedded layout's property. - - - - - - Writes a header produced by the embedded layout's property. - - - - Writes a header produced by the embedded layout's property. - - - - - - Called to allow a subclass to lazily initialize the writer - - - - This method is called when an event is logged and the or - have not been set. This allows a subclass to - attempt to initialize the writer multiple times. - - - - - - This is the where logging events - will be written to. - - - - - Immediate flush means that the underlying - or output stream will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logging events are not actually persisted if and when the application - crashes. - - - The default value is true. - - - - - - The fully qualified type of the TextWriterAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or set whether the appender will flush at the end - of each append operation. - - - - The default behavior is to flush at the end of each - append operation. - - - If this option is set to false, then the underlying - stream can defer persisting the logging event to a later - time. - - - - Avoiding the flush operation at the end of each append results in - a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - Sets the where the log output will go. - - - - The specified must be open and writable. - - - The will be closed when the appender - instance is closed. - - - Note: Logging to an unopened will fail. - - - - - - Gets or set the and the underlying - , if any, for this appender. - - - The for this appender. - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Gets or sets the where logging events - will be written to. - - - The where logging events are written. - - - - This is the where logging events - will be written to. - - - - - - Default constructor - - - - Default constructor - - - - - - Construct a new appender using the layout, file and append mode. - - the layout to use with this appender - the full path to the file to write to - flag to indicate if the file should be appended to - - - Obsolete constructor. - - - - - - Construct a new appender using the layout and file specified. - The file will be appended to. - - the layout to use with this appender - the full path to the file to write to - - - Obsolete constructor. - - - - - - Activate the options on the file appender. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - This will cause the file to be opened. - - - - - - Closes any previously opened file and calls the parent's . - - - - Resets the filename and the file stream. - - - - - - Called to initialize the file writer - - - - Will be called for each logged message until the file is - successfully opened. - - - - - - This method is called by the - method. - - The event to log. - - - Writes a log statement to the output stream if the output stream exists - and is writable. - - - The format of the output will depend on the appender's layout. - - - - - - This method is called by the - method. - - The array of events to log. - - - Acquires the output file locks once before writing all the events to - the stream. - - - - - - Writes a footer as produced by the embedded layout's property. - - - - Writes a footer as produced by the embedded layout's property. - - - - - - Writes a header produced by the embedded layout's property. - - - - Writes a header produced by the embedded layout's property. - - - - - - Closes the underlying . - - - - Closes the underlying . - - - - - - Closes the previously opened file. - - - - Writes the to the file and then - closes the file. - - - - - - Sets and opens the file where the log output will go. The specified file must be writable. - - The path to the log file. Must be a fully qualified path. - If true will append to fileName. Otherwise will truncate fileName - - - Calls but guarantees not to throw an exception. - Errors are passed to the . - - - - - - Sets and opens the file where the log output will go. The specified file must be writable. - - The path to the log file. Must be a fully qualified path. - If true will append to fileName. Otherwise will truncate fileName - - - If there was already an opened file, then the previous file - is closed first. - - - This method will ensure that the directory structure - for the specified exists. - - - - - - Sets the quiet writer used for file output - - the file stream that has been opened for writing - - - This implementation of creates a - over the and passes it to the - method. - - - This method can be overridden by sub classes that want to wrap the - in some way, for example to encrypt the output - data using a System.Security.Cryptography.CryptoStream. - - - - - - Sets the quiet writer being used. - - the writer over the file stream that has been opened for writing - - - This method can be overridden by sub classes that want to - wrap the in some way. - - - - - - Convert a path into a fully qualified path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - - - - Flag to indicate if we should append to the file - or overwrite the file. The default is to append. - - - - - The name of the log file. - - - - - The encoding to use for the file stream. - - - - - The security context to use for privileged calls - - - - - The stream to log to. Has added locking semantics - - - - - The locking model to use - - - - - The fully qualified type of the FileAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the path to the file that logging will be written to. - - - The path to the file that logging will be written to. - - - - If the path is relative it is taken as relative from - the application base directory. - - - - - - Gets or sets a flag that indicates whether the file should be - appended to or overwritten. - - - Indicates whether the file should be appended to or overwritten. - - - - If the value is set to false then the file will be overwritten, if - it is set to true then the file will be appended to. - - The default value is true. - - - - - Gets or sets used to write to the file. - - - The used to write to the file. - - - - The default encoding set is - which is the encoding for the system's current ANSI code page. - - - - - - Gets or sets the used to write to the file. - - - The used to write to the file. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Gets or sets the used to handle locking of the file. - - - The used to lock the file. - - - - Gets or sets the used to handle locking of the file. - - - There are three built in locking models, , and . - The first locks the file from the start of logging to the end, the - second locks only for the minimal amount of time when logging each message - and the last synchronizes processes using a named system wide Mutex. - - - The default locking model is the . - - - - - - Write only that uses the - to manage access to an underlying resource. - - - - - True asynchronous writes are not supported, the implementation forces a synchronous write. - - - - - Exception base type for log4net. - - - - This type extends . It - does not add any new functionality but does differentiate the - type of exception being thrown. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - A message to include with the exception. - - - Initializes a new instance of the class with - the specified message. - - - - - - Constructor - - A message to include with the exception. - A nested exception to include. - - - Initializes a new instance of the class - with the specified message and inner exception. - - - - - - Serialization constructor - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Locking model base class - - - - Base class for the locking models available to the derived loggers. - - - - - - Open the output file - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Acquire the lock on the file in preparation for writing to it. - Return a stream pointing to the file. - must be called to release the lock on the output file. - - - - - - Release the lock on the file - - - - Release the lock on the file. No further writes will be made to the - stream until is called again. - - - - - - Helper method that creates a FileStream under CurrentAppender's SecurityContext. - - - - Typically called during OpenFile or AcquireLock. - - - If the directory portion of the does not exist, it is created - via Directory.CreateDirecctory. - - - - - - - - - - Helper method to close under CurrentAppender's SecurityContext. - - - Does not set to null. - - - - - - Gets or sets the for this LockingModel - - - The for this LockingModel - - - - The file appender this locking model is attached to and working on - behalf of. - - - The file appender is used to locate the security context and the error handler to use. - - - The value of this property will be set before is - called. - - - - - - Hold an exclusive lock on the output file - - - - Open the file once for writing and hold it open until is called. - Maintains an exclusive lock on the file during this time. - - - - - - Open the file specified and prepare for logging. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Does nothing. The lock is already taken - - - - - - Release the lock on the file - - - - Does nothing. The lock will be released when the file is closed. - - - - - - Acquires the file lock for each write - - - - Opens the file once for each / cycle, - thus holding the lock for the minimal amount of time. This method of locking - is considerably slower than but allows - other processes to move/delete the log file whilst logging continues. - - - - - - Prepares to open the file when the first message is logged. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Acquire the lock on the file in preparation for writing to it. - Return a stream pointing to the file. - must be called to release the lock on the output file. - - - - - - Release the lock on the file - - - - Release the lock on the file. No further writes will be made to the - stream until is called again. - - - - - - Provides cross-process file locking. - - Ron Grabowski - Steve Wranovsky - - - - Open the file specified and prepare for logging. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Does nothing. The lock is already taken - - - - - - - - - - - This appender forwards logging events to attached appenders. - - - - The forwarding appender can be used to specify different thresholds - and filters for the same appender at different locations within the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Forward the logging event to the attached appenders - - The event to log. - - - Delivers the logging event to all the attached appenders. - - - - - - Forward the logging events to the attached appenders - - The array of events to log. - - - Delivers the logging events to all the attached appenders. - - - - - - Adds an to the list of appenders of this - instance. - - The to add to this appender. - - - If the specified is already in the list of - appenders, then it won't be added again. - - - - - - Looks for the appender with the specified name. - - The name of the appender to lookup. - - The appender with the specified name, or null. - - - - Get the named appender attached to this appender. - - - - - - Removes all previously added appenders from this appender. - - - - This is useful when re-reading configuration information. - - - - - - Removes the specified appender from the list of appenders. - - The appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Implementation of the interface - - - - - Gets the appenders contained in this appender as an - . - - - If no appenders can be found, then an - is returned. - - - A collection of the appenders in this appender. - - - - - Logs events to a local syslog service. - - - - This appender uses the POSIX libc library functions openlog, syslog, and closelog. - If these functions are not available on the local system then this appender will not work! - - - The functions openlog, syslog, and closelog are specified in SUSv2 and - POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. - - - This appender talks to a local syslog service. If you need to log to a remote syslog - daemon and you cannot configure your local syslog service to do this you may be - able to use the to log via UDP. - - - Syslog messages must have a facility and and a severity. The severity - is derived from the Level of the logging event. - The facility must be chosen from the set of defined syslog - values. The facilities list is predefined - and cannot be extended. - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - Rob Lyon - Nicko Cadell - - - - Initializes a new instance of the class. - - - This instance of the class is set up to write - to a local syslog service. - - - - - Add a mapping of level to severity - - The mapping to add - - - Adds a to this appender. - - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to a remote syslog daemon. - - - The format of the output will depend on the appender's layout. - - - - - - Close the syslog when the appender is closed - - - - Close the syslog when the appender is closed - - - - - - Translates a log4net level to a syslog severity. - - A log4net level. - A syslog severity. - - - Translates a log4net level to a syslog severity. - - - - - - Generate a syslog priority. - - The syslog facility. - The syslog severity. - A syslog priority. - - - - The facility. The default facility is . - - - - - The message identity - - - - - Marshaled handle to the identity string. We have to hold on to the - string as the openlog and syslog APIs just hold the - pointer to the ident and dereference it for each log message. - - - - - Mapping from level object to syslog severity - - - - - Open connection to system logger. - - - - - Generate a log message. - - - - The libc syslog method takes a format string and a variable argument list similar - to the classic printf function. As this type of vararg list is not supported - by C# we need to specify the arguments explicitly. Here we have specified the - format string with a single message argument. The caller must set the format - string to "%s". - - - - - - Close descriptor used to write to system logger. - - - - - Message identity - - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - - - - Syslog facility - - - Set to one of the values. The list of - facilities is predefined and cannot be extended. The default value - is . - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - syslog severities - - - - The log4net Level maps to a syslog severity using the - method and the - class. The severity is set on . - - - - - - system is unusable - - - - - action must be taken immediately - - - - - critical conditions - - - - - error conditions - - - - - warning conditions - - - - - normal but significant condition - - - - - informational - - - - - debug-level messages - - - - - syslog facilities - - - - The syslog facility defines which subsystem the logging comes from. - This is set on the property. - - - - - - kernel messages - - - - - random user-level messages - - - - - mail system - - - - - system daemons - - - - - security/authorization messages - - - - - messages generated internally by syslogd - - - - - line printer subsystem - - - - - network news subsystem - - - - - UUCP subsystem - - - - - clock (cron/at) daemon - - - - - security/authorization messages (private) - - - - - ftp daemon - - - - - NTP subsystem - - - - - log audit - - - - - log alert - - - - - clock daemon - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - - - The mapped syslog severity for the specified level - - - - Required property. - The mapped syslog severity for the specified level - - - - - - Stores logging events in an array. - - - - The memory appender stores all the logging events - that are appended in an in-memory array. - - - Use the method to get - the current list of events that have been appended. - - - Use the method to clear the - current list of events. - - - Julian Biddle - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Gets the events that have been logged. - - The events that have been logged - - - Gets the events that have been logged. - - - - - - This method is called by the method. - - the event to log - - Stores the in the events list. - - - - - Clear the list of events - - - Clear the list of events - - - - - The list of events that have been appended. - - - - - Value indicating which fields in the event should be fixed - - - By default all fields are fixed - - - - - Gets or sets a value indicating whether only part of the logging event - data should be fixed. - - - true if the appender should only fix part of the logging event - data, otherwise false. The default is false. - - - - Setting this property to true will cause only part of the event - data to be fixed and stored in the appender, hereby improving performance. - - - See for more information. - - - - - - Gets or sets the fields that will be fixed in the event - - - - The logging event needs to have certain thread specific values - captured before it can be buffered. See - for details. - - - - - - Logs entries by sending network messages using the - native function. - - - - You can send messages only to names that are active - on the network. If you send the message to a user name, - that user must be logged on and running the Messenger - service to receive the message. - - - The receiver will get a top most window displaying the - messages one at a time, therefore this appender should - not be used to deliver a high volume of messages. - - - The following table lists some possible uses for this appender : - - - - - Action - Property Value(s) - - - Send a message to a user account on the local machine - - - = <name of the local machine> - - - = <user name> - - - - - Send a message to a user account on a remote machine - - - = <name of the remote machine> - - - = <user name> - - - - - Send a message to a domain user account - - - = <name of a domain controller | uninitialized> - - - = <user name> - - - - - Send a message to all the names in a workgroup or domain - - - = <workgroup name | domain name>* - - - - - Send a message from the local machine to a remote machine - - - = <name of the local machine | uninitialized> - - - = <name of the remote machine> - - - - - - - Note : security restrictions apply for sending - network messages, see - for more information. - - - - - An example configuration section to log information - using this appender from the local machine, named - LOCAL_PC, to machine OPERATOR_PC : - - - - - - - - - - Nicko Cadell - Gert Driesen - - - - The DNS or NetBIOS name of the server on which the function is to execute. - - - - - The sender of the network message. - - - - - The message alias to which the message should be sent. - - - - - The security context to use for privileged calls - - - - - Initializes the appender. - - - The default constructor initializes all fields to their default values. - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The appender will be ignored if no was specified. - - - The required property was not specified. - - - - This method is called by the method. - - The event to log. - - - Sends the event using a network message. - - - - - - Sends a buffer of information to a registered message alias. - - The DNS or NetBIOS name of the server on which the function is to execute. - The message alias to which the message buffer should be sent - The originator of the message. - The message text. - The length, in bytes, of the message text. - - - The following restrictions apply for sending network messages: - - - - - Platform - Requirements - - - Windows NT - - - No special group membership is required to send a network message. - - - Admin, Accounts, Print, or Server Operator group membership is required to - successfully send a network message on a remote server. - - - - - Windows 2000 or later - - - If you send a message on a domain controller that is running Active Directory, - access is allowed or denied based on the access control list (ACL) for the securable - object. The default ACL permits only Domain Admins and Account Operators to send a network message. - - - On a member server or workstation, only Administrators and Server Operators can send a network message. - - - - - - - For more information see Security Requirements for the Network Management Functions. - - - - - If the function succeeds, the return value is zero. - - - - - - Gets or sets the sender of the message. - - - The sender of the message. - - - If this property is not specified, the message is sent from the local computer. - - - - - Gets or sets the message alias to which the message should be sent. - - - The recipient of the message. - - - This property should always be specified in order to send a message. - - - - - Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. - - - DNS or NetBIOS name of the remote server on which the function is to execute. - - - - For Windows NT 4.0 and earlier, the string should begin with \\. - - - If this property is not specified, the local computer is used. - - - - - - Gets or sets the used to call the NetSend method. - - - The used to call the NetSend method. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appends log events to the OutputDebugString system. - - - - OutputDebugStringAppender appends log events to the - OutputDebugString system. - - - The string is passed to the native OutputDebugString - function. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Write the logging event to the output debug string API - - the event to log - - - Write the logging event to the output debug string API - - - - - - Stub for OutputDebugString native method - - the string to output - - - Stub for OutputDebugString native method - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Logs events to a remote syslog daemon. - - - - The BSD syslog protocol is used to remotely log to - a syslog daemon. The syslogd listens for for messages - on UDP port 514. - - - The syslog UDP protocol is not authenticated. Most syslog daemons - do not accept remote log messages because of the security implications. - You may be able to use the LocalSyslogAppender to talk to a local - syslog service. - - - There is an RFC 3164 that claims to document the BSD Syslog Protocol. - This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. - This appender generates what the RFC calls an "Original Device Message", - i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation - this format of message will be accepted by all current syslog daemon - implementations. The daemon will attach the current time and the source - hostname or IP address to any messages received. - - - Syslog messages must have a facility and and a severity. The severity - is derived from the Level of the logging event. - The facility must be chosen from the set of defined syslog - values. The facilities list is predefined - and cannot be extended. - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - Rob Lyon - Nicko Cadell - - - - Sends logging events as connectionless UDP datagrams to a remote host or a - multicast group using an . - - - - UDP guarantees neither that messages arrive, nor that they arrive in the correct order. - - - To view the logging results, a custom application can be developed that listens for logging - events. - - - When decoding events send via this appender remember to use the same encoding - to decode the events as was used to send the events. See the - property to specify the encoding to use. - - - - This example shows how to log receive logging events that are sent - on IP address 244.0.0.1 and port 8080 to the console. The event is - encoded in the packet as a unicode string and it is decoded as such. - - IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); - UdpClient udpClient; - byte[] buffer; - string loggingEvent; - - try - { - udpClient = new UdpClient(8080); - - while(true) - { - buffer = udpClient.Receive(ref remoteEndPoint); - loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); - Console.WriteLine(loggingEvent); - } - } - catch(Exception e) - { - Console.WriteLine(e.ToString()); - } - - - Dim remoteEndPoint as IPEndPoint - Dim udpClient as UdpClient - Dim buffer as Byte() - Dim loggingEvent as String - - Try - remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) - udpClient = new UdpClient(8080) - While True - buffer = udpClient.Receive(ByRef remoteEndPoint) - loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) - Console.WriteLine(loggingEvent) - Wend - Catch e As Exception - Console.WriteLine(e.ToString()) - End Try - - - An example configuration section to log information using this appender to the - IP 224.0.0.1 on port 8080: - - - - - - - - - - Gert Driesen - Nicko Cadell - - - - Initializes a new instance of the class. - - - The default constructor initializes all fields to their default values. - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The appender will be ignored if no was specified or - an invalid remote or local TCP port number was specified. - - - The required property was not specified. - The TCP port number assigned to or is less than or greater than . - - - - This method is called by the method. - - The event to log. - - - Sends the event using an UDP datagram. - - - Exceptions are passed to the . - - - - - - Closes the UDP connection and releases all resources associated with - this instance. - - - - Disables the underlying and releases all managed - and unmanaged resources associated with the . - - - - - - Initializes the underlying connection. - - - - The underlying is initialized and binds to the - port number from which you intend to communicate. - - - Exceptions are passed to the . - - - - - - The IP address of the remote host or multicast group to which - the logging event will be sent. - - - - - The TCP port number of the remote host or multicast group to - which the logging event will be sent. - - - - - The cached remote endpoint to which the logging events will be sent. - - - - - The TCP port number from which the will communicate. - - - - - The instance that will be used for sending the - logging events. - - - - - The encoding to use for the packet. - - - - - Gets or sets the IP address of the remote host or multicast group to which - the underlying should sent the logging event. - - - The IP address of the remote host or multicast group to which the logging event - will be sent. - - - - Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to - 239.255.255.255). Multicast packets can pass across different networks through routers, so - it is possible to use multicasts in an Internet scenario as long as your network provider - supports multicasting. - - - Hosts that want to receive particular multicast messages must register their interest by joining - the multicast group. Multicast messages are not sent to networks where no host has joined - the multicast group. Class D IP addresses are used for multicast groups, to differentiate - them from normal host addresses, allowing nodes to easily detect if a message is of interest. - - - Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: - - - - - IP Address - Description - - - 224.0.0.1 - - - Sends a message to all system on the subnet. - - - - - 224.0.0.2 - - - Sends a message to all routers on the subnet. - - - - - 224.0.0.12 - - - The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. - - - - - - - A complete list of actually reserved multicast addresses and their owners in the ranges - defined by RFC 3171 can be found at the IANA web site. - - - The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative - addresses. These addresses can be reused with other local groups. Routers are typically - configured with filters to prevent multicast traffic in this range from flowing outside - of the local network. - - - - - - Gets or sets the TCP port number of the remote host or multicast group to which - the underlying should sent the logging event. - - - An integer value in the range to - indicating the TCP port number of the remote host or multicast group to which the logging event - will be sent. - - - The underlying will send messages to this TCP port number - on the remote host or multicast group. - - The value specified is less than or greater than . - - - - Gets or sets the TCP port number from which the underlying will communicate. - - - An integer value in the range to - indicating the TCP port number from which the underlying will communicate. - - - - The underlying will bind to this port for sending messages. - - - Setting the value to 0 (the default) will cause the udp client not to bind to - a local port. - - - The value specified is less than or greater than . - - - - Gets or sets used to write the packets. - - - The used to write the packets. - - - - The used to write the packets. - - - - - - Gets or sets the underlying . - - - The underlying . - - - creates a to send logging events - over a network. Classes deriving from can use this - property to get or set this . Use the underlying - returned from if you require access beyond that which - provides. - - - - - Gets or sets the cached remote endpoint to which the logging events should be sent. - - - The cached remote endpoint to which the logging events will be sent. - - - The method will initialize the remote endpoint - with the values of the and - properties. - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Syslog port 514 - - - - - Initial buffer size - - - - - Maximum buffer size before it is recycled - - - - - Initializes a new instance of the class. - - - This instance of the class is set up to write - to a remote syslog daemon. - - - - - Add a mapping of level to severity - - The mapping to add - - - Add a mapping to this appender. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to a remote syslog daemon. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to syslog severity mappings set on this appender. - - - - - - Translates a log4net level to a syslog severity. - - A log4net level. - A syslog severity. - - - Translates a log4net level to a syslog severity. - - - - - - Generate a syslog priority. - - The syslog facility. - The syslog severity. - A syslog priority. - - - Generate a syslog priority. - - - - - - The facility. The default facility is . - - - - - The message identity - - - - - Mapping from level object to syslog severity - - - - - Message identity - - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - - - - Syslog facility - - - Set to one of the values. The list of - facilities is predefined and cannot be extended. The default value - is . - - - - - syslog severities - - - - The syslog severities. - - - - - - system is unusable - - - - - action must be taken immediately - - - - - critical conditions - - - - - error conditions - - - - - warning conditions - - - - - normal but significant condition - - - - - informational - - - - - debug-level messages - - - - - syslog facilities - - - - The syslog facilities - - - - - - kernel messages - - - - - random user-level messages - - - - - mail system - - - - - system daemons - - - - - security/authorization messages - - - - - messages generated internally by syslogd - - - - - line printer subsystem - - - - - network news subsystem - - - - - UUCP subsystem - - - - - clock (cron/at) daemon - - - - - security/authorization messages (private) - - - - - ftp daemon - - - - - NTP subsystem - - - - - log audit - - - - - log alert - - - - - clock daemon - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - - - The mapped syslog severity for the specified level - - - - Required property. - The mapped syslog severity for the specified level - - - - - - Delivers logging events to a remote logging sink. - - - - This Appender is designed to deliver events to a remote sink. - That is any object that implements the - interface. It delivers the events using .NET remoting. The - object to deliver events to is specified by setting the - appenders property. - - The RemotingAppender buffers events before sending them. This allows it to - make more efficient use of the remoting infrastructure. - - Once the buffer is full the events are still not sent immediately. - They are scheduled to be sent using a pool thread. The effect is that - the send occurs asynchronously. This is very important for a - number of non obvious reasons. The remoting infrastructure will - flow thread local variables (stored in the ), - if they are marked as , across the - remoting boundary. If the server is not contactable then - the remoting infrastructure will clear the - objects from the . To prevent a logging failure from - having side effects on the calling application the remoting call must be made - from a separate thread to the one used by the application. A - thread is used for this. If no thread is available then - the events will block in the thread pool manager until a thread is available. - - Because the events are sent asynchronously using pool threads it is possible to close - this appender before all the queued events have been sent. - When closing the appender attempts to wait until all the queued events have been sent, but - this will timeout after 30 seconds regardless. - - If this appender is being closed because the - event has fired it may not be possible to send all the queued events. During process - exit the runtime limits the time that a - event handler is allowed to run for. If the runtime terminates the threads before - the queued events have been sent then they will be lost. To ensure that all events - are sent the appender must be closed before the application exits. See - for details on how to shutdown - log4net programmatically. - - - Nicko Cadell - Gert Driesen - Daniel Cazzulino - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Send the contents of the buffer to the remote sink. - - - The events are not sent immediately. They are scheduled to be sent - using a pool thread. The effect is that the send occurs asynchronously. - This is very important for a number of non obvious reasons. The remoting - infrastructure will flow thread local variables (stored in the ), - if they are marked as , across the - remoting boundary. If the server is not contactable then - the remoting infrastructure will clear the - objects from the . To prevent a logging failure from - having side effects on the calling application the remoting call must be made - from a separate thread to the one used by the application. A - thread is used for this. If no thread is available then - the events will block in the thread pool manager until a thread is available. - - The events to send. - - - - Override base class close. - - - - This method waits while there are queued work items. The events are - sent asynchronously using work items. These items - will be sent once a thread pool thread is available to send them, therefore - it is possible to close the appender before all the queued events have been - sent. - - This method attempts to wait until all the queued events have been sent, but this - method will timeout after 30 seconds regardless. - - If the appender is being closed because the - event has fired it may not be possible to send all the queued events. During process - exit the runtime limits the time that a - event handler is allowed to run for. - - - - - A work item is being queued into the thread pool - - - - - A work item from the thread pool has completed - - - - - Send the contents of the buffer to the remote sink. - - - This method is designed to be used with the . - This method expects to be passed an array of - objects in the state param. - - the logging events to send - - - - The URL of the remote sink. - - - - - The local proxy (.NET remoting) for the remote logging sink. - - - - - The number of queued callbacks currently waiting or executing - - - - - Event used to signal when there are no queued work items - - - This event is set when there are no queued work items. In this - state it is safe to close the appender. - - - - - Gets or sets the URL of the well-known object that will accept - the logging events. - - - The well-known URL of the remote sink. - - - - The URL of the remoting sink that will accept logging events. - The sink must implement the - interface. - - - - - - Interface used to deliver objects to a remote sink. - - - This interface must be implemented by a remoting sink - if the is to be used - to deliver logging events to the sink. - - - - - Delivers logging events to the remote sink - - Array of events to log. - - - Delivers logging events to the remote sink - - - - - - Appender that rolls log files based on size or date or both. - - - - RollingFileAppender can roll log files based on size or date or both - depending on the setting of the property. - When set to the log file will be rolled - once its size exceeds the . - When set to the log file will be rolled - once the date boundary specified in the property - is crossed. - When set to the log file will be - rolled once the date boundary specified in the property - is crossed, but within a date boundary the file will also be rolled - once its size exceeds the . - When set to the log file will be rolled when - the appender is configured. This effectively means that the log file can be - rolled once per program execution. - - - A of few additional optional features have been added: - - Attach date pattern for current log file - Backup number increments for newer files - Infinite number of backups by file size - - - - - - For large or infinite numbers of backup files a - greater than zero is highly recommended, otherwise all the backup files need - to be renamed each time a new backup is created. - - - When Date/Time based rolling is used setting - to will reduce the number of file renamings to few or none. - - - - - - Changing or without clearing - the log file directory of backup files will cause unexpected and unwanted side effects. - - - - - If Date/Time based rolling is enabled this appender will attempt to roll existing files - in the directory without a Date/Time tag based on the last write date of the base log file. - The appender only rolls the log file when a message is logged. If Date/Time based rolling - is enabled then the appender will not roll the log file at the Date/Time boundary but - at the point when the next message is logged after the boundary has been crossed. - - - - The extends the and - has the same behavior when opening the log file. - The appender will first try to open the file for writing when - is called. This will typically be during configuration. - If the file cannot be opened for writing the appender will attempt - to open the file again each time a message is logged to the appender. - If the file cannot be opened for writing when a message is logged then - the message will be discarded by this appender. - - - When rolling a backup file necessitates deleting an older backup file the - file to be deleted is moved to a temporary name before being deleted. - - - - - A maximum number of backup files when rolling on date/time boundaries is not supported. - - - - Nicko Cadell - Gert Driesen - Aspi Havewala - Douglas de la Torre - Edward Smit - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - The fully qualified type of the RollingFileAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Sets the quiet writer being used. - - - This method can be overridden by sub classes. - - the writer to set - - - - Write out a logging event. - - the event to write to file. - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Write out an array of logging events. - - the events to write to file. - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Performs any required rolling before outputting the next event - - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Creates and opens the file for logging. If - is false then the fully qualified name is determined and used. - - the name of the file to open - true to append to existing file - - This method will ensure that the directory structure - for the specified exists. - - - - - Get the current output file name - - the base file name - the output file name - - The output file name is based on the base fileName specified. - If is set then the output - file name is the same as the base file passed in. Otherwise - the output file depends on the date pattern, on the count - direction or both. - - - - - Determines curSizeRollBackups (only within the current roll point) - - - - - Generates a wildcard pattern that can be used to find all files - that are similar to the base file name. - - - - - - - Builds a list of filenames for all files matching the base filename plus a file - pattern. - - - - - - - Initiates a roll over if needed for crossing a date boundary since the last run. - - - - - Initializes based on existing conditions at time of . - - - - Initializes based on existing conditions at time of . - The following is done - - determine curSizeRollBackups (only within the current roll point) - initiates a roll over if needed for crossing a date boundary since the last run. - - - - - - - Does the work of bumping the 'current' file counter higher - to the highest count when an incremental file name is seen. - The highest count is either the first file (when count direction - is greater than 0) or the last file (when count direction less than 0). - In either case, we want to know the highest count that is present. - - - - - - - Attempts to extract a number from the end of the file name that indicates - the number of the times the file has been rolled over. - - - Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. - - - - - - - Takes a list of files and a base file name, and looks for - 'incremented' versions of the base file. Bumps the max - count up to the highest count seen. - - - - - - - Calculates the RollPoint for the datePattern supplied. - - the date pattern to calculate the check period for - The RollPoint that is most accurate for the date pattern supplied - - Essentially the date pattern is examined to determine what the - most suitable roll point is. The roll point chosen is the roll point - with the smallest period that can be detected using the date pattern - supplied. i.e. if the date pattern only outputs the year, month, day - and hour then the smallest roll point that can be detected would be - and hourly roll point as minutes could not be detected. - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Sets initial conditions including date/time roll over information, first check, - scheduledFilename, and calls to initialize - the current number of backups. - - - - - - - - - .1, .2, .3, etc. - - - - - Rollover the file(s) to date/time tagged file(s). - - set to true if the file to be rolled is currently open - - - Rollover the file(s) to date/time tagged file(s). - Resets curSizeRollBackups. - If fileIsOpen is set then the new file is opened (through SafeOpenFile). - - - - - - Renames file to file . - - Name of existing file to roll. - New name for file. - - - Renames file to file . It - also checks for existence of target file and deletes if it does. - - - - - - Test if a file exists at a specified path - - the path to the file - true if the file exists - - - Test if a file exists at a specified path - - - - - - Deletes the specified file if it exists. - - The file to delete. - - - Delete a file if is exists. - The file is first moved to a new filename then deleted. - This allows the file to be removed even when it cannot - be deleted, but it still can be moved. - - - - - - Implements file roll base on file size. - - - - If the maximum number of size based backups is reached - (curSizeRollBackups == maxSizeRollBackups) then the oldest - file is deleted -- its index determined by the sign of countDirection. - If countDirection < 0, then files - {File.1, ..., File.curSizeRollBackups -1} - are renamed to {File.2, ..., - File.curSizeRollBackups}. Moreover, File is - renamed File.1 and closed. - - - A new file is created to receive further log output. - - - If maxSizeRollBackups is equal to zero, then the - File is truncated with no backup files created. - - - If maxSizeRollBackups < 0, then File is - renamed if needed and no files are deleted. - - - - - - Implements file roll. - - the base name to rename - - - If the maximum number of size based backups is reached - (curSizeRollBackups == maxSizeRollBackups) then the oldest - file is deleted -- its index determined by the sign of countDirection. - If countDirection < 0, then files - {File.1, ..., File.curSizeRollBackups -1} - are renamed to {File.2, ..., - File.curSizeRollBackups}. - - - If maxSizeRollBackups is equal to zero, then the - File is truncated with no backup files created. - - - If maxSizeRollBackups < 0, then File is - renamed if needed and no files are deleted. - - - This is called by to rename the files. - - - - - - Get the start time of the next window for the current rollpoint - - the current date - the type of roll point we are working with - the start time for the next roll point an interval after the currentDateTime date - - - Returns the date of the next roll point after the currentDateTime date passed to the method. - - - The basic strategy is to subtract the time parts that are less significant - than the rollpoint from the current time. This should roll the time back to - the start of the time window for the current rollpoint. Then we add 1 window - worth of time and get the start time of the next window for the rollpoint. - - - - - - This object supplies the current date/time. Allows test code to plug in - a method to control this class when testing date/time based rolling. The default - implementation uses the underlying value of DateTime.Now. - - - - - The date pattern. By default, the pattern is set to ".yyyy-MM-dd" - meaning daily rollover. - - - - - The actual formatted filename that is currently being written to - or will be the file transferred to on roll over - (based on staticLogFileName). - - - - - The timestamp when we shall next recompute the filename. - - - - - Holds date of last roll over - - - - - The type of rolling done - - - - - The default maximum file size is 10MB - - - - - There is zero backup files by default - - - - - How many sized based backups have been made so far - - - - - The rolling file count direction. - - - - - The rolling mode used in this appender. - - - - - Cache flag set if we are rolling by date. - - - - - Cache flag set if we are rolling by size. - - - - - Value indicating whether to always log to the same file. - - - - - Value indicating whether to preserve the file name extension when rolling. - - - - - FileName provided in configuration. Used for rolling properly - - - - - The 1st of January 1970 in UTC - - - - - Gets or sets the strategy for determining the current date and time. The default - implementation is to use LocalDateTime which internally calls through to DateTime.Now. - - - An implementation of the interface which returns the current date and time. - - - - Gets or sets the used to return the current date and time. - - - The default strategy is . - - - - - - Gets or sets the date pattern to be used for generating file names - when rolling over on date. - - - The date pattern to be used for generating file names when rolling - over on date. - - - - Takes a string in the same format as expected by - . - - - This property determines the rollover schedule when rolling over - on date. - - - - - - Gets or sets the maximum number of backup files that are kept before - the oldest is erased. - - - The maximum number of backup files that are kept before the oldest is - erased. - - - - If set to zero, then there will be no backup files and the log file - will be truncated when it reaches . - - - If a negative number is supplied then no deletions will be made. Note - that this could result in very slow performance as a large number of - files are rolled over unless is used. - - - The maximum applies to each time based group of files and - not the total. - - - - - - Gets or sets the maximum size that the output file is allowed to reach - before being rolled over to backup files. - - - The maximum size in bytes that the output file is allowed to reach before being - rolled over to backup files. - - - - This property is equivalent to except - that it is required for differentiating the setter taking a - argument from the setter taking a - argument. - - - The default maximum file size is 10MB (10*1024*1024). - - - - - - Gets or sets the maximum size that the output file is allowed to reach - before being rolled over to backup files. - - - The maximum size that the output file is allowed to reach before being - rolled over to backup files. - - - - This property allows you to specify the maximum size with the - suffixes "KB", "MB" or "GB" so that the size is interpreted being - expressed respectively in kilobytes, megabytes or gigabytes. - - - For example, the value "10KB" will be interpreted as 10240 bytes. - - - The default maximum file size is 10MB. - - - If you have the option to set the maximum file size programmatically - consider using the property instead as this - allows you to set the size in bytes as a . - - - - - - Gets or sets the rolling file count direction. - - - The rolling file count direction. - - - - Indicates if the current file is the lowest numbered file or the - highest numbered file. - - - By default newer files have lower numbers ( < 0), - i.e. log.1 is most recent, log.5 is the 5th backup, etc... - - - >= 0 does the opposite i.e. - log.1 is the first backup made, log.5 is the 5th backup made, etc. - For infinite backups use >= 0 to reduce - rollover costs. - - The default file count direction is -1. - - - - - Gets or sets the rolling style. - - The rolling style. - - - The default rolling style is . - - - When set to this appender's - property is set to false, otherwise - the appender would append to a single file rather than rolling - the file each time it is opened. - - - - - - Gets or sets a value indicating whether to preserve the file name extension when rolling. - - - true if the file name extension should be preserved. - - - - By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. - However, under Windows the new file name will loose any program associations as the - extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or - file.curSizeRollBackup.log to maintain any program associations. - - - - - - Gets or sets a value indicating whether to always log to - the same file. - - - true if always should be logged to the same file, otherwise false. - - - - By default file.log is always the current file. Optionally - file.log.yyyy-mm-dd for current formatted datePattern can by the currently - logging file (or file.log.curSizeRollBackup or even - file.log.yyyy-mm-dd.curSizeRollBackup). - - - This will make time based rollovers with a large number of backups - much faster as the appender it won't have to rename all the backups! - - - - - - Style of rolling to use - - - - Style of rolling to use - - - - - - Roll files once per program execution - - - - Roll files once per program execution. - Well really once each time this appender is - configured. - - - Setting this option also sets AppendToFile to - false on the RollingFileAppender, otherwise - this appender would just be a normal file appender. - - - - - - Roll files based only on the size of the file - - - - - Roll files based only on the date - - - - - Roll files based on both the size and date of the file - - - - - The code assumes that the following 'time' constants are in a increasing sequence. - - - - The code assumes that the following 'time' constants are in a increasing sequence. - - - - - - Roll the log not based on the date - - - - - Roll the log for each minute - - - - - Roll the log for each hour - - - - - Roll the log twice a day (midday and midnight) - - - - - Roll the log each day (midnight) - - - - - Roll the log each week - - - - - Roll the log each month - - - - - This interface is used to supply Date/Time information to the . - - - This interface is used to supply Date/Time information to the . - Used primarily to allow test classes to plug themselves in so they can - supply test date/times. - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Default implementation of that returns the current time. - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Send an e-mail when a specific logging event occurs, typically on errors - or fatal errors. - - - - The number of logging events delivered in this e-mail depend on - the value of option. The - keeps only the last - logging events in its - cyclic buffer. This keeps memory requirements at a reasonable level while - still delivering useful application context. - - - Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. - For these features to be enabled you need to ensure that you are using a version of - the log4net assembly that is built against the MS .NET 1.1 framework and that you are - running the your application on the MS .NET 1.1 runtime. On all other platforms only sending - unauthenticated messages to a server listening on port 25 (the default) is supported. - - - Authentication is supported by setting the property to - either or . - If using authentication then the - and properties must also be set. - - - To set the SMTP server port use the property. The default port is 25. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Default constructor - - - - - - Sends the contents of the cyclic buffer as an e-mail message. - - The logging events to send. - - - - Send the email message - - the body text to include in the mail - - - - Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - - Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses - that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - - Gets or sets a semicolon-delimited list of recipient e-mail addresses - that will be blind carbon copied. - - - A semicolon-delimited list of e-mail addresses. - - - - A semicolon-delimited list of recipient e-mail addresses. - - - - - - Gets or sets the e-mail address of the sender. - - - The e-mail address of the sender. - - - - The e-mail address of the sender. - - - - - - Gets or sets the subject line of the e-mail message. - - - The subject line of the e-mail message. - - - - The subject line of the e-mail message. - - - - - - Gets or sets the name of the SMTP relay mail server to use to send - the e-mail messages. - - - The name of the e-mail relay server. If SmtpServer is not set, the - name of the local SMTP server is used. - - - - The name of the e-mail relay server. If SmtpServer is not set, the - name of the local SMTP server is used. - - - - - - Obsolete - - - Use the BufferingAppenderSkeleton Fix methods instead - - - - Obsolete property. - - - - - - The mode to use to authentication with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - Valid Authentication mode values are: , - , and . - The default value is . When using - you must specify the - and to use to authenticate. - When using the Windows credentials for the current - thread, if impersonating, or the process will be used to authenticate. - - - - - - The username to use to authenticate with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - A and must be specified when - is set to , - otherwise the username will be ignored. - - - - - - The password to use to authenticate with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - A and must be specified when - is set to , - otherwise the password will be ignored. - - - - - - The port on which the SMTP server is listening - - - Server Port is only available on the MS .NET 1.1 runtime. - - The port on which the SMTP server is listening. The default - port is 25. The Port can only be changed when running on - the MS .NET 1.1 runtime. - - - - - - Gets or sets the priority of the e-mail message - - - One of the values. - - - - Sets the priority of the e-mails generated by this - appender. The default priority is . - - - If you are using this appender to report errors then - you may want to set the priority to . - - - - - - Gets or sets the subject encoding to be used. - - - The default encoding is the operating system's current ANSI codepage. - - - - - Gets or sets the body encoding to be used. - - - The default encoding is the operating system's current ANSI codepage. - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Values for the property. - - - - SMTP authentication modes. - - - - - - No authentication - - - - - Basic authentication. - - - Requires a username and password to be supplied - - - - - Integrated authentication - - - Uses the Windows credentials from the current thread or process to authenticate. - - - - - Send an email when a specific logging event occurs, typically on errors - or fatal errors. Rather than sending via smtp it writes a file into the - directory specified by . This allows services such - as the IIS SMTP agent to manage sending the messages. - - - - The configuration for this appender is identical to that of the SMTPAppender, - except that instead of specifying the SMTPAppender.SMTPHost you specify - . - - - The number of logging events delivered in this e-mail depend on - the value of option. The - keeps only the last - logging events in its - cyclic buffer. This keeps memory requirements at a reasonable level while - still delivering useful application context. - - - Niall Daley - Nicko Cadell - - - - Default constructor - - - - Default constructor - - - - - - Sends the contents of the cyclic buffer as an e-mail message. - - The logging events to send. - - - Sends the contents of the cyclic buffer as an e-mail message. - - - - - - Activate the options on this appender. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Convert a path into a fully qualified path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - - - - The security context to use for privileged calls - - - - - Gets or sets a semicolon-delimited list of recipient e-mail addresses. - - - A semicolon-delimited list of e-mail addresses. - - - - A semicolon-delimited list of e-mail addresses. - - - - - - Gets or sets the e-mail address of the sender. - - - The e-mail address of the sender. - - - - The e-mail address of the sender. - - - - - - Gets or sets the subject line of the e-mail message. - - - The subject line of the e-mail message. - - - - The subject line of the e-mail message. - - - - - - Gets or sets the path to write the messages to. - - - - Gets or sets the path to write the messages to. This should be the same - as that used by the agent sending the messages. - - - - - - Gets or sets the used to write to the pickup directory. - - - The used to write to the pickup directory. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appender that allows clients to connect via Telnet to receive log messages - - - - The TelnetAppender accepts socket connections and streams logging messages - back to the client. - The output is provided in a telnet-friendly way so that a log can be monitored - over a TCP/IP socket. - This allows simple remote monitoring of application logging. - - - The default is 23 (the telnet port). - - - Keith Long - Nicko Cadell - - - - Default constructor - - - - Default constructor - - - - - - The fully qualified type of the TelnetAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Overrides the parent method to close the socket handler - - - - Closes all the outstanding connections. - - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Create the socket handler and wait for connections - - - - - - Writes the logging event to each connected client. - - The event to log. - - - Writes the logging event to each connected client. - - - - - - Gets or sets the TCP port number on which this will listen for connections. - - - An integer value in the range to - indicating the TCP port number on which this will listen for connections. - - - - The default value is 23 (the telnet port). - - - The value specified is less than - or greater than . - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Helper class to manage connected clients - - - - The SocketHandler class is used to accept connections from - clients. It is threaded so that clients can connect/disconnect - asynchronously. - - - - - - Opens a new server port on - - the local port to listen on for connections - - - Creates a socket handler on the specified local server port. - - - - - - Sends a string message to each of the connected clients - - the text to send - - - Sends a string message to each of the connected clients - - - - - - Add a client to the internal clients list - - client to add - - - - Remove a client from the internal clients list - - client to remove - - - - Callback used to accept a connection on the server socket - - The result of the asynchronous operation - - - On connection adds to the list of connections - if there are two many open connections you will be disconnected - - - - - - Close all network connections - - - - Make sure we close all network connections - - - - - - Test if this handler has active connections - - - true if this handler has active connections - - - - This property will be true while this handler has - active connections, that is at least one connection that - the handler will attempt to send a message to. - - - - - - Class that represents a client connected to this handler - - - - Class that represents a client connected to this handler - - - - - - Create this for the specified - - the client's socket - - - Opens a stream writer on the socket. - - - - - - Write a string to the client - - string to send - - - Write a string to the client - - - - - - Cleanup the clients connection - - - - Close the socket connection. - - - - - - Appends log events to the system. - - - - The application configuration file can be used to control what listeners - are actually used. See the MSDN documentation for the - class for details on configuring the - trace system. - - - Events are written using the System.Diagnostics.Trace.Write(string,string) - method. The event's logger name is the default value for the category parameter - of the Write method. - - - Compact Framework
    - The Compact Framework does not support the - class for any operation except Assert. When using the Compact Framework this - appender will write to the system rather than - the Trace system. This appender will therefore behave like the . -
    -
    - Douglas de la Torre - Nicko Cadell - Gert Driesen - Ron Grabowski -
    - - - Initializes a new instance of the . - - - - Default constructor. - - - - - - Initializes a new instance of the - with a specified layout. - - The layout to use with this appender. - - - Obsolete constructor. - - - - - - Writes the logging event to the system. - - The event to log. - - - Writes the logging event to the system. - - - - - - Immediate flush means that the underlying writer or output stream - will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logs events are not actually written to persistent media if and - when the application crashes. - - - The default value is true. - - - - - Defaults to %logger - - - - - Gets or sets a value that indicates whether the appender will - flush at the end of each write. - - - The default behavior is to flush at the end of each - write. If the option is set tofalse, then the underlying - stream can defer writing to physical medium to a later time. - - - Avoiding the flush operation at the end of each append results - in a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - - The category parameter sent to the Trace method. - - - - Defaults to %logger which will use the logger name of the current - as the category parameter. - - - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Assembly level attribute that specifies a domain to alias to this assembly's repository. - - - - AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. - - - An assembly's logger repository is defined by its , - however this can be overridden by an assembly loaded before the target assembly. - - - An assembly can alias another assembly's domain to its repository by - specifying this attribute with the name of the target domain. - - - This attribute can only be specified on the assembly and may be used - as many times as necessary to alias all the required domains. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute that specifies a repository to alias to this assembly's repository. - - - - An assembly's logger repository is defined by its , - however this can be overridden by an assembly loaded before the target assembly. - - - An assembly can alias another assembly's repository to its repository by - specifying this attribute with the name of the target repository. - - - This attribute can only be specified on the assembly and may be used - as many times as necessary to alias all the required repositories. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class with - the specified repository to alias to this assembly's repository. - - The repository to alias to this assemby's repository. - - - Initializes a new instance of the class with - the specified repository to alias to this assembly's repository. - - - - - - Gets or sets the repository to alias to this assemby's repository. - - - The repository to alias to this assemby's repository. - - - - The name of the repository to alias to this assemby's repository. - - - - - - Initializes a new instance of the class with - the specified domain to alias to this assembly's repository. - - The domain to alias to this assemby's repository. - - - Obsolete. Use instead of . - - - - - - Use this class to quickly configure a . - - - - Allows very simple programmatic configuration of log4net. - - - Only one appender can be configured using this configurator. - The appender is set at the root of the hierarchy and all logging - events will be delivered to that appender. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - The fully qualified type of the BasicConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Initializes the log4net system with a default configuration. - - - - Initializes the log4net logging system using a - that will write to Console.Out. The log messages are - formatted using the layout object - with the - layout style. - - - - - - Initializes the log4net system using the specified appender. - - The appender to use to log all logging events. - - - Initializes the log4net system using the specified appender. - - - - - - Initializes the log4net system using the specified appenders. - - The appenders to use to log all logging events. - - - Initializes the log4net system using the specified appenders. - - - - - - Initializes the with a default configuration. - - The repository to configure. - - - Initializes the specified repository using a - that will write to Console.Out. The log messages are - formatted using the layout object - with the - layout style. - - - - - - Initializes the using the specified appender. - - The repository to configure. - The appender to use to log all logging events. - - - Initializes the using the specified appender. - - - - - - Initializes the using the specified appenders. - - The repository to configure. - The appenders to use to log all logging events. - - - Initializes the using the specified appender. - - - - - - Base class for all log4net configuration attributes. - - - This is an abstract class that must be extended by - specific configurators. This attribute allows the - configurator to be parameterized by an assembly level - attribute. - - Nicko Cadell - Gert Driesen - - - - Constructor used by subclasses. - - the ordering priority for this configurator - - - The is used to order the configurator - attributes before they are invoked. Higher priority configurators are executed - before lower priority ones. - - - - - - Configures the for the specified assembly. - - The assembly that this attribute was defined on. - The repository to configure. - - - Abstract method implemented by a subclass. When this method is called - the subclass should configure the . - - - - - - Compare this instance to another ConfiguratorAttribute - - the object to compare to - see - - - Compares the priorities of the two instances. - Sorts by priority in descending order. Objects with the same priority are - randomly ordered. - - - - - - Assembly level attribute that specifies the logging domain for the assembly. - - - - DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - Assemblies are mapped to logging domains. Each domain has its own - logging repository. This attribute specified on the assembly controls - the configuration of the domain. The property specifies the name - of the domain that this assembly is a part of. The - specifies the type of the repository objects to create for the domain. If - this attribute is not specified and a is not specified - then the assembly will be part of the default shared logging domain. - - - This attribute can only be specified on the assembly and may only be used - once per assembly. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute that specifies the logging repository for the assembly. - - - - Assemblies are mapped to logging repository. This attribute specified - on the assembly controls - the configuration of the repository. The property specifies the name - of the repository that this assembly is a part of. The - specifies the type of the object - to create for the assembly. If this attribute is not specified or a - is not specified then the assembly will be part of the default shared logging repository. - - - This attribute can only be specified on the assembly and may only be used - once per assembly. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initialize a new instance of the class - with the name of the repository. - - The name of the repository. - - - Initialize the attribute with the name for the assembly's repository. - - - - - - Gets or sets the name of the logging repository. - - - The string name to use as the name of the repository associated with this - assembly. - - - - This value does not have to be unique. Several assemblies can share the - same repository. They will share the logging configuration of the repository. - - - - - - Gets or sets the type of repository to create for this assembly. - - - The type of repository to create for this assembly. - - - - The type of the repository to create for the assembly. - The type must implement the - interface. - - - This will be the type of repository created when - the repository is created. If multiple assemblies reference the - same repository then the repository is only created once using the - of the first assembly to call into the - repository. - - - - - - Initializes a new instance of the class. - - - - Obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - - - - Initialize a new instance of the class - with the name of the domain. - - The name of the domain. - - - Obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - - - - Use this class to initialize the log4net environment using an Xml tree. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - Configures a using an Xml tree. - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - - - Automatically configures the log4net system based on the - application's configuration settings. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - 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 - log4net that contains the configuration data. - - - - - Automatically configures the using settings - stored in the application's configuration file. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - 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 - log4net that contains the configuration data. - - The repository to configure. - - - - Configures log4net using a log4net element - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - Loads the log4net configuration from the XML element - supplied as . - - The element to parse. - - - - Configures the using the specified XML - element. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - Loads the log4net configuration from the XML element - supplied as . - - The repository to configure. - The element to parse. - - - - Configures log4net using the specified configuration file. - - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures log4net using the specified configuration file. - - A stream to load the XML configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The stream to load the XML configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures log4net using the file specified, monitors the file for changes - and reloads the configuration if a change is detected. - - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the using the file specified, - monitors the file for changes and reloads the configuration if a change - is detected. - - The repository to configure. - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Assembly level attribute to configure the . - - - - AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute to configure the . - - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - If neither of the or - properties are set the configuration is loaded from the application's .config file. - If set the property takes priority over the - property. The property - specifies a path to a file to load the config from. The path is relative to the - application's base directory; . - The property is used as a postfix to the assembly file name. - The config file must be located in the application's base directory; . - For example in a console application setting the to - config has the same effect as not specifying the or - properties. - - - The property can be set to cause the - to watch the configuration file for changes. - - - - Log4net will only look for assembly level configuration attributes once. - When using the log4net assembly level attributes to control the configuration - of log4net you must ensure that the first call to any of the - methods is made from the assembly with the configuration - attributes. - - - If you cannot guarantee the order in which log4net calls will be made from - different assemblies you must use programmatic configuration instead, i.e. - call the method directly. - - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Default constructor - - - - - - Configures the for the specified assembly. - - The assembly that this attribute was defined on. - The repository to configure. - - - Configure the repository using the . - The specified must extend the - class otherwise the will not be able to - configure it. - - - The does not extend . - - - - Attempt to load configuration from the local file system - - The assembly that this attribute was defined on. - The repository to configure. - - - - Configure the specified repository using a - - The repository to configure. - the FileInfo pointing to the config file - - - - Attempt to load configuration from a URI - - The assembly that this attribute was defined on. - The repository to configure. - - - - The fully qualified type of the XmlConfiguratorAttribute class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the filename of the configuration file. - - - The filename of the configuration file. - - - - If specified, this is the name of the configuration file to use with - the . This file path is relative to the - application base directory (). - - - The takes priority over the . - - - - - - Gets or sets the extension of the configuration file. - - - The extension of the configuration file. - - - - If specified this is the extension for the configuration file. - The path to the config file is built by using the application - base directory (), - the assembly file name and the config file extension. - - - If the is set to MyExt then - possible config file names would be: MyConsoleApp.exe.MyExt or - MyClassLibrary.dll.MyExt. - - - The takes priority over the . - - - - - - Gets or sets a value indicating whether to watch the configuration file. - - - true if the configuration should be watched, false otherwise. - - - - If this flag is specified and set to true then the framework - will watch the configuration file and will reload the config each time - the file is modified. - - - The config file can only be watched if it is loaded from local disk. - In a No-Touch (Smart Client) deployment where the application is downloaded - from a web server the config file may not reside on the local disk - and therefore it may not be able to watch it. - - - Watching configuration is not supported on the SSCLI. - - - - - - Class to register for the log4net section of the configuration file - - - The log4net section of the configuration file needs to have a section - handler registered. This is the section handler used. It simply returns - the XML element that is the root of the section. - - - Example of registering the log4net section handler : - - - -
    - - - log4net configuration XML goes here - - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Parses the configuration section. - - The configuration settings in a corresponding parent configuration section. - The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. - The for the log4net section. - The for the log4net section. - - - Returns the containing the configuration data, - - - - - - Assembly level attribute that specifies a plugin to attach to - the repository. - - - - Specifies the type of a plugin to create and attach to the - assembly's repository. The plugin type must implement the - interface. - - - Nicko Cadell - Gert Driesen - - - - Interface used to create plugins. - - - - Interface used to create a plugin. - - - Nicko Cadell - Gert Driesen - - - - Creates the plugin object. - - the new plugin instance - - - Create and return a new plugin instance. - - - - - - Initializes a new instance of the class - with the specified type. - - The type name of plugin to create. - - - Create the attribute with the plugin type specified. - - - Where possible use the constructor that takes a . - - - - - - Initializes a new instance of the class - with the specified type. - - The type of plugin to create. - - - Create the attribute with the plugin type specified. - - - - - - Creates the plugin object defined by this attribute. - - - - Creates the instance of the object as - specified by this attribute. - - - The plugin object. - - - - Returns a representation of the properties of this object. - - - - Overrides base class method to - return a representation of the properties of this object. - - - A representation of the properties of this object - - - - Gets or sets the type for the plugin. - - - The type for the plugin. - - - - The type for the plugin. - - - - - - Gets or sets the type name for the plugin. - - - The type name for the plugin. - - - - The type name for the plugin. - - - Where possible use the property instead. - - - - - - Assembly level attribute to configure the . - - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - Nicko Cadell - - - - Construct provider attribute with type specified - - the type of the provider to use - - - The provider specified must subclass the - class. - - - - - - Configures the SecurityContextProvider - - The assembly that this attribute was defined on. - The repository to configure. - - - Creates a provider instance from the specified. - Sets this as the default security context provider . - - - - - - The fully qualified type of the SecurityContextProviderAttribute class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the type of the provider to use. - - - the type of the provider to use. - - - - The provider specified must subclass the - class. - - - - - - Use this class to initialize the log4net environment using an Xml tree. - - - - Configures a using an Xml tree. - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - - - Automatically configures the log4net system based on the - application's configuration settings. - - - - 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 - log4net that contains the configuration data. - - - To use this method to configure log4net you must specify - the section - handler for the log4net configuration section. See the - for an example. - - - - - - - Automatically configures the using settings - stored in the application's configuration file. - - - - 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 - log4net that contains the configuration data. - - - To use this method to configure log4net you must specify - the section - handler for the log4net configuration section. See the - for an example. - - - The repository to configure. - - - - Configures log4net using a log4net element - - - - Loads the log4net configuration from the XML element - supplied as . - - - The element to parse. - - - - Configures the using the specified XML - element. - - - Loads the log4net configuration from the XML element - supplied as . - - The repository to configure. - The element to parse. - - - - Configures log4net using the specified configuration file. - - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The first element matching <configuration> will be read as the - configuration. If this file is also a .NET .config file then you must specify - a configuration section for the log4net element otherwise .NET will - complain. Set the type for the section handler to , for example: - - -
    - - - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures log4net using the specified configuration URI. - - A URI to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The must support the URI scheme specified. - - - - - - Configures log4net using the specified configuration data stream. - - A stream to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The first element matching <configuration> will be read as the - configuration. If this file is also a .NET .config file then you must specify - a configuration section for the log4net element otherwise .NET will - complain. Set the type for the section handler to , for example: - - -
    - - - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures the using the specified configuration - URI. - - The repository to configure. - A URI to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The must support the URI scheme specified. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The stream to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures log4net using the file specified, monitors the file for changes - and reloads the configuration if a change is detected. - - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the using the file specified, - monitors the file for changes and reloads the configuration if a change - is detected. - - The repository to configure. - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the specified repository using a log4net element. - - The hierarchy to configure. - The element to parse. - - - Loads the log4net configuration from the XML element - supplied as . - - - This method is ultimately called by one of the Configure methods - to load the configuration from an . - - - - - - Maps repository names to ConfigAndWatchHandler instances to allow a particular - ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is - reconfigured. - - - - - The fully qualified type of the XmlConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Class used to watch config files. - - - - Uses the to monitor - changes to a specified file. Because multiple change notifications - may be raised when the file is modified, a timer is used to - compress the notifications into a single event. The timer - waits for time before delivering - the event notification. If any further - change notifications arrive while the timer is waiting it - is reset and waits again for to - elapse. - - - - - - The default amount of time to wait after receiving notification - before reloading the config file. - - - - - Holds the FileInfo used to configure the XmlConfigurator - - - - - Holds the repository being configured. - - - - - The timer used to compress the notification events. - - - - - Watches file for changes. This object should be disposed when no longer - needed to free system handles on the watched resources. - - - - - Initializes a new instance of the class to - watch a specified config file used to configure a repository. - - The repository to configure. - The configuration file to watch. - - - Initializes a new instance of the class. - - - - - - Event handler used by . - - The firing the event. - The argument indicates the file that caused the event to be fired. - - - This handler reloads the configuration from the file when the event is fired. - - - - - - Event handler used by . - - The firing the event. - The argument indicates the file that caused the event to be fired. - - - This handler reloads the configuration from the file when the event is fired. - - - - - - Called by the timer when the configuration has been updated. - - null - - - - Release the handles held by the watcher and timer. - - - - - The implementation of the interface suitable - for use with the compact framework - - - - This implementation is a simple - mapping between repository name and - object. - - - The .NET Compact Framework 1.0 does not support retrieving assembly - level attributes therefore unlike the DefaultRepositorySelector - this selector does not examine the calling assembly for attributes. - - - Nicko Cadell - - - - Interface used by the to select the . - - - - The uses a - to specify the policy for selecting the correct - to return to the caller. - - - Nicko Cadell - Gert Driesen - - - - Gets the for the specified assembly. - - The assembly to use to lookup to the - The for the assembly. - - - Gets the for the specified assembly. - - - How the association between and - is made is not defined. The implementation may choose any method for - this association. The results of this method must be repeatable, i.e. - when called again with the same arguments the result must be the - save value. - - - - - - Gets the named . - - The name to use to lookup to the . - The named - - Lookup a named . This is the repository created by - calling . - - - - - Creates a new repository for the assembly specified. - - The assembly to use to create the domain to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the domain - specified such that a call to with the - same assembly specified will return the same repository instance. - - - How the association between and - is made is not defined. The implementation may choose any method for - this association. - - - - - - Creates a new repository with the name specified. - - The name to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the name - specified such that a call to with the - same name will return the same repository instance. - - - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets an array of all currently defined repositories. - - - An array of the instances created by - this . - - - Gets an array of all of the repositories created by this selector. - - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - Create a new repository selector - - the type of the repositories to create, must implement - - - Create an new compact repository selector. - The default type for repositories must be specified, - an appropriate value would be . - - - throw if is null - throw if does not implement - - - - Get the for the specified assembly - - not used - The default - - - The argument is not used. This selector does not create a - separate repository for each assembly. - - - As a named repository is not specified the default repository is - returned. The default repository is named log4net-default-repository. - - - - - - Get the named - - the name of the repository to lookup - The named - - - Get the named . The default - repository is log4net-default-repository. Other repositories - must be created using the . - If the named repository does not exist an exception is thrown. - - - throw if is null - throw if the does not exist - - - - Create a new repository for the assembly specified - - not used - the type of repository to create, must implement - the repository created - - - The argument is not used. This selector does not create a - separate repository for each assembly. - - - If the is null then the - default repository type specified to the constructor is used. - - - As a named repository is not specified the default repository is - returned. The default repository is named log4net-default-repository. - - - - - - Create a new repository for the repository specified - - the repository to associate with the - the type of repository to create, must implement . - If this param is null then the default repository type is used. - the repository created - - - The created will be associated with the repository - specified such that a call to with the - same repository specified will return the same repository instance. - - - If the named repository already exists an exception will be thrown. - - - If is null then the default - repository type specified to the constructor is used. - - - throw if is null - throw if the already exists - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets a list of objects - - an array of all known objects - - - Gets an array of all of the repositories created by this selector. - - - - - - The fully qualified type of the CompactRepositorySelector class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Notify the registered listeners that the repository has been created - - The repository that has been created - - - Raises the LoggerRepositoryCreatedEvent - event. - - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - The default implementation of the interface. - - - - Uses attributes defined on the calling assembly to determine how to - configure the hierarchy for the repository. - - - Nicko Cadell - Gert Driesen - - - - Creates a new repository selector. - - The type of the repositories to create, must implement - - - Create an new repository selector. - The default type for repositories must be specified, - an appropriate value would be . - - - is . - does not implement . - - - - Gets the for the specified assembly. - - The assembly use to lookup the . - - - The type of the created and the repository - to create can be overridden by specifying the - attribute on the . - - - The default values are to use the - implementation of the interface and to use the - as the name of the repository. - - - The created will be automatically configured using - any attributes defined on - the . - - - The for the assembly - is . - - - - Gets the for the specified repository. - - The repository to use to lookup the . - The for the specified repository. - - - Returns the named repository. If is null - a is thrown. If the repository - does not exist a is thrown. - - - Use to create a repository. - - - is . - does not exist. - - - - Create a new repository for the assembly specified - - the assembly to use to create the repository to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The type of the created and - the repository to create can be overridden by specifying the - attribute on the - . The default values are to use the - implementation of the - interface and to use the - as the name of the repository. - - - The created will be automatically - configured using any - attributes defined on the . - - - If a repository for the already exists - that repository will be returned. An error will not be raised and that - repository may be of a different type to that specified in . - Also the attribute on the - assembly may be used to override the repository type specified in - . - - - is . - - - - Creates a new repository for the assembly specified. - - the assembly to use to create the repository to associate with the . - The type of repository to create, must implement . - The name to assign to the created repository - Set to true to read and apply the assembly attributes - The repository created. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The type of the created and - the repository to create can be overridden by specifying the - attribute on the - . The default values are to use the - implementation of the - interface and to use the - as the name of the repository. - - - The created will be automatically - configured using any - attributes defined on the . - - - If a repository for the already exists - that repository will be returned. An error will not be raised and that - repository may be of a different type to that specified in . - Also the attribute on the - assembly may be used to override the repository type specified in - . - - - is . - - - - Creates a new repository for the specified repository. - - The repository to associate with the . - The type of repository to create, must implement . - If this param is then the default repository type is used. - The new repository. - - - The created will be associated with the repository - specified such that a call to with the - same repository specified will return the same repository instance. - - - is . - already exists. - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets a list of objects - - an array of all known objects - - - Gets an array of all of the repositories created by this selector. - - - - - - Aliases a repository to an existing repository. - - The repository to alias. - The repository that the repository is aliased to. - - - The repository specified will be aliased to the repository when created. - The repository must not already exist. - - - When the repository is created it must utilize the same repository type as - the repository it is aliased to, otherwise the aliasing will fail. - - - - is . - -or- - is . - - - - - Notifies the registered listeners that the repository has been created. - - The repository that has been created. - - - Raises the event. - - - - - - Gets the repository name and repository type for the specified assembly. - - The assembly that has a . - in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. - in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. - is . - - - - Configures the repository using information from the assembly. - - The assembly containing - attributes which define the configuration for the repository. - The repository to configure. - - is . - -or- - is . - - - - - Loads the attribute defined plugins on the assembly. - - The assembly that contains the attributes. - The repository to add the plugins to. - - is . - -or- - is . - - - - - Loads the attribute defined aliases on the assembly. - - The assembly that contains the attributes. - The repository to alias to. - - is . - -or- - is . - - - - - The fully qualified type of the DefaultRepositorySelector class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - Defined error codes that can be passed to the method. - - - - Values passed to the method. - - - Nicko Cadell - - - - A general error - - - - - Error while writing output - - - - - Failed to flush file - - - - - Failed to close file - - - - - Unable to open output file - - - - - No layout specified - - - - - Failed to parse address - - - - - An evaluator that triggers on an Exception type - - - - This evaluator will trigger if the type of the Exception - passed to - is equal to a Type in . /// - - - Drew Schaeffer - - - - Test if an triggers an action - - - - Implementations of this interface allow certain appenders to decide - when to perform an appender specific action. - - - The action or behavior triggered is defined by the implementation. - - - Nicko Cadell - - - - Test if this event triggers the action - - The event to check - true if this event triggers the action, otherwise false - - - Return true if this event triggers the action - - - - - - The type that causes the trigger to fire. - - - - - Causes subclasses of to cause the trigger to fire. - - - - - Default ctor to allow dynamic creation through a configurator. - - - - - Constructs an evaluator and initializes to trigger on - - the type that triggers this evaluator. - If true, this evaluator will trigger on subclasses of . - - - - Is this the triggering event? - - The event to check - This method returns true, if the logging event Exception - Type is . - Otherwise it returns false - - - This evaluator will trigger if the Exception Type of the event - passed to - is . - - - - - - The type that triggers this evaluator. - - - - - If true, this evaluator will trigger on subclasses of . - - - - - Appenders may delegate their error handling to an . - - - - Error handling is a particularly tedious to get right because by - definition errors are hard to predict and to reproduce. - - - Nicko Cadell - Gert Driesen - - - - Handles the error and information about the error condition is passed as - a parameter. - - The message associated with the error. - The that was thrown when the error occurred. - The error code associated with the error. - - - Handles the error and information about the error condition is passed as - a parameter. - - - - - - Prints the error message passed as a parameter. - - The message associated with the error. - The that was thrown when the error occurred. - - - See . - - - - - - Prints the error message passed as a parameter. - - The message associated with the error. - - - See . - - - - - - Interface for objects that require fixing. - - - - Interface that indicates that the object requires fixing before it - can be taken outside the context of the appender's - method. - - - When objects that implement this interface are stored - in the context properties maps - and - are fixed - (see ) the - method will be called. - - - Nicko Cadell - - - - Get a portable version of this object - - the portable instance of this object - - - Get a portable instance object that represents the current - state of this object. The portable object can be stored - and logged from any thread with identical results. - - - - - - Interface that all loggers implement - - - - This interface supports logging events and testing if a level - is enabled for logging. - - - These methods will not throw exceptions. Note to implementor, ensure - that the implementation of these methods cannot allow an exception - to be thrown to the caller. - - - Nicko Cadell - Gert Driesen - - - - This generic form is intended to be used by wrappers. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - the exception to log, including its stack trace. Pass null to not log an exception. - - - Generates a logging event for the specified using - the and . - - - - - - This is the most generic printing method that is intended to be used - by wrappers. - - The event being logged. - - - Logs the specified logging event through this logger. - - - - - - Checks if this logger is enabled for a given passed as parameter. - - The level to check. - - true if this logger is enabled for level, otherwise false. - - - - Test if this logger is going to log events of the specified . - - - - - - Gets the name of the logger. - - - The name of the logger. - - - - The name of this logger - - - - - - Gets the where this - Logger instance is attached to. - - - The that this logger belongs to. - - - - Gets the where this - Logger instance is attached to. - - - - - - Base interface for all wrappers - - - - Base interface for all wrappers. - - - All wrappers must implement this interface. - - - Nicko Cadell - - - - Get the implementation behind this wrapper object. - - - The object that in implementing this object. - - - - The object that in implementing this - object. The Logger object may not - be the same object as this object because of logger decorators. - This gets the actual underlying objects that is used to process - the log events. - - - - - - Delegate used to handle logger repository creation event notifications - - The which created the repository. - The event args - that holds the instance that has been created. - - - Delegate used to handle logger repository creation event notifications. - - - - - - Provides data for the event. - - - - A - event is raised every time a is created. - - - - - - The created - - - - - Construct instance using specified - - the that has been created - - - Construct instance using specified - - - - - - The that has been created - - - The that has been created - - - - The that has been created - - - - - - Defines the default set of levels recognized by the system. - - - - Each has an associated . - - - Levels have a numeric that defines the relative - ordering between levels. Two Levels with the same - are deemed to be equivalent. - - - The levels that are recognized by log4net are set for each - and each repository can have different levels defined. The levels are stored - in the on the repository. Levels are - looked up by name from the . - - - When logging at level INFO the actual level used is not but - the value of LoggerRepository.LevelMap["INFO"]. The default value for this is - , but this can be changed by reconfiguring the level map. - - - Each level has a in addition to its . The - is the string that is written into the output log. By default - the display name is the same as the level name, but this can be used to alias levels - or to localize the log output. - - - Some of the predefined levels recognized by the system are: - - - - . - - - . - - - . - - - . - - - . - - - . - - - . - - - - Nicko Cadell - Gert Driesen - - - - Constructor - - Integer value for this level, higher values represent more severe levels. - The string name of this level. - The display name for this level. This may be localized or otherwise different from the name - - - Initializes a new instance of the class with - the specified level name and value. - - - - - - Constructor - - Integer value for this level, higher values represent more severe levels. - The string name of this level. - - - Initializes a new instance of the class with - the specified level name and value. - - - - - - Returns the representation of the current - . - - - A representation of the current . - - - - Returns the level . - - - - - - Compares levels. - - The object to compare against. - true if the objects are equal. - - - Compares the levels of instances, and - defers to base class if the target object is not a - instance. - - - - - - Returns a hash code - - A hash code for the current . - - - Returns a hash code suitable for use in hashing algorithms and data - structures like a hash table. - - - Returns the hash code of the level . - - - - - - Compares this instance to a specified object and returns an - indication of their relative values. - - A instance or to compare with this instance. - - A 32-bit signed integer that indicates the relative order of the - values compared. The return value has these meanings: - - - Value - Meaning - - - Less than zero - This instance is less than . - - - Zero - This instance is equal to . - - - Greater than zero - - This instance is greater than . - -or- - is . - - - - - - - must be an instance of - or ; otherwise, an exception is thrown. - - - is not a . - - - - Returns a value indicating whether a specified - is greater than another specified . - - A - A - - true if is greater than - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is less than another specified . - - A - A - - true if is less than - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is greater than or equal to another specified . - - A - A - - true if is greater than or equal to - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is less than or equal to another specified . - - A - A - - true if is less than or equal to - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether two specified - objects have the same value. - - A or . - A or . - - true if the value of is the same as the - value of ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether two specified - objects have different values. - - A or . - A or . - - true if the value of is different from - the value of ; otherwise, false. - - - - Compares two levels. - - - - - - Compares two specified instances. - - The first to compare. - The second to compare. - - A 32-bit signed integer that indicates the relative order of the - two values compared. The return value has these meanings: - - - Value - Meaning - - - Less than zero - is less than . - - - Zero - is equal to . - - - Greater than zero - is greater than . - - - - - - Compares two levels. - - - - - - The level designates a higher level than all the rest. - - - - - The level designates very severe error events. - System unusable, emergencies. - - - - - The level designates very severe error events. - System unusable, emergencies. - - - - - The level designates very severe error events - that will presumably lead the application to abort. - - - - - The level designates very severe error events. - Take immediate action, alerts. - - - - - The level designates very severe error events. - Critical condition, critical. - - - - - The level designates very severe error events. - - - - - The level designates error events that might - still allow the application to continue running. - - - - - The level designates potentially harmful - situations. - - - - - The level designates informational messages - that highlight the progress of the application at the highest level. - - - - - The level designates informational messages that - highlight the progress of the application at coarse-grained level. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates the lowest level possible. - - - - - Gets the name of this level. - - - The name of this level. - - - - Gets the name of this level. - - - - - - Gets the value of this level. - - - The value of this level. - - - - Gets the value of this level. - - - - - - Gets the display name of this level. - - - The display name of this level. - - - - Gets the display name of this level. - - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a LevelCollection instance. - - list to create a readonly wrapper arround - - A LevelCollection wrapper that is read-only. - - - - - Initializes a new instance of the LevelCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the LevelCollection class - that has the specified initial capacity. - - - The number of elements that the new LevelCollection is initially capable of storing. - - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified LevelCollection. - - The LevelCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - Copies the entire LevelCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire LevelCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the LevelCollection. - - The to be added to the end of the LevelCollection. - The index at which the value has been added. - - - - Removes all elements from the LevelCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the LevelCollection. - - The to check for. - true if is found in the LevelCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the LevelCollection. - - The to locate in the LevelCollection. - - The zero-based index of the first occurrence of - in the entire LevelCollection, if found; otherwise, -1. - - - - - Inserts an element into the LevelCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the LevelCollection. - - The to remove from the LevelCollection. - - The specified was not found in the LevelCollection. - - - - - Removes the element at the specified index of the LevelCollection. - - The zero-based index of the element to remove. - - is less than zero - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the LevelCollection. - - An for the entire LevelCollection. - - - - Adds the elements of another LevelCollection to the current LevelCollection. - - The LevelCollection whose elements should be added to the end of the current LevelCollection. - The new of the LevelCollection. - - - - Adds the elements of a array to the current LevelCollection. - - The array whose elements should be added to the end of the LevelCollection. - The new of the LevelCollection. - - - - Adds the elements of a collection to the current LevelCollection. - - The collection whose elements should be added to the end of the LevelCollection. - The new of the LevelCollection. - - - - Sets the capacity to the actual number of elements. - - - - - is less than zero - -or- - is equal to or greater than . - - - - - is less than zero - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the LevelCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - The zero-based index of the element to get or set. - - is less than zero - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false - - - - Gets or sets the number of elements the LevelCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - A value - - - - - Supports simple iteration over a . - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - An evaluator that triggers at a threshold level - - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - Nicko Cadell - - - - The threshold for triggering - - - - - Create a new evaluator using the threshold. - - - - Create a new evaluator using the threshold. - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Create a new evaluator using the specified threshold. - - the threshold to trigger at - - - Create a new evaluator using the specified threshold. - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Is this the triggering event? - - The event to check - This method returns true, if the event level - is equal or higher than the . - Otherwise it returns false - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - the threshold to trigger at - - - The that will cause this evaluator to trigger - - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Mapping between string name and Level object - - - - Mapping between string name and object. - This mapping is held separately for each . - The level name is case insensitive. - - - Nicko Cadell - - - - Mapping from level name to Level object. The - level name is case insensitive - - - - - Construct the level map - - - - Construct the level map. - - - - - - Clear the internal maps of all levels - - - - Clear the internal maps of all levels - - - - - - Create a new Level and add it to the map - - the string to display for the Level - the level value to give to the Level - - - Create a new Level and add it to the map - - - - - - - Create a new Level and add it to the map - - the string to display for the Level - the level value to give to the Level - the display name to give to the Level - - - Create a new Level and add it to the map - - - - - - Add a Level to the map - - the Level to add - - - Add a Level to the map - - - - - - Lookup a named level from the map - - the name of the level to lookup is taken from this level. - If the level is not set on the map then this level is added - the level in the map with the name specified - - - Lookup a named level from the map. The name of the level to lookup is taken - from the property of the - argument. - - - If no level with the specified name is found then the - argument is added to the level map - and returned. - - - - - - Lookup a by name - - The name of the Level to lookup - a Level from the map with the name specified - - - Returns the from the - map with the name specified. If the no level is - found then null is returned. - - - - - - Return all possible levels as a list of Level objects. - - all possible levels as a list of Level objects - - - Return all possible levels as a list of Level objects. - - - - - - The internal representation of caller location information. - - - - This class uses the System.Diagnostics.StackTrace class to generate - a call stack. The caller's information is then extracted from this stack. - - - The System.Diagnostics.StackTrace class is not supported on the - .NET Compact Framework 1.0 therefore caller location information is not - available on that framework. - - - The System.Diagnostics.StackTrace class has this to say about Release builds: - - - "StackTrace information will be most informative with Debug build configurations. - By default, Debug builds include debug symbols, while Release builds do not. The - debug symbols contain most of the file, method name, line number, and column - information used in constructing StackFrame and StackTrace objects. StackTrace - might not report as many method calls as expected, due to code transformations - that occur during optimization." - - - This means that in a Release build the caller information may be incomplete or may - not exist at all! Therefore caller location information cannot be relied upon in a Release build. - - - Nicko Cadell - Gert Driesen - - - - When location information is not available the constant - NA is returned. Current value of this string - constant is ?. - - - - - Constructor - - The declaring type of the method that is - the stack boundary into the logging system for this call. - - - Initializes a new instance of the - class based on the current thread. - - - - - - Constructor - - The fully qualified class name. - The method name. - The file name. - The line number of the method within the file. - - - Initializes a new instance of the - class with the specified data. - - - - - - The fully qualified type of the LocationInfo class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the fully qualified class name of the caller making the logging - request. - - - The fully qualified class name of the caller making the logging - request. - - - - Gets the fully qualified class name of the caller making the logging - request. - - - - - - Gets the file name of the caller. - - - The file name of the caller. - - - - Gets the file name of the caller. - - - - - - Gets the line number of the caller. - - - The line number of the caller. - - - - Gets the line number of the caller. - - - - - - Gets the method name of the caller. - - - The method name of the caller. - - - - Gets the method name of the caller. - - - - - - Gets all available caller information - - - All available caller information, in the format - fully.qualified.classname.of.caller.methodName(Filename:line) - - - - Gets all available caller information, in the format - fully.qualified.classname.of.caller.methodName(Filename:line) - - - - - - Gets the stack frames from the stack trace of the caller making the log request - - - - - Static manager that controls the creation of repositories - - - - Static manager that controls the creation of repositories - - - This class is used by the wrapper managers (e.g. ) - to provide access to the objects. - - - This manager also holds the that is used to - lookup and create repositories. The selector can be set either programmatically using - the property, or by setting the log4net.RepositorySelector - AppSetting in the applications config file to the fully qualified type name of the - selector to use. - - - Nicko Cadell - Gert Driesen - - - - Private constructor to prevent instances. Only static methods should be used. - - - - Private constructor to prevent instances. Only static methods should be used. - - - - - - Hook the shutdown event - - - - On the full .NET runtime, the static constructor hooks up the - AppDomain.ProcessExit and AppDomain.DomainUnload> events. - These are used to shutdown the log4net system as the application exits. - - - - - - Register for ProcessExit and DomainUnload events on the AppDomain - - - - This needs to be in a separate method because the events make - a LinkDemand for the ControlAppDomain SecurityPermission. Because - this is a LinkDemand it is demanded at JIT time. Therefore we cannot - catch the exception in the method itself, we have to catch it in the - caller. - - - - - - Return the default instance. - - the repository to lookup in - Return the default instance - - - Gets the for the repository specified - by the argument. - - - - - - Returns the default instance. - - The assembly to use to lookup the repository. - The default instance. - - - - Return the default instance. - - the repository to lookup in - Return the default instance - - - Gets the for the repository specified - by the argument. - - - - - - Returns the default instance. - - The assembly to use to lookup the repository. - The default instance. - - - Returns the default instance. - - - - - - Returns the named logger if it exists. - - The repository to lookup in. - The fully qualified logger name to look for. - - The logger found, or null if the named logger does not exist in the - specified repository. - - - - If the named logger exists (in the specified repository) then it - returns a reference to the logger, otherwise it returns - null. - - - - - - Returns the named logger if it exists. - - The assembly to use to lookup the repository. - The fully qualified logger name to look for. - - The logger found, or null if the named logger does not exist in the - specified assembly's repository. - - - - If the named logger exists (in the specified assembly's repository) then it - returns a reference to the logger, otherwise it returns - null. - - - - - - Returns all the currently defined loggers in the specified repository. - - The repository to lookup in. - All the defined loggers. - - - The root logger is not included in the returned array. - - - - - - Returns all the currently defined loggers in the specified assembly's repository. - - The assembly to use to lookup the repository. - All the defined loggers. - - - The root logger is not included in the returned array. - - - - - - Retrieves or creates a named logger. - - The repository to lookup in. - The name of the logger to retrieve. - The logger with the name specified. - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - - - - Retrieves or creates a named logger. - - The assembly to use to lookup the repository. - The name of the logger to retrieve. - The logger with the name specified. - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - - - - Shorthand for . - - The repository to lookup in. - The of which the fullname will be used as the name of the logger to retrieve. - The logger with the name specified. - - - Gets the logger for the fully qualified name of the type specified. - - - - - - Shorthand for . - - the assembly to use to lookup the repository - The of which the fullname will be used as the name of the logger to retrieve. - The logger with the name specified. - - - Gets the logger for the fully qualified name of the type specified. - - - - - - Shuts down the log4net system. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in all the - default repositories. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - The repository to shutdown. - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository for the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - The assembly to use to lookup the repository. - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository for the repository. The repository is looked up using - the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Resets all values contained in this repository instance to their defaults. - - The repository to reset. - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - - - - Resets all values contained in this repository instance to their defaults. - - The assembly to use to lookup the repository to reset. - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - - - - Creates a repository with the specified name. - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name. - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The name must be unique. Repositories cannot be redefined. - An Exception will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The name must be unique. Repositories cannot be redefined. - An Exception will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository for the specified assembly and repository type. - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - - - - Creates a repository for the specified assembly and repository type. - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - - - - Gets an array of all currently defined repositories. - - An array of all the known objects. - - - Gets an array of all currently defined repositories. - - - - - - Internal method to get pertinent version info. - - A string of version info. - - - - Called when the event fires - - the that is exiting - null - - - Called when the event fires. - - - When the event is triggered the log4net system is . - - - - - - Called when the event fires - - the that is exiting - null - - - Called when the event fires. - - - When the event is triggered the log4net system is . - - - - - - The fully qualified type of the LoggerManager class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Initialize the default repository selector - - - - - Gets or sets the repository selector used by the . - - - The repository selector used by the . - - - - The repository selector () is used by - the to create and select repositories - (). - - - The caller to supplies either a string name - or an assembly (if not supplied the assembly is inferred using - ). - - - This context is used by the selector to lookup a specific repository. - - - For the full .NET Framework, the default repository is DefaultRepositorySelector; - for the .NET Compact Framework CompactRepositorySelector is the default - repository. - - - - - - Implementation of the interface. - - - - This class should be used as the base for all wrapper implementations. - - - Nicko Cadell - Gert Driesen - - - - Constructs a new wrapper for the specified logger. - - The logger to wrap. - - - Constructs a new wrapper for the specified logger. - - - - - - The logger that this object is wrapping - - - - - Gets the implementation behind this wrapper object. - - - The object that this object is implementing. - - - - The Logger object may not be the same object as this object - because of logger decorators. - - - This gets the actual underlying objects that is used to process - the log events. - - - - - - Portable data structure used by - - - - Portable data structure used by - - - Nicko Cadell - - - - The logger name. - - - - The logger name. - - - - - - Level of logging event. - - - - Level of logging event. Level cannot be Serializable - because it is a flyweight. Due to its special serialization it - cannot be declared final either. - - - - - - The application supplied message. - - - - The application supplied message of logging event. - - - - - - The name of thread - - - - The name of thread in which this logging event was generated - - - - - - The time the event was logged - - - - The TimeStamp is stored in the local time zone for this computer. - - - - - - Location information for the caller. - - - - Location information for the caller. - - - - - - String representation of the user - - - - String representation of the user's windows name, - like DOMAIN\username - - - - - - String representation of the identity. - - - - String representation of the current thread's principal identity. - - - - - - The string representation of the exception - - - - The string representation of the exception - - - - - - String representation of the AppDomain. - - - - String representation of the AppDomain. - - - - - - Additional event specific properties - - - - A logger or an appender may attach additional - properties to specific events. These properties - have a string key and an object value. - - - - - - Flags passed to the property - - - - Flags passed to the property - - - Nicko Cadell - - - - Fix the MDC - - - - - Fix the NDC - - - - - Fix the rendered message - - - - - Fix the thread name - - - - - Fix the callers location information - - - CAUTION: Very slow to generate - - - - - Fix the callers windows user name - - - CAUTION: Slow to generate - - - - - Fix the domain friendly name - - - - - Fix the callers principal name - - - CAUTION: May be slow to generate - - - - - Fix the exception text - - - - - Fix the event properties. Active properties must implement in order to be eligible for fixing. - - - - - No fields fixed - - - - - All fields fixed - - - - - Partial fields fixed - - - - This set of partial fields gives good performance. The following fields are fixed: - - - - - - - - - - - - - The internal representation of logging events. - - - - When an affirmative decision is made to log then a - instance is created. This instance - is passed around to the different log4net components. - - - This class is of concern to those wishing to extend log4net. - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - for incurred by calling but it - is essential to maintaining data consistency. - - - Nicko Cadell - Gert Driesen - Douglas de la Torre - Daniel Cazzulino - - - - The key into the Properties map for the host name value. - - - - - The key into the Properties map for the thread identity value. - - - - - The key into the Properties map for the user name value. - - - - - Initializes a new instance of the class - from the supplied parameters. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - The name of the logger of this event. - The level of this event. - The message of this event. - The exception for this event. - - - Except , and , - all fields of LoggingEvent are filled when actually needed. Call - to cache all data locally - to prevent inconsistencies. - - This method is called by the log4net framework - to create a logging event. - - - - - - Initializes a new instance of the class - using specific data. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - Data used to initialize the logging event. - The fields in the struct that have already been fixed. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - The parameter should be used to specify which fields in the - struct have been preset. Fields not specified in the - will be captured from the environment if requested or fixed. - - - - - - Initializes a new instance of the class - using specific data. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - Data used to initialize the logging event. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - This constructor sets this objects flags to , - this assumes that all the data relating to this event is passed in via the - parameter and no other data should be captured from the environment. - - - - - - Initializes a new instance of the class - using specific data. - - Data used to initialize the logging event. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - This constructor sets this objects flags to , - this assumes that all the data relating to this event is passed in via the - parameter and no other data should be captured from the environment. - - - - - - Serialization constructor - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Ensure that the repository is set. - - the value for the repository - - - - Write the rendered message to a TextWriter - - the writer to write the message to - - - Unlike the property this method - does store the message data in the internal cache. Therefore - if called only once this method should be faster than the - property, however if the message is - to be accessed multiple times then the property will be more efficient. - - - - - - Serializes this object into the provided. - - The to populate with data. - The destination for this serialization. - - - The data in this event must be fixed before it can be serialized. - - - The method must be called during the - method call if this event - is to be used outside that method. - - - - - - Gets the portable data for this . - - The for this event. - - - A new can be constructed using a - instance. - - - Does a fix of the data - in the logging event before returning the event data. - - - - - - Gets the portable data for this . - - The set of data to ensure is fixed in the LoggingEventData - The for this event. - - - A new can be constructed using a - instance. - - - - - - Returns this event's exception's rendered using the - . - - - This event's exception's rendered using the . - - - - Obsolete. Use instead. - - - - - - Returns this event's exception's rendered using the - . - - - This event's exception's rendered using the . - - - - Returns this event's exception's rendered using the - . - - - - - - Fix instance fields that hold volatile data. - - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - incurred by calling but it - is essential to maintaining data consistency. - - - Calling is equivalent to - calling passing the parameter - false. - - - See for more - information. - - - - - - Fixes instance fields that hold volatile data. - - Set to true to not fix data that takes a long time to fix. - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - for incurred by calling but it - is essential to maintaining data consistency. - - - The param controls the data that - is fixed. Some of the data that can be fixed takes a long time to - generate, therefore if you do not require those settings to be fixed - they can be ignored by setting the param - to true. This setting will ignore the - and settings. - - - Set to false to ensure that all - settings are fixed. - - - - - - Fix the fields specified by the parameter - - the fields to fix - - - Only fields specified in the will be fixed. - Fields will not be fixed if they have previously been fixed. - It is not possible to 'unfix' a field. - - - - - - Lookup a composite property in this event - - the key for the property to lookup - the value for the property - - - This event has composite properties that combine together properties from - several different contexts in the following order: - - - this events properties - - This event has that can be set. These - properties are specific to this event only. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - - - Get all the composite properties in this event - - the containing all the properties - - - See for details of the composite properties - stored by the event. - - - This method returns a single containing all the - properties defined for this event. - - - - - - The internal logging event data. - - - - - The internal logging event data. - - - - - The internal logging event data. - - - - - The fully qualified Type of the calling - logger class in the stack frame (i.e. the declaring type of the method). - - - - - The application supplied message of logging event. - - - - - The exception that was thrown. - - - This is not serialized. The string representation - is serialized instead. - - - - - The repository that generated the logging event - - - This is not serialized. - - - - - The fix state for this event - - - These flags indicate which fields have been fixed. - Not serialized. - - - - - Indicated that the internal cache is updateable (ie not fixed) - - - This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler - changes in the caching strategy. - - - - - Gets the time when the current process started. - - - This is the time when this process started. - - - - The TimeStamp is stored in the local time zone for this computer. - - - Tries to get the start time for the current process. - Failing that it returns the time of the first call to - this property. - - - Note that AppDomains may be loaded and unloaded within the - same process without the process terminating and therefore - without the process start time being reset. - - - - - - Gets the of the logging event. - - - The of the logging event. - - - - Gets the of the logging event. - - - - - - Gets the time of the logging event. - - - The time of the logging event. - - - - The TimeStamp is stored in the local time zone for this computer. - - - - - - Gets the name of the logger that logged the event. - - - The name of the logger that logged the event. - - - - Gets the name of the logger that logged the event. - - - - - - Gets the location information for this logging event. - - - The location information for this logging event. - - - - The collected information is cached for future use. - - - See the class for more information on - supported frameworks and the different behavior in Debug and - Release builds. - - - - - - Gets the message object used to initialize this event. - - - The message object used to initialize this event. - - - - Gets the message object used to initialize this event. - Note that this event may not have a valid message object. - If the event is serialized the message object will not - be transferred. To get the text of the message the - property must be used - not this property. - - - If there is no defined message object for this event then - null will be returned. - - - - - - Gets the exception object used to initialize this event. - - - The exception object used to initialize this event. - - - - Gets the exception object used to initialize this event. - Note that this event may not have a valid exception object. - If the event is serialized the exception object will not - be transferred. To get the text of the exception the - method must be used - not this property. - - - If there is no defined exception object for this event then - null will be returned. - - - - - - The that this event was created in. - - - - The that this event was created in. - - - - - - Gets the message, rendered through the . - - - The message rendered through the . - - - - The collected information is cached for future use. - - - - - - Gets the name of the current thread. - - - The name of the current thread, or the thread ID when - the name is not available. - - - - The collected information is cached for future use. - - - - - - Gets the name of the current user. - - - The name of the current user, or NOT AVAILABLE when the - underlying runtime has no support for retrieving the name of the - current user. - - - - Calls WindowsIdentity.GetCurrent().Name to get the name of - the current windows user. - - - To improve performance, we could cache the string representation of - the name, and reuse that as long as the identity stayed constant. - Once the identity changed, we would need to re-assign and re-render - the string. - - - However, the WindowsIdentity.GetCurrent() call seems to - return different objects every time, so the current implementation - doesn't do this type of caching. - - - Timing for these operations: - - - - Method - Results - - - WindowsIdentity.GetCurrent() - 10000 loops, 00:00:00.2031250 seconds - - - WindowsIdentity.GetCurrent().Name - 10000 loops, 00:00:08.0468750 seconds - - - - This means we could speed things up almost 40 times by caching the - value of the WindowsIdentity.GetCurrent().Name property, since - this takes (8.04-0.20) = 7.84375 seconds. - - - - - - Gets the identity of the current thread principal. - - - The string name of the identity of the current thread principal. - - - - Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get - the name of the current thread principal. - - - - - - Gets the AppDomain friendly name. - - - The AppDomain friendly name. - - - - Gets the AppDomain friendly name. - - - - - - Additional event specific properties. - - - Additional event specific properties. - - - - A logger or an appender may attach additional - properties to specific events. These properties - have a string key and an object value. - - - This property is for events that have been added directly to - this event. The aggregate properties (which include these - event properties) can be retrieved using - and . - - - Once the properties have been fixed this property - returns the combined cached properties. This ensures that updates to - this property are always reflected in the underlying storage. When - returning the combined properties there may be more keys in the - Dictionary than expected. - - - - - - The fixed fields in this event - - - The set of fields that are fixed in this event - - - - Fields will not be fixed if they have previously been fixed. - It is not possible to 'unfix' a field. - - - - - - Implementation of wrapper interface. - - - - This implementation of the interface - forwards to the held by the base class. - - - This logger has methods to allow the caller to log at the following - levels: - - - - DEBUG - - The and methods log messages - at the DEBUG level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - INFO - - The and methods log messages - at the INFO level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - WARN - - The and methods log messages - at the WARN level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - ERROR - - The and methods log messages - at the ERROR level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - FATAL - - The and methods log messages - at the FATAL level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - - The values for these levels and their semantic meanings can be changed by - configuring the for the repository. - - - Nicko Cadell - Gert Driesen - - - - The ILog interface is use by application to log messages into - the log4net framework. - - - - Use the to obtain logger instances - that implement this interface. The - static method is used to get logger instances. - - - This class contains methods for logging at different levels and also - has properties for determining if those logging levels are - enabled in the current configuration. - - - This interface can be implemented in different ways. This documentation - specifies reasonable behavior that a caller can expect from the actual - implementation, however different implementations reserve the right to - do things differently. - - - Simple example of logging messages - - ILog log = LogManager.GetLogger("application-log"); - - log.Info("Application Start"); - log.Debug("This is a debug message"); - - if (log.IsDebugEnabled) - { - log.Debug("This is another debug message"); - } - - - - - Nicko Cadell - Gert Driesen - - - Log a message object with the level. - - Log a message object with the level. - - The message object to log. - - - This method first checks if this logger is DEBUG - enabled by comparing the level of this logger with the - level. If this logger is - DEBUG enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of - the additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Logs a message object with the level. - - - - This method first checks if this logger is INFO - enabled by comparing the level of this logger with the - level. If this logger is - INFO enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Logs a message object with the INFO level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Log a message object with the level. - - - - This method first checks if this logger is WARN - enabled by comparing the level of this logger with the - level. If this logger is - WARN enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Logs a message object with the level. - - The message object to log. - - - This method first checks if this logger is ERROR - enabled by comparing the level of this logger with the - level. If this logger is - ERROR enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Log a message object with the level. - - - - This method first checks if this logger is FATAL - enabled by comparing the level of this logger with the - level. If this logger is - FATAL enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - - This function is intended to lessen the computational cost of - disabled log debug statements. - - For some ILog interface log, when you write: - - log.Debug("This is entry number: " + i ); - - - You incur the cost constructing the message, string construction and concatenation in - this case, regardless of whether the message is logged or not. - - - If you are worried about speed (who isn't), then you should write: - - - if (log.IsDebugEnabled) - { - log.Debug("This is entry number: " + i ); - } - - - This way you will not incur the cost of parameter - construction if debugging is disabled for log. On - the other hand, if the log is debug enabled, you - will incur the cost of evaluating whether the logger is debug - enabled twice. Once in and once in - the . This is an insignificant overhead - since evaluating a logger takes about 1% of the time it - takes to actually log. This is the preferred style of logging. - - Alternatively if your logger is available statically then the is debug - enabled state can be stored in a static variable like this: - - - private static readonly bool isDebugEnabled = log.IsDebugEnabled; - - - Then when you come to log you can write: - - - if (isDebugEnabled) - { - log.Debug("This is entry number: " + i ); - } - - - This way the debug enabled state is only queried once - when the class is loaded. Using a private static readonly - variable is the most efficient because it is a run time constant - and can be heavily optimized by the JIT compiler. - - - Of course if you use a static readonly variable to - hold the enabled state of the logger then you cannot - change the enabled state at runtime to vary the logging - that is produced. You have to decide if you need absolute - speed or runtime flexibility. - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Construct a new wrapper for the specified logger. - - The logger to wrap. - - - Construct a new wrapper for the specified logger. - - - - - - Virtual method called when the configuration of the repository changes - - the repository holding the levels - - - Virtual method called when the configuration of the repository changes - - - - - - Logs a message object with the DEBUG level. - - The message object to log. - - - This method first checks if this logger is DEBUG - enabled by comparing the level of this logger with the - DEBUG level. If this logger is - DEBUG enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the DEBUG level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the DEBUG level including - the stack trace of the passed - as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the INFO level. - - The message object to log. - - - This method first checks if this logger is INFO - enabled by comparing the level of this logger with the - INFO level. If this logger is - INFO enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of - the additivity flag. - - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the INFO level. - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the INFO level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the WARN level. - - the message object to log - - - This method first checks if this logger is WARN - enabled by comparing the level of this logger with the - WARN level. If this logger is - WARN enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the WARN level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the WARN level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the ERROR level. - - The message object to log. - - - This method first checks if this logger is ERROR - enabled by comparing the level of this logger with the - ERROR level. If this logger is - ERROR enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the ERROR level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the ERROR level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the FATAL level. - - The message object to log. - - - This method first checks if this logger is FATAL - enabled by comparing the level of this logger with the - FATAL level. If this logger is - FATAL enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the FATAL level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the FATAL level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Event handler for the event - - the repository - Empty - - - - The fully qualified name of this declaring type not the type of any subclass. - - - - - Checks if this logger is enabled for the DEBUG - level. - - - true if this logger is enabled for DEBUG events, - false otherwise. - - - - This function is intended to lessen the computational cost of - disabled log debug statements. - - - For some log Logger object, when you write: - - - log.Debug("This is entry number: " + i ); - - - You incur the cost constructing the message, concatenation in - this case, regardless of whether the message is logged or not. - - - If you are worried about speed, then you should write: - - - if (log.IsDebugEnabled()) - { - log.Debug("This is entry number: " + i ); - } - - - This way you will not incur the cost of parameter - construction if debugging is disabled for log. On - the other hand, if the log is debug enabled, you - will incur the cost of evaluating whether the logger is debug - enabled twice. Once in IsDebugEnabled and once in - the Debug. This is an insignificant overhead - since evaluating a logger takes about 1% of the time it - takes to actually log. - - - - - - Checks if this logger is enabled for the INFO level. - - - true if this logger is enabled for INFO events, - false otherwise. - - - - See for more information and examples - of using this method. - - - - - - - Checks if this logger is enabled for the WARN level. - - - true if this logger is enabled for WARN events, - false otherwise. - - - - See for more information and examples - of using this method. - - - - - - - Checks if this logger is enabled for the ERROR level. - - - true if this logger is enabled for ERROR events, - false otherwise. - - - - See for more information and examples of using this method. - - - - - - - Checks if this logger is enabled for the FATAL level. - - - true if this logger is enabled for FATAL events, - false otherwise. - - - - See for more information and examples of using this method. - - - - - - - provides method information without actually referencing a System.Reflection.MethodBase - as that would require that the containing assembly is loaded. - - - - - - When location information is not available the constant - NA is returned. Current value of this string - constant is ?. - - - - - constructs a method item for an unknown method. - - - - - constructs a method item from the name of the method. - - - - - - constructs a method item from the name of the method and its parameters. - - - - - - - constructs a method item from a method base by determining the method name and its parameters. - - - - - - The fully qualified type of the StackFrameItem class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the method name of the caller making the logging - request. - - - The method name of the caller making the logging - request. - - - - Gets the method name of the caller making the logging - request. - - - - - - Gets the method parameters of the caller making - the logging request. - - - The method parameters of the caller making - the logging request - - - - Gets the method parameters of the caller making - the logging request. - - - - - - A SecurityContext used by log4net when interacting with protected resources - - - - A SecurityContext used by log4net when interacting with protected resources - for example with operating system services. This can be used to impersonate - a principal that has been granted privileges on the system resources. - - - Nicko Cadell - - - - Impersonate this SecurityContext - - State supplied by the caller - An instance that will - revoke the impersonation of this SecurityContext, or null - - - Impersonate this security context. Further calls on the current - thread should now be made in the security context provided - by this object. When the result - method is called the security - context of the thread should be reverted to the state it was in - before was called. - - - - - - The providers default instances. - - - - A configured component that interacts with potentially protected system - resources uses a to provide the elevated - privileges required. If the object has - been not been explicitly provided to the component then the component - will request one from this . - - - By default the is - an instance of which returns only - objects. This is a reasonable default - where the privileges required are not know by the system. - - - This default behavior can be overridden by subclassing the - and overriding the method to return - the desired objects. The default provider - can be replaced by programmatically setting the value of the - property. - - - An alternative is to use the log4net.Config.SecurityContextProviderAttribute - This attribute can be applied to an assembly in the same way as the - log4net.Config.XmlConfiguratorAttribute". The attribute takes - the type to use as the as an argument. - - - Nicko Cadell - - - - The default provider - - - - - Protected default constructor to allow subclassing - - - - Protected default constructor to allow subclassing - - - - - - Create a SecurityContext for a consumer - - The consumer requesting the SecurityContext - An impersonation context - - - The default implementation is to return a . - - - Subclasses should override this method to provide their own - behavior. - - - - - - Gets or sets the default SecurityContextProvider - - - The default SecurityContextProvider - - - - The default provider is used by configured components that - require a and have not had one - given to them. - - - By default this is an instance of - that returns objects. - - - The default provider can be set programmatically by setting - the value of this property to a sub class of - that has the desired behavior. - - - - - - provides stack frame information without actually referencing a System.Diagnostics.StackFrame - as that would require that the containing assembly is loaded. - - - - - - When location information is not available the constant - NA is returned. Current value of this string - constant is ?. - - - - - returns a stack frame item from a stack frame. This - - - - - - - The fully qualified type of the StackFrameItem class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the fully qualified class name of the caller making the logging - request. - - - The fully qualified class name of the caller making the logging - request. - - - - Gets the fully qualified class name of the caller making the logging - request. - - - - - - Gets the file name of the caller. - - - The file name of the caller. - - - - Gets the file name of the caller. - - - - - - Gets the line number of the caller. - - - The line number of the caller. - - - - Gets the line number of the caller. - - - - - - Gets the method name of the caller. - - - The method name of the caller. - - - - Gets the method name of the caller. - - - - - - Gets all available caller information - - - All available caller information, in the format - fully.qualified.classname.of.caller.methodName(Filename:line) - - - - Gets all available caller information, in the format - fully.qualified.classname.of.caller.methodName(Filename:line) - - - - - - An evaluator that triggers after specified number of seconds. - - - - This evaluator will trigger if the specified time period - has passed since last check. - - - Robert Sevcik - - - - The default time threshold for triggering in seconds. Zero means it won't trigger at all. - - - - - The time threshold for triggering in seconds. Zero means it won't trigger at all. - - - - - The time of last check. This gets updated when the object is created and when the evaluator triggers. - - - - - Create a new evaluator using the time threshold in seconds. - - - - Create a new evaluator using the time threshold in seconds. - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Create a new evaluator using the specified time threshold in seconds. - - - The time threshold in seconds to trigger after. - Zero means it won't trigger at all. - - - - Create a new evaluator using the specified time threshold in seconds. - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Is this the triggering event? - - The event to check - This method returns true, if the specified time period - has passed since last check.. - Otherwise it returns false - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - The time threshold in seconds to trigger after - - - The time threshold in seconds to trigger after. - Zero means it won't trigger at all. - - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Delegate used to handle creation of new wrappers. - - The logger to wrap in a wrapper. - - - Delegate used to handle creation of new wrappers. This delegate - is called from the - method to construct the wrapper for the specified logger. - - - The delegate to use is supplied to the - constructor. - - - - - - Maps between logger objects and wrapper objects. - - - - This class maintains a mapping between objects and - objects. Use the method to - lookup the for the specified . - - - New wrapper instances are created by the - method. The default behavior is for this method to delegate construction - of the wrapper to the delegate supplied - to the constructor. This allows specialization of the behavior without - requiring subclassing of this type. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the - - The handler to use to create the wrapper objects. - - - Initializes a new instance of the class with - the specified handler to create the wrapper objects. - - - - - - Gets the wrapper object for the specified logger. - - The wrapper object for the specified logger - - - If the logger is null then the corresponding wrapper is null. - - - Looks up the wrapper it it has previously been requested and - returns it. If the wrapper has never been requested before then - the virtual method is - called. - - - - - - Creates the wrapper object for the specified logger. - - The logger to wrap in a wrapper. - The wrapper object for the logger. - - - This implementation uses the - passed to the constructor to create the wrapper. This method - can be overridden in a subclass. - - - - - - Called when a monitored repository shutdown event is received. - - The that is shutting down - - - This method is called when a that this - is holding loggers for has signaled its shutdown - event . The default - behavior of this method is to release the references to the loggers - and their wrappers generated for this repository. - - - - - - Event handler for repository shutdown event. - - The sender of the event. - The event args. - - - - Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings - - - - - The handler to use to create the extension wrapper objects. - - - - - Internal reference to the delegate used to register for repository shutdown events. - - - - - Gets the map of logger repositories. - - - Map of logger repositories. - - - - Gets the hashtable that is keyed on . The - values are hashtables keyed on with the - value being the corresponding . - - - - - - Formats a as "HH:mm:ss,fff". - - - - Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". - - - Nicko Cadell - Gert Driesen - - - - Render a as a string. - - - - Interface to abstract the rendering of a - instance into a string. - - - The method is used to render the - date to a text writer. - - - Nicko Cadell - Gert Driesen - - - - Formats the specified date as a string. - - The date to format. - The writer to write to. - - - Format the as a string and write it - to the provided. - - - - - - String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. - - - - - String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. - - - - - String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. - - - - - Renders the date into a string. Format is "HH:mm:ss". - - The date to render into a string. - The string builder to write to. - - - Subclasses should override this method to render the date - into a string using a precision up to the second. This method - will be called at most once per second and the result will be - reused if it is needed again during the same second. - - - - - - Renders the date into a string. Format is "HH:mm:ss,fff". - - The date to render into a string. - The writer to write to. - - - Uses the method to generate the - time string up to the seconds and then appends the current - milliseconds. The results from are - cached and is called at most once - per second. - - - Sub classes should override - rather than . - - - - - - Last stored time with precision up to the second. - - - - - Last stored time with precision up to the second, formatted - as a string. - - - - - Last stored time with precision up to the second, formatted - as a string. - - - - - Formats a as "dd MMM yyyy HH:mm:ss,fff" - - - - Formats a in the format - "dd MMM yyyy HH:mm:ss,fff" for example, - "06 Nov 1994 15:49:37,459". - - - Nicko Cadell - Gert Driesen - Angelika Schnagl - - - - Default constructor. - - - - Initializes a new instance of the class. - - - - - - Formats the date without the milliseconds part - - The date to format. - The string builder to write to. - - - Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" - for example, "06 Nov 1994 15:49:37". - - - The base class will append the ",fff" milliseconds section. - This method will only be called at most once per second. - - - - - - The format info for the invariant culture. - - - - - Formats the as "yyyy-MM-dd HH:mm:ss,fff". - - - - Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Formats the date without the milliseconds part - - The date to format. - The string builder to write to. - - - Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". - - - The base class will append the ",fff" milliseconds section. - This method will only be called at most once per second. - - - - - - Formats the using the method. - - - - Formats the using the method. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The format string. - - - Initializes a new instance of the class - with the specified format string. - - - The format string must be compatible with the options - that can be supplied to . - - - - - - Formats the date using . - - The date to convert to a string. - The writer to write to. - - - Uses the date format string supplied to the constructor to call - the method to format the date. - - - - - - The format string used to format the . - - - - The format string must be compatible with the options - that can be supplied to . - - - - - - This filter drops all . - - - - You can add this filter to the end of a filter chain to - switch from the default "accept all unless instructed otherwise" - filtering behavior to a "deny all unless instructed otherwise" - behavior. - - - Nicko Cadell - Gert Driesen - - - - Subclass this type to implement customized logging event filtering - - - - Users should extend this class to implement customized logging - event filtering. Note that and - , the parent class of all standard - appenders, have built-in filtering rules. It is suggested that you - first use and understand the built-in rules before rushing to write - your own custom filters. - - - This abstract class assumes and also imposes that filters be - organized in a linear chain. The - method of each filter is called sequentially, in the order of their - addition to the chain. - - - The method must return one - of the integer constants , - or . - - - If the value is returned, then the log event is dropped - immediately without consulting with the remaining filters. - - - If the value is returned, then the next filter - in the chain is consulted. If there are no more filters in the - chain, then the log event is logged. Thus, in the presence of no - filters, the default behavior is to log all logging events. - - - If the value is returned, then the log - event is logged without consulting the remaining filters. - - - The philosophy of log4net filters is largely inspired from the - Linux ipchains. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface to provide customized logging event filtering - - - - Users should implement this interface to implement customized logging - event filtering. Note that and - , the parent class of all standard - appenders, have built-in filtering rules. It is suggested that you - first use and understand the built-in rules before rushing to write - your own custom filters. - - - This abstract class assumes and also imposes that filters be - organized in a linear chain. The - method of each filter is called sequentially, in the order of their - addition to the chain. - - - The method must return one - of the integer constants , - or . - - - If the value is returned, then the log event is dropped - immediately without consulting with the remaining filters. - - - If the value is returned, then the next filter - in the chain is consulted. If there are no more filters in the - chain, then the log event is logged. Thus, in the presence of no - filters, the default behavior is to log all logging events. - - - If the value is returned, then the log - event is logged without consulting the remaining filters. - - - The philosophy of log4net filters is largely inspired from the - Linux ipchains. - - - Nicko Cadell - Gert Driesen - - - - Decide if the logging event should be logged through an appender. - - The LoggingEvent to decide upon - The decision of the filter - - - If the decision is , then the event will be - dropped. If the decision is , then the next - filter, if any, will be invoked. If the decision is then - the event will be logged without consulting with other filters in - the chain. - - - - - - Property to get and set the next filter - - - The next filter in the chain - - - - Filters are typically composed into chains. This property allows the next filter in - the chain to be accessed. - - - - - - Points to the next filter in the filter chain. - - - - See for more information. - - - - - - Initialize the filter with the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Typically filter's options become active immediately on set, - however this method must still be called. - - - - - - Decide if the should be logged through an appender. - - The to decide upon - The decision of the filter - - - If the decision is , then the event will be - dropped. If the decision is , then the next - filter, if any, will be invoked. If the decision is then - the event will be logged without consulting with other filters in - the chain. - - - This method is marked abstract and must be implemented - in a subclass. - - - - - - Property to get and set the next filter - - - The next filter in the chain - - - - Filters are typically composed into chains. This property allows the next filter in - the chain to be accessed. - - - - - - Default constructor - - - - - Always returns the integer constant - - the LoggingEvent to filter - Always returns - - - Ignores the event being logged and just returns - . This can be used to change the default filter - chain behavior from to . This filter - should only be used as the last filter in the chain - as any further filters will be ignored! - - - - - - The return result from - - - - The return result from - - - - - - The log event must be dropped immediately without - consulting with the remaining filters, if any, in the chain. - - - - - This filter is neutral with respect to the log event. - The remaining filters, if any, should be consulted for a final decision. - - - - - The log event must be logged immediately without - consulting with the remaining filters, if any, in the chain. - - - - - This is a very simple filter based on matching. - - - - The filter admits two options and - . If there is an exact match between the value - of the option and the of the - , then the method returns in - case the option value is set - to true, if it is false then - is returned. If the does not match then - the result will be . - - - Nicko Cadell - Gert Driesen - - - - flag to indicate if the filter should on a match - - - - - the to match against - - - - - Default constructor - - - - - Tests if the of the logging event matches that of the filter - - the event to filter - see remarks - - - If the of the event matches the level of the - filter then the result of the function depends on the - value of . If it is true then - the function will return , it it is false then it - will return . If the does not match then - the result will be . - - - - - - when matching - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - The that the filter will match - - - - The level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - This is a simple filter based on matching. - - - - The filter admits three options and - that determine the range of priorities that are matched, and - . If there is a match between the range - of priorities and the of the , then the - method returns in case the - option value is set to true, if it is false - then is returned. If there is no match, is returned. - - - Nicko Cadell - Gert Driesen - - - - Flag to indicate the behavior when matching a - - - - - the minimum value to match - - - - - the maximum value to match - - - - - Default constructor - - - - - Check if the event should be logged. - - the logging event to check - see remarks - - - If the of the logging event is outside the range - matched by this filter then - is returned. If the is matched then the value of - is checked. If it is true then - is returned, otherwise - is returned. - - - - - - when matching and - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - Set the minimum matched - - - - The minimum level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - Sets the maximum matched - - - - The maximum level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - Simple filter to match a string in the event's logger name. - - - - The works very similar to the . It admits two - options and . If the - of the starts - with the value of the option, then the - method returns in - case the option value is set to true, - if it is false then is returned. - - - Daniel Cazzulino - - - - Flag to indicate the behavior when we have a match - - - - - The logger name string to substring match against the event - - - - - Default constructor - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The rendered message is matched against the . - If the equals the beginning of - the incoming () - then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - when matching - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - The that the filter will match - - - - This filter will attempt to match this value against logger name in - the following way. The match will be done against the beginning of the - logger name (using ). The match is - case sensitive. If a match is found then - the result depends on the value of . - - - - - - Simple filter to match a keyed string in the - - - - Simple filter to match a keyed string in the - - - As the MDC has been replaced with layered properties the - should be used instead. - - - Nicko Cadell - Gert Driesen - - - - Simple filter to match a string an event property - - - - Simple filter to match a string in the value for a - specific event property - - - Nicko Cadell - - - - Simple filter to match a string in the rendered message - - - - Simple filter to match a string in the rendered message - - - Nicko Cadell - Gert Driesen - - - - Flag to indicate the behavior when we have a match - - - - - The string to substring match against the message - - - - - A string regex to match - - - - - A regex object to match (generated from m_stringRegexToMatch) - - - - - Default constructor - - - - - Initialize and precompile the Regex if required - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The rendered message is matched against the . - If the occurs as a substring within - the message then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - when matching or - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - Sets the static string to match - - - - The string that will be substring matched against - the rendered message. If the message contains this - string then the filter will match. If a match is found then - the result depends on the value of . - - - One of or - must be specified. - - - - - - Sets the regular expression to match - - - - The regular expression pattern that will be matched against - the rendered message. If the message matches this - pattern then the filter will match. If a match is found then - the result depends on the value of . - - - One of or - must be specified. - - - - - - The key to use to lookup the string from the event properties - - - - - Default constructor - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The event property for the is matched against - the . - If the occurs as a substring within - the property value then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - The key to lookup in the event properties and then match against. - - - - The key name to use to lookup in the properties map of the - . The match will be performed against - the value of this property if it exists. - - - - - - Simple filter to match a string in the - - - - Simple filter to match a string in the - - - As the MDC has been replaced with named stacks stored in the - properties collections the should - be used instead. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Sets the to "NDC". - - - - - - Write the event appdomain name to the output - - - - Writes the to the output writer. - - - Daniel Cazzulino - Nicko Cadell - - - - Abstract class that provides the formatting functionality that - derived classes need. - - - Conversion specifiers in a conversion patterns are parsed to - individual PatternConverters. Each of which is responsible for - converting a logging event in a converter specific manner. - - Nicko Cadell - - - - Abstract class that provides the formatting functionality that - derived classes need. - - - - Conversion specifiers in a conversion patterns are parsed to - individual PatternConverters. Each of which is responsible for - converting a logging event in a converter specific manner. - - - Nicko Cadell - Gert Driesen - - - - Initial buffer size - - - - - Maximum buffer size before it is recycled - - - - - Protected constructor - - - - Initializes a new instance of the class. - - - - - - Evaluate this pattern converter and write the output to a writer. - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the appropriate way. - - - - - - Set the next pattern converter in the chains - - the pattern converter that should follow this converter in the chain - the next converter - - - The PatternConverter can merge with its neighbor during this method (or a sub class). - Therefore the return value may or may not be the value of the argument passed in. - - - - - - Write the pattern converter to the writer with appropriate formatting - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - This method calls to allow the subclass to perform - appropriate conversion of the pattern converter. If formatting options have - been specified via the then this method will - apply those formattings before writing the output. - - - - - - Fast space padding method. - - to which the spaces will be appended. - The number of spaces to be padded. - - - Fast space padding method. - - - - - - The option string to the converter - - - - - Write an dictionary to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the to a writer in the form: - - - {key1=value1, key2=value2, key3=value3} - - - If the specified - is not null then it is used to render the key and value to text, otherwise - the object's ToString method is called. - - - - - - Write an dictionary to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the to a writer in the form: - - - {key1=value1, key2=value2, key3=value3} - - - If the specified - is not null then it is used to render the key and value to text, otherwise - the object's ToString method is called. - - - - - - Write an object to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the Object to a writer. If the specified - is not null then it is used to render the object to text, otherwise - the object's ToString method is called. - - - - - - Get the next pattern converter in the chain - - - the next pattern converter in the chain - - - - Get the next pattern converter in the chain - - - - - - Gets or sets the formatting info for this converter - - - The formatting info for this converter - - - - Gets or sets the formatting info for this converter - - - - - - Gets or sets the option value for this converter - - - The option for this converter - - - - Gets or sets the option value for this converter - - - - - - - - - - - Initializes a new instance of the class. - - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The on which the pattern converter should be executed. - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - - Flag indicating if this converter handles exceptions - - - false if this converter handles exceptions - - - - - Flag indicating if this converter handles the logging event exception - - false if this converter handles the logging event exception - - - If this converter handles the exception object contained within - , then this property should be set to - false. Otherwise, if the layout ignores the exception - object, then the property should be set to true. - - - Set this value to override a this default setting. The default - value is true, this converter does not handle the exception. - - - - - - Write the event appdomain name to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output . - - - - - - Converter for items in the ASP.Net Cache. - - - - Outputs an item from the . - - - Ron Grabowski - - - - Abstract class that provides access to the current HttpContext () that - derived classes need. - - - This class handles the case when HttpContext.Current is null by writing - to the writer. - - Ron Grabowski - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - - Write the ASP.Net Cache item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. If no property has been set, all key value pairs from the Cache will - be written to the output. - - - - - - Converter for items in the . - - - - Outputs an item from the . - - - Ron Grabowski - - - - Write the ASP.Net HttpContext item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. - - - - - - Converter for items in the ASP.Net Cache. - - - - Outputs an item from the . - - - Ron Grabowski - - - - Write the ASP.Net Cache item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. - - - - - - Converter for items in the ASP.Net Cache. - - - - Outputs an item from the . - - - Ron Grabowski - - - - Write the ASP.Net Cache item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. If no property has been set, all key value pairs from the Session will - be written to the output. - - - - - - Date pattern converter, uses a to format - the date of a . - - - - Render the to the writer as a string. - - - The value of the determines - the formatting of the date. The following values are allowed: - - - Option value - Output - - - ISO8601 - - Uses the formatter. - Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. - - - - DATE - - Uses the formatter. - Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". - - - - ABSOLUTE - - Uses the formatter. - Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". - - - - other - - Any other pattern string uses the formatter. - This formatter passes the pattern string to the - method. - For details on valid patterns see - DateTimeFormatInfo Class. - - - - - - The is in the local time zone and is rendered in that zone. - To output the time in Universal time see . - - - Nicko Cadell - - - - The used to render the date to a string - - - - The used to render the date to a string - - - - - - Initialize the converter pattern based on the property. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Convert the pattern into the rendered message - - that will receive the formatted result. - the event being logged - - - Pass the to the - for it to render it to the writer. - - - The passed is in the local time zone. - - - - - - The fully qualified type of the DatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the exception text to the output - - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - - - If there is no exception then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - Nicko Cadell - - - - Default constructor - - - - - Write the exception text to the output - - that will receive the formatted result. - the event being logged - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - - - If there is no exception or the exception property specified - by the Option value does not exist then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - Recognized values for the Option parameter are: - - - - Message - - - Source - - - StackTrace - - - TargetSite - - - HelpLink - - - - - - - Writes the caller location file name to the output - - - - Writes the value of the for - the event to the output writer. - - - Nicko Cadell - - - - Write the caller location file name to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the for - the to the output . - - - - - - Write the caller location info to the output - - - - Writes the to the output writer. - - - Nicko Cadell - - - - Write the caller location info to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output writer. - - - - - - Writes the event identity to the output - - - - Writes the value of the to - the output writer. - - - Daniel Cazzulino - Nicko Cadell - - - - Writes the event identity to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the - to - the output . - - - - - - Write the event level to the output - - - - Writes the display name of the event - to the writer. - - - Nicko Cadell - - - - Write the event level to the output - - that will receive the formatted result. - the event being logged - - - Writes the of the - to the . - - - - - - Write the caller location line number to the output - - - - Writes the value of the for - the event to the output writer. - - - Nicko Cadell - - - - Write the caller location line number to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the for - the to the output . - - - - - - Converter for logger name - - - - Outputs the of the event. - - - Nicko Cadell - - - - Converter to output and truncate '.' separated strings - - - - This abstract class supports truncating a '.' separated string - to show a specified number of elements from the right hand side. - This is used to truncate class names that are fully qualified. - - - Subclasses should override the method to - return the fully qualified string. - - - Nicko Cadell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Get the fully qualified string data - - the event being logged - the fully qualified name - - - Overridden by subclasses to get the fully qualified name before the - precision is applied to it. - - - Return the fully qualified '.' (dot/period) separated string. - - - - - - Convert the pattern to the rendered message - - that will receive the formatted result. - the event being logged - - Render the to the precision - specified by the property. - - - - - The fully qualified type of the NamedPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the fully qualified name of the logger - - the event being logged - The fully qualified logger name - - - Returns the of the . - - - - - - Writes the event message to the output - - - - Uses the method - to write out the event message. - - - Nicko Cadell - - - - Writes the event message to the output - - that will receive the formatted result. - the event being logged - - - Uses the method - to write out the event message. - - - - - - Write the method name to the output - - - - Writes the caller location to - the output. - - - Nicko Cadell - - - - Write the method name to the output - - that will receive the formatted result. - the event being logged - - - Writes the caller location to - the output. - - - - - - Converter to include event NDC - - - - Outputs the value of the event property named NDC. - - - The should be used instead. - - - Nicko Cadell - - - - Write the event NDC to the output - - that will receive the formatted result. - the event being logged - - - As the thread context stacks are now stored in named event properties - this converter simply looks up the value of the NDC property. - - - The should be used instead. - - - - - - Property pattern converter - - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - Nicko Cadell - - - - Write the property value to the output - - that will receive the formatted result. - the event being logged - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - - - - Converter to output the relative time of the event - - - - Converter to output the time of the event relative to the start of the program. - - - Nicko Cadell - - - - Write the relative time to the output - - that will receive the formatted result. - the event being logged - - - Writes out the relative time of the event in milliseconds. - That is the number of milliseconds between the event - and the . - - - - - - Helper method to get the time difference between two DateTime objects - - start time (in the current local time zone) - end time (in the current local time zone) - the time difference in milliseconds - - - - Write the caller stack frames to the output - - - - Writes the to the output writer, using format: - type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) - - - Adam Davies - - - - Write the caller stack frames to the output - - - - Writes the to the output writer, using format: - type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 - - - Michael Cromwell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the strack frames to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output writer. - - - - - - Returns the Name of the method - - - This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter - string - - - - The fully qualified type of the StackTracePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - The fully qualified type of the StackTraceDetailPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Converter to include event thread name - - - - Writes the to the output. - - - Nicko Cadell - - - - Write the ThreadName to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the . - - - - - - Pattern converter for the class name - - - - Outputs the of the event. - - - Nicko Cadell - - - - Gets the fully qualified name of the class - - the event being logged - The fully qualified type name for the caller location - - - Returns the of the . - - - - - - Converter to include event user name - - Douglas de la Torre - Nicko Cadell - - - - Convert the pattern to the rendered message - - that will receive the formatted result. - the event being logged - - - - Write the TimeStamp to the output - - - - Date pattern converter, uses a to format - the date of a . - - - Uses a to format the - in Universal time. - - - See the for details on the date pattern syntax. - - - - Nicko Cadell - - - - Write the TimeStamp to the output - - that will receive the formatted result. - the event being logged - - - Pass the to the - for it to render it to the writer. - - - The passed is in the local time zone, this is converted - to Universal time before it is rendered. - - - - - - - The fully qualified type of the UtcDatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - A flexible layout configurable with pattern string that re-evaluates on each call. - - - This class is built on and provides all the - features and capabilities of PatternLayout. PatternLayout is a 'static' class - in that its layout is done once at configuration time. This class will recreate - the layout on each reference. - One important difference between PatternLayout and DynamicPatternLayout is the - treatment of the Header and Footer parameters in the configuration. The Header and Footer - parameters for DynamicPatternLayout must be syntactically in the form of a PatternString, - but should not be marked as type log4net.Util.PatternString. Doing so causes the - pattern to be statically converted at configuration time and causes DynamicPatternLayout - to perform the same as PatternLayout. - Please see for complete documentation. - - <layout type="log4net.Layout.DynamicPatternLayout"> - <param name="Header" value="%newline**** Trace Opened Local: %date{yyyy-MM-dd HH:mm:ss.fff} UTC: %utcdate{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> - <param name="Footer" value="**** Trace Closed %date{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> - </layout> - - - - - - A flexible layout configurable with pattern string. - - - - The goal of this class is to a - as a string. The results - depend on the conversion pattern. - - - The conversion pattern is closely related to the conversion - pattern of the printf function in C. A conversion pattern is - composed of literal text and format control expressions called - conversion specifiers. - - - You are free to insert any literal text within the conversion - pattern. - - - Each conversion specifier starts with a percent sign (%) and is - followed by optional format modifiers and a conversion - pattern name. The conversion pattern name specifies the type of - data, e.g. logger, level, date, thread name. The format - modifiers control such things as field width, padding, left and - right justification. The following is a simple example. - - - Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume - that the log4net environment was set to use a PatternLayout. Then the - statements - - - ILog log = LogManager.GetLogger(typeof(TestApp)); - log.Debug("Message 1"); - log.Warn("Message 2"); - - would yield the output - - DEBUG [main]: Message 1 - WARN [main]: Message 2 - - - Note that there is no explicit separator between text and - conversion specifiers. The pattern parser knows when it has reached - the end of a conversion specifier when it reads a conversion - character. In the example above the conversion specifier - %-5level means the level of the logging event should be left - justified to a width of five characters. - - - The recognized conversion pattern names are: - - - - Conversion Pattern Name - Effect - - - a - Equivalent to appdomain - - - appdomain - - Used to output the friendly name of the AppDomain where the - logging event was generated. - - - - aspnet-cache - - - Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-context - - - Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-request - - - Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-session - - - Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - c - Equivalent to logger - - - C - Equivalent to type - - - class - Equivalent to type - - - d - Equivalent to date - - - date - - - Used to output the date of the logging event in the local time zone. - To output the date in universal time use the %utcdate pattern. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %date{HH:mm:ss,fff} or - %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %date{ISO8601} or %date{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - exception - - - Used to output the exception passed in with the log message. - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - If there is no exception then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - - - F - Equivalent to file - - - file - - - Used to output the file name where the logging request was - issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - identity - - - Used to output the user name for the currently active user - (Principal.Identity.Name). - - - WARNING Generating caller information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - - - l - Equivalent to location - - - L - Equivalent to line - - - location - - - Used to output location information of the caller which generated - the logging event. - - - The location information depends on the CLI implementation but - usually consists of the fully qualified name of the calling - method followed by the callers source the file name and line - number between parentheses. - - - The location information can be very useful. However, its - generation is extremely slow. Its use should be avoided - unless execution speed is not an issue. - - - See the note below on the availability of caller location information. - - - - - level - - - Used to output the level of the logging event. - - - - - line - - - Used to output the line number from where the logging request - was issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - logger - - - Used to output the logger of the logging event. The - logger conversion specifier can be optionally followed by - precision specifier, that is a decimal constant in - brackets. - - - If a precision specifier is given, then only the corresponding - number of right most components of the logger name will be - printed. By default the logger name is printed in full. - - - For example, for the logger name "a.b.c" the pattern - %logger{2} will output "b.c". - - - - - m - Equivalent to message - - - M - Equivalent to method - - - message - - - Used to output the application supplied message associated with - the logging event. - - - - - mdc - - - The MDC (old name for the ThreadContext.Properties) is now part of the - combined event properties. This pattern is supported for compatibility - but is equivalent to property. - - - - - method - - - Used to output the method name where the logging request was - issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - n - Equivalent to newline - - - newline - - - Outputs the platform dependent line separator character or - characters. - - - This conversion pattern offers the same performance as using - non-portable line separator strings such as "\n", or "\r\n". - Thus, it is the preferred way of specifying a line separator. - - - - - ndc - - - Used to output the NDC (nested diagnostic context) associated - with the thread that generated the logging event. - - - - - p - Equivalent to level - - - P - Equivalent to property - - - properties - Equivalent to property - - - property - - - Used to output the an event specific property. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %property{user} would include the value - from the property that is keyed by the string 'user'. Each property value - that is to be included in the log must be specified separately. - Properties are added to events by loggers or appenders. By default - the log4net:HostName property is set to the name of machine on - which the event was originally logged. - - - If no key is specified, e.g. %property then all the keys and their - values are printed in a comma separated list. - - - The properties of an event are combined from a number of different - contexts. These are listed below in the order in which they are searched. - - - - the event properties - - The event has that can be set. These - properties are specific to this event only. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - - r - Equivalent to timestamp - - - stacktrace - - - Used to output the stack trace of the logging event - The stack trace level specifier may be enclosed - between braces. For example, %stacktrace{level}. - If no stack trace level specifier is given then 1 is assumed - - - Output uses the format: - type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 - - - This pattern is not available for Compact Framework assemblies. - - - - - stacktracedetail - - - Used to output the stack trace of the logging event - The stack trace level specifier may be enclosed - between braces. For example, %stacktracedetail{level}. - If no stack trace level specifier is given then 1 is assumed - - - Output uses the format: - type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) - - - This pattern is not available for Compact Framework assemblies. - - - - - t - Equivalent to thread - - - timestamp - - - Used to output the number of milliseconds elapsed since the start - of the application until the creation of the logging event. - - - - - thread - - - Used to output the name of the thread that generated the - logging event. Uses the thread number if no name is available. - - - - - type - - - Used to output the fully qualified type name of the caller - issuing the logging request. This conversion specifier - can be optionally followed by precision specifier, that - is a decimal constant in brackets. - - - If a precision specifier is given, then only the corresponding - number of right most components of the class name will be - printed. By default the class name is output in fully qualified form. - - - For example, for the class name "log4net.Layout.PatternLayout", the - pattern %type{1} will output "PatternLayout". - - - WARNING Generating the caller class information is - slow. Thus, its use should be avoided unless execution speed is - not an issue. - - - See the note below on the availability of caller location information. - - - - - u - Equivalent to identity - - - username - - - Used to output the WindowsIdentity for the currently - active user. - - - WARNING Generating caller WindowsIdentity information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - - - utcdate - - - Used to output the date of the logging event in universal time. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %utcdate{HH:mm:ss,fff} or - %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %utcdate{ISO8601} or %utcdate{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - w - Equivalent to username - - - x - Equivalent to ndc - - - X - Equivalent to mdc - - - % - - - The sequence %% outputs a single percent sign. - - - - - - The single letter patterns are deprecated in favor of the - longer more descriptive pattern names. - - - By default the relevant information is output as is. However, - with the aid of format modifiers it is possible to change the - minimum field width, the maximum field width and justification. - - - The optional format modifier is placed between the percent sign - and the conversion pattern name. - - - The first optional format modifier is the left justification - flag which is just the minus (-) character. Then comes the - optional minimum field width modifier. This is a decimal - constant that represents the minimum number of characters to - output. If the data item requires fewer characters, it is padded on - either the left or the right until the minimum width is - reached. The default is to pad on the left (right justify) but you - can specify right padding with the left justification flag. The - padding character is space. If the data item is larger than the - minimum field width, the field is expanded to accommodate the - data. The value is never truncated. - - - This behavior can be changed using the maximum field - width modifier which is designated by a period followed by a - decimal constant. If the data item is longer than the maximum - field, then the extra characters are removed from the - beginning of the data item and not from the end. For - example, it the maximum field width is eight and the data item is - ten characters long, then the first two characters of the data item - are dropped. This behavior deviates from the printf function in C - where truncation is done from the end. - - - Below are various format modifier examples for the logger - conversion specifier. - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Format modifierleft justifyminimum widthmaximum widthcomment
    %20loggerfalse20none - - Left pad with spaces if the logger name is less than 20 - characters long. - -
    %-20loggertrue20none - - Right pad with spaces if the logger - name is less than 20 characters long. - -
    %.30loggerNAnone30 - - Truncate from the beginning if the logger - name is longer than 30 characters. - -
    %20.30loggerfalse2030 - - Left pad with spaces if the logger name is shorter than 20 - characters. However, if logger name is longer than 30 characters, - then truncate from the beginning. - -
    %-20.30loggertrue2030 - - Right pad with spaces if the logger name is shorter than 20 - characters. However, if logger name is longer than 30 characters, - then truncate from the beginning. - -
    -
    - - Note about caller location information.
    - The following patterns %type %file %line %method %location %class %C %F %L %l %M - all generate caller location information. - Location information uses the System.Diagnostics.StackTrace class to generate - a call stack. The caller's information is then extracted from this stack. -
    - - - The System.Diagnostics.StackTrace class is not supported on the - .NET Compact Framework 1.0 therefore caller location information is not - available on that framework. - - - - - The System.Diagnostics.StackTrace class has this to say about Release builds: - - - "StackTrace information will be most informative with Debug build configurations. - By default, Debug builds include debug symbols, while Release builds do not. The - debug symbols contain most of the file, method name, line number, and column - information used in constructing StackFrame and StackTrace objects. StackTrace - might not report as many method calls as expected, due to code transformations - that occur during optimization." - - - This means that in a Release build the caller information may be incomplete or may - not exist at all! Therefore caller location information cannot be relied upon in a Release build. - - - - Additional pattern converters may be registered with a specific - instance using the method. - -
    - - This is a more detailed pattern. - %timestamp [%thread] %level %logger %ndc - %message%newline - - - A similar pattern except that the relative time is - right padded if less than 6 digits, thread name is right padded if - less than 15 characters and truncated if longer and the logger - name is left padded if shorter than 30 characters and truncated if - longer. - %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline - - Nicko Cadell - Gert Driesen - Douglas de la Torre - Daniel Cazzulino -
    - - - Extend this abstract class to create your own log layout format. - - - - This is the base implementation of the - interface. Most layout objects should extend this class. - - - - - - Subclasses must implement the - method. - - - Subclasses should set the in their default - constructor. - - - - Nicko Cadell - Gert Driesen - - - - Interface implemented by layout objects - - - - An object is used to format a - as text. The method is called by an - appender to transform the into a string. - - - The layout can also supply and - text that is appender before any events and after all the events respectively. - - - Nicko Cadell - Gert Driesen - - - - Implement this method to create your own layout format. - - The TextWriter to write the formatted event to - The event to format - - - This method is called by an appender to format - the as text and output to a writer. - - - If the caller does not have a and prefers the - event to be formatted as a then the following - code can be used to format the event into a . - - - StringWriter writer = new StringWriter(); - Layout.Format(writer, loggingEvent); - string formattedEvent = writer.ToString(); - - - - - - The content type output by this layout. - - The content type - - - The content type output by this layout. - - - This is a MIME type e.g. "text/plain". - - - - - - The header for the layout format. - - the layout header - - - The Header text will be appended before any logging events - are formatted and appended. - - - - - - The footer for the layout format. - - the layout footer - - - The Footer text will be appended after all the logging events - have been formatted and appended. - - - - - - Flag indicating if this layout handle exceptions - - false if this layout handles exceptions - - - If this layout handles the exception object contained within - , then the layout should return - false. Otherwise, if the layout ignores the exception - object, then the layout should return true. - - - - - - The header text - - - - See for more information. - - - - - - The footer text - - - - See for more information. - - - - - - Flag indicating if this layout handles exceptions - - - - false if this layout handles exceptions - - - - - - Empty default constructor - - - - Empty default constructor - - - - - - Activate component options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - This method must be implemented by the subclass. - - - - - - Implement this method to create your own layout format. - - The TextWriter to write the formatted event to - The event to format - - - This method is called by an appender to format - the as text. - - - - - - Convenience method for easily formatting the logging event into a string variable. - - - - Creates a new StringWriter instance to store the formatted logging event. - - - - - The content type output by this layout. - - The content type is "text/plain" - - - The content type output by this layout. - - - This base class uses the value "text/plain". - To change this value a subclass must override this - property. - - - - - - The header for the layout format. - - the layout header - - - The Header text will be appended before any logging events - are formatted and appended. - - - - - - The footer for the layout format. - - the layout footer - - - The Footer text will be appended after all the logging events - have been formatted and appended. - - - - - - Flag indicating if this layout handles exceptions - - false if this layout handles exceptions - - - If this layout handles the exception object contained within - , then the layout should return - false. Otherwise, if the layout ignores the exception - object, then the layout should return true. - - - Set this value to override a this default setting. The default - value is true, this layout does not handle the exception. - - - - - - Default pattern string for log output. - - - - Default pattern string for log output. - Currently set to the string "%message%newline" - which just prints the application supplied message. - - - - - - A detailed conversion pattern - - - - A conversion pattern which includes Time, Thread, Logger, and Nested Context. - Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. - - - - - - Internal map of converter identifiers to converter types. - - - - This static map is overridden by the m_converterRegistry instance map - - - - - - the pattern - - - - - the head of the pattern converter chain - - - - - patterns defined on this PatternLayout only - - - - - Initialize the global registry - - - - Defines the builtin global rules. - - - - - - Constructs a PatternLayout using the DefaultConversionPattern - - - - The default pattern just produces the application supplied message. - - - Note to Inheritors: This constructor calls the virtual method - . If you override this method be - aware that it will be called before your is called constructor. - - - As per the contract the - method must be called after the properties on this object have been - configured. - - - - - - Constructs a PatternLayout using the supplied conversion pattern - - the pattern to use - - - Note to Inheritors: This constructor calls the virtual method - . If you override this method be - aware that it will be called before your is called constructor. - - - When using this constructor the method - need not be called. This may not be the case when using a subclass. - - - - - - Create the pattern parser instance - - the pattern to parse - The that will format the event - - - Creates the used to parse the conversion string. Sets the - global and instance rules on the . - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a formatted string as specified by the conversion pattern. - - the event being logged - The TextWriter to write the formatted event to - - - Parse the using the patter format - specified in the property. - - - - - - Add a converter to this PatternLayout - - the converter info - - - This version of the method is used by the configurator. - Programmatic users should use the alternative method. - - - - - - Add a converter to this PatternLayout - - the name of the conversion pattern for this converter - the type of the converter - - - Add a named pattern converter to this instance. This - converter will be used in the formatting of the event. - This method must be called before . - - - The specified must extend the - type. - - - - - - The pattern formatting string - - - - The ConversionPattern option. This is the string which - controls formatting and consists of a mix of literal content and - conversion specifiers. - - - - - - The header PatternString - - - - - The footer PatternString - - - - - Constructs a DynamicPatternLayout using the DefaultConversionPattern - - - - The default pattern just produces the application supplied message. - - - - - - Constructs a DynamicPatternLayout using the supplied conversion pattern - - the pattern to use - - - - - - The header for the layout format. - - the layout header - - - The Header text will be appended before any logging events - are formatted and appended. - - The pattern will be formatted on each get operation. - - - - - The footer for the layout format. - - the layout footer - - - The Footer text will be appended after all the logging events - have been formatted and appended. - - The pattern will be formatted on each get operation. - - - - - A Layout that renders only the Exception text from the logging event - - - - A Layout that renders only the Exception text from the logging event. - - - This Layout should only be used with appenders that utilize multiple - layouts (e.g. ). - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Constructs a ExceptionLayout - - - - - - Activate component options - - - - Part of the component activation - framework. - - - This method does nothing as options become effective immediately. - - - - - - Gets the exception text from the logging event - - The TextWriter to write the formatted event to - the event being logged - - - Write the exception string to the . - The exception string is retrieved from . - - - - - - Interface for raw layout objects - - - - Interface used to format a - to an object. - - - This interface should not be confused with the - interface. This interface is used in - only certain specialized situations where a raw object is - required rather than a formatted string. The - is not generally useful than this interface. - - - Nicko Cadell - Gert Driesen - - - - Implement this method to create your own layout format. - - The event to format - returns the formatted event - - - Implement this method to create your own layout format. - - - - - - Adapts any to a - - - - Where an is required this adapter - allows a to be specified. - - - Nicko Cadell - Gert Driesen - - - - The layout to adapt - - - - - Construct a new adapter - - the layout to adapt - - - Create the adapter for the specified . - - - - - - Format the logging event as an object. - - The event to format - returns the formatted event - - - Format the logging event as an object. - - - Uses the object supplied to - the constructor to perform the formatting. - - - - - - Type converter for the interface - - - - Used to convert objects to the interface. - Supports converting from the interface to - the interface using the . - - - Nicko Cadell - Gert Driesen - - - - Interface supported by type converters - - - - This interface supports conversion from arbitrary types - to a single target type. See . - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Test if the can be converted to the - type supported by this converter. - - - - - - Convert the source object to the type supported by this object - - the object to convert - the converted object - - - Converts the to the type supported - by this converter. - - - - - - Can the sourceType be converted to an - - the source to be to be converted - true if the source type can be converted to - - - Test if the can be converted to a - . Only is supported - as the . - - - - - - Convert the value to a object - - the value to convert - the object - - - Convert the object to a - object. If the object - is a then the - is used to adapt between the two interfaces, otherwise an - exception is thrown. - - - - - - Extract the value of a property from the - - - - Extract the value of a property from the - - - Nicko Cadell - - - - Constructs a RawPropertyLayout - - - - - Lookup the property for - - The event to format - returns property value - - - Looks up and returns the object value of the property - named . If there is no property defined - with than name then null will be returned. - - - - - - The name of the value to lookup in the LoggingEvent Properties collection. - - - Value to lookup in the LoggingEvent Properties collection - - - - String name of the property to lookup in the . - - - - - - Extract the date from the - - - - Extract the date from the - - - Nicko Cadell - Gert Driesen - - - - Constructs a RawTimeStampLayout - - - - - Gets the as a . - - The event to format - returns the time stamp - - - Gets the as a . - - - The time stamp is in local time. To format the time stamp - in universal time use . - - - - - - Extract the date from the - - - - Extract the date from the - - - Nicko Cadell - Gert Driesen - - - - Constructs a RawUtcTimeStampLayout - - - - - Gets the as a . - - The event to format - returns the time stamp - - - Gets the as a . - - - The time stamp is in universal time. To format the time stamp - in local time use . - - - - - - A very simple layout - - - - SimpleLayout consists of the level of the log statement, - followed by " - " and then the log message itself. For example, - - DEBUG - Hello world - - - - Nicko Cadell - Gert Driesen - - - - Constructs a SimpleLayout - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a simple formatted output. - - the event being logged - The TextWriter to write the formatted event to - - - Formats the event as the level of the even, - followed by " - " and then the log message itself. The - output is terminated by a newline. - - - - - - Layout that formats the log events as XML elements. - - - - The output of the consists of a series of - log4net:event elements. It does not output a complete well-formed XML - file. The output is designed to be included as an external entity - in a separate file to form a correct XML file. - - - For example, if abc is the name of the file where - the output goes, then a well-formed XML file would - be: - - - <?xml version="1.0" ?> - - <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> - <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> - &data; - </log4net:events> - - - This approach enforces the independence of the - and the appender where it is embedded. - - - The version attribute helps components to correctly - interpret output generated by . The value of - this attribute should be "1.2" for release 1.2 and later. - - - Alternatively the Header and Footer properties can be - configured to output the correct XML header, open tag and close tag. - When setting the Header and Footer properties it is essential - that the underlying data store not be appendable otherwise the data - will become invalid XML. - - - Nicko Cadell - Gert Driesen - - - - Layout that formats the log events as XML elements. - - - - This is an abstract class that must be subclassed by an implementation - to conform to a specific schema. - - - Deriving classes must implement the method. - - - Nicko Cadell - Gert Driesen - - - - Protected constructor to support subclasses - - - - Initializes a new instance of the class - with no location info. - - - - - - Protected constructor to support subclasses - - - - The parameter determines whether - location information will be output by the layout. If - is set to true, then the - file name and line number of the statement at the origin of the log - statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a formatted string. - - The event being logged. - The TextWriter to write the formatted event to - - - Format the and write it to the . - - - This method creates an that writes to the - . The is passed - to the method. Subclasses should override the - method rather than this method. - - - - - - Does the actual writing of the XML. - - The writer to use to output the event to. - The event to write. - - - Subclasses should override this method to format - the as XML. - - - - - - Flag to indicate if location information should be included in - the XML events. - - - - - The string to replace invalid chars with - - - - - Gets a value indicating whether to include location information in - the XML events. - - - true if location information should be included in the XML - events; otherwise, false. - - - - If is set to true, then the file - name and line number of the statement at the origin of the log - statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - The string to replace characters that can not be expressed in XML with. - - - Not all characters may be expressed in XML. This property contains the - string to replace those that can not with. This defaults to a ?. Set it - to the empty string to simply remove offending characters. For more - details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets - Character replacement will occur in the log message, the property names - and the property values. - - - - - - - Gets the content type output by this layout. - - - As this is the XML layout, the value is always "text/xml". - - - - As this is the XML layout, the value is always "text/xml". - - - - - - Constructs an XmlLayout - - - - - Constructs an XmlLayout. - - - - The LocationInfo option takes a boolean value. By - default, it is set to false which means there will be no location - information output by this layout. If the the option is set to - true, then the file name and line number of the statement - at the origin of the log statement will be output. - - - If you are embedding this layout within an SmtpAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Builds a cache of the element names - - - - - - Does the actual writing of the XML. - - The writer to use to output the event to. - The event to write. - - - Override the base class method - to write the to the . - - - - - - The prefix to use for all generated element names - - - - - The prefix to use for all element names - - - - The default prefix is log4net. Set this property - to change the prefix. If the prefix is set to an empty string - then no prefix will be written. - - - - - - Set whether or not to base64 encode the message. - - - - By default the log message will be written as text to the xml - output. This can cause problems when the message contains binary - data. By setting this to true the contents of the message will be - base64 encoded. If this is set then invalid character replacement - (see ) will not be performed - on the log message. - - - - - - Set whether or not to base64 encode the property values. - - - - By default the properties will be written as text to the xml - output. This can cause problems when one or more properties contain - binary data. By setting this to true the values of the properties - will be base64 encoded. If this is set then invalid character replacement - (see ) will not be performed - on the property values. - - - - - - Layout that formats the log events as XML elements compatible with the log4j schema - - - - Formats the log events according to the http://logging.apache.org/log4j schema. - - - Nicko Cadell - - - - The 1st of January 1970 in UTC - - - - - Constructs an XMLLayoutSchemaLog4j - - - - - Constructs an XMLLayoutSchemaLog4j. - - - - The LocationInfo option takes a boolean value. By - default, it is set to false which means there will be no location - information output by this layout. If the the option is set to - true, then the file name and line number of the statement - at the origin of the log statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Actually do the writing of the xml - - the writer to use - the event to write - - - Generate XML that is compatible with the log4j schema. - - - - - - The version of the log4j schema to use. - - - - Only version 1.2 of the log4j schema is supported. - - - - - - The default object Renderer. - - - - The default renderer supports rendering objects and collections to strings. - - - See the method for details of the output. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface in order to render objects as strings - - - - Certain types require special case conversion to - string form. This conversion is done by an object renderer. - Object renderers implement the - interface. - - - Nicko Cadell - Gert Driesen - - - - Render the object to a string - - The map used to lookup renderers - The object to render - The writer to render to - - - Render the object to a - string. - - - The parameter is - provided to lookup and render other objects. This is - very useful where contains - nested objects of unknown type. The - method can be used to render these objects. - - - - - - Default constructor - - - - Default constructor - - - - - - Render the object to a string - - The map used to lookup renderers - The object to render - The writer to render to - - - Render the object to a string. - - - The parameter is - provided to lookup and render other objects. This is - very useful where contains - nested objects of unknown type. The - method can be used to render these objects. - - - The default renderer supports rendering objects to strings as follows: - - - - Value - Rendered String - - - null - - "(null)" - - - - - - - For a one dimensional array this is the - array type name, an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. - - - For example: int[] {1, 2, 3}. - - - If the array is not one dimensional the - Array.ToString() is returned. - - - - - , & - - - Rendered as an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. - - - For example: {a, b, c}. - - - All collection classes that implement its subclasses, - or generic equivalents all implement the interface. - - - - - - - - Rendered as the key, an equals sign ('='), and the value (using the appropriate - renderer). - - - For example: key=value. - - - - - other - - Object.ToString() - - - - - - - - Render the array argument into a string - - The map used to lookup renderers - the array to render - The writer to render to - - - For a one dimensional array this is the - array type name, an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. For example: - int[] {1, 2, 3}. - - - If the array is not one dimensional the - Array.ToString() is returned. - - - - - - Render the enumerator argument into a string - - The map used to lookup renderers - the enumerator to render - The writer to render to - - - Rendered as an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. For example: - {a, b, c}. - - - - - - Render the DictionaryEntry argument into a string - - The map used to lookup renderers - the DictionaryEntry to render - The writer to render to - - - Render the key, an equals sign ('='), and the value (using the appropriate - renderer). For example: key=value. - - - - - - Map class objects to an . - - - - Maintains a mapping between types that require special - rendering and the that - is used to render them. - - - The method is used to render an - object using the appropriate renderers defined in this map. - - - Nicko Cadell - Gert Driesen - - - - Default Constructor - - - - Default constructor. - - - - - - Render using the appropriate renderer. - - the object to render to a string - the object rendered as a string - - - This is a convenience method used to render an object to a string. - The alternative method - should be used when streaming output to a . - - - - - - Render using the appropriate renderer. - - the object to render to a string - The writer to render to - - - Find the appropriate renderer for the type of the - parameter. This is accomplished by calling the - method. Once a renderer is found, it is - applied on the object and the result is returned - as a . - - - - - - Gets the renderer for the specified object type - - the object to lookup the renderer for - the renderer for - - - Gets the renderer for the specified object type. - - - Syntactic sugar method that calls - with the type of the object parameter. - - - - - - Gets the renderer for the specified type - - the type to lookup the renderer for - the renderer for the specified type - - - Returns the renderer for the specified type. - If no specific renderer has been defined the - will be returned. - - - - - - Internal function to recursively search interfaces - - the type to lookup the renderer for - the renderer for the specified type - - - - Clear the map of renderers - - - - Clear the custom renderers defined by using - . The - cannot be removed. - - - - - - Register an for . - - the type that will be rendered by - the renderer for - - - Register an object renderer for a specific source type. - This renderer will be returned from a call to - specifying the same as an argument. - - - - - - Get the default renderer instance - - the default renderer - - - Get the default renderer - - - - - - Interface implemented by logger repository plugins. - - - - Plugins define additional behavior that can be associated - with a . - The held by the - property is used to store the plugins for a repository. - - - The log4net.Config.PluginAttribute can be used to - attach plugins to repositories created using configuration - attributes. - - - Nicko Cadell - Gert Driesen - - - - Attaches the plugin to the specified . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - This method is called to notify the plugin that - it should stop operating and should detach from - the repository. - - - - - - Gets the name of the plugin. - - - The name of the plugin. - - - - Plugins are stored in the - keyed by name. Each plugin instance attached to a - repository must be a unique name. - - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a PluginCollection instance. - - list to create a readonly wrapper arround - - A PluginCollection wrapper that is read-only. - - - - - Initializes a new instance of the PluginCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the PluginCollection class - that has the specified initial capacity. - - - The number of elements that the new PluginCollection is initially capable of storing. - - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified PluginCollection. - - The PluginCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - - Copies the entire PluginCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire PluginCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the PluginCollection. - - The to be added to the end of the PluginCollection. - The index at which the value has been added. - - - - Removes all elements from the PluginCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the PluginCollection. - - The to check for. - true if is found in the PluginCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the PluginCollection. - - The to locate in the PluginCollection. - - The zero-based index of the first occurrence of - in the entire PluginCollection, if found; otherwise, -1. - - - - - Inserts an element into the PluginCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the PluginCollection. - - The to remove from the PluginCollection. - - The specified was not found in the PluginCollection. - - - - - Removes the element at the specified index of the PluginCollection. - - The zero-based index of the element to remove. - - is less than zero. - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the PluginCollection. - - An for the entire PluginCollection. - - - - Adds the elements of another PluginCollection to the current PluginCollection. - - The PluginCollection whose elements should be added to the end of the current PluginCollection. - The new of the PluginCollection. - - - - Adds the elements of a array to the current PluginCollection. - - The array whose elements should be added to the end of the PluginCollection. - The new of the PluginCollection. - - - - Adds the elements of a collection to the current PluginCollection. - - The collection whose elements should be added to the end of the PluginCollection. - The new of the PluginCollection. - - - - Sets the capacity to the actual number of elements. - - - - - is less than zero. - -or- - is equal to or greater than . - - - - - is less than zero. - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the PluginCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - An object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - - The at the specified index. - - The zero-based index of the element to get or set. - - is less than zero. - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false. - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false. - - - - Gets or sets the number of elements the PluginCollection can contain. - - - The number of elements the PluginCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - - A value - - - - - Supports simple iteration over a . - - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - The current element in the collection. - - - - - - - - Map of repository plugins. - - - - This class is a name keyed map of the plugins that are - attached to a repository. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The repository that the plugins should be attached to. - - - Initialize a new instance of the class with a - repository that the plugins should be attached to. - - - - - - Adds a to the map. - - The to add to the map. - - - The will be attached to the repository when added. - - - If there already exists a plugin with the same name - attached to the repository then the old plugin will - be and replaced with - the new plugin. - - - - - - Removes a from the map. - - The to remove from the map. - - - Remove a specific plugin from this map. - - - - - - Gets a by name. - - The name of the to lookup. - - The from the map with the name specified, or - null if no plugin is found. - - - - Lookup a plugin by name. If the plugin is not found null - will be returned. - - - - - - Gets all possible plugins as a list of objects. - - All possible plugins as a list of objects. - - - Get a collection of all the plugins defined in this map. - - - - - - Base implementation of - - - - Default abstract implementation of the - interface. This base class can be used by implementors - of the interface. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - the name of the plugin - - Initializes a new Plugin with the specified name. - - - - - Attaches this plugin to a . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - This method is called to notify the plugin that - it should stop operating and should detach from - the repository. - - - - - - The name of this plugin. - - - - - The repository this plugin is attached to. - - - - - Gets or sets the name of the plugin. - - - The name of the plugin. - - - - Plugins are stored in the - keyed by name. Each plugin instance attached to a - repository must be a unique name. - - - The name of the plugin must not change one the - plugin has been attached to a repository. - - - - - - The repository for this plugin - - - The that this plugin is attached to. - - - - Gets or sets the that this plugin is - attached to. - - - - - - Plugin that listens for events from the - - - - This plugin publishes an instance of - on a specified . This listens for logging events delivered from - a remote . - - - When an event is received it is relogged within the attached repository - as if it had been raised locally. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Initializes a new instance of the class. - - - The property must be set. - - - - - - Construct with sink Uri. - - The name to publish the sink under in the remoting infrastructure. - See for more details. - - - Initializes a new instance of the class - with specified name. - - - - - - Attaches this plugin to a . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - When the plugin is shutdown the remote logging - sink is disconnected. - - - - - - The fully qualified type of the RemoteLoggingServerPlugin class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the URI of this sink. - - - The URI of this sink. - - - - This is the name under which the object is marshaled. - - - - - - - Delivers objects to a remote sink. - - - - Internal class used to listen for logging events - and deliver them to the local repository. - - - - - - Constructor - - The repository to log to. - - - Initializes a new instance of the for the - specified . - - - - - - Logs the events to the repository. - - The events to log. - - - The events passed are logged to the - - - - - - Obtains a lifetime service object to control the lifetime - policy for this instance. - - null to indicate that this instance should live forever. - - - Obtains a lifetime service object to control the lifetime - policy for this instance. This object should live forever - therefore this implementation returns null. - - - - - - The underlying that events should - be logged to. - - - - - Default implementation of - - - - This default implementation of the - interface is used to create the default subclass - of the object. - - - Nicko Cadell - Gert Driesen - - - - Interface abstracts creation of instances - - - - This interface is used by the to - create new objects. - - - The method is called - to create a named . - - - Implement this interface to create new subclasses of . - - - Nicko Cadell - Gert Driesen - - - - Create a new instance - - The that will own the . - The name of the . - The instance for the specified name. - - - Create a new instance with the - specified name. - - - Called by the to create - new named instances. - - - If the is null then the root logger - must be returned. - - - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Create a new instance - - The that will own the . - The name of the . - The instance for the specified name. - - - Create a new instance with the - specified name. - - - Called by the to create - new named instances. - - - If the is null then the root logger - must be returned. - - - - - - Default internal subclass of - - - - This subclass has no additional behavior over the - class but does allow instances - to be created. - - - - - - Implementation of used by - - - - Internal class used to provide implementation of - interface. Applications should use to get - logger instances. - - - This is one of the central classes in the log4net implementation. One of the - distinctive features of log4net are hierarchical loggers and their - evaluation. The organizes the - instances into a rooted tree hierarchy. - - - The class is abstract. Only concrete subclasses of - can be created. The - is used to create instances of this type for the . - - - Nicko Cadell - Gert Driesen - Aspi Havewala - Douglas de la Torre - - - - This constructor created a new instance and - sets its name. - - The name of the . - - - This constructor is protected and designed to be used by - a subclass that is not abstract. - - - Loggers are constructed by - objects. See for the default - logger creator. - - - - - - Add to the list of appenders of this - Logger instance. - - An appender to add to this logger - - - Add to the list of appenders of this - Logger instance. - - - If is already in the list of - appenders, then it won't be added again. - - - - - - Look for the appender named as name - - The name of the appender to lookup - The appender with the name specified, or null. - - - Returns the named appender, or null if the appender is not found. - - - - - - Remove all previously added appenders from this Logger instance. - - - - Remove all previously added appenders from this Logger instance. - - - This is useful when re-reading configuration information. - - - - - - Remove the appender passed as parameter form the list of appenders. - - The appender to remove - The appender removed from the list - - - Remove the appender passed as parameter form the list of appenders. - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Remove the appender passed as parameter form the list of appenders. - - The name of the appender to remove - The appender removed from the list - - - Remove the named appender passed as parameter form the list of appenders. - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - This generic form is intended to be used by wrappers. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generate a logging event for the specified using - the and . - - - This method must not throw any exception to the caller. - - - - - - This is the most generic printing method that is intended to be used - by wrappers. - - The event being logged. - - - Logs the specified logging event through this logger. - - - This method must not throw any exception to the caller. - - - - - - Checks if this logger is enabled for a given passed as parameter. - - The level to check. - - true if this logger is enabled for level, otherwise false. - - - - Test if this logger is going to log events of the specified . - - - This method must not throw any exception to the caller. - - - - - - Deliver the to the attached appenders. - - The event to log. - - - Call the appenders in the hierarchy starting at - this. If no appenders could be found, emit a - warning. - - - This method calls all the appenders inherited from the - hierarchy circumventing any evaluation of whether to log or not - to log the particular log request. - - - - - - Closes all attached appenders implementing the interface. - - - - Used to ensure that the appenders are correctly shutdown. - - - - - - This is the most generic printing method. This generic form is intended to be used by wrappers - - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generate a logging event for the specified using - the . - - - - - - Creates a new logging event and logs the event without further checks. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generates a logging event and delivers it to the attached - appenders. - - - - - - Creates a new logging event and logs the event without further checks. - - The event being logged. - - - Delivers the logging event to the attached appenders. - - - - - - The fully qualified type of the Logger class. - - - - - The name of this logger. - - - - - The assigned level of this logger. - - - - The level variable need not be - assigned a value in which case it is inherited - form the hierarchy. - - - - - - The parent of this logger. - - - - The parent of this logger. - All loggers have at least one ancestor which is the root logger. - - - - - - Loggers need to know what Hierarchy they are in. - - - - Loggers need to know what Hierarchy they are in. - The hierarchy that this logger is a member of is stored - here. - - - - - - Helper implementation of the interface - - - - - Flag indicating if child loggers inherit their parents appenders - - - - Additivity is set to true by default, that is children inherit - the appenders of their ancestors by default. If this variable is - set to false then the appenders found in the - ancestors of this logger are not used. However, the children - of this logger will inherit its appenders, unless the children - have their additivity flag set to false too. See - the user manual for more details. - - - - - - Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl - - - - - Gets or sets the parent logger in the hierarchy. - - - The parent logger in the hierarchy. - - - - Part of the Composite pattern that makes the hierarchy. - The hierarchy is parent linked rather than child linked. - - - - - - Gets or sets a value indicating if child loggers inherit their parent's appenders. - - - true if child loggers inherit their parent's appenders. - - - - Additivity is set to true by default, that is children inherit - the appenders of their ancestors by default. If this variable is - set to false then the appenders found in the - ancestors of this logger are not used. However, the children - of this logger will inherit its appenders, unless the children - have their additivity flag set to false too. See - the user manual for more details. - - - - - - Gets the effective level for this logger. - - The nearest level in the logger hierarchy. - - - Starting from this logger, searches the logger hierarchy for a - non-null level and returns it. Otherwise, returns the level of the - root logger. - - The Logger class is designed so that this method executes as - quickly as possible. - - - - - Gets or sets the where this - Logger instance is attached to. - - The hierarchy that this logger belongs to. - - - This logger must be attached to a single . - - - - - - Gets or sets the assigned , if any, for this Logger. - - - The of this logger. - - - - The assigned can be null. - - - - - - Get the appenders contained in this logger as an - . - - A collection of the appenders in this logger - - - Get the appenders contained in this logger as an - . If no appenders - can be found, then a is returned. - - - - - - Gets the logger name. - - - The name of the logger. - - - - The name of this logger - - - - - - Gets the where this - Logger instance is attached to. - - - The that this logger belongs to. - - - - Gets the where this - Logger instance is attached to. - - - - - - Construct a new Logger - - the name of the logger - - - Initializes a new instance of the class - with the specified name. - - - - - - Delegate used to handle logger creation event notifications. - - The in which the has been created. - The event args that hold the instance that has been created. - - - Delegate used to handle logger creation event notifications. - - - - - - Provides data for the event. - - - - A event is raised every time a - is created. - - - - - - The created - - - - - Constructor - - The that has been created. - - - Initializes a new instance of the event argument - class,with the specified . - - - - - - Gets the that has been created. - - - The that has been created. - - - - The that has been created. - - - - - - Hierarchical organization of loggers - - - - The casual user should not have to deal with this class - directly. - - - This class is specialized in retrieving loggers by name and - also maintaining the logger hierarchy. Implements the - interface. - - - The structure of the logger hierarchy is maintained by the - method. The hierarchy is such that children - link to their parent but parents do not have any references to their - children. Moreover, loggers can be instantiated in any order, in - particular descendant before ancestor. - - - In case a descendant is created before a particular ancestor, - then it creates a provision node for the ancestor and adds itself - to the provision node. Other descendants of the same ancestor add - themselves to the previously created provision node. - - - Nicko Cadell - Gert Driesen - - - - Base implementation of - - - - Default abstract implementation of the interface. - - - Skeleton implementation of the interface. - All types can extend this type. - - - Nicko Cadell - Gert Driesen - - - - Interface implemented by logger repositories. - - - - This interface is implemented by logger repositories. e.g. - . - - - This interface is used by the - to obtain interfaces. - - - Nicko Cadell - Gert Driesen - - - - Check if the named logger exists in the repository. If so return - its reference, otherwise returns null. - - The name of the logger to lookup - The Logger object with the name specified - - - If the names logger exists it is returned, otherwise - null is returned. - - - - - - Returns all the currently defined loggers as an Array. - - All the defined loggers - - - Returns all the currently defined loggers as an Array. - - - - - - Returns a named logger instance - - The name of the logger to retrieve - The logger object with the name specified - - - Returns a named logger instance. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - - - Shutdown the repository - - - Shutting down a repository will safely close and remove - all appenders in all loggers including the root logger. - - - Some appenders need to be closed before the - application exists. Otherwise, pending logging events might be - lost. - - - The method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Reset the repositories configuration to a default state - - - - Reset all values contained in this instance to their - default state. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the through this repository. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are configured as an Array. - - All the Appenders - - - Returns all the Appenders that are configured as an Array. - - - - - - The name of the repository - - - The name of the repository - - - - The name of the repository. - - - - - - RendererMap accesses the object renderer map for this repository. - - - RendererMap accesses the object renderer map for this repository. - - - - RendererMap accesses the object renderer map for this repository. - - - The RendererMap holds a mapping between types and - objects. - - - - - - The plugin map for this repository. - - - The plugin map for this repository. - - - - The plugin map holds the instances - that have been attached to this repository. - - - - - - Get the level map for the Repository. - - - - Get the level map for the Repository. - - - The level map defines the mappings between - level names and objects in - this repository. - - - - - - The threshold for all events in this repository - - - The threshold for all events in this repository - - - - The threshold for all events in this repository. - - - - - - Flag indicates if this repository has been configured. - - - Flag indicates if this repository has been configured. - - - - Flag indicates if this repository has been configured. - - - - - - Collection of internal messages captured during the most - recent configuration process. - - - - - Event to notify that the repository has been shutdown. - - - Event to notify that the repository has been shutdown. - - - - Event raised when the repository has been shutdown. - - - - - - Event to notify that the repository has had its configuration reset. - - - Event to notify that the repository has had its configuration reset. - - - - Event raised when the repository's configuration has been - reset to default. - - - - - - Event to notify that the repository has had its configuration changed. - - - Event to notify that the repository has had its configuration changed. - - - - Event raised when the repository's configuration has been changed. - - - - - - Repository specific properties - - - Repository specific properties - - - - These properties can be specified on a repository specific basis. - - - - - - Default Constructor - - - - Initializes the repository with default (empty) properties. - - - - - - Construct the repository using specific properties - - the properties to set for this repository - - - Initializes the repository with specified properties. - - - - - - Test if logger exists - - The name of the logger to lookup - The Logger object with the name specified - - - Check if the named logger exists in the repository. If so return - its reference, otherwise returns null. - - - - - - Returns all the currently defined loggers in the repository - - All the defined loggers - - - Returns all the currently defined loggers in the repository as an Array. - - - - - - Return a new logger instance - - The name of the logger to retrieve - The logger object with the name specified - - - Return a new logger instance. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - - - - Shutdown the repository - - - - Shutdown the repository. Can be overridden in a subclass. - This base class implementation notifies the - listeners and all attached plugins of the shutdown event. - - - - - - Reset the repositories configuration to a default state - - - - Reset all values contained in this instance to their - default state. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the logEvent through this repository. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are configured as an Array. - - All the Appenders - - - Returns all the Appenders that are configured as an Array. - - - - - - The fully qualified type of the LoggerRepositorySkeleton class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Adds an object renderer for a specific class. - - The type that will be rendered by the renderer supplied. - The object renderer used to render the object. - - - Adds an object renderer for a specific class. - - - - - - Notify the registered listeners that the repository is shutting down - - Empty EventArgs - - - Notify any listeners that this repository is shutting down. - - - - - - Notify the registered listeners that the repository has had its configuration reset - - Empty EventArgs - - - Notify any listeners that this repository's configuration has been reset. - - - - - - Notify the registered listeners that the repository has had its configuration changed - - Empty EventArgs - - - Notify any listeners that this repository's configuration has changed. - - - - - - Raise a configuration changed event on this repository - - EventArgs.Empty - - - Applications that programmatically change the configuration of the repository should - raise this event notification to notify listeners. - - - - - - The name of the repository - - - The string name of the repository - - - - The name of this repository. The name is - used to store and lookup the repositories - stored by the . - - - - - - The threshold for all events in this repository - - - The threshold for all events in this repository - - - - The threshold for all events in this repository - - - - - - RendererMap accesses the object renderer map for this repository. - - - RendererMap accesses the object renderer map for this repository. - - - - RendererMap accesses the object renderer map for this repository. - - - The RendererMap holds a mapping between types and - objects. - - - - - - The plugin map for this repository. - - - The plugin map for this repository. - - - - The plugin map holds the instances - that have been attached to this repository. - - - - - - Get the level map for the Repository. - - - - Get the level map for the Repository. - - - The level map defines the mappings between - level names and objects in - this repository. - - - - - - Flag indicates if this repository has been configured. - - - Flag indicates if this repository has been configured. - - - - Flag indicates if this repository has been configured. - - - - - - Contains a list of internal messages captures during the - last configuration. - - - - - Event to notify that the repository has been shutdown. - - - Event to notify that the repository has been shutdown. - - - - Event raised when the repository has been shutdown. - - - - - - Event to notify that the repository has had its configuration reset. - - - Event to notify that the repository has had its configuration reset. - - - - Event raised when the repository's configuration has been - reset to default. - - - - - - Event to notify that the repository has had its configuration changed. - - - Event to notify that the repository has had its configuration changed. - - - - Event raised when the repository's configuration has been changed. - - - - - - Repository specific properties - - - Repository specific properties - - - These properties can be specified on a repository specific basis - - - - - Basic Configurator interface for repositories - - - - Interface used by basic configurator to configure a - with a default . - - - A should implement this interface to support - configuration by the . - - - Nicko Cadell - Gert Driesen - - - - Initialize the repository using the specified appender - - the appender to use to log all logging events - - - Configure the repository to route all logging events to the - specified appender. - - - - - - Initialize the repository using the specified appenders - - the appenders to use to log all logging events - - - Configure the repository to route all logging events to the - specified appenders. - - - - - - Configure repository using XML - - - - Interface used by Xml configurator to configure a . - - - A should implement this interface to support - configuration by the . - - - Nicko Cadell - Gert Driesen - - - - Initialize the repository using the specified config - - the element containing the root of the config - - - The schema for the XML configuration data is defined by - the implementation. - - - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Construct with properties - - The properties to pass to this repository. - - - Initializes a new instance of the class. - - - - - - Construct with a logger factory - - The factory to use to create new logger instances. - - - Initializes a new instance of the class with - the specified . - - - - - - Construct with properties and a logger factory - - The properties to pass to this repository. - The factory to use to create new logger instances. - - - Initializes a new instance of the class with - the specified . - - - - - - Test if a logger exists - - The name of the logger to lookup - The Logger object with the name specified - - - Check if the named logger exists in the hierarchy. If so return - its reference, otherwise returns null. - - - - - - Returns all the currently defined loggers in the hierarchy as an Array - - All the defined loggers - - - Returns all the currently defined loggers in the hierarchy as an Array. - The root logger is not included in the returned - enumeration. - - - - - - Return a new logger instance named as the first parameter using - the default factory. - - - - Return a new logger instance named as the first parameter using - the default factory. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - The name of the logger to retrieve - The logger object with the name specified - - - - Shutting down a hierarchy will safely close and remove - all appenders in all loggers including the root logger. - - - - Shutting down a hierarchy will safely close and remove - all appenders in all loggers including the root logger. - - - Some appenders need to be closed before the - application exists. Otherwise, pending logging events might be - lost. - - - The Shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Reset all values contained in this hierarchy instance to their default. - - - - Reset all values contained in this hierarchy instance to their - default. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the logEvent through this hierarchy. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are currently configured - - An array containing all the currently configured appenders - - - Returns all the instances that are currently configured. - All the loggers are searched for appenders. The appenders may also be containers - for appenders and these are also searched for additional loggers. - - - The list returned is unordered but does not contain duplicates. - - - - - - Collect the appenders from an . - The appender may also be a container. - - - - - - - Collect the appenders from an container - - - - - - - Initialize the log4net system using the specified appender - - the appender to use to log all logging events - - - - Initialize the log4net system using the specified appenders - - the appenders to use to log all logging events - - - - Initialize the log4net system using the specified appenders - - the appenders to use to log all logging events - - - This method provides the same functionality as the - method implemented - on this object, but it is protected and therefore can be called by subclasses. - - - - - - Initialize the log4net system using the specified config - - the element containing the root of the config - - - - Initialize the log4net system using the specified config - - the element containing the root of the config - - - This method provides the same functionality as the - method implemented - on this object, but it is protected and therefore can be called by subclasses. - - - - - - Test if this hierarchy is disabled for the specified . - - The level to check against. - - true if the repository is disabled for the level argument, false otherwise. - - - - If this hierarchy has not been configured then this method will - always return true. - - - This method will return true if this repository is - disabled for level object passed as parameter and - false otherwise. - - - See also the property. - - - - - - Clear all logger definitions from the internal hashtable - - - - This call will clear all logger definitions from the internal - hashtable. Invoking this method will irrevocably mess up the - logger hierarchy. - - - You should really know what you are doing before - invoking this method. - - - - - - Return a new logger instance named as the first parameter using - . - - The name of the logger to retrieve - The factory that will make the new logger instance - The logger object with the name specified - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated by the - parameter and linked with its existing - ancestors as well as children. - - - - - - Sends a logger creation event to all registered listeners - - The newly created logger - - Raises the logger creation event. - - - - - Updates all the parents of the specified logger - - The logger to update the parents for - - - This method loops through all the potential parents of - . There 3 possible cases: - - - - No entry for the potential parent of exists - - We create a ProvisionNode for this potential - parent and insert in that provision node. - - - - The entry is of type Logger for the potential parent. - - The entry is 's nearest existing parent. We - update 's parent field with this entry. We also break from - he loop because updating our parent's parent is our parent's - responsibility. - - - - The entry is of type ProvisionNode for this potential parent. - - We add to the list of children for this - potential parent. - - - - - - - - Replace a with a in the hierarchy. - - - - - - We update the links for all the children that placed themselves - in the provision node 'pn'. The second argument 'log' is a - reference for the newly created Logger, parent of all the - children in 'pn'. - - - We loop on all the children 'c' in 'pn'. - - - If the child 'c' has been already linked to a child of - 'log' then there is no need to update 'c'. - - - Otherwise, we set log's parent field to c's parent and set - c's parent field to log. - - - - - - Define or redefine a Level using the values in the argument - - the level values - - - Define or redefine a Level using the values in the argument - - - Supports setting levels via the configuration file. - - - - - - Set a Property using the values in the argument - - the property value - - - Set a Property using the values in the argument. - - - Supports setting property values via the configuration file. - - - - - - The fully qualified type of the Hierarchy class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Event used to notify that a logger has been created. - - - - Event raised when a logger is created. - - - - - - Has no appender warning been emitted - - - - Flag to indicate if we have already issued a warning - about not having an appender warning. - - - - - - Get the root of this hierarchy - - - - Get the root of this hierarchy. - - - - - - Gets or sets the default instance. - - The default - - - The logger factory is used to create logger instances. - - - - - - A class to hold the value, name and display name for a level - - - - A class to hold the value, name and display name for a level - - - - - - Override Object.ToString to return sensible debug info - - string info about this object - - - - Value of the level - - - - If the value is not set (defaults to -1) the value will be looked - up for the current level with the same name. - - - - - - Name of the level - - - The name of the level - - - - The name of the level. - - - - - - Display name for the level - - - The display name of the level - - - - The display name of the level. - - - - - - Used internally to accelerate hash table searches. - - - - Internal class used to improve performance of - string keyed hashtables. - - - The hashcode of the string is cached for reuse. - The string is stored as an interned value. - When comparing two objects for equality - the reference equality of the interned strings is compared. - - - Nicko Cadell - Gert Driesen - - - - Construct key with string name - - - - Initializes a new instance of the class - with the specified name. - - - Stores the hashcode of the string and interns - the string key to optimize comparisons. - - - The Compact Framework 1.0 the - method does not work. On the Compact Framework - the string keys are not interned nor are they - compared by reference. - - - The name of the logger. - - - - Returns a hash code for the current instance. - - A hash code for the current instance. - - - Returns the cached hashcode. - - - - - - Determines whether two instances - are equal. - - The to compare with the current . - - true if the specified is equal to the current ; otherwise, false. - - - - Compares the references of the interned strings. - - - - - - Provision nodes are used where no logger instance has been specified - - - - instances are used in the - when there is no specified - for that node. - - - A provision node holds a list of child loggers on behalf of - a logger that does not exist. - - - Nicko Cadell - Gert Driesen - - - - Create a new provision node with child node - - A child logger to add to this node. - - - Initializes a new instance of the class - with the specified child logger. - - - - - - The sits at the root of the logger hierarchy tree. - - - - The is a regular except - that it provides several guarantees. - - - First, it cannot be assigned a null - level. Second, since the root logger cannot have a parent, the - property always returns the value of the - level field without walking the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Construct a - - The level to assign to the root logger. - - - Initializes a new instance of the class with - the specified logging level. - - - The root logger names itself as "root". However, the root - logger cannot be retrieved by name. - - - - - - The fully qualified type of the RootLogger class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the assigned level value without walking the logger hierarchy. - - The assigned level value without walking the logger hierarchy. - - - Because the root logger cannot have a parent and its level - must not be null this property just returns the - value of . - - - - - - Gets or sets the assigned for the root logger. - - - The of the root logger. - - - - Setting the level of the root logger to a null reference - may have catastrophic results. We prevent this here. - - - - - - Initializes the log4net environment using an XML DOM. - - - - Configures a using an XML DOM. - - - Nicko Cadell - Gert Driesen - - - - Construct the configurator for a hierarchy - - The hierarchy to build. - - - Initializes a new instance of the class - with the specified . - - - - - - Configure the hierarchy by parsing a DOM tree of XML elements. - - The root element to parse. - - - Configure the hierarchy by parsing a DOM tree of XML elements. - - - - - - Parse appenders by IDREF. - - The appender ref element. - The instance of the appender that the ref refers to. - - - Parse an XML element that represents an appender and return - the appender. - - - - - - Parses an appender element. - - The appender element. - The appender instance or null when parsing failed. - - - Parse an XML element that represents an appender and return - the appender instance. - - - - - - Parses a logger element. - - The logger element. - - - Parse an XML element that represents a logger. - - - - - - Parses the root logger element. - - The root element. - - - Parse an XML element that represents the root logger. - - - - - - Parses the children of a logger element. - - The category element. - The logger instance. - Flag to indicate if the logger is the root logger. - - - Parse the child elements of a <logger> element. - - - - - - Parses an object renderer. - - The renderer element. - - - Parse an XML element that represents a renderer. - - - - - - Parses a level element. - - The level element. - The logger object to set the level on. - Flag to indicate if the logger is the root logger. - - - Parse an XML element that represents a level. - - - - - - Sets a parameter on an object. - - The parameter element. - The object to set the parameter on. - - The parameter name must correspond to a writable property - on the object. The value of the parameter is a string, - therefore this function will attempt to set a string - property first. If unable to set a string property it - will inspect the property and its argument type. It will - attempt to call a static method called Parse on the - type of the property. This method will take a single - string argument and return a value that can be used to - set the property. - - - - - Test if an element has no attributes or child elements - - the element to inspect - true if the element has any attributes or child elements, false otherwise - - - - Test if a is constructible with Activator.CreateInstance. - - the type to inspect - true if the type is creatable using a default constructor, false otherwise - - - - Look for a method on the that matches the supplied - - the type that has the method - the name of the method - the method info found - - - The method must be a public instance method on the . - The method must be named or "Add" followed by . - The method must take a single parameter. - - - - - - Converts a string value to a target type. - - The type of object to convert the string to. - The string value to use as the value of the object. - - - An object of type with value or - null when the conversion could not be performed. - - - - - - Creates an object as specified in XML. - - The XML element that contains the definition of the object. - The object type to use if not explicitly specified. - The type that the returned object must be or must inherit from. - The object or null - - - Parse an XML element and create an object instance based on the configuration - data. - - - The type of the instance may be specified in the XML. If not - specified then the is used - as the type. However the type is specified it must support the - type. - - - - - - key: appenderName, value: appender. - - - - - The Hierarchy being configured. - - - - - The fully qualified type of the XmlHierarchyConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - - - - - - - - - - - - - - - - - Delegate used to handle logger repository shutdown event notifications - - The that is shutting down. - Empty event args - - - Delegate used to handle logger repository shutdown event notifications. - - - - - - Delegate used to handle logger repository configuration reset event notifications - - The that has had its configuration reset. - Empty event args - - - Delegate used to handle logger repository configuration reset event notifications. - - - - - - Delegate used to handle event notifications for logger repository configuration changes. - - The that has had its configuration changed. - Empty event arguments. - - - Delegate used to handle event notifications for logger repository configuration changes. - - - - - - Write the name of the current AppDomain to the output - - - - Write the name of the current AppDomain to the output writer - - - Nicko Cadell - - - - Write the name of the current AppDomain to the output - - the writer to write to - null, state is not set - - - Writes name of the current AppDomain to the output . - - - - - - Write the current date to the output - - - - Date pattern converter, uses a to format - the current date and time to the writer as a string. - - - The value of the determines - the formatting of the date. The following values are allowed: - - - Option value - Output - - - ISO8601 - - Uses the formatter. - Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. - - - - DATE - - Uses the formatter. - Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". - - - - ABSOLUTE - - Uses the formatter. - Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". - - - - other - - Any other pattern string uses the formatter. - This formatter passes the pattern string to the - method. - For details on valid patterns see - DateTimeFormatInfo Class. - - - - - - The date and time is in the local time zone and is rendered in that zone. - To output the time in Universal time see . - - - Nicko Cadell - - - - The used to render the date to a string - - - - The used to render the date to a string - - - - - - Initialize the converter options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the current date to the output - - that will receive the formatted result. - null, state is not set - - - Pass the current date and time to the - for it to render it to the writer. - - - The date and time passed is in the local time zone. - - - - - - The fully qualified type of the DatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write an folder path to the output - - - - Write an special path environment folder path to the output writer. - The value of the determines - the name of the variable to output. - should be a value in the enumeration. - - - Ron Grabowski - - - - Write an special path environment folder path to the output - - the writer to write to - null, state is not set - - - Writes the special path environment folder path to the output . - The name of the special path environment folder path to output must be set - using the - property. - - - - - - The fully qualified type of the EnvironmentFolderPathPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write an environment variable to the output - - - - Write an environment variable to the output writer. - The value of the determines - the name of the variable to output. - - - Nicko Cadell - - - - Write an environment variable to the output - - the writer to write to - null, state is not set - - - Writes the environment variable to the output . - The name of the environment variable to output must be set - using the - property. - - - - - - The fully qualified type of the EnvironmentPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the current thread identity to the output - - - - Write the current thread identity to the output writer - - - Nicko Cadell - - - - Write the current thread identity to the output - - the writer to write to - null, state is not set - - - Writes the current thread identity to the output . - - - - - - The fully qualified type of the IdentityPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Pattern converter for literal string instances in the pattern - - - - Writes the literal string value specified in the - property to - the output. - - - Nicko Cadell - - - - Set the next converter in the chain - - The next pattern converter in the chain - The next pattern converter - - - Special case the building of the pattern converter chain - for instances. Two adjacent - literals in the pattern can be represented by a single combined - pattern converter. This implementation detects when a - is added to the chain - after this converter and combines its value with this converter's - literal value. - - - - - - Write the literal to the output - - the writer to write to - null, not set - - - Override the formatting behavior to ignore the FormattingInfo - because we have a literal instead. - - - Writes the value of - to the output . - - - - - - Convert this pattern into the rendered message - - that will receive the formatted result. - null, not set - - - This method is not used. - - - - - - Writes a newline to the output - - - - Writes the system dependent line terminator to the output. - This behavior can be overridden by setting the : - - - - Option Value - Output - - - DOS - DOS or Windows line terminator "\r\n" - - - UNIX - UNIX line terminator "\n" - - - - Nicko Cadell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the current process ID to the output - - - - Write the current process ID to the output writer - - - Nicko Cadell - - - - Write the current process ID to the output - - the writer to write to - null, state is not set - - - Write the current process ID to the output . - - - - - - The fully qualified type of the ProcessIdPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Property pattern converter - - - - This pattern converter reads the thread and global properties. - The thread properties take priority over global properties. - See for details of the - thread properties. See for - details of the global properties. - - - If the is specified then that will be used to - lookup a single property. If no is specified - then all properties will be dumped as a list of key value pairs. - - - Nicko Cadell - - - - Write the property value to the output - - that will receive the formatted result. - null, state is not set - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - - - - A Pattern converter that generates a string of random characters - - - - The converter generates a string of random characters. By default - the string is length 4. This can be changed by setting the - to the string value of the length required. - - - The random characters in the string are limited to uppercase letters - and numbers only. - - - The random number generator used by this class is not cryptographically secure. - - - Nicko Cadell - - - - Shared random number generator - - - - - Length of random string to generate. Default length 4. - - - - - Initialize the converter options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write a randoim string to the output - - the writer to write to - null, state is not set - - - Write a randoim string to the output . - - - - - - The fully qualified type of the RandomStringPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the current threads username to the output - - - - Write the current threads username to the output writer - - - Nicko Cadell - - - - Write the current threads username to the output - - the writer to write to - null, state is not set - - - Write the current threads username to the output . - - - - - - The fully qualified type of the UserNamePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the UTC date time to the output - - - - Date pattern converter, uses a to format - the current date and time in Universal time. - - - See the for details on the date pattern syntax. - - - - Nicko Cadell - - - - Write the current date and time to the output - - that will receive the formatted result. - null, state is not set - - - Pass the current date and time to the - for it to render it to the writer. - - - The date is in Universal time when it is rendered. - - - - - - - The fully qualified type of the UtcDatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Type converter for Boolean. - - - - Supports conversion from string to bool type. - - - - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Convert the source object to the type supported by this object - - the object to convert - the converted object - - - Uses the method to convert the - argument to a . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Exception base type for conversion errors. - - - - This type extends . It - does not add any new functionality but does differentiate the - type of exception being thrown. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - A message to include with the exception. - - - Initializes a new instance of the class - with the specified message. - - - - - - Constructor - - A message to include with the exception. - A nested exception to include. - - - Initializes a new instance of the class - with the specified message and inner exception. - - - - - - Serialization constructor - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Creates a new instance of the class. - - The conversion destination type. - The value to convert. - An instance of the . - - - Creates a new instance of the class. - - - - - - Creates a new instance of the class. - - The conversion destination type. - The value to convert. - A nested exception to include. - An instance of the . - - - Creates a new instance of the class. - - - - - - Register of type converters for specific types. - - - - Maintains a registry of type converters used to convert between - types. - - - Use the and - methods to register new converters. - The and methods - lookup appropriate converters to use. - - - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - Initializes a new instance of the class. - - - - - Static constructor. - - - - This constructor defines the intrinsic type converters. - - - - - - Adds a converter for a specific type. - - The type being converted to. - The type converter to use to convert to the destination type. - - - Adds a converter instance for a specific type. - - - - - - Adds a converter for a specific type. - - The type being converted to. - The type of the type converter to use to convert to the destination type. - - - Adds a converter for a specific type. - - - - - - Gets the type converter to use to convert values to the destination type. - - The type being converted from. - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - Gets the type converter to use to convert values to the destination type. - - - - - - Gets the type converter to use to convert values to the destination type. - - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - Gets the type converter to use to convert values to the destination type. - - - - - - Lookups the type converter to use as specified by the attributes on the - destination type. - - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - - Creates the instance of the type converter. - - The type of the type converter. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - The type specified for the type converter must implement - the or interfaces - and must have a public default (no argument) constructor. - - - - - - The fully qualified type of the ConverterRegistry class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Mapping from to type converter. - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to an encoding - the encoding - - - Uses the method to - convert the argument to an . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Interface supported by type converters - - - - This interface supports conversion from a single type to arbitrary types. - See . - - - Nicko Cadell - - - - Returns whether this converter can convert the object to the specified type - - A Type that represents the type you want to convert to - true if the conversion is possible - - - Test if the type supported by this converter can be converted to the - . - - - - - - Converts the given value object to the specified type, using the arguments - - the object to convert - The Type to convert the value parameter to - the converted object - - - Converts the (which must be of the type supported - by this converter) to the specified.. - - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to an IPAddress - the IPAddress - - - Uses the method to convert the - argument to an . - If that fails then the string is resolved as a DNS hostname. - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - The string is used as the - of the . - - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a PatternLayout - the PatternLayout - - - Creates and returns a new using - the as the - . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Convert between string and - - - - Supports conversion from string to type, - and from a type to a string. - - - The string is used as the - of the . - - - - - - Nicko Cadell - - - - Can the target type be converted to the type supported by this object - - A that represents the type you want to convert to - true if the conversion is possible - - - Returns true if the is - assignable from a type. - - - - - - Converts the given value object to the specified type, using the arguments - - the object to convert - The Type to convert the value parameter to - the converted object - - - Uses the method to convert the - argument to a . - - - - The object cannot be converted to the - . To check for this condition use the - method. - - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a PatternString - the PatternString - - - Creates and returns a new using - the as the - . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a Type - the Type - - - Uses the method to convert the - argument to a . - Additional effort is made to locate partially specified types - by searching the loaded assemblies. - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Attribute used to associate a type converter - - - - Class and Interface level attribute that specifies a type converter - to use with the associated type. - - - To associate a type converter with a target type apply a - TypeConverterAttribute to the target type. Specify the - type of the type converter on the attribute. - - - Nicko Cadell - Gert Driesen - - - - The string type name of the type converter - - - - - Default constructor - - - - Default constructor - - - - - - Create a new type converter attribute for the specified type name - - The string type name of the type converter - - - The type specified must implement the - or the interfaces. - - - - - - Create a new type converter attribute for the specified type - - The type of the type converter - - - The type specified must implement the - or the interfaces. - - - - - - The string type name of the type converter - - - The string type name of the type converter - - - - The type specified must implement the - or the interfaces. - - - - - - A straightforward implementation of the interface. - - - - This is the default implementation of the - interface. Implementors of the interface - should aggregate an instance of this type. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Append on on all attached appenders. - - The event being logged. - The number of appenders called. - - - Calls the method on all - attached appenders. - - - - - - Append on on all attached appenders. - - The array of events being logged. - The number of appenders called. - - - Calls the method on all - attached appenders. - - - - - - Calls the DoAppende method on the with - the objects supplied. - - The appender - The events - - - If the supports the - interface then the will be passed - through using that interface. Otherwise the - objects in the array will be passed one at a time. - - - - - - Attaches an appender. - - The appender to add. - - - If the appender is already in the list it won't be added again. - - - - - - Gets an attached appender with the specified name. - - The name of the appender to get. - - The appender with the name specified, or null if no appender with the - specified name is found. - - - - Lookup an attached appender by name. - - - - - - Removes all attached appenders. - - - - Removes and closes all attached appenders - - - - - - Removes the specified appender from the list of attached appenders. - - The appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - List of appenders - - - - - Array of appenders, used to cache the m_appenderList - - - - - The fully qualified type of the AppenderAttachedImpl class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets all attached appenders. - - - A collection of attached appenders, or null if there - are no attached appenders. - - - - The read only collection of all currently attached appenders. - - - - - - This class aggregates several PropertiesDictionary collections together. - - - - Provides a dictionary style lookup over an ordered list of - collections. - - - Nicko Cadell - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Add a Properties Dictionary to this composite collection - - the properties to add - - - Properties dictionaries added first take precedence over dictionaries added - later. - - - - - - Flatten this composite collection into a single properties dictionary - - the flattened dictionary - - - Reduces the collection of ordered dictionaries to a single dictionary - containing the resultant values for the keys. - - - - - - Gets the value of a property - - - The value for the property with the specified key - - - - Looks up the value for the specified. - The collections are searched - in the order in which they were added to this collection. The value - returned is the value held by the first collection that contains - the specified key. - - - If none of the collections contain the specified key then - null is returned. - - - - - - Base class for Context Properties implementations - - - - This class defines a basic property get set accessor - - - Nicko Cadell - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Gets or sets the value of a property - - - - - - Wrapper class used to map converter names to converter types - - - - Pattern converter info class used during configuration by custom - PatternString and PatternLayer converters. - - - - - - default constructor - - - - - - - - - - - Gets or sets the name of the conversion pattern - - - - The name of the pattern in the format string - - - - - - Gets or sets the type of the converter - - - - The value specified must extend the - type. - - - - - - - - - - - Subclass of that maintains a count of - the number of bytes written. - - - - This writer counts the number of bytes written. - - - Nicko Cadell - Gert Driesen - - - - that does not leak exceptions - - - - does not throw exceptions when things go wrong. - Instead, it delegates error handling to its . - - - Nicko Cadell - Gert Driesen - - - - Adapter that extends and forwards all - messages to an instance of . - - - - Adapter that extends and forwards all - messages to an instance of . - - - Nicko Cadell - - - - The writer to forward messages to - - - - - Create an instance of that forwards all - messages to a . - - The to forward to - - - Create an instance of that forwards all - messages to a . - - - - - - Closes the writer and releases any system resources associated with the writer - - - - - - - - - Dispose this writer - - flag indicating if we are being disposed - - - Dispose this writer - - - - - - Flushes any buffered output - - - - Clears all buffers for the writer and causes any buffered data to be written - to the underlying device - - - - - - Writes a character to the wrapped TextWriter - - the value to write to the TextWriter - - - Writes a character to the wrapped TextWriter - - - - - - Writes a character buffer to the wrapped TextWriter - - the data buffer - the start index - the number of characters to write - - - Writes a character buffer to the wrapped TextWriter - - - - - - Writes a string to the wrapped TextWriter - - the value to write to the TextWriter - - - Writes a string to the wrapped TextWriter - - - - - - Gets or sets the underlying . - - - The underlying . - - - - Gets or sets the underlying . - - - - - - The Encoding in which the output is written - - - The - - - - The Encoding in which the output is written - - - - - - Gets an object that controls formatting - - - The format provider - - - - Gets an object that controls formatting - - - - - - Gets or sets the line terminator string used by the TextWriter - - - The line terminator to use - - - - Gets or sets the line terminator string used by the TextWriter - - - - - - Constructor - - the writer to actually write to - the error handler to report error to - - - Create a new QuietTextWriter using a writer and error handler - - - - - - Writes a character to the underlying writer - - the char to write - - - Writes a character to the underlying writer - - - - - - Writes a buffer to the underlying writer - - the buffer to write - the start index to write from - the number of characters to write - - - Writes a buffer to the underlying writer - - - - - - Writes a string to the output. - - The string data to write to the output. - - - Writes a string to the output. - - - - - - Closes the underlying output writer. - - - - Closes the underlying output writer. - - - - - - The error handler instance to pass all errors to - - - - - Flag to indicate if this writer is closed - - - - - Gets or sets the error handler that all errors are passed to. - - - The error handler that all errors are passed to. - - - - Gets or sets the error handler that all errors are passed to. - - - - - - Gets a value indicating whether this writer is closed. - - - true if this writer is closed, otherwise false. - - - - Gets a value indicating whether this writer is closed. - - - - - - Constructor - - The to actually write to. - The to report errors to. - - - Creates a new instance of the class - with the specified and . - - - - - - Writes a character to the underlying writer and counts the number of bytes written. - - the char to write - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Writes a buffer to the underlying writer and counts the number of bytes written. - - the buffer to write - the start index to write from - the number of characters to write - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Writes a string to the output and counts the number of bytes written. - - The string data to write to the output. - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Total number of bytes written. - - - - - Gets or sets the total number of bytes written. - - - The total number of bytes written. - - - - Gets or sets the total number of bytes written. - - - - - - A fixed size rolling buffer of logging events. - - - - An array backed fixed size leaky bucket. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The maximum number of logging events in the buffer. - - - Initializes a new instance of the class with - the specified maximum number of buffered logging events. - - - The argument is not a positive integer. - - - - Appends a to the buffer. - - The event to append to the buffer. - The event discarded from the buffer, if the buffer is full, otherwise null. - - - Append an event to the buffer. If the buffer still contains free space then - null is returned. If the buffer is full then an event will be dropped - to make space for the new event, the event dropped is returned. - - - - - - Get and remove the oldest event in the buffer. - - The oldest logging event in the buffer - - - Gets the oldest (first) logging event in the buffer and removes it - from the buffer. - - - - - - Pops all the logging events from the buffer into an array. - - An array of all the logging events in the buffer. - - - Get all the events in the buffer and clear the buffer. - - - - - - Clear the buffer - - - - Clear the buffer of all events. The events in the buffer are lost. - - - - - - Gets the th oldest event currently in the buffer. - - The th oldest event currently in the buffer. - - - If is outside the range 0 to the number of events - currently in the buffer, then null is returned. - - - - - - Gets the maximum size of the buffer. - - The maximum size of the buffer. - - - Gets the maximum size of the buffer - - - - - - Gets the number of logging events in the buffer. - - The number of logging events in the buffer. - - - This number is guaranteed to be in the range 0 to - (inclusive). - - - - - - An always empty . - - - - A singleton implementation of the - interface that always represents an empty collection. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Copies the elements of the to an - , starting at a particular Array index. - - The one-dimensional - that is the destination of the elements copied from - . The Array must have zero-based - indexing. - The zero-based index in array at which - copying begins. - - - As the collection is empty no values are copied into the array. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - The singleton instance of the empty collection. - - - - - Gets the singleton instance of the empty collection. - - The singleton instance of the empty collection. - - - Gets the singleton instance of the empty collection. - - - - - - Gets a value indicating if access to the is synchronized (thread-safe). - - - true if access to the is synchronized (thread-safe); otherwise, false. - - - - For the this property is always true. - - - - - - Gets the number of elements contained in the . - - - The number of elements contained in the . - - - - As the collection is empty the is always 0. - - - - - - Gets an object that can be used to synchronize access to the . - - - An object that can be used to synchronize access to the . - - - - As the collection is empty and thread safe and synchronized this instance is also - the object. - - - - - - An always empty . - - - - A singleton implementation of the - interface that always represents an empty collection. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Copies the elements of the to an - , starting at a particular Array index. - - The one-dimensional - that is the destination of the elements copied from - . The Array must have zero-based - indexing. - The zero-based index in array at which - copying begins. - - - As the collection is empty no values are copied into the array. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - Adds an element with the provided key and value to the - . - - The to use as the key of the element to add. - The to use as the value of the element to add. - - - As the collection is empty no new values can be added. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - Removes all elements from the . - - - - As the collection is empty no values can be removed. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - Determines whether the contains an element - with the specified key. - - The key to locate in the . - false - - - As the collection is empty the method always returns false. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - Removes the element with the specified key from the . - - The key of the element to remove. - - - As the collection is empty no values can be removed. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - The singleton instance of the empty dictionary. - - - - - Gets the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets a value indicating if access to the is synchronized (thread-safe). - - - true if access to the is synchronized (thread-safe); otherwise, false. - - - - For the this property is always true. - - - - - - Gets the number of elements contained in the - - - The number of elements contained in the . - - - - As the collection is empty the is always 0. - - - - - - Gets an object that can be used to synchronize access to the . - - - An object that can be used to synchronize access to the . - - - - As the collection is empty and thread safe and synchronized this instance is also - the object. - - - - - - Gets a value indicating whether the has a fixed size. - - true - - - As the collection is empty always returns true. - - - - - - Gets a value indicating whether the is read-only. - - true - - - As the collection is empty always returns true. - - - - - - Gets an containing the keys of the . - - An containing the keys of the . - - - As the collection is empty a is returned. - - - - - - Gets an containing the values of the . - - An containing the values of the . - - - As the collection is empty a is returned. - - - - - - Gets or sets the element with the specified key. - - The key of the element to get or set. - null - - - As the collection is empty no values can be looked up or stored. - If the index getter is called then null is returned. - A is thrown if the setter is called. - - - This dictionary is always empty and cannot be modified. - - - - Contain the information obtained when parsing formatting modifiers - in conversion modifiers. - - - - Holds the formatting information extracted from the format string by - the . This is used by the - objects when rendering the output. - - - Nicko Cadell - Gert Driesen - - - - Defaut Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - - - Initializes a new instance of the class - with the specified parameters. - - - - - - Gets or sets the minimum value. - - - The minimum value. - - - - Gets or sets the minimum value. - - - - - - Gets or sets the maximum value. - - - The maximum value. - - - - Gets or sets the maximum value. - - - - - - Gets or sets a flag indicating whether left align is enabled - or not. - - - A flag indicating whether left align is enabled or not. - - - - Gets or sets a flag indicating whether left align is enabled or not. - - - - - - Implementation of Properties collection for the - - - - This class implements a properties collection that is thread safe and supports both - storing properties and capturing a read only copy of the current propertied. - - - This class is optimized to the scenario where the properties are read frequently - and are modified infrequently. - - - Nicko Cadell - - - - The read only copy of the properties. - - - - This variable is declared volatile to prevent the compiler and JIT from - reordering reads and writes of this thread performed on different threads. - - - - - - Lock object used to synchronize updates within this instance - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property from the global context - - the key for the entry to remove - - - Removing an entry from the global context properties is relatively expensive compared - with reading a value. - - - - - - Clear the global context properties - - - - - Get a readonly immutable copy of the properties - - the current global context properties - - - This implementation is fast because the GlobalContextProperties class - stores a readonly copy of the properties. - - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Reading the value for a key is faster than setting the value. - When the value is written a new read only copy of - the properties is created. - - - - - - Manages a mapping from levels to - - - - Manages an ordered mapping from instances - to subclasses. - - - Nicko Cadell - - - - Default constructor - - - - Initialise a new instance of . - - - - - - Add a to this mapping - - the entry to add - - - If a has previously been added - for the same then that entry will be - overwritten. - - - - - - Lookup the mapping for the specified level - - the level to lookup - the for the level or null if no mapping found - - - Lookup the value for the specified level. Finds the nearest - mapping value for the level that is equal to or less than the - specified. - - - If no mapping could be found then null is returned. - - - - - - Initialize options - - - - Caches the sorted list of in an array - - - - - - Implementation of Properties collection for the - - - - Class implements a collection of properties that is specific to each thread. - The class is not synchronized as each thread has its own . - - - This class stores its properties in a slot on the named - log4net.Util.LogicalThreadContextProperties. - - - The requires a link time - for the - . - If the calling code does not have this permission then this context will be disabled. - It will not store any property values set on it. - - - Nicko Cadell - - - - Flag used to disable this context if we don't have permission to access the CallContext. - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property - - the key for the entry to remove - - - Remove the value for the specified from the context. - - - - - - Clear all the context properties - - - - Clear all the context properties - - - - - - Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. - - create the dictionary if it does not exist, otherwise return null if is does not exist - the properties for this thread - - - The collection returned is only to be used on the calling thread. If the - caller needs to share the collection between different threads then the - caller must clone the collection before doings so. - - - - - - Gets the call context get data. - - The peroperties dictionary stored in the call context - - The method has a - security link demand, therfore we must put the method call in a seperate method - that we can wrap in an exception handler. - - - - - Sets the call context data. - - The properties. - - The method has a - security link demand, therfore we must put the method call in a seperate method - that we can wrap in an exception handler. - - - - - The fully qualified type of the LogicalThreadContextProperties class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Get or set the property value for the specified. - - - - - - - - - - - - - Outputs log statements from within the log4net assembly. - - - - Log4net components cannot make log4net logging calls. However, it is - sometimes useful for the user to learn about what log4net is - doing. - - - All log4net internal debug calls go to the standard output stream - whereas internal error messages are sent to the standard error output - stream. - - - Nicko Cadell - Gert Driesen - - - - Formats Prefix, Source, and Message in the same format as the value - sent to Console.Out and Trace.Write. - - - - - - Initializes a new instance of the class. - - - - - - - - - Static constructor that initializes logging by reading - settings from the application configuration file. - - - - The log4net.Internal.Debug application setting - controls internal debugging. This setting should be set - to true to enable debugging. - - - The log4net.Internal.Quiet application setting - suppresses all internal logging including error messages. - This setting should be set to true to enable message - suppression. - - - - - - Raises the LogReceived event when an internal messages is received. - - - - - - - - - Writes log4net internal debug messages to the - standard output stream. - - - The message to log. - - - All internal debug messages are prepended with - the string "log4net: ". - - - - - - Writes log4net internal debug messages to the - standard output stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal debug messages are prepended with - the string "log4net: ". - - - - - - Writes log4net internal warning messages to the - standard error stream. - - The Type that generated this message. - The message to log. - - - All internal warning messages are prepended with - the string "log4net:WARN ". - - - - - - Writes log4net internal warning messages to the - standard error stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal warning messages are prepended with - the string "log4net:WARN ". - - - - - - Writes log4net internal error messages to the - standard error stream. - - The Type that generated this message. - The message to log. - - - All internal error messages are prepended with - the string "log4net:ERROR ". - - - - - - Writes log4net internal error messages to the - standard error stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal debug messages are prepended with - the string "log4net:ERROR ". - - - - - - Writes output to the standard output stream. - - The message to log. - - - Writes to both Console.Out and System.Diagnostics.Trace. - Note that the System.Diagnostics.Trace is not supported - on the Compact Framework. - - - If the AppDomain is not configured with a config file then - the call to System.Diagnostics.Trace may fail. This is only - an issue if you are programmatically creating your own AppDomains. - - - - - - Writes output to the standard error stream. - - The message to log. - - - Writes to both Console.Error and System.Diagnostics.Trace. - Note that the System.Diagnostics.Trace is not supported - on the Compact Framework. - - - If the AppDomain is not configured with a config file then - the call to System.Diagnostics.Trace may fail. This is only - an issue if you are programmatically creating your own AppDomains. - - - - - - Default debug level - - - - - In quietMode not even errors generate any output. - - - - - The event raised when an internal message has been received. - - - - - The Type that generated the internal message. - - - - - The DateTime stamp of when the internal message was received. - - - - - A string indicating the severity of the internal message. - - - "log4net: ", - "log4net:ERROR ", - "log4net:WARN " - - - - - The internal log message. - - - - - The Exception related to the message. - - - Optional. Will be null if no Exception was passed. - - - - - Gets or sets a value indicating whether log4net internal logging - is enabled or disabled. - - - true if log4net internal logging is enabled, otherwise - false. - - - - When set to true, internal debug level logging will be - displayed. - - - This value can be set by setting the application setting - log4net.Internal.Debug in the application configuration - file. - - - The default value is false, i.e. debugging is - disabled. - - - - - The following example enables internal debugging using the - application configuration file : - - - - - - - - - - - - - Gets or sets a value indicating whether log4net should generate no output - from internal logging, not even for errors. - - - true if log4net should generate no output at all from internal - logging, otherwise false. - - - - When set to true will cause internal logging at all levels to be - suppressed. This means that no warning or error reports will be logged. - This option overrides the setting and - disables all debug also. - - This value can be set by setting the application setting - log4net.Internal.Quiet in the application configuration file. - - - The default value is false, i.e. internal logging is not - disabled. - - - - The following example disables internal logging using the - application configuration file : - - - - - - - - - - - - - - - - - Test if LogLog.Debug is enabled for output. - - - true if Debug is enabled - - - - Test if LogLog.Debug is enabled for output. - - - - - - Test if LogLog.Warn is enabled for output. - - - true if Warn is enabled - - - - Test if LogLog.Warn is enabled for output. - - - - - - Test if LogLog.Error is enabled for output. - - - true if Error is enabled - - - - Test if LogLog.Error is enabled for output. - - - - - - Subscribes to the LogLog.LogReceived event and stores messages - to the supplied IList instance. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Represents a native error code and message. - - - - Represents a Win32 platform native error. - - - Nicko Cadell - Gert Driesen - - - - Create an instance of the class with the specified - error number and message. - - The number of the native error. - The message of the native error. - - - Create an instance of the class with the specified - error number and message. - - - - - - Create a new instance of the class for the last Windows error. - - - An instance of the class for the last windows error. - - - - The message for the error number is lookup up using the - native Win32 FormatMessage function. - - - - - - Create a new instance of the class. - - the error number for the native error - - An instance of the class for the specified - error number. - - - - The message for the specified error number is lookup up using the - native Win32 FormatMessage function. - - - - - - Retrieves the message corresponding with a Win32 message identifier. - - Message identifier for the requested message. - - The message corresponding with the specified message identifier. - - - - The message will be searched for in system message-table resource(s) - using the native FormatMessage function. - - - - - - Return error information string - - error information string - - - Return error information string - - - - - - Formats a message string. - - Formatting options, and how to interpret the parameter. - Location of the message definition. - Message identifier for the requested message. - Language identifier for the requested message. - If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . - If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. - Pointer to an array of values that are used as insert values in the formatted message. - - - The function requires a message definition as input. The message definition can come from a - buffer passed into the function. It can come from a message table resource in an - already-loaded module. Or the caller can ask the function to search the system's message - table resource(s) for the message definition. The function finds the message definition - in a message table resource based on a message identifier and a language identifier. - The function copies the formatted message text to an output buffer, processing any embedded - insert sequences if requested. - - - To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. - - - - - If the function succeeds, the return value is the number of TCHARs stored in the output - buffer, excluding the terminating null character. - - - If the function fails, the return value is zero. To get extended error information, - call . - - - - - - Gets the number of the native error. - - - The number of the native error. - - - - Gets the number of the native error. - - - - - - Gets the message of the native error. - - - The message of the native error. - - - - - Gets the message of the native error. - - - - - An always empty . - - - - A singleton implementation of the over a collection - that is empty and not modifiable. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Test if the enumerator can advance, if so advance. - - false as the cannot advance. - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will always return false. - - - - - - Resets the enumerator back to the start. - - - - As the enumerator is over an empty collection does nothing. - - - - - - The singleton instance of the . - - - - - Gets the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets the current object from the enumerator. - - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current key from the enumerator. - - - Throws an exception because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current value from the enumerator. - - The current value from the enumerator. - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current entry from the enumerator. - - - Throws an because the - never has a current entry. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - An always empty . - - - - A singleton implementation of the over a collection - that is empty and not modifiable. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Test if the enumerator can advance, if so advance - - false as the cannot advance. - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will always return false. - - - - - - Resets the enumerator back to the start. - - - - As the enumerator is over an empty collection does nothing. - - - - - - The singleton instance of the . - - - - - Get the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets the current object from the enumerator. - - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - A SecurityContext used when a SecurityContext is not required - - - - The is a no-op implementation of the - base class. It is used where a - is required but one has not been provided. - - - Nicko Cadell - - - - Singleton instance of - - - - Singleton instance of - - - - - - Private constructor - - - - Private constructor for singleton pattern. - - - - - - Impersonate this SecurityContext - - State supplied by the caller - null - - - No impersonation is done and null is always returned. - - - - - - Implements log4net's default error handling policy which consists - of emitting a message for the first error in an appender and - ignoring all subsequent errors. - - - - The error message is processed using the LogLog sub-system by default. - - - This policy aims at protecting an otherwise working application - from being flooded with error messages when logging fails. - - - Nicko Cadell - Gert Driesen - Ron Grabowski - - - - Default Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - The prefix to use for each message. - - - Initializes a new instance of the class - with the specified prefix. - - - - - - Reset the error handler back to its initial disabled state. - - - - - Log an Error - - The error message. - The exception. - The internal error code. - - - Invokes if and only if this is the first error or the first error after has been called. - - - - - - Log the very first error - - The error message. - The exception. - The internal error code. - - - Sends the error information to 's Error method. - - - - - - Log an Error - - The error message. - The exception. - - - Invokes if and only if this is the first error or the first error after has been called. - - - - - - Log an error - - The error message. - - - Invokes if and only if this is the first error or the first error after has been called. - - - - - - The date the error was recorded. - - - - - Flag to indicate if it is the first error - - - - - The message recorded during the first error. - - - - - The exception recorded during the first error. - - - - - The error code recorded during the first error. - - - - - String to prefix each message with - - - - - The fully qualified type of the OnlyOnceErrorHandler class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Is error logging enabled - - - - Is error logging enabled. Logging is only enabled for the - first error delivered to the . - - - - - - The date the first error that trigged this error handler occured. - - - - - The message from the first error that trigged this error handler. - - - - - The exception from the first error that trigged this error handler. - - - May be . - - - - - The error code from the first error that trigged this error handler. - - - Defaults to - - - - - A convenience class to convert property values to specific types. - - - - Utility functions for converting types and parsing values. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Converts a string to a value. - - String to convert. - The default value. - The value of . - - - If is "true", then true is returned. - If is "false", then false is returned. - Otherwise, is returned. - - - - - - Parses a file size into a number. - - String to parse. - The default value. - The value of . - - - Parses a file size of the form: number[KB|MB|GB] into a - long value. It is scaled with the appropriate multiplier. - - - is returned when - cannot be converted to a value. - - - - - - Converts a string to an object. - - The target type to convert to. - The string to convert to an object. - - The object converted from a string or null when the - conversion failed. - - - - Converts a string to an object. Uses the converter registry to try - to convert the string value into the specified target type. - - - - - - Checks if there is an appropriate type conversion from the source type to the target type. - - The type to convert from. - The type to convert to. - true if there is a conversion from the source type to the target type. - - Checks if there is an appropriate type conversion from the source type to the target type. - - - - - - - Converts an object to the target type. - - The object to convert to the target type. - The type to convert to. - The converted object. - - - Converts an object to the target type. - - - - - - Instantiates an object given a class name. - - The fully qualified class name of the object to instantiate. - The class to which the new object should belong. - The object to return in case of non-fulfillment. - - An instance of the or - if the object could not be instantiated. - - - - Checks that the is a subclass of - . If that test fails or the object could - not be instantiated, then is returned. - - - - - - Performs variable substitution in string from the - values of keys found in . - - The string on which variable substitution is performed. - The dictionary to use to lookup variables. - The result of the substitutions. - - - The variable substitution delimiters are ${ and }. - - - For example, if props contains key=value, then the call - - - - string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); - - - - will set the variable s to "Value of key is value.". - - - If no value could be found for the specified key, then substitution - defaults to an empty string. - - - For example, if system properties contains no value for the key - "nonExistentKey", then the call - - - - string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); - - - - will set s to "Value of nonExistentKey is []". - - - An Exception is thrown if contains a start - delimiter "${" which is not balanced by a stop delimiter "}". - - - - - - Converts the string representation of the name or numeric value of one or - more enumerated constants to an equivalent enumerated object. - - The type to convert to. - The enum string value. - If true, ignore case; otherwise, regard case. - An object of type whose value is represented by . - - - - The fully qualified type of the OptionConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Most of the work of the class - is delegated to the PatternParser class. - - - - The PatternParser processes a pattern string and - returns a chain of objects. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The pattern to parse. - - - Initializes a new instance of the class - with the specified pattern string. - - - - - - Parses the pattern into a chain of pattern converters. - - The head of a chain of pattern converters. - - - Parses the pattern into a chain of pattern converters. - - - - - - Build the unified cache of converters from the static and instance maps - - the list of all the converter names - - - Build the unified cache of converters from the static and instance maps - - - - - - Internal method to parse the specified pattern to find specified matches - - the pattern to parse - the converter names to match in the pattern - - - The matches param must be sorted such that longer strings come before shorter ones. - - - - - - Process a parsed literal - - the literal text - - - - Process a parsed converter pattern - - the name of the converter - the optional option for the converter - the formatting info for the converter - - - - Resets the internal state of the parser and adds the specified pattern converter - to the chain. - - The pattern converter to add. - - - - The first pattern converter in the chain - - - - - the last pattern converter in the chain - - - - - The pattern - - - - - Internal map of converter identifiers to converter types - - - - This map overrides the static s_globalRulesRegistry map. - - - - - - The fully qualified type of the PatternParser class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Get the converter registry used by this parser - - - The converter registry used by this parser - - - - Get the converter registry used by this parser - - - - - - Sort strings by length - - - - that orders strings by string length. - The longest strings are placed first - - - - - - This class implements a patterned string. - - - - This string has embedded patterns that are resolved and expanded - when the string is formatted. - - - This class functions similarly to the - in that it accepts a pattern and renders it to a string. Unlike the - however the PatternString - does not render the properties of a specific but - of the process in general. - - - The recognized conversion pattern names are: - - - - Conversion Pattern Name - Effect - - - appdomain - - - Used to output the friendly name of the current AppDomain. - - - - - date - - - Used to output the current date and time in the local time zone. - To output the date in universal time use the %utcdate pattern. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %date{HH:mm:ss,fff} or - %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %date{ISO8601} or %date{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - env - - - Used to output the a specific environment variable. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %env{COMPUTERNAME} would include the value - of the COMPUTERNAME environment variable. - - - The env pattern is not supported on the .NET Compact Framework. - - - - - identity - - - Used to output the user name for the currently active user - (Principal.Identity.Name). - - - - - newline - - - Outputs the platform dependent line separator character or - characters. - - - This conversion pattern name offers the same performance as using - non-portable line separator strings such as "\n", or "\r\n". - Thus, it is the preferred way of specifying a line separator. - - - - - processid - - - Used to output the system process ID for the current process. - - - - - property - - - Used to output a specific context property. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %property{user} would include the value - from the property that is keyed by the string 'user'. Each property value - that is to be included in the log must be specified separately. - Properties are stored in logging contexts. By default - the log4net:HostName property is set to the name of machine on - which the event was originally logged. - - - If no key is specified, e.g. %property then all the keys and their - values are printed in a comma separated list. - - - The properties of an event are combined from a number of different - contexts. These are listed below in the order in which they are searched. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - random - - - Used to output a random string of characters. The string is made up of - uppercase letters and numbers. By default the string is 4 characters long. - The length of the string can be specified within braces directly following the - pattern specifier, e.g. %random{8} would output an 8 character string. - - - - - username - - - Used to output the WindowsIdentity for the currently - active user. - - - - - utcdate - - - Used to output the date of the logging event in universal time. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %utcdate{HH:mm:ss,fff} or - %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %utcdate{ISO8601} or %utcdate{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - % - - - The sequence %% outputs a single percent sign. - - - - - - Additional pattern converters may be registered with a specific - instance using or - . - - - See the for details on the - format modifiers supported by the patterns. - - - Nicko Cadell - - - - Internal map of converter identifiers to converter types. - - - - - the pattern - - - - - the head of the pattern converter chain - - - - - patterns defined on this PatternString only - - - - - Initialize the global registry - - - - - Default constructor - - - - Initialize a new instance of - - - - - - Constructs a PatternString - - The pattern to use with this PatternString - - - Initialize a new instance of with the pattern specified. - - - - - - Initialize object options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Create the used to parse the pattern - - the pattern to parse - The - - - Returns PatternParser used to parse the conversion string. Subclasses - may override this to return a subclass of PatternParser which recognize - custom conversion pattern name. - - - - - - Produces a formatted string as specified by the conversion pattern. - - The TextWriter to write the formatted event to - - - Format the pattern to the . - - - - - - Format the pattern as a string - - the pattern formatted as a string - - - Format the pattern to a string. - - - - - - Add a converter to this PatternString - - the converter info - - - This version of the method is used by the configurator. - Programmatic users should use the alternative method. - - - - - - Add a converter to this PatternString - - the name of the conversion pattern for this converter - the type of the converter - - - Add a converter to this PatternString - - - - - - Gets or sets the pattern formatting string - - - The pattern formatting string - - - - The ConversionPattern option. This is the string which - controls formatting and consists of a mix of literal content and - conversion specifiers. - - - - - - String keyed object map. - - - - While this collection is serializable only member - objects that are serializable will - be serialized along with this collection. - - - Nicko Cadell - Gert Driesen - - - - String keyed object map that is read only. - - - - This collection is readonly and cannot be modified. - - - While this collection is serializable only member - objects that are serializable will - be serialized along with this collection. - - - Nicko Cadell - Gert Driesen - - - - The Hashtable used to store the properties data - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Copy Constructor - - properties to copy - - - Initializes a new instance of the class. - - - - - - Deserialization constructor - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Gets the key names. - - An array of all the keys. - - - Gets the key names. - - - - - - Test if the dictionary contains a specified key - - the key to look for - true if the dictionary contains the specified key - - - Test if the dictionary contains a specified key - - - - - - Serializes this object into the provided. - - The to populate with data. - The destination for this serialization. - - - Serializes this object into the provided. - - - - - - See - - - - - See - - - - - - See - - - - - - - Remove all properties from the properties collection - - - - - See - - - - - - - See - - - - - - - See - - - - - Gets or sets the value of the property with the specified key. - - - The value of the property with the specified key. - - The key of the property to get or set. - - - The property value will only be serialized if it is serializable. - If it cannot be serialized it will be silently ignored if - a serialization operation is performed. - - - - - - The hashtable used to store the properties - - - The internal collection used to store the properties - - - - The hashtable used to store the properties - - - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - The number of properties in this collection - - - - - See - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - properties to copy - - - Initializes a new instance of the class. - - - - - - Initializes a new instance of the class - with serialized data. - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Because this class is sealed the serialization constructor is private. - - - - - - Remove the entry with the specified key from this dictionary - - the key for the entry to remove - - - Remove the entry with the specified key from this dictionary - - - - - - See - - an enumerator - - - Returns a over the contest of this collection. - - - - - - See - - the key to remove - - - Remove the entry with the specified key from this dictionary - - - - - - See - - the key to lookup in the collection - true if the collection contains the specified key - - - Test if this collection contains a specified key. - - - - - - Remove all properties from the properties collection - - - - Remove all properties from the properties collection - - - - - - See - - the key - the value to store for the key - - - Store a value for the specified . - - - Thrown if the is not a string - - - - See - - - - - - - See - - - - - Gets or sets the value of the property with the specified key. - - - The value of the property with the specified key. - - The key of the property to get or set. - - - The property value will only be serialized if it is serializable. - If it cannot be serialized it will be silently ignored if - a serialization operation is performed. - - - - - - See - - - false - - - - This collection is modifiable. This property always - returns false. - - - - - - See - - - The value for the key specified. - - - - Get or set a value for the specified . - - - Thrown if the is not a string - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - A class to hold the key and data for a property set in the config file - - - - A class to hold the key and data for a property set in the config file - - - - - - Override Object.ToString to return sensible debug info - - string info about this object - - - - Property Key - - - Property Key - - - - Property Key. - - - - - - Property Value - - - Property Value - - - - Property Value. - - - - - - A that ignores the message - - - - This writer is used in special cases where it is necessary - to protect a writer from being closed by a client. - - - Nicko Cadell - - - - Constructor - - the writer to actually write to - - - Create a new ProtectCloseTextWriter using a writer - - - - - - Attach this instance to a different underlying - - the writer to attach to - - - Attach this instance to a different underlying - - - - - - Does not close the underlying output writer. - - - - Does not close the underlying output writer. - This method does nothing. - - - - - - Defines a lock that supports single writers and multiple readers - - - - ReaderWriterLock is used to synchronize access to a resource. - At any given time, it allows either concurrent read access for - multiple threads, or write access for a single thread. In a - situation where a resource is changed infrequently, a - ReaderWriterLock provides better throughput than a simple - one-at-a-time lock, such as . - - - If a platform does not support a System.Threading.ReaderWriterLock - implementation then all readers and writers are serialized. Therefore - the caller must not rely on multiple simultaneous readers. - - - Nicko Cadell - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Acquires a reader lock - - - - blocks if a different thread has the writer - lock, or if at least one thread is waiting for the writer lock. - - - - - - Decrements the lock count - - - - decrements the lock count. When the count - reaches zero, the lock is released. - - - - - - Acquires the writer lock - - - - This method blocks if another thread has a reader lock or writer lock. - - - - - - Decrements the lock count on the writer lock - - - - ReleaseWriterLock decrements the writer lock count. - When the count reaches zero, the writer lock is released. - - - - - - A that can be and reused - - - - A that can be and reused. - This uses a single buffer for string operations. - - - Nicko Cadell - - - - Create an instance of - - the format provider to use - - - Create an instance of - - - - - - Override Dispose to prevent closing of writer - - flag - - - Override Dispose to prevent closing of writer - - - - - - Reset this string writer so that it can be reused. - - the maximum buffer capacity before it is trimmed - the default size to make the buffer - - - Reset this string writer so that it can be reused. - The internal buffers are cleared and reset. - - - - - - Utility class for system specific information. - - - - Utility class of static methods for system specific information. - - - Nicko Cadell - Gert Driesen - Alexey Solofnenko - - - - Private constructor to prevent instances. - - - - Only static methods are exposed from this type. - - - - - - Initialize default values for private static fields. - - - - Only static methods are exposed from this type. - - - - - - Gets the assembly location path for the specified assembly. - - The assembly to get the location for. - The location of the assembly. - - - This method does not guarantee to return the correct path - to the assembly. If only tries to give an indication as to - where the assembly was loaded from. - - - - - - Gets the fully qualified name of the , including - the name of the assembly from which the was - loaded. - - The to get the fully qualified name for. - The fully qualified name for the . - - - This is equivalent to the Type.AssemblyQualifiedName property, - but this method works on the .NET Compact Framework 1.0 as well as - the full .NET runtime. - - - - - - Gets the short name of the . - - The to get the name for. - The short name of the . - - - The short name of the assembly is the - without the version, culture, or public key. i.e. it is just the - assembly's file name without the extension. - - - Use this rather than Assembly.GetName().Name because that - is not available on the Compact Framework. - - - Because of a FileIOPermission security demand we cannot do - the obvious Assembly.GetName().Name. We are allowed to get - the of the assembly so we - start from there and strip out just the assembly name. - - - - - - Gets the file name portion of the , including the extension. - - The to get the file name for. - The file name of the assembly. - - - Gets the file name portion of the , including the extension. - - - - - - Loads the type specified in the type string. - - A sibling type to use to load the type. - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified, it will be loaded from the assembly - containing the specified relative type. If the type is not found in the assembly - then all the loaded assemblies will be searched for the type. - - - - - - Loads the type specified in the type string. - - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified it will be loaded from the - assembly that is directly calling this method. If the type is not found - in the assembly then all the loaded assemblies will be searched for the type. - - - - - - Loads the type specified in the type string. - - An assembly to load the type from. - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified it will be loaded from the specified - assembly. If the type is not found in the assembly then all the loaded assemblies - will be searched for the type. - - - - - - Generate a new guid - - A new Guid - - - Generate a new guid - - - - - - Create an - - The name of the parameter that caused the exception - The value of the argument that causes this exception - The message that describes the error - the ArgumentOutOfRangeException object - - - Create a new instance of the class - with a specified error message, the parameter name, and the value - of the argument. - - - The Compact Framework does not support the 3 parameter constructor for the - type. This method provides an - implementation that works for all platforms. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Lookup an application setting - - the application settings key to lookup - the value for the key, or null - - - Configuration APIs are not supported under the Compact Framework - - - - - - Convert a path into a fully qualified local file path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - The path specified must be a local file path, a URI is not supported. - - - - - - Creates a new case-insensitive instance of the class with the default initial capacity. - - A new case-insensitive instance of the class with the default initial capacity - - - The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. - - - - - - Gets an empty array of types. - - - - The Type.EmptyTypes field is not available on - the .NET Compact Framework 1.0. - - - - - - The fully qualified type of the SystemInfo class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Cache the host name for the current machine - - - - - Cache the application friendly name - - - - - Text to output when a null is encountered. - - - - - Text to output when an unsupported feature is requested. - - - - - Start time for the current process. - - - - - Gets the system dependent line terminator. - - - The system dependent line terminator. - - - - Gets the system dependent line terminator. - - - - - - Gets the base directory for this . - - The base directory path for the current . - - - Gets the base directory for this . - - - The value returned may be either a local file path or a URI. - - - - - - Gets the path to the configuration file for the current . - - The path to the configuration file for the current . - - - The .NET Compact Framework 1.0 does not have a concept of a configuration - file. For this runtime, we use the entry assembly location as the root for - the configuration file name. - - - The value returned may be either a local file path or a URI. - - - - - - Gets the path to the file that first executed in the current . - - The path to the entry assembly. - - - Gets the path to the file that first executed in the current . - - - - - - Gets the ID of the current thread. - - The ID of the current thread. - - - On the .NET framework, the AppDomain.GetCurrentThreadId method - is used to obtain the thread ID for the current thread. This is the - operating system ID for the thread. - - - On the .NET Compact Framework 1.0 it is not possible to get the - operating system thread ID for the current thread. The native method - GetCurrentThreadId is implemented inline in a header file - and cannot be called. - - - On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this - gives a stable id unrelated to the operating system thread ID which may - change if the runtime is using fibers. - - - - - - Get the host name or machine name for the current machine - - - The hostname or machine name - - - - Get the host name or machine name for the current machine - - - The host name () or - the machine name (Environment.MachineName) for - the current machine, or if neither of these are available - then NOT AVAILABLE is returned. - - - - - - Get this application's friendly name - - - The friendly name of this application as a string - - - - If available the name of the application is retrieved from - the AppDomain using AppDomain.CurrentDomain.FriendlyName. - - - Otherwise the file name of the entry assembly is used. - - - - - - Get the start time for the current process. - - - - This is the time at which the log4net library was loaded into the - AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime - this is not the start time for the current process. - - - The log4net library should be loaded by an application early during its - startup, therefore this start time should be a good approximation for - the actual start time. - - - Note that AppDomains may be loaded and unloaded within the - same process without the process terminating, however this start time - will be set per AppDomain. - - - - - - Text to output when a null is encountered. - - - - Use this value to indicate a null has been encountered while - outputting a string representation of an item. - - - The default value is (null). This value can be overridden by specifying - a value for the log4net.NullText appSetting in the application's - .config file. - - - - - - Text to output when an unsupported feature is requested. - - - - Use this value when an unsupported feature is requested. - - - The default value is NOT AVAILABLE. This value can be overridden by specifying - a value for the log4net.NotAvailableText appSetting in the application's - .config file. - - - - - - Utility class that represents a format string. - - - - Utility class that represents a format string. - - - Nicko Cadell - - - - Initialise the - - An that supplies culture-specific formatting information. - A containing zero or more format items. - An array containing zero or more objects to format. - - - - Format the string and arguments - - the formatted string - - - - Replaces the format item in a specified with the text equivalent - of the value of a corresponding instance in a specified array. - A specified parameter supplies culture-specific formatting information. - - An that supplies culture-specific formatting information. - A containing zero or more format items. - An array containing zero or more objects to format. - - A copy of format in which the format items have been replaced by the - equivalent of the corresponding instances of in args. - - - - This method does not throw exceptions. If an exception thrown while formatting the result the - exception and arguments are returned in the result string. - - - - - - Process an error during StringFormat - - - - - Dump the contents of an array into a string builder - - - - - Dump an object to a string - - - - - The fully qualified type of the SystemStringFormat class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Implementation of Properties collection for the - - - - Class implements a collection of properties that is specific to each thread. - The class is not synchronized as each thread has its own . - - - Nicko Cadell - - - - Each thread will automatically have its instance. - - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property - - the key for the entry to remove - - - Remove a property - - - - - - Get the keys stored in the properties. - - - Gets the keys stored in the properties. - - a set of the defined keys - - - - Clear all properties - - - - Clear all properties - - - - - - Get the PropertiesDictionary for this thread. - - create the dictionary if it does not exist, otherwise return null if does not exist - the properties for this thread - - - The collection returned is only to be used on the calling thread. If the - caller needs to share the collection between different threads then the - caller must clone the collection before doing so. - - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Gets or sets the value of a property - - - - - - Implementation of Stack for the - - - - Implementation of Stack for the - - - Nicko Cadell - - - - The stack store. - - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - Clears all the contextual information held in this stack. - - - - Clears all the contextual information held in this stack. - Only call this if you think that this tread is being reused after - a previous call execution which may not have completed correctly. - You do not need to use this method if you always guarantee to call - the method of the - returned from even in exceptional circumstances, - for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) - syntax. - - - - - - Removes the top context from this stack. - - The message in the context that was removed from the top of this stack. - - - Remove the top context from this stack, and return - it to the caller. If this stack is empty then an - empty string (not ) is returned. - - - - - - Pushes a new context message into this stack. - - The new context message. - - An that can be used to clean up the context stack. - - - - Pushes a new context onto this stack. An - is returned that can be used to clean up this stack. This - can be easily combined with the using keyword to scope the - context. - - - Simple example of using the Push method with the using keyword. - - using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) - { - log.Warn("This should have an ThreadContext Stack message"); - } - - - - - - Gets the current context information for this stack. - - The current context information. - - - - Gets the current context information for this stack. - - Gets the current context information - - - Gets the current context information for this stack. - - - - - - Get a portable version of this object - - the portable instance of this object - - - Get a cross thread portable version of this object - - - - - - The number of messages in the stack - - - The current number of messages in the stack - - - - The current number of messages in the stack. That is - the number of times has been called - minus the number of times has been called. - - - - - - Gets and sets the internal stack used by this - - The internal storage stack - - - This property is provided only to support backward compatability - of the . Tytpically the internal stack should not - be modified. - - - - - - Inner class used to represent a single context frame in the stack. - - - - Inner class used to represent a single context frame in the stack. - - - - - - Constructor - - The message for this context. - The parent context in the chain. - - - Initializes a new instance of the class - with the specified message and parent context. - - - - - - Get the message. - - The message. - - - Get the message. - - - - - - Gets the full text of the context down to the root level. - - - The full text of the context down to the root level. - - - - Gets the full text of the context down to the root level. - - - - - - Struct returned from the method. - - - - This struct implements the and is designed to be used - with the pattern to remove the stack frame at the end of the scope. - - - - - - The ThreadContextStack internal stack - - - - - The depth to trim the stack to when this instance is disposed - - - - - Constructor - - The internal stack used by the ThreadContextStack. - The depth to return the stack to when this object is disposed. - - - Initializes a new instance of the class with - the specified stack and return depth. - - - - - - Returns the stack to the correct depth. - - - - Returns the stack to the correct depth. - - - - - - Implementation of Stacks collection for the - - - - Implementation of Stacks collection for the - - - Nicko Cadell - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - The fully qualified type of the ThreadContextStacks class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the named thread context stack - - - The named stack - - - - Gets the named thread context stack - - - - - - Utility class for transforming strings. - - - - Utility class for transforming strings. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Write a string to an - - the writer to write to - the string to write - The string to replace non XML compliant chars with - - - The test is escaped either using XML escape entities - or using CDATA sections. - - - - - - Replace invalid XML characters in text string - - the XML text input string - the string to use in place of invalid characters - A string that does not contain invalid XML characters. - - - Certain Unicode code points are not allowed in the XML InfoSet, for - details see: http://www.w3.org/TR/REC-xml/#charsets. - - - This method replaces any illegal characters in the input string - with the mask string specified. - - - - - - Count the number of times that the substring occurs in the text - - the text to search - the substring to find - the number of times the substring occurs in the text - - - The substring is assumed to be non repeating within itself. - - - - - - Characters illegal in XML 1.0 - - - - - Impersonate a Windows Account - - - - This impersonates a Windows account. - - - How the impersonation is done depends on the value of . - This allows the context to either impersonate a set of user credentials specified - using username, domain name and password or to revert to the process credentials. - - - - - - Default constructor - - - - Default constructor - - - - - - Initialize the SecurityContext based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The security context will try to Logon the specified user account and - capture a primary token for impersonation. - - - The required , - or properties were not specified. - - - - Impersonate the Windows account specified by the and properties. - - caller provided state - - An instance that will revoke the impersonation of this SecurityContext - - - - Depending on the property either - impersonate a user using credentials supplied or revert - to the process credentials. - - - - - - Create a given the userName, domainName and password. - - the user name - the domain name - the password - the for the account specified - - - Uses the Windows API call LogonUser to get a principal token for the account. This - token is used to initialize the WindowsIdentity. - - - - - - Gets or sets the impersonation mode for this security context - - - The impersonation mode for this security context - - - - Impersonate either a user with user credentials or - revert this thread to the credentials of the process. - The value is one of the - enum. - - - The default value is - - - When the mode is set to - the user's credentials are established using the - , and - values. - - - When the mode is set to - no other properties need to be set. If the calling thread is - impersonating then it will be reverted back to the process credentials. - - - - - - Gets or sets the Windows username for this security context - - - The Windows username for this security context - - - - This property must be set if - is set to (the default setting). - - - - - - Gets or sets the Windows domain name for this security context - - - The Windows domain name for this security context - - - - The default value for is the local machine name - taken from the property. - - - This property must be set if - is set to (the default setting). - - - - - - Sets the password for the Windows account specified by the and properties. - - - The password for the Windows account specified by the and properties. - - - - This property must be set if - is set to (the default setting). - - - - - - The impersonation modes for the - - - - See the property for - details. - - - - - - Impersonate a user using the credentials supplied - - - - - Revert this the thread to the credentials of the process - - - - - Adds to - - - - Helper class to expose the - through the interface. - - - - - - Constructor - - the impersonation context being wrapped - - - Constructor - - - - - - Revert the impersonation - - - - Revert the impersonation - - - - - - The log4net Global Context. - - - - The GlobalContext provides a location for global debugging - information to be stored. - - - The global context has a properties map and these properties can - be included in the output of log messages. The - supports selecting and outputing these properties. - - - By default the log4net:HostName property is set to the name of - the current machine. - - - - - GlobalContext.Properties["hostname"] = Environment.MachineName; - - - - Nicko Cadell - - - - Private Constructor. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - The global context properties instance - - - - - The global properties map. - - - The global properties map. - - - - The global properties map. - - - - - - Provides information about the environment the assembly has - been built for. - - - - Version of the assembly - - - Version of the framework targeted - - - Type of framework targeted - - - Does it target a client profile? - - - - Identifies the version and target for this assembly. - - - - - The log4net Logical Thread Context. - - - - The LogicalThreadContext provides a location for specific debugging - information to be stored. - The LogicalThreadContext properties override any or - properties with the same name. - - - The Logical Thread Context has a properties map and a stack. - The properties and stack can - be included in the output of log messages. The - supports selecting and outputting these properties. - - - The Logical Thread Context provides a diagnostic context for the current call context. - This is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The Logical Thread Context is managed on a per basis. - - - The requires a link time - for the - . - If the calling code does not have this permission then this context will be disabled. - It will not store any property values set on it. - - - Example of using the thread context properties to store a username. - - LogicalThreadContext.Properties["user"] = userName; - log.Info("This log message has a LogicalThreadContext Property called 'user'"); - - - Example of how to push a message into the context stack - - using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) - { - log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); - - } // at the end of the using block the message is automatically popped - - - - Nicko Cadell - - - - Private Constructor. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - The thread context properties instance - - - - - The thread context stacks instance - - - - - The thread properties map - - - The thread properties map - - - - The LogicalThreadContext properties override any - or properties with the same name. - - - - - - The thread stacks - - - stack map - - - - The logical thread stacks. - - - - - - This class is used by client applications to request logger instances. - - - - This class has static methods that are used by a client to request - a logger instance. The method is - used to retrieve a logger. - - - See the interface for more details. - - - Simple example of logging messages - - ILog log = LogManager.GetLogger("application-log"); - - log.Info("Application Start"); - log.Debug("This is a debug message"); - - if (log.IsDebugEnabled) - { - log.Debug("This is another debug message"); - } - - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - Returns the named logger if it exists. - - Returns the named logger if it exists. - - - - If the named logger exists (in the default repository) then it - returns a reference to the logger, otherwise it returns null. - - - The fully qualified logger name to look for. - The logger found, or null if no logger could be found. - - - - Returns the named logger if it exists. - - - - If the named logger exists (in the specified repository) then it - returns a reference to the logger, otherwise it returns - null. - - - The repository to lookup in. - The fully qualified logger name to look for. - - The logger found, or null if the logger doesn't exist in the specified - repository. - - - - - Returns the named logger if it exists. - - - - If the named logger exists (in the repository for the specified assembly) then it - returns a reference to the logger, otherwise it returns - null. - - - The assembly to use to lookup the repository. - The fully qualified logger name to look for. - - The logger, or null if the logger doesn't exist in the specified - assembly's repository. - - - - Get the currently defined loggers. - - Returns all the currently defined loggers in the default repository. - - - The root logger is not included in the returned array. - - All the defined loggers. - - - - Returns all the currently defined loggers in the specified repository. - - The repository to lookup in. - - The root logger is not included in the returned array. - - All the defined loggers. - - - - Returns all the currently defined loggers in the specified assembly's repository. - - The assembly to use to lookup the repository. - - The root logger is not included in the returned array. - - All the defined loggers. - - - Get or create a logger. - - Retrieves or creates a named logger. - - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The name of the logger to retrieve. - The logger with the name specified. - - - - Retrieves or creates a named logger. - - - - Retrieve a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The repository to lookup in. - The name of the logger to retrieve. - The logger with the name specified. - - - - Retrieves or creates a named logger. - - - - Retrieve a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The assembly to use to lookup the repository. - The name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Get the logger for the fully qualified name of the type specified. - - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Gets the logger for the fully qualified name of the type specified. - - The repository to lookup in. - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Gets the logger for the fully qualified name of the type specified. - - The assembly to use to lookup the repository. - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shuts down the log4net system. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in all the - default repositories. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - Shutdown a logger repository. - - Shuts down the default repository. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - default repository. - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - The repository to shutdown. - - - - Shuts down the repository specified. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository. The repository is looked up using - the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - The assembly to use to lookup the repository. - - - Reset the configuration of a repository - - Resets all values contained in this repository instance to their defaults. - - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - - - - Resets all values contained in this repository instance to their defaults. - - - - Reset all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - The repository to reset. - - - - Resets all values contained in this repository instance to their defaults. - - - - Reset all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - The assembly to use to lookup the repository to reset. - - - Get the logger repository. - - Returns the default instance. - - - - Gets the for the repository specified - by the callers assembly (). - - - The instance for the default repository. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The repository to lookup in. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The assembly to use to lookup the repository. - - - Get a logger repository. - - Returns the default instance. - - - - Gets the for the repository specified - by the callers assembly (). - - - The instance for the default repository. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The repository to lookup in. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The assembly to use to lookup the repository. - - - Create a domain - - Creates a repository with the specified repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to will return - the same repository instance. - - - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - Create a logger repository. - - Creates a repository with the specified repository type. - - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The created will be associated with the repository - specified such that a call to will return - the same repository instance. - - - - - - Creates a repository with the specified name. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name. - - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - The specified repository already exists. - - - - Creates a repository for the specified assembly and repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - - Creates a repository for the specified assembly and repository type. - - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - - Gets the list of currently defined repositories. - - - - Get an array of all the objects that have been created. - - - An array of all the known objects. - - - - Looks up the wrapper object for the logger specified. - - The logger to get the wrapper for. - The wrapper for the logger specified. - - - - Looks up the wrapper objects for the loggers specified. - - The loggers to get the wrappers for. - The wrapper objects for the loggers specified. - - - - Create the objects used by - this manager. - - The logger to wrap. - The wrapper for the logger specified. - - - - The wrapper map to use to hold the objects. - - - - - Implementation of Mapped Diagnostic Contexts. - - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - The MDC class is similar to the class except that it is - based on a map instead of a stack. It provides mapped - diagnostic contexts. A Mapped Diagnostic Context, or - MDC in short, is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The MDC is managed on a per thread basis. - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - Gets the context value identified by the parameter. - - The key to lookup in the MDC. - The string value held for the key, or a null reference if no corresponding value is found. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - If the parameter does not look up to a - previously defined context then null will be returned. - - - - - - Add an entry to the MDC - - The key to store the value under. - The value to store. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Puts a context value (the parameter) as identified - with the parameter into the current thread's - context map. - - - If a value is already defined for the - specified then the value will be replaced. If the - is specified as null then the key value mapping will be removed. - - - - - - Removes the key value mapping for the key specified. - - The key to remove. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Remove the specified entry from this thread's MDC - - - - - - Clear all entries in the MDC - - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Remove all the entries from this thread's MDC - - - - - - Implementation of Nested Diagnostic Contexts. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - A Nested Diagnostic Context, or NDC in short, is an instrument - to distinguish interleaved log output from different sources. Log - output is typically interleaved when a server handles multiple - clients near-simultaneously. - - - Interleaved log output can still be meaningful if each log entry - from different contexts had a distinctive stamp. This is where NDCs - come into play. - - - Note that NDCs are managed on a per thread basis. The NDC class - is made up of static methods that operate on the context of the - calling thread. - - - How to push a message into the context - - using(NDC.Push("my context message")) - { - ... all log calls will have 'my context message' included ... - - } // at the end of the using block the message is automatically removed - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - Clears all the contextual information held on the current thread. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Clears the stack of NDC data held on the current thread. - - - - - - Creates a clone of the stack of context information. - - A clone of the context info for this thread. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - The results of this method can be passed to the - method to allow child threads to inherit the context of their - parent thread. - - - - - - Inherits the contextual information from another thread. - - The context stack to inherit. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - This thread will use the context information from the stack - supplied. This can be used to initialize child threads with - the same contextual information as their parent threads. These - contexts will NOT be shared. Any further contexts that - are pushed onto the stack will not be visible to the other. - Call to obtain a stack to pass to - this method. - - - - - - Removes the top context from the stack. - - - The message in the context that was removed from the top - of the stack. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Remove the top context from the stack, and return - it to the caller. If the stack is empty then an - empty string (not null) is returned. - - - - - - Pushes a new context message. - - The new context message. - - An that can be used to clean up - the context stack. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Pushes a new context onto the context stack. An - is returned that can be used to clean up the context stack. This - can be easily combined with the using keyword to scope the - context. - - - Simple example of using the Push method with the using keyword. - - using(log4net.NDC.Push("NDC_Message")) - { - log.Warn("This should have an NDC message"); - } - - - - - - Removes the context information for this thread. It is - not required to call this method. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - This method is not implemented. - - - - - - Forces the stack depth to be at most . - - The maximum depth of the stack - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Forces the stack depth to be at most . - This may truncate the head of the stack. This only affects the - stack in the current thread. Also it does not prevent it from - growing, it only sets the maximum depth at the time of the - call. This can be used to return to a known context depth. - - - - - - Gets the current context depth. - - The current context depth. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - The number of context values pushed onto the context stack. - - - Used to record the current depth of the context. This can then - be restored using the method. - - - - - - - The log4net Thread Context. - - - - The ThreadContext provides a location for thread specific debugging - information to be stored. - The ThreadContext properties override any - properties with the same name. - - - The thread context has a properties map and a stack. - The properties and stack can - be included in the output of log messages. The - supports selecting and outputting these properties. - - - The Thread Context provides a diagnostic context for the current thread. - This is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The Thread Context is managed on a per thread basis. - - - Example of using the thread context properties to store a username. - - ThreadContext.Properties["user"] = userName; - log.Info("This log message has a ThreadContext Property called 'user'"); - - - Example of how to push a message into the context stack - - using(ThreadContext.Stacks["NDC"].Push("my context message")) - { - log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); - - } // at the end of the using block the message is automatically popped - - - - Nicko Cadell - - - - Private Constructor. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - The thread context properties instance - - - - - The thread context stacks instance - - - - - The thread properties map - - - The thread properties map - - - - The ThreadContext properties override any - properties with the same name. - - - - - - The thread stacks - - - stack map - - - - The thread local stacks. - - - - - diff --git a/source/packages/log4net.2.0.3/lib/net11-full/log4net.dll b/source/packages/log4net.2.0.3/lib/net11-full/log4net.dll deleted file mode 100644 index 33d7945e76c7fb0434e429cfa0e1894f87f40b39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 299008 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 - - - log4net - - - - - Appender that logs to a database. - - - - appends logging events to a table within a - database. The appender can be configured to specify the connection - string by setting the property. - The connection type (provider) can be specified by setting the - property. For more information on database connection strings for - your specific database see http://www.connectionstrings.com/. - - - Records are written into the database either using a prepared - statement or a stored procedure. The property - is set to (System.Data.CommandType.Text) to specify a prepared statement - or to (System.Data.CommandType.StoredProcedure) to specify a stored - procedure. - - - The prepared statement text or the name of the stored procedure - must be set in the property. - - - The prepared statement or stored procedure can take a number - of parameters. Parameters are added using the - method. This adds a single to the - ordered list of parameters. The - type may be subclassed if required to provide database specific - functionality. The specifies - the parameter name, database type, size, and how the value should - be generated using a . - - - - An example of a SQL Server table that could be logged to: - - CREATE TABLE [dbo].[Log] ( - [ID] [int] IDENTITY (1, 1) NOT NULL , - [Date] [datetime] NOT NULL , - [Thread] [varchar] (255) NOT NULL , - [Level] [varchar] (20) NOT NULL , - [Logger] [varchar] (255) NOT NULL , - [Message] [varchar] (4000) NOT NULL - ) ON [PRIMARY] - - - - An example configuration to log to the above table: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Julian Biddle - Nicko Cadell - Gert Driesen - Lance Nehring - - - - Abstract base class implementation of that - buffers events in a fixed size buffer. - - - - This base class should be used by appenders that need to buffer a - number of events before logging them. For example the - buffers events and then submits the entire contents of the buffer to - the underlying database in one go. - - - Subclasses should override the - method to deliver the buffered events. - - The BufferingAppenderSkeleton maintains a fixed size cyclic - buffer of events. The size of the buffer is set using - the property. - - A is used to inspect - each event as it arrives in the appender. If the - triggers, then the current buffer is sent immediately - (see ). Otherwise the event - is stored in the buffer. For example, an evaluator can be used to - deliver the events immediately when an ERROR event arrives. - - - The buffering appender can be configured in a mode. - By default the appender is NOT lossy. When the buffer is full all - the buffered events are sent with . - If the property is set to true then the - buffer will not be sent when it is full, and new events arriving - in the appender will overwrite the oldest event in the buffer. - In lossy mode the buffer will only be sent when the - triggers. This can be useful behavior when you need to know about - ERROR events but not about events with a lower level, configure an - evaluator that will trigger when an ERROR event arrives, the whole - buffer will be sent which gives a history of events leading up to - the ERROR event. - - - Nicko Cadell - Gert Driesen - - - - Abstract base class implementation of . - - - - This class provides the code for common functionality, such - as support for threshold filtering and support for general filters. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface for your own strategies for printing log statements. - - - - Implementors should consider extending the - class which provides a default implementation of this interface. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Log the logging event in Appender specific way. - - The event to log - - - This method is called to log a message into this appender. - - - - - - Gets or sets the name of this appender. - - The name of the appender. - - The name uniquely identifies the appender. - - - - - Interface for appenders that support bulk logging. - - - - This interface extends the interface to - support bulk logging of objects. Appenders - should only implement this interface if they can bulk log efficiently. - - - Nicko Cadell - - - - Log the array of logging events in Appender specific way. - - The events to log - - - This method is called to log an array of events into this appender. - - - - - - Interface used to delay activate a configured object. - - - - This allows an object to defer activation of its options until all - options have been set. This is required for components which have - related options that remain ambiguous until all are set. - - - If a component implements this interface then the method - must be called by the container after its all the configured properties have been set - and before the component can be used. - - - Nicko Cadell - - - - Activate the options that were previously set with calls to properties. - - - - This allows an object to defer activation of its options until all - options have been set. This is required for components which have - related options that remain ambiguous until all are set. - - - If a component implements this interface then this method must be called - after its properties have been set before the component can be used. - - - - - - Initial buffer size - - - - - Maximum buffer size before it is recycled - - - - - Default constructor - - - Empty default constructor - - - - - Finalizes this appender by calling the implementation's - method. - - - - If this appender has not been closed then the Finalize method - will call . - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Closes the appender and release resources. - - - - Release any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - This method cannot be overridden by subclasses. This method - delegates the closing of the appender to the - method which must be overridden in the subclass. - - - - - - Performs threshold checks and invokes filters before - delegating actual logging to the subclasses specific - method. - - The event to log. - - - This method cannot be overridden by derived classes. A - derived class should override the method - which is called by this method. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - Calls and checks that - it returns true. - - - - - If all of the above steps succeed then the - will be passed to the abstract method. - - - - - - Performs threshold checks and invokes filters before - delegating actual logging to the subclasses specific - method. - - The array of events to log. - - - This method cannot be overridden by derived classes. A - derived class should override the method - which is called by this method. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - Calls and checks that - it returns true. - - - - - If all of the above steps succeed then the - will be passed to the method. - - - - - - Test if the logging event should we output by this appender - - the event to test - true if the event should be output, false if the event should be ignored - - - This method checks the logging event against the threshold level set - on this appender and also against the filters specified on this - appender. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - - - - - Adds a filter to the end of the filter chain. - - the filter to add to this appender - - - The Filters are organized in a linked list. - - - Setting this property causes the new filter to be pushed onto the - back of the filter chain. - - - - - - Clears the filter list for this appender. - - - - Clears the filter list for this appender. - - - - - - Checks if the message level is below this appender's threshold. - - to test against. - - - If there is no threshold set, then the return value is always true. - - - - true if the meets the - requirements of this appender. - - - - - Is called when the appender is closed. Derived classes should override - this method if resources need to be released. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Subclasses of should implement this method - to perform actual logging. - - The event to append. - - - A subclass must implement this method to perform - logging of the . - - This method will be called by - if all the conditions listed for that method are met. - - - To restrict the logging of events in the appender - override the method. - - - - - - Append a bulk array of logging events. - - the array of logging events - - - This base class implementation calls the - method for each element in the bulk array. - - - A sub class that can better process a bulk array of events should - override this method in addition to . - - - - - - Called before as a precondition. - - - - This method is called by - before the call to the abstract method. - - - This method can be overridden in a subclass to extend the checks - made before the event is passed to the method. - - - A subclass should ensure that they delegate this call to - this base class if it is overridden. - - - true if the call to should proceed. - - - - Renders the to a string. - - The event to render. - The event rendered as a string. - - - Helper method to render a to - a string. This appender must have a - set to render the to - a string. - - If there is exception data in the logging event and - the layout does not process the exception, this method - will append the exception text to the rendered string. - - - Where possible use the alternative version of this method - . - That method streams the rendering onto an existing Writer - which can give better performance if the caller already has - a open and ready for writing. - - - - - - Renders the to a string. - - The event to render. - The TextWriter to write the formatted event to - - - Helper method to render a to - a string. This appender must have a - set to render the to - a string. - - If there is exception data in the logging event and - the layout does not process the exception, this method - will append the exception text to the rendered string. - - - Use this method in preference to - where possible. If, however, the caller needs to render the event - to a string then does - provide an efficient mechanism for doing so. - - - - - - The layout of this appender. - - - See for more information. - - - - - The name of this appender. - - - See for more information. - - - - - The level threshold of this appender. - - - - There is no level threshold filtering by default. - - - See for more information. - - - - - - It is assumed and enforced that errorHandler is never null. - - - - It is assumed and enforced that errorHandler is never null. - - - See for more information. - - - - - - The first filter in the filter chain. - - - - Set to null initially. - - - See for more information. - - - - - - The last filter in the filter chain. - - - See for more information. - - - - - Flag indicating if this appender is closed. - - - See for more information. - - - - - The guard prevents an appender from repeatedly calling its own DoAppend method - - - - - StringWriter used to render events - - - - - The fully qualified type of the AppenderSkeleton class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the threshold of this appender. - - - The threshold of the appender. - - - - All log events with lower level than the threshold level are ignored - by the appender. - - - In configuration files this option is specified by setting the - value of the option to a level - string, such as "DEBUG", "INFO" and so on. - - - - - - Gets or sets the for this appender. - - The of the appender - - - The provides a default - implementation for the property. - - - - - - The filter chain. - - The head of the filter chain filter chain. - - - Returns the head Filter. The Filters are organized in a linked list - and so all Filters on this Appender are available through the result. - - - - - - Gets or sets the for this appender. - - The layout of the appender. - - - See for more information. - - - - - - - Gets or sets the name of this appender. - - The name of the appender. - - - The name uniquely identifies the appender. - - - - - - Tests if this appender requires a to be set. - - - - In the rather exceptional case, where the appender - implementation admits a layout but can also work without it, - then the appender should return true. - - - This default implementation always returns false. - - - - true if the appender requires a layout object, otherwise false. - - - - - The default buffer size. - - - The default size of the cyclic buffer used to store events. - This is set to 512 by default. - - - - - Initializes a new instance of the class. - - - - Protected default constructor to allow subclassing. - - - - - - Initializes a new instance of the class. - - the events passed through this appender must be - fixed by the time that they arrive in the derived class' SendBuffer method. - - - Protected constructor to allow subclassing. - - - The should be set if the subclass - expects the events delivered to be fixed even if the - is set to zero, i.e. when no buffering occurs. - - - - - - Flush the currently buffered events - - - - Flushes any events that have been buffered. - - - If the appender is buffering in mode then the contents - of the buffer will NOT be flushed to the appender. - - - - - - Flush the currently buffered events - - set to true to flush the buffer of lossy events - - - Flushes events that have been buffered. If is - false then events will only be flushed if this buffer is non-lossy mode. - - - If the appender is buffering in mode then the contents - of the buffer will only be flushed if is true. - In this case the contents of the buffer will be tested against the - and if triggering will be output. All other buffered - events will be discarded. - - - If is true then the buffer will always - be emptied by calling this method. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Close this appender instance. - - - - Close this appender instance. If this appender is marked - as not then the remaining events in - the buffer must be sent when the appender is closed. - - - - - - This method is called by the method. - - the event to log - - - Stores the in the cyclic buffer. - - - The buffer will be sent (i.e. passed to the - method) if one of the following conditions is met: - - - - The cyclic buffer is full and this appender is - marked as not lossy (see ) - - - An is set and - it is triggered for the - specified. - - - - Before the event is stored in the buffer it is fixed - (see ) to ensure that - any data referenced by the event will be valid when the buffer - is processed. - - - - - - Sends the contents of the buffer. - - The first logging event. - The buffer containing the events that need to be send. - - - The subclass must override . - - - - - - Sends the events. - - The events that need to be send. - - - The subclass must override this method to process the buffered events. - - - - - - The size of the cyclic buffer used to hold the logging events. - - - Set to by default. - - - - - The cyclic buffer used to store the logging events. - - - - - The triggering event evaluator that causes the buffer to be sent immediately. - - - The object that is used to determine if an event causes the entire - buffer to be sent immediately. This field can be null, which - indicates that event triggering is not to be done. The evaluator - can be set using the property. If this appender - has the ( property) set to - true then an must be set. - - - - - Indicates if the appender should overwrite events in the cyclic buffer - when it becomes full, or if the buffer should be flushed when the - buffer is full. - - - If this field is set to true then an must - be set. - - - - - The triggering event evaluator filters discarded events. - - - The object that is used to determine if an event that is discarded should - really be discarded or if it should be sent to the appenders. - This field can be null, which indicates that all discarded events will - be discarded. - - - - - Value indicating which fields in the event should be fixed - - - By default all fields are fixed - - - - - The events delivered to the subclass must be fixed. - - - - - Gets or sets a value that indicates whether the appender is lossy. - - - true if the appender is lossy, otherwise false. The default is false. - - - - This appender uses a buffer to store logging events before - delivering them. A triggering event causes the whole buffer - to be send to the remote sink. If the buffer overruns before - a triggering event then logging events could be lost. Set - to false to prevent logging events - from being lost. - - If is set to true then an - must be specified. - - - - - Gets or sets the size of the cyclic buffer used to hold the - logging events. - - - The size of the cyclic buffer used to hold the logging events. - - - - The option takes a positive integer - representing the maximum number of logging events to collect in - a cyclic buffer. When the is reached, - oldest events are deleted as new events are added to the - buffer. By default the size of the cyclic buffer is 512 events. - - - If the is set to a value less than - or equal to 1 then no buffering will occur. The logging event - will be delivered synchronously (depending on the - and properties). Otherwise the event will - be buffered. - - - - - - Gets or sets the that causes the - buffer to be sent immediately. - - - The that causes the buffer to be - sent immediately. - - - - The evaluator will be called for each event that is appended to this - appender. If the evaluator triggers then the current buffer will - immediately be sent (see ). - - If is set to true then an - must be specified. - - - - - Gets or sets the value of the to use. - - - The value of the to use. - - - - The evaluator will be called for each event that is discarded from this - appender. If the evaluator triggers then the current buffer will immediately - be sent (see ). - - - - - - Gets or sets a value indicating if only part of the logging event data - should be fixed. - - - true if the appender should only fix part of the logging event - data, otherwise false. The default is false. - - - - Setting this property to true will cause only part of the - event data to be fixed and serialized. This will improve performance. - - - See for more information. - - - - - - Gets or sets a the fields that will be fixed in the event - - - The event fields that will be fixed before the event is buffered - - - - The logging event needs to have certain thread specific values - captured before it can be buffered. See - for details. - - - - - - - Initializes a new instance of the class. - - - Public default constructor to initialize a new instance of this class. - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Override the parent method to close the database - - - - Closes the database command and database connection. - - - - - - Inserts the events into the database. - - The events to insert into the database. - - - Insert all the events specified in the - array into the database. - - - - - - Adds a parameter to the command. - - The parameter to add to the command. - - - Adds a parameter to the ordered list of command parameters. - - - - - - Writes the events to the database using the transaction specified. - - The transaction that the events will be executed under. - The array of events to insert into the database. - - - The transaction argument can be null if the appender has been - configured not to use transactions. See - property for more information. - - - - - - Formats the log message into database statement text. - - The event being logged. - - This method can be overridden by subclasses to provide - more control over the format of the database statement. - - - Text that can be passed to a . - - - - - Creates an instance used to connect to the database. - - - This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). - - The of the object. - The connectionString output from the ResolveConnectionString method. - An instance with a valid connection string. - - - - Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey - property. - - - ConnectiongStringName is only supported on .NET 2.0 and higher. - - Additional information describing the connection string. - A connection string used to connect to the database. - - - - Retrieves the class type of the ADO.NET provider. - - - - Gets the Type of the ADO.NET provider to use to connect to the - database. This method resolves the type specified in the - property. - - - Subclasses can override this method to return a different type - if necessary. - - - The of the ADO.NET provider - - - - Prepares the database command and initialize the parameters. - - - - - Connects to the database. - - - - - Cleanup the existing command. - - - If true, a message will be written using LogLog.Warn if an exception is encountered when calling Dispose. - - - - - Cleanup the existing connection. - - - Calls the IDbConnection's method. - - - - - Flag to indicate if we are using a command object - - - - Set to true when the appender is to use a prepared - statement or stored procedure to insert into the database. - - - - - - The list of objects. - - - - The list of objects. - - - - - - The security context to use for privileged calls - - - - - The that will be used - to insert logging events into a database. - - - - - The database command. - - - - - Database connection string. - - - - - The appSettings key from App.Config that contains the connection string. - - - - - String type name of the type name. - - - - - The text of the command. - - - - - The command type. - - - - - Indicates whether to use transactions when writing to the database. - - - - - Indicates whether to use transactions when writing to the database. - - - - - The fully qualified type of the AdoNetAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the database connection string that is used to connect to - the database. - - - The database connection string used to connect to the database. - - - - The connections string is specific to the connection type. - See for more information. - - - Connection string for MS Access via ODBC: - "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" - - Another connection string for MS Access via ODBC: - "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" - - Connection string for MS Access via OLE DB: - "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" - - - - - The appSettings key from App.Config that contains the connection string. - - - - - Gets or sets the type name of the connection - that should be created. - - - The type name of the connection. - - - - The type name of the ADO.NET provider to use. - - - The default is to use the OLE DB provider. - - - Use the OLE DB Provider. This is the default value. - System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Use the MS SQL Server Provider. - System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Use the ODBC Provider. - Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral - This is an optional package that you can download from - http://msdn.microsoft.com/downloads - search for ODBC .NET Data Provider. - - Use the Oracle Provider. - System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - This is an optional package that you can download from - http://msdn.microsoft.com/downloads - search for .NET Managed Provider for Oracle. - - - - - Gets or sets the command text that is used to insert logging events - into the database. - - - The command text used to insert logging events into the database. - - - - Either the text of the prepared statement or the - name of the stored procedure to execute to write into - the database. - - - The property determines if - this text is a prepared statement or a stored procedure. - - - - - - Gets or sets the command type to execute. - - - The command type to execute. - - - - This value may be either (System.Data.CommandType.Text) to specify - that the is a prepared statement to execute, - or (System.Data.CommandType.StoredProcedure) to specify that the - property is the name of a stored procedure - to execute. - - - The default value is (System.Data.CommandType.Text). - - - - - - Should transactions be used to insert logging events in the database. - - - true if transactions should be used to insert logging events in - the database, otherwise false. The default value is true. - - - - Gets or sets a value that indicates whether transactions should be used - to insert logging events in the database. - - - When set a single transaction will be used to insert the buffered events - into the database. Otherwise each event will be inserted without using - an explicit transaction. - - - - - - Gets or sets the used to call the NetSend method. - - - The used to call the NetSend method. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Should this appender try to reconnect to the database on error. - - - true if the appender should try to reconnect to the database after an - error has occurred, otherwise false. The default value is false, - i.e. not to try to reconnect. - - - - The default behaviour is for the appender not to try to reconnect to the - database if an error occurs. Subsequent logging events are discarded. - - - To force the appender to attempt to reconnect to the database set this - property to true. - - - When the appender attempts to connect to the database there may be a - delay of up to the connection timeout specified in the connection string. - This delay will block the calling application's thread. - Until the connection can be reestablished this potential delay may occur multiple times. - - - - - - Gets or sets the underlying . - - - The underlying . - - - creates a to insert - logging events into a database. Classes deriving from - can use this property to get or set this . Use the - underlying returned from if - you require access beyond that which provides. - - - - - Parameter type used by the . - - - - This class provides the basic database parameter properties - as defined by the interface. - - This type can be subclassed to provide database specific - functionality. The two methods that are called externally are - and . - - - - - - Initializes a new instance of the class. - - - Default constructor for the AdoNetAppenderParameter class. - - - - - Prepare the specified database command object. - - The command to prepare. - - - Prepares the database command object by adding - this parameter to its collection of parameters. - - - - - - Renders the logging event and set the parameter value in the command. - - The command containing the parameter. - The event to be rendered. - - - Renders the logging event using this parameters layout - object. Sets the value of the parameter on the command object. - - - - - - The name of this parameter. - - - - - The database type for this parameter. - - - - - Flag to infer type rather than use the DbType - - - - - The precision for this parameter. - - - - - The scale for this parameter. - - - - - The size for this parameter. - - - - - The to use to render the - logging event into an object for this parameter. - - - - - Gets or sets the name of this parameter. - - - The name of this parameter. - - - - The name of this parameter. The parameter name - must match up to a named parameter to the SQL stored procedure - or prepared statement. - - - - - - Gets or sets the database type for this parameter. - - - The database type for this parameter. - - - - The database type for this parameter. This property should - be set to the database type from the - enumeration. See . - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the type from the value. - - - - - - - Gets or sets the precision for this parameter. - - - The precision for this parameter. - - - - The maximum number of digits used to represent the Value. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the precision from the value. - - - - - - - Gets or sets the scale for this parameter. - - - The scale for this parameter. - - - - The number of decimal places to which Value is resolved. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the scale from the value. - - - - - - - Gets or sets the size for this parameter. - - - The size for this parameter. - - - - The maximum size, in bytes, of the data within the column. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the size from the value. - - - For BLOB data types like VARCHAR(max) it may be impossible to infer the value automatically, use -1 as the size in this case. - - - - - - - Gets or sets the to use to - render the logging event into an object for this - parameter. - - - The used to render the - logging event into an object for this parameter. - - - - The that renders the value for this - parameter. - - - The can be used to adapt - any into a - for use in the property. - - - - - - Appends logging events to the terminal using ANSI color escape sequences. - - - - AnsiColorTerminalAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. It also allows the color of a specific level of message to be set. - - - This appender expects the terminal to understand the VT100 control set - in order to interpret the color codes. If the terminal or console does not - understand the control codes the behavior is not defined. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes each message to the System.Console.Out or - System.Console.Error that is set at the time the event is appended. - Therefore it is possible to programmatically redirect the output of this appender - (for example NUnit does this to capture program output). While this is the desired - behavior of this appender it may have security implications in your application. - - - When configuring the ANSI colored terminal appender, a mapping should be - specified to map a logging level to a color. For example: - - - - - - - - - - - - - - - The Level is the standard log4net logging level and ForeColor and BackColor can be any - of the following values: - - Blue - Green - Red - White - Yellow - Purple - Cyan - - These color values cannot be combined together to make new colors. - - - The attributes can be any combination of the following: - - Brightforeground is brighter - Dimforeground is dimmer - Underscoremessage is underlined - Blinkforeground is blinking (does not work on all terminals) - Reverseforeground and background are reversed - Hiddenoutput is hidden - Strikethroughmessage has a line through it - - While any of these attributes may be combined together not all combinations - work well together, for example setting both Bright and Dim attributes makes - no sense. - - - Patrick Wagstrom - Nicko Cadell - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Ansi code to reset terminal - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Add a mapping of level to color - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the foreground and background colours - for a level. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to color mappings set on this appender. - - - - - - Flag to write output to the error stream rather than the standard output stream - - - - - Mapping from level object to color value - - - - - Target is the value of the console output stream. - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The enum of possible display attributes - - - - The following flags can be combined together to - form the ANSI color attributes. - - - - - - - text is bright - - - - - text is dim - - - - - text is underlined - - - - - text is blinking - - - Not all terminals support this attribute - - - - - text and background colors are reversed - - - - - text is hidden - - - - - text is displayed with a strikethrough - - - - - text color is light - - - - - The enum of possible foreground or background color values for - use with the color mapping method - - - - The output can be in one for the following ANSI colors. - - - - - - - color is black - - - - - color is red - - - - - color is green - - - - - color is yellow - - - - - color is blue - - - - - color is magenta - - - - - color is cyan - - - - - color is white - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and the color it should be displayed in. - - - - - - An entry in the - - - - This is an abstract base class for types that are stored in the - object. - - - Nicko Cadell - - - - Default protected constructor - - - - Default protected constructor - - - - - - Initialize any options defined on this entry - - - - Should be overridden by any classes that need to initialise based on their options - - - - - - The level that is the key for this mapping - - - The that is the key for this mapping - - - - Get or set the that is the key for this - mapping subclass. - - - - - - Initialize the options for the object - - - - Combine the and together - and append the attributes. - - - - - - The mapped foreground color for the specified level - - - - Required property. - The mapped foreground color for the specified level - - - - - - The mapped background color for the specified level - - - - Required property. - The mapped background color for the specified level - - - - - - The color attributes for the specified level - - - - Required property. - The color attributes for the specified level - - - - - - The combined , and - suitable for setting the ansi terminal color. - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a AppenderCollection instance. - - list to create a readonly wrapper arround - - An AppenderCollection wrapper that is read-only. - - - - - An empty readonly static AppenderCollection - - - - - Initializes a new instance of the AppenderCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the AppenderCollection class - that has the specified initial capacity. - - - The number of elements that the new AppenderCollection is initially capable of storing. - - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified AppenderCollection. - - The AppenderCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - - Copies the entire AppenderCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire AppenderCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the AppenderCollection. - - The to be added to the end of the AppenderCollection. - The index at which the value has been added. - - - - Removes all elements from the AppenderCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the AppenderCollection. - - The to check for. - true if is found in the AppenderCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the AppenderCollection. - - The to locate in the AppenderCollection. - - The zero-based index of the first occurrence of - in the entire AppenderCollection, if found; otherwise, -1. - - - - - Inserts an element into the AppenderCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the AppenderCollection. - - The to remove from the AppenderCollection. - - The specified was not found in the AppenderCollection. - - - - - Removes the element at the specified index of the AppenderCollection. - - The zero-based index of the element to remove. - - is less than zero - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the AppenderCollection. - - An for the entire AppenderCollection. - - - - Adds the elements of another AppenderCollection to the current AppenderCollection. - - The AppenderCollection whose elements should be added to the end of the current AppenderCollection. - The new of the AppenderCollection. - - - - Adds the elements of a array to the current AppenderCollection. - - The array whose elements should be added to the end of the AppenderCollection. - The new of the AppenderCollection. - - - - Adds the elements of a collection to the current AppenderCollection. - - The collection whose elements should be added to the end of the AppenderCollection. - The new of the AppenderCollection. - - - - Sets the capacity to the actual number of elements. - - - - - Return the collection elements as an array - - the array - - - - is less than zero - -or- - is equal to or greater than . - - - - - is less than zero - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the AppenderCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - The zero-based index of the element to get or set. - - is less than zero - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false - - - - Gets or sets the number of elements the AppenderCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - - A value - - - - - Supports simple iteration over a . - - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - - - - - Appends log events to the ASP.NET system. - - - - - Diagnostic information and tracing messages that you specify are appended to the output - of the page that is sent to the requesting browser. Optionally, you can view this information - from a separate trace viewer (Trace.axd) that displays trace information for every page in a - given application. - - - Trace statements are processed and displayed only when tracing is enabled. You can control - whether tracing is displayed to a page, to the trace viewer, or both. - - - The logging event is passed to the or - method depending on the level of the logging event. - The event's logger name is the default value for the category parameter of the Write/Warn method. - - - Nicko Cadell - Gert Driesen - Ron Grabowski - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Write the logging event to the ASP.NET trace - - the event to log - - - Write the logging event to the ASP.NET trace - HttpContext.Current.Trace - (). - - - - - - Defaults to %logger - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The category parameter sent to the Trace method. - - - - Defaults to %logger which will use the logger name of the current - as the category parameter. - - - - - - - - Buffers events and then forwards them to attached appenders. - - - - The events are buffered in this appender until conditions are - met to allow the appender to deliver the events to the attached - appenders. See for the - conditions that cause the buffer to be sent. - - The forwarding appender can be used to specify different - thresholds and filters for the same appender at different locations - within the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Interface for attaching appenders to objects. - - - - Interface for attaching, removing and retrieving appenders. - - - Nicko Cadell - Gert Driesen - - - - Attaches an appender. - - The appender to add. - - - Add the specified appender. The implementation may - choose to allow or deny duplicate appenders. - - - - - - Gets an attached appender with the specified name. - - The name of the appender to get. - - The appender with the name specified, or null if no appender with the - specified name is found. - - - - Returns an attached appender with the specified. - If no appender with the specified name is found null will be - returned. - - - - - - Removes all attached appenders. - - - - Removes and closes all attached appenders - - - - - - Removes the specified appender from the list of attached appenders. - - The appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Gets all attached appenders. - - - A collection of attached appenders. - - - - Gets a collection of attached appenders. - If there are no attached appenders the - implementation should return an empty - collection rather than null. - - - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Send the events. - - The events that need to be send. - - - Forwards the events to the attached appenders. - - - - - - Adds an to the list of appenders of this - instance. - - The to add to this appender. - - - If the specified is already in the list of - appenders, then it won't be added again. - - - - - - Looks for the appender with the specified name. - - The name of the appender to lookup. - - The appender with the specified name, or null. - - - - Get the named appender attached to this buffering appender. - - - - - - Removes all previously added appenders from this appender. - - - - This is useful when re-reading configuration information. - - - - - - Removes the specified appender from the list of appenders. - - The appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Implementation of the interface - - - - - Gets the appenders contained in this appender as an - . - - - If no appenders can be found, then an - is returned. - - - A collection of the appenders in this appender. - - - - - Appends logging events to the console. - - - - ColoredConsoleAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. It also allows the color of a specific type of message to be set. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes directly to the application's attached console - not to the System.Console.Out or System.Console.Error TextWriter. - The System.Console.Out and System.Console.Error streams can be - programmatically redirected (for example NUnit does this to capture program output). - This appender will ignore these redirections because it needs to use Win32 - API calls to colorize the output. To respect these redirections the - must be used. - - - When configuring the colored console appender, mapping should be - specified to map a logging level to a color. For example: - - - - - - - - - - - - - - The Level is the standard log4net logging level and ForeColor and BackColor can be any - combination of the following values: - - Blue - Green - Red - White - Yellow - Purple - Cyan - HighIntensity - - - - Rick Hobbs - Nicko Cadell - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - flag set to true to write to the console error stream - - When is set to true, output is written to - the standard error output stream. Otherwise, output is written to the standard - output stream. - - - - - Add a mapping of level to color - done by the config file - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the foreground and background colors - for a level. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to color mappings set on this appender. - - - - - - Flag to write output to the error stream rather than the standard output stream - - - - - Mapping from level object to color value - - - - - The console output stream writer to write to - - - - This writer is not thread safe. - - - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The enum of possible color values for use with the color mapping method - - - - The following flags can be combined together to - form the colors. - - - - - - - color is blue - - - - - color is green - - - - - color is red - - - - - color is white - - - - - color is yellow - - - - - color is purple - - - - - color is cyan - - - - - color is intensified - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and the color it should be displayed in. - - - - - - Initialize the options for the object - - - - Combine the and together. - - - - - - The mapped foreground color for the specified level - - - - Required property. - The mapped foreground color for the specified level. - - - - - - The mapped background color for the specified level - - - - Required property. - The mapped background color for the specified level. - - - - - - The combined and suitable for - setting the console color. - - - - - Appends logging events to the console. - - - - ConsoleAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes each message to the System.Console.Out or - System.Console.Error that is set at the time the event is appended. - Therefore it is possible to programmatically redirect the output of this appender - (for example NUnit does this to capture program output). While this is the desired - behavior of this appender it may have security implications in your application. - - - Nicko Cadell - Gert Driesen - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - flag set to true to write to the console error stream - - When is set to true, output is written to - the standard error output stream. Otherwise, output is written to the standard - output stream. - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appends log events to the system. - - - - The application configuration file can be used to control what listeners - are actually used. See the MSDN documentation for the - class for details on configuring the - debug system. - - - Events are written using the - method. The event's logger name is passed as the value for the category name to the Write method. - - - Nicko Cadell - - - - Initializes a new instance of the . - - - - Default constructor. - - - - - - Initializes a new instance of the - with a specified layout. - - The layout to use with this appender. - - - Obsolete constructor. - - - - - - Writes the logging event to the system. - - The event to log. - - - Writes the logging event to the system. - If is true then the - is called. - - - - - - Immediate flush means that the underlying writer or output stream - will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logs events are not actually written to persistent media if and - when the application crashes. - - - The default value is true. - - - - - Gets or sets a value that indicates whether the appender will - flush at the end of each write. - - - The default behavior is to flush at the end of each - write. If the option is set tofalse, then the underlying - stream can defer writing to physical medium to a later time. - - - Avoiding the flush operation at the end of each append results - in a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Writes events to the system event log. - - - - The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. - See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog - - - The EventID of the event log entry can be - set using the EventID property () - on the . - - - The Category of the event log entry can be - set using the Category property () - on the . - - - There is a limit of 32K characters for an event log message - - - When configuring the EventLogAppender a mapping can be - specified to map a logging level to an event log entry type. For example: - - - <mapping> - <level value="ERROR" /> - <eventLogEntryType value="Error" /> - </mapping> - <mapping> - <level value="DEBUG" /> - <eventLogEntryType value="Information" /> - </mapping> - - - The Level is the standard log4net logging level and eventLogEntryType can be any value - from the enum, i.e.: - - Erroran error event - Warninga warning event - Informationan informational event - - - - Aspi Havewala - Douglas de la Torre - Nicko Cadell - Gert Driesen - Thomas Voss - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initializes a new instance of the class - with the specified . - - The to use with this appender. - - - Obsolete constructor. - - - - - - Add a mapping of level to - done by the config file - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the event log entry type for a level. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Create an event log source - - - Uses different API calls under NET_2_0 - - - - - This method is called by the - method. - - the event to log - - Writes the event to the system event log using the - . - - If the event has an EventID property (see ) - set then this integer will be used as the event log event id. - - - There is a limit of 32K characters for an event log message - - - - - - Get the equivalent for a - - the Level to convert to an EventLogEntryType - The equivalent for a - - Because there are fewer applicable - values to use in logging levels than there are in the - this is a one way mapping. There is - a loss of information during the conversion. - - - - - The log name is the section in the event logs where the messages - are stored. - - - - - Name of the application to use when logging. This appears in the - application column of the event log named by . - - - - - The name of the machine which holds the event log. This is - currently only allowed to be '.' i.e. the current machine. - - - - - Mapping from level object to EventLogEntryType - - - - - The security context to use for privileged calls - - - - - The event ID to use unless one is explicitly specified via the LoggingEvent's properties. - - - - - The event category to use unless one is explicitly specified via the LoggingEvent's properties. - - - - - The fully qualified type of the EventLogAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - The maximum size supported by default. - - - http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx - The 32766 documented max size is two bytes shy of 32K (I'm assuming 32766 - may leave space for a two byte null terminator of #0#0). The 32766 max - length is what the .NET 4.0 source code checks for, but this is WRONG! - Strings with a length > 31839 on Windows Vista or higher can CORRUPT - the event log! See: System.Diagnostics.EventLogInternal.InternalWriteEvent() - for the use of the 32766 max size. - - - - - The maximum size supported by a windows operating system that is vista - or newer. - - - See ReportEvent API: - http://msdn.microsoft.com/en-us/library/aa363679(VS.85).aspx - ReportEvent's lpStrings parameter: - "A pointer to a buffer containing an array of - null-terminated strings that are merged into the message before Event Viewer - displays the string to the user. This parameter must be a valid pointer - (or NULL), even if wNumStrings is zero. Each string is limited to 31,839 characters." - - Going beyond the size of 31839 will (at some point) corrupt the event log on Windows - Vista or higher! It may succeed for a while...but you will eventually run into the - error: "System.ComponentModel.Win32Exception : A device attached to the system is - not functioning", and the event log will then be corrupt (I was able to corrupt - an event log using a length of 31877 on Windows 7). - - The max size for Windows Vista or higher is documented here: - http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx. - Going over this size may succeed a few times but the buffer will overrun and - eventually corrupt the log (based on testing). - - The maxEventMsgSize size is based on the max buffer size of the lpStrings parameter of the ReportEvent API. - The documented max size for EventLog.WriteEntry for Windows Vista and higher is 31839, but I'm leaving room for a - terminator of #0#0, as we cannot see the source of ReportEvent (though we could use an API monitor to examine the - buffer, given enough time). - - - - - The maximum size that the operating system supports for - a event log message. - - - Used to determine the maximum string length that can be written - to the operating system event log and eventually truncate a string - that exceeds the limits. - - - - - This method determines the maximum event log message size allowed for - the current environment. - - - - - - The name of the log where messages will be stored. - - - The string name of the log where messages will be stored. - - - This is the name of the log as it appears in the Event Viewer - tree. The default value is to log into the Application - log, this is where most applications write their events. However - if you need a separate log for your application (or applications) - then you should set the appropriately. - This should not be used to distinguish your event log messages - from those of other applications, the - property should be used to distinguish events. This property should be - used to group together events into a single log. - - - - - - Property used to set the Application name. This appears in the - event logs when logging. - - - The string used to distinguish events from different sources. - - - Sets the event log source property. - - - - - This property is used to return the name of the computer to use - when accessing the event logs. Currently, this is the current - computer, denoted by a dot "." - - - The string name of the machine holding the event log that - will be logged into. - - - This property cannot be changed. It is currently set to '.' - i.e. the local machine. This may be changed in future. - - - - - Gets or sets the used to write to the EventLog. - - - The used to write to the EventLog. - - - - The system security context used to write to the EventLog. - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. - - - - The EventID of the event log entry will normally be - set using the EventID property () - on the . - This property provides the fallback value which defaults to 0. - - - - - - Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. - - - - The Category of the event log entry will normally be - set using the Category property () - on the . - This property provides the fallback value which defaults to 0. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and its event log entry type. - - - - - - The for this entry - - - - Required property. - The for this entry - - - - - - Appends logging events to a file. - - - - Logging events are sent to the file specified by - the property. - - - The file can be opened in either append or overwrite mode - by specifying the property. - If the file path is relative it is taken as relative from - the application base directory. The file encoding can be - specified by setting the property. - - - The layout's and - values will be written each time the file is opened and closed - respectively. If the property is - then the file may contain multiple copies of the header and footer. - - - This appender will first try to open the file for writing when - is called. This will typically be during configuration. - If the file cannot be opened for writing the appender will attempt - to open the file again each time a message is logged to the appender. - If the file cannot be opened for writing when a message is logged then - the message will be discarded by this appender. - - - The supports pluggable file locking models via - the property. - The default behavior, implemented by - is to obtain an exclusive write lock on the file until this appender is closed. - The alternative models only hold a - write lock while the appender is writing a logging event () - or synchronize by using a named system wide Mutex (). - - - All locking strategies have issues and you should seriously consider using a different strategy that - avoids having multiple processes logging to the same file. - - - Nicko Cadell - Gert Driesen - Rodrigo B. de Oliveira - Douglas de la Torre - Niall Daley - - - - Sends logging events to a . - - - - An Appender that writes to a . - - - This appender may be used stand alone if initialized with an appropriate - writer, however it is typically used as a base class for an appender that - can open a to write to. - - - Nicko Cadell - Gert Driesen - Douglas de la Torre - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initializes a new instance of the class and - sets the output destination to a new initialized - with the specified . - - The layout to use with this appender. - The to output to. - - - Obsolete constructor. - - - - - - Initializes a new instance of the class and sets - the output destination to the specified . - - The layout to use with this appender - The to output to - - The must have been previously opened. - - - - Obsolete constructor. - - - - - - This method determines if there is a sense in attempting to append. - - - - This method checks if an output target has been set and if a - layout has been set. - - - false if any of the preconditions fail. - - - - This method is called by the - method. - - The event to log. - - - Writes a log statement to the output stream if the output stream exists - and is writable. - - - The format of the output will depend on the appender's layout. - - - - - - This method is called by the - method. - - The array of events to log. - - - This method writes all the bulk logged events to the output writer - before flushing the stream. - - - - - - Close this appender instance. The underlying stream or writer is also closed. - - - Closed appenders cannot be reused. - - - - - Writes the footer and closes the underlying . - - - - Writes the footer and closes the underlying . - - - - - - Closes the underlying . - - - - Closes the underlying . - - - - - - Clears internal references to the underlying - and other variables. - - - - Subclasses can override this method for an alternate closing behavior. - - - - - - Writes a footer as produced by the embedded layout's property. - - - - Writes a footer as produced by the embedded layout's property. - - - - - - Writes a header produced by the embedded layout's property. - - - - Writes a header produced by the embedded layout's property. - - - - - - Called to allow a subclass to lazily initialize the writer - - - - This method is called when an event is logged and the or - have not been set. This allows a subclass to - attempt to initialize the writer multiple times. - - - - - - This is the where logging events - will be written to. - - - - - Immediate flush means that the underlying - or output stream will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logging events are not actually persisted if and when the application - crashes. - - - The default value is true. - - - - - - The fully qualified type of the TextWriterAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or set whether the appender will flush at the end - of each append operation. - - - - The default behavior is to flush at the end of each - append operation. - - - If this option is set to false, then the underlying - stream can defer persisting the logging event to a later - time. - - - - Avoiding the flush operation at the end of each append results in - a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - Sets the where the log output will go. - - - - The specified must be open and writable. - - - The will be closed when the appender - instance is closed. - - - Note: Logging to an unopened will fail. - - - - - - Gets or set the and the underlying - , if any, for this appender. - - - The for this appender. - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Gets or sets the where logging events - will be written to. - - - The where logging events are written. - - - - This is the where logging events - will be written to. - - - - - - Default constructor - - - - Default constructor - - - - - - Construct a new appender using the layout, file and append mode. - - the layout to use with this appender - the full path to the file to write to - flag to indicate if the file should be appended to - - - Obsolete constructor. - - - - - - Construct a new appender using the layout and file specified. - The file will be appended to. - - the layout to use with this appender - the full path to the file to write to - - - Obsolete constructor. - - - - - - Activate the options on the file appender. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - This will cause the file to be opened. - - - - - - Closes any previously opened file and calls the parent's . - - - - Resets the filename and the file stream. - - - - - - Called to initialize the file writer - - - - Will be called for each logged message until the file is - successfully opened. - - - - - - This method is called by the - method. - - The event to log. - - - Writes a log statement to the output stream if the output stream exists - and is writable. - - - The format of the output will depend on the appender's layout. - - - - - - This method is called by the - method. - - The array of events to log. - - - Acquires the output file locks once before writing all the events to - the stream. - - - - - - Writes a footer as produced by the embedded layout's property. - - - - Writes a footer as produced by the embedded layout's property. - - - - - - Writes a header produced by the embedded layout's property. - - - - Writes a header produced by the embedded layout's property. - - - - - - Closes the underlying . - - - - Closes the underlying . - - - - - - Closes the previously opened file. - - - - Writes the to the file and then - closes the file. - - - - - - Sets and opens the file where the log output will go. The specified file must be writable. - - The path to the log file. Must be a fully qualified path. - If true will append to fileName. Otherwise will truncate fileName - - - Calls but guarantees not to throw an exception. - Errors are passed to the . - - - - - - Sets and opens the file where the log output will go. The specified file must be writable. - - The path to the log file. Must be a fully qualified path. - If true will append to fileName. Otherwise will truncate fileName - - - If there was already an opened file, then the previous file - is closed first. - - - This method will ensure that the directory structure - for the specified exists. - - - - - - Sets the quiet writer used for file output - - the file stream that has been opened for writing - - - This implementation of creates a - over the and passes it to the - method. - - - This method can be overridden by sub classes that want to wrap the - in some way, for example to encrypt the output - data using a System.Security.Cryptography.CryptoStream. - - - - - - Sets the quiet writer being used. - - the writer over the file stream that has been opened for writing - - - This method can be overridden by sub classes that want to - wrap the in some way. - - - - - - Convert a path into a fully qualified path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - - - - Flag to indicate if we should append to the file - or overwrite the file. The default is to append. - - - - - The name of the log file. - - - - - The encoding to use for the file stream. - - - - - The security context to use for privileged calls - - - - - The stream to log to. Has added locking semantics - - - - - The locking model to use - - - - - The fully qualified type of the FileAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the path to the file that logging will be written to. - - - The path to the file that logging will be written to. - - - - If the path is relative it is taken as relative from - the application base directory. - - - - - - Gets or sets a flag that indicates whether the file should be - appended to or overwritten. - - - Indicates whether the file should be appended to or overwritten. - - - - If the value is set to false then the file will be overwritten, if - it is set to true then the file will be appended to. - - The default value is true. - - - - - Gets or sets used to write to the file. - - - The used to write to the file. - - - - The default encoding set is - which is the encoding for the system's current ANSI code page. - - - - - - Gets or sets the used to write to the file. - - - The used to write to the file. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Gets or sets the used to handle locking of the file. - - - The used to lock the file. - - - - Gets or sets the used to handle locking of the file. - - - There are three built in locking models, , and . - The first locks the file from the start of logging to the end, the - second locks only for the minimal amount of time when logging each message - and the last synchronizes processes using a named system wide Mutex. - - - The default locking model is the . - - - - - - Write only that uses the - to manage access to an underlying resource. - - - - - True asynchronous writes are not supported, the implementation forces a synchronous write. - - - - - Exception base type for log4net. - - - - This type extends . It - does not add any new functionality but does differentiate the - type of exception being thrown. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - A message to include with the exception. - - - Initializes a new instance of the class with - the specified message. - - - - - - Constructor - - A message to include with the exception. - A nested exception to include. - - - Initializes a new instance of the class - with the specified message and inner exception. - - - - - - Serialization constructor - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Locking model base class - - - - Base class for the locking models available to the derived loggers. - - - - - - Open the output file - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Acquire the lock on the file in preparation for writing to it. - Return a stream pointing to the file. - must be called to release the lock on the output file. - - - - - - Release the lock on the file - - - - Release the lock on the file. No further writes will be made to the - stream until is called again. - - - - - - Helper method that creates a FileStream under CurrentAppender's SecurityContext. - - - - Typically called during OpenFile or AcquireLock. - - - If the directory portion of the does not exist, it is created - via Directory.CreateDirecctory. - - - - - - - - - - Helper method to close under CurrentAppender's SecurityContext. - - - Does not set to null. - - - - - - Gets or sets the for this LockingModel - - - The for this LockingModel - - - - The file appender this locking model is attached to and working on - behalf of. - - - The file appender is used to locate the security context and the error handler to use. - - - The value of this property will be set before is - called. - - - - - - Hold an exclusive lock on the output file - - - - Open the file once for writing and hold it open until is called. - Maintains an exclusive lock on the file during this time. - - - - - - Open the file specified and prepare for logging. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Does nothing. The lock is already taken - - - - - - Release the lock on the file - - - - Does nothing. The lock will be released when the file is closed. - - - - - - Acquires the file lock for each write - - - - Opens the file once for each / cycle, - thus holding the lock for the minimal amount of time. This method of locking - is considerably slower than but allows - other processes to move/delete the log file whilst logging continues. - - - - - - Prepares to open the file when the first message is logged. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Acquire the lock on the file in preparation for writing to it. - Return a stream pointing to the file. - must be called to release the lock on the output file. - - - - - - Release the lock on the file - - - - Release the lock on the file. No further writes will be made to the - stream until is called again. - - - - - - Provides cross-process file locking. - - Ron Grabowski - Steve Wranovsky - - - - Open the file specified and prepare for logging. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Does nothing. The lock is already taken - - - - - - - - - - - This appender forwards logging events to attached appenders. - - - - The forwarding appender can be used to specify different thresholds - and filters for the same appender at different locations within the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Forward the logging event to the attached appenders - - The event to log. - - - Delivers the logging event to all the attached appenders. - - - - - - Forward the logging events to the attached appenders - - The array of events to log. - - - Delivers the logging events to all the attached appenders. - - - - - - Adds an to the list of appenders of this - instance. - - The to add to this appender. - - - If the specified is already in the list of - appenders, then it won't be added again. - - - - - - Looks for the appender with the specified name. - - The name of the appender to lookup. - - The appender with the specified name, or null. - - - - Get the named appender attached to this appender. - - - - - - Removes all previously added appenders from this appender. - - - - This is useful when re-reading configuration information. - - - - - - Removes the specified appender from the list of appenders. - - The appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Implementation of the interface - - - - - Gets the appenders contained in this appender as an - . - - - If no appenders can be found, then an - is returned. - - - A collection of the appenders in this appender. - - - - - Logs events to a local syslog service. - - - - This appender uses the POSIX libc library functions openlog, syslog, and closelog. - If these functions are not available on the local system then this appender will not work! - - - The functions openlog, syslog, and closelog are specified in SUSv2 and - POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. - - - This appender talks to a local syslog service. If you need to log to a remote syslog - daemon and you cannot configure your local syslog service to do this you may be - able to use the to log via UDP. - - - Syslog messages must have a facility and and a severity. The severity - is derived from the Level of the logging event. - The facility must be chosen from the set of defined syslog - values. The facilities list is predefined - and cannot be extended. - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - Rob Lyon - Nicko Cadell - - - - Initializes a new instance of the class. - - - This instance of the class is set up to write - to a local syslog service. - - - - - Add a mapping of level to severity - - The mapping to add - - - Adds a to this appender. - - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to a remote syslog daemon. - - - The format of the output will depend on the appender's layout. - - - - - - Close the syslog when the appender is closed - - - - Close the syslog when the appender is closed - - - - - - Translates a log4net level to a syslog severity. - - A log4net level. - A syslog severity. - - - Translates a log4net level to a syslog severity. - - - - - - Generate a syslog priority. - - The syslog facility. - The syslog severity. - A syslog priority. - - - - The facility. The default facility is . - - - - - The message identity - - - - - Marshaled handle to the identity string. We have to hold on to the - string as the openlog and syslog APIs just hold the - pointer to the ident and dereference it for each log message. - - - - - Mapping from level object to syslog severity - - - - - Open connection to system logger. - - - - - Generate a log message. - - - - The libc syslog method takes a format string and a variable argument list similar - to the classic printf function. As this type of vararg list is not supported - by C# we need to specify the arguments explicitly. Here we have specified the - format string with a single message argument. The caller must set the format - string to "%s". - - - - - - Close descriptor used to write to system logger. - - - - - Message identity - - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - - - - Syslog facility - - - Set to one of the values. The list of - facilities is predefined and cannot be extended. The default value - is . - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - syslog severities - - - - The log4net Level maps to a syslog severity using the - method and the - class. The severity is set on . - - - - - - system is unusable - - - - - action must be taken immediately - - - - - critical conditions - - - - - error conditions - - - - - warning conditions - - - - - normal but significant condition - - - - - informational - - - - - debug-level messages - - - - - syslog facilities - - - - The syslog facility defines which subsystem the logging comes from. - This is set on the property. - - - - - - kernel messages - - - - - random user-level messages - - - - - mail system - - - - - system daemons - - - - - security/authorization messages - - - - - messages generated internally by syslogd - - - - - line printer subsystem - - - - - network news subsystem - - - - - UUCP subsystem - - - - - clock (cron/at) daemon - - - - - security/authorization messages (private) - - - - - ftp daemon - - - - - NTP subsystem - - - - - log audit - - - - - log alert - - - - - clock daemon - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - - - The mapped syslog severity for the specified level - - - - Required property. - The mapped syslog severity for the specified level - - - - - - Stores logging events in an array. - - - - The memory appender stores all the logging events - that are appended in an in-memory array. - - - Use the method to get - the current list of events that have been appended. - - - Use the method to clear the - current list of events. - - - Julian Biddle - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Gets the events that have been logged. - - The events that have been logged - - - Gets the events that have been logged. - - - - - - This method is called by the method. - - the event to log - - Stores the in the events list. - - - - - Clear the list of events - - - Clear the list of events - - - - - The list of events that have been appended. - - - - - Value indicating which fields in the event should be fixed - - - By default all fields are fixed - - - - - Gets or sets a value indicating whether only part of the logging event - data should be fixed. - - - true if the appender should only fix part of the logging event - data, otherwise false. The default is false. - - - - Setting this property to true will cause only part of the event - data to be fixed and stored in the appender, hereby improving performance. - - - See for more information. - - - - - - Gets or sets the fields that will be fixed in the event - - - - The logging event needs to have certain thread specific values - captured before it can be buffered. See - for details. - - - - - - Logs entries by sending network messages using the - native function. - - - - You can send messages only to names that are active - on the network. If you send the message to a user name, - that user must be logged on and running the Messenger - service to receive the message. - - - The receiver will get a top most window displaying the - messages one at a time, therefore this appender should - not be used to deliver a high volume of messages. - - - The following table lists some possible uses for this appender : - - - - - Action - Property Value(s) - - - Send a message to a user account on the local machine - - - = <name of the local machine> - - - = <user name> - - - - - Send a message to a user account on a remote machine - - - = <name of the remote machine> - - - = <user name> - - - - - Send a message to a domain user account - - - = <name of a domain controller | uninitialized> - - - = <user name> - - - - - Send a message to all the names in a workgroup or domain - - - = <workgroup name | domain name>* - - - - - Send a message from the local machine to a remote machine - - - = <name of the local machine | uninitialized> - - - = <name of the remote machine> - - - - - - - Note : security restrictions apply for sending - network messages, see - for more information. - - - - - An example configuration section to log information - using this appender from the local machine, named - LOCAL_PC, to machine OPERATOR_PC : - - - - - - - - - - Nicko Cadell - Gert Driesen - - - - The DNS or NetBIOS name of the server on which the function is to execute. - - - - - The sender of the network message. - - - - - The message alias to which the message should be sent. - - - - - The security context to use for privileged calls - - - - - Initializes the appender. - - - The default constructor initializes all fields to their default values. - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The appender will be ignored if no was specified. - - - The required property was not specified. - - - - This method is called by the method. - - The event to log. - - - Sends the event using a network message. - - - - - - Sends a buffer of information to a registered message alias. - - The DNS or NetBIOS name of the server on which the function is to execute. - The message alias to which the message buffer should be sent - The originator of the message. - The message text. - The length, in bytes, of the message text. - - - The following restrictions apply for sending network messages: - - - - - Platform - Requirements - - - Windows NT - - - No special group membership is required to send a network message. - - - Admin, Accounts, Print, or Server Operator group membership is required to - successfully send a network message on a remote server. - - - - - Windows 2000 or later - - - If you send a message on a domain controller that is running Active Directory, - access is allowed or denied based on the access control list (ACL) for the securable - object. The default ACL permits only Domain Admins and Account Operators to send a network message. - - - On a member server or workstation, only Administrators and Server Operators can send a network message. - - - - - - - For more information see Security Requirements for the Network Management Functions. - - - - - If the function succeeds, the return value is zero. - - - - - - Gets or sets the sender of the message. - - - The sender of the message. - - - If this property is not specified, the message is sent from the local computer. - - - - - Gets or sets the message alias to which the message should be sent. - - - The recipient of the message. - - - This property should always be specified in order to send a message. - - - - - Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. - - - DNS or NetBIOS name of the remote server on which the function is to execute. - - - - For Windows NT 4.0 and earlier, the string should begin with \\. - - - If this property is not specified, the local computer is used. - - - - - - Gets or sets the used to call the NetSend method. - - - The used to call the NetSend method. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appends log events to the OutputDebugString system. - - - - OutputDebugStringAppender appends log events to the - OutputDebugString system. - - - The string is passed to the native OutputDebugString - function. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Write the logging event to the output debug string API - - the event to log - - - Write the logging event to the output debug string API - - - - - - Stub for OutputDebugString native method - - the string to output - - - Stub for OutputDebugString native method - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Logs events to a remote syslog daemon. - - - - The BSD syslog protocol is used to remotely log to - a syslog daemon. The syslogd listens for for messages - on UDP port 514. - - - The syslog UDP protocol is not authenticated. Most syslog daemons - do not accept remote log messages because of the security implications. - You may be able to use the LocalSyslogAppender to talk to a local - syslog service. - - - There is an RFC 3164 that claims to document the BSD Syslog Protocol. - This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. - This appender generates what the RFC calls an "Original Device Message", - i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation - this format of message will be accepted by all current syslog daemon - implementations. The daemon will attach the current time and the source - hostname or IP address to any messages received. - - - Syslog messages must have a facility and and a severity. The severity - is derived from the Level of the logging event. - The facility must be chosen from the set of defined syslog - values. The facilities list is predefined - and cannot be extended. - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - Rob Lyon - Nicko Cadell - - - - Sends logging events as connectionless UDP datagrams to a remote host or a - multicast group using an . - - - - UDP guarantees neither that messages arrive, nor that they arrive in the correct order. - - - To view the logging results, a custom application can be developed that listens for logging - events. - - - When decoding events send via this appender remember to use the same encoding - to decode the events as was used to send the events. See the - property to specify the encoding to use. - - - - This example shows how to log receive logging events that are sent - on IP address 244.0.0.1 and port 8080 to the console. The event is - encoded in the packet as a unicode string and it is decoded as such. - - IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); - UdpClient udpClient; - byte[] buffer; - string loggingEvent; - - try - { - udpClient = new UdpClient(8080); - - while(true) - { - buffer = udpClient.Receive(ref remoteEndPoint); - loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); - Console.WriteLine(loggingEvent); - } - } - catch(Exception e) - { - Console.WriteLine(e.ToString()); - } - - - Dim remoteEndPoint as IPEndPoint - Dim udpClient as UdpClient - Dim buffer as Byte() - Dim loggingEvent as String - - Try - remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) - udpClient = new UdpClient(8080) - While True - buffer = udpClient.Receive(ByRef remoteEndPoint) - loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) - Console.WriteLine(loggingEvent) - Wend - Catch e As Exception - Console.WriteLine(e.ToString()) - End Try - - - An example configuration section to log information using this appender to the - IP 224.0.0.1 on port 8080: - - - - - - - - - - Gert Driesen - Nicko Cadell - - - - Initializes a new instance of the class. - - - The default constructor initializes all fields to their default values. - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The appender will be ignored if no was specified or - an invalid remote or local TCP port number was specified. - - - The required property was not specified. - The TCP port number assigned to or is less than or greater than . - - - - This method is called by the method. - - The event to log. - - - Sends the event using an UDP datagram. - - - Exceptions are passed to the . - - - - - - Closes the UDP connection and releases all resources associated with - this instance. - - - - Disables the underlying and releases all managed - and unmanaged resources associated with the . - - - - - - Initializes the underlying connection. - - - - The underlying is initialized and binds to the - port number from which you intend to communicate. - - - Exceptions are passed to the . - - - - - - The IP address of the remote host or multicast group to which - the logging event will be sent. - - - - - The TCP port number of the remote host or multicast group to - which the logging event will be sent. - - - - - The cached remote endpoint to which the logging events will be sent. - - - - - The TCP port number from which the will communicate. - - - - - The instance that will be used for sending the - logging events. - - - - - The encoding to use for the packet. - - - - - Gets or sets the IP address of the remote host or multicast group to which - the underlying should sent the logging event. - - - The IP address of the remote host or multicast group to which the logging event - will be sent. - - - - Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to - 239.255.255.255). Multicast packets can pass across different networks through routers, so - it is possible to use multicasts in an Internet scenario as long as your network provider - supports multicasting. - - - Hosts that want to receive particular multicast messages must register their interest by joining - the multicast group. Multicast messages are not sent to networks where no host has joined - the multicast group. Class D IP addresses are used for multicast groups, to differentiate - them from normal host addresses, allowing nodes to easily detect if a message is of interest. - - - Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: - - - - - IP Address - Description - - - 224.0.0.1 - - - Sends a message to all system on the subnet. - - - - - 224.0.0.2 - - - Sends a message to all routers on the subnet. - - - - - 224.0.0.12 - - - The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. - - - - - - - A complete list of actually reserved multicast addresses and their owners in the ranges - defined by RFC 3171 can be found at the IANA web site. - - - The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative - addresses. These addresses can be reused with other local groups. Routers are typically - configured with filters to prevent multicast traffic in this range from flowing outside - of the local network. - - - - - - Gets or sets the TCP port number of the remote host or multicast group to which - the underlying should sent the logging event. - - - An integer value in the range to - indicating the TCP port number of the remote host or multicast group to which the logging event - will be sent. - - - The underlying will send messages to this TCP port number - on the remote host or multicast group. - - The value specified is less than or greater than . - - - - Gets or sets the TCP port number from which the underlying will communicate. - - - An integer value in the range to - indicating the TCP port number from which the underlying will communicate. - - - - The underlying will bind to this port for sending messages. - - - Setting the value to 0 (the default) will cause the udp client not to bind to - a local port. - - - The value specified is less than or greater than . - - - - Gets or sets used to write the packets. - - - The used to write the packets. - - - - The used to write the packets. - - - - - - Gets or sets the underlying . - - - The underlying . - - - creates a to send logging events - over a network. Classes deriving from can use this - property to get or set this . Use the underlying - returned from if you require access beyond that which - provides. - - - - - Gets or sets the cached remote endpoint to which the logging events should be sent. - - - The cached remote endpoint to which the logging events will be sent. - - - The method will initialize the remote endpoint - with the values of the and - properties. - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Syslog port 514 - - - - - Initial buffer size - - - - - Maximum buffer size before it is recycled - - - - - Initializes a new instance of the class. - - - This instance of the class is set up to write - to a remote syslog daemon. - - - - - Add a mapping of level to severity - - The mapping to add - - - Add a mapping to this appender. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to a remote syslog daemon. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to syslog severity mappings set on this appender. - - - - - - Translates a log4net level to a syslog severity. - - A log4net level. - A syslog severity. - - - Translates a log4net level to a syslog severity. - - - - - - Generate a syslog priority. - - The syslog facility. - The syslog severity. - A syslog priority. - - - Generate a syslog priority. - - - - - - The facility. The default facility is . - - - - - The message identity - - - - - Mapping from level object to syslog severity - - - - - Message identity - - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - - - - Syslog facility - - - Set to one of the values. The list of - facilities is predefined and cannot be extended. The default value - is . - - - - - syslog severities - - - - The syslog severities. - - - - - - system is unusable - - - - - action must be taken immediately - - - - - critical conditions - - - - - error conditions - - - - - warning conditions - - - - - normal but significant condition - - - - - informational - - - - - debug-level messages - - - - - syslog facilities - - - - The syslog facilities - - - - - - kernel messages - - - - - random user-level messages - - - - - mail system - - - - - system daemons - - - - - security/authorization messages - - - - - messages generated internally by syslogd - - - - - line printer subsystem - - - - - network news subsystem - - - - - UUCP subsystem - - - - - clock (cron/at) daemon - - - - - security/authorization messages (private) - - - - - ftp daemon - - - - - NTP subsystem - - - - - log audit - - - - - log alert - - - - - clock daemon - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - - - The mapped syslog severity for the specified level - - - - Required property. - The mapped syslog severity for the specified level - - - - - - Delivers logging events to a remote logging sink. - - - - This Appender is designed to deliver events to a remote sink. - That is any object that implements the - interface. It delivers the events using .NET remoting. The - object to deliver events to is specified by setting the - appenders property. - - The RemotingAppender buffers events before sending them. This allows it to - make more efficient use of the remoting infrastructure. - - Once the buffer is full the events are still not sent immediately. - They are scheduled to be sent using a pool thread. The effect is that - the send occurs asynchronously. This is very important for a - number of non obvious reasons. The remoting infrastructure will - flow thread local variables (stored in the ), - if they are marked as , across the - remoting boundary. If the server is not contactable then - the remoting infrastructure will clear the - objects from the . To prevent a logging failure from - having side effects on the calling application the remoting call must be made - from a separate thread to the one used by the application. A - thread is used for this. If no thread is available then - the events will block in the thread pool manager until a thread is available. - - Because the events are sent asynchronously using pool threads it is possible to close - this appender before all the queued events have been sent. - When closing the appender attempts to wait until all the queued events have been sent, but - this will timeout after 30 seconds regardless. - - If this appender is being closed because the - event has fired it may not be possible to send all the queued events. During process - exit the runtime limits the time that a - event handler is allowed to run for. If the runtime terminates the threads before - the queued events have been sent then they will be lost. To ensure that all events - are sent the appender must be closed before the application exits. See - for details on how to shutdown - log4net programmatically. - - - Nicko Cadell - Gert Driesen - Daniel Cazzulino - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Send the contents of the buffer to the remote sink. - - - The events are not sent immediately. They are scheduled to be sent - using a pool thread. The effect is that the send occurs asynchronously. - This is very important for a number of non obvious reasons. The remoting - infrastructure will flow thread local variables (stored in the ), - if they are marked as , across the - remoting boundary. If the server is not contactable then - the remoting infrastructure will clear the - objects from the . To prevent a logging failure from - having side effects on the calling application the remoting call must be made - from a separate thread to the one used by the application. A - thread is used for this. If no thread is available then - the events will block in the thread pool manager until a thread is available. - - The events to send. - - - - Override base class close. - - - - This method waits while there are queued work items. The events are - sent asynchronously using work items. These items - will be sent once a thread pool thread is available to send them, therefore - it is possible to close the appender before all the queued events have been - sent. - - This method attempts to wait until all the queued events have been sent, but this - method will timeout after 30 seconds regardless. - - If the appender is being closed because the - event has fired it may not be possible to send all the queued events. During process - exit the runtime limits the time that a - event handler is allowed to run for. - - - - - A work item is being queued into the thread pool - - - - - A work item from the thread pool has completed - - - - - Send the contents of the buffer to the remote sink. - - - This method is designed to be used with the . - This method expects to be passed an array of - objects in the state param. - - the logging events to send - - - - The URL of the remote sink. - - - - - The local proxy (.NET remoting) for the remote logging sink. - - - - - The number of queued callbacks currently waiting or executing - - - - - Event used to signal when there are no queued work items - - - This event is set when there are no queued work items. In this - state it is safe to close the appender. - - - - - Gets or sets the URL of the well-known object that will accept - the logging events. - - - The well-known URL of the remote sink. - - - - The URL of the remoting sink that will accept logging events. - The sink must implement the - interface. - - - - - - Interface used to deliver objects to a remote sink. - - - This interface must be implemented by a remoting sink - if the is to be used - to deliver logging events to the sink. - - - - - Delivers logging events to the remote sink - - Array of events to log. - - - Delivers logging events to the remote sink - - - - - - Appender that rolls log files based on size or date or both. - - - - RollingFileAppender can roll log files based on size or date or both - depending on the setting of the property. - When set to the log file will be rolled - once its size exceeds the . - When set to the log file will be rolled - once the date boundary specified in the property - is crossed. - When set to the log file will be - rolled once the date boundary specified in the property - is crossed, but within a date boundary the file will also be rolled - once its size exceeds the . - When set to the log file will be rolled when - the appender is configured. This effectively means that the log file can be - rolled once per program execution. - - - A of few additional optional features have been added: - - Attach date pattern for current log file - Backup number increments for newer files - Infinite number of backups by file size - - - - - - For large or infinite numbers of backup files a - greater than zero is highly recommended, otherwise all the backup files need - to be renamed each time a new backup is created. - - - When Date/Time based rolling is used setting - to will reduce the number of file renamings to few or none. - - - - - - Changing or without clearing - the log file directory of backup files will cause unexpected and unwanted side effects. - - - - - If Date/Time based rolling is enabled this appender will attempt to roll existing files - in the directory without a Date/Time tag based on the last write date of the base log file. - The appender only rolls the log file when a message is logged. If Date/Time based rolling - is enabled then the appender will not roll the log file at the Date/Time boundary but - at the point when the next message is logged after the boundary has been crossed. - - - - The extends the and - has the same behavior when opening the log file. - The appender will first try to open the file for writing when - is called. This will typically be during configuration. - If the file cannot be opened for writing the appender will attempt - to open the file again each time a message is logged to the appender. - If the file cannot be opened for writing when a message is logged then - the message will be discarded by this appender. - - - When rolling a backup file necessitates deleting an older backup file the - file to be deleted is moved to a temporary name before being deleted. - - - - - A maximum number of backup files when rolling on date/time boundaries is not supported. - - - - Nicko Cadell - Gert Driesen - Aspi Havewala - Douglas de la Torre - Edward Smit - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - The fully qualified type of the RollingFileAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Sets the quiet writer being used. - - - This method can be overridden by sub classes. - - the writer to set - - - - Write out a logging event. - - the event to write to file. - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Write out an array of logging events. - - the events to write to file. - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Performs any required rolling before outputting the next event - - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Creates and opens the file for logging. If - is false then the fully qualified name is determined and used. - - the name of the file to open - true to append to existing file - - This method will ensure that the directory structure - for the specified exists. - - - - - Get the current output file name - - the base file name - the output file name - - The output file name is based on the base fileName specified. - If is set then the output - file name is the same as the base file passed in. Otherwise - the output file depends on the date pattern, on the count - direction or both. - - - - - Determines curSizeRollBackups (only within the current roll point) - - - - - Generates a wildcard pattern that can be used to find all files - that are similar to the base file name. - - - - - - - Builds a list of filenames for all files matching the base filename plus a file - pattern. - - - - - - - Initiates a roll over if needed for crossing a date boundary since the last run. - - - - - Initializes based on existing conditions at time of . - - - - Initializes based on existing conditions at time of . - The following is done - - determine curSizeRollBackups (only within the current roll point) - initiates a roll over if needed for crossing a date boundary since the last run. - - - - - - - Does the work of bumping the 'current' file counter higher - to the highest count when an incremental file name is seen. - The highest count is either the first file (when count direction - is greater than 0) or the last file (when count direction less than 0). - In either case, we want to know the highest count that is present. - - - - - - - Attempts to extract a number from the end of the file name that indicates - the number of the times the file has been rolled over. - - - Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. - - - - - - - Takes a list of files and a base file name, and looks for - 'incremented' versions of the base file. Bumps the max - count up to the highest count seen. - - - - - - - Calculates the RollPoint for the datePattern supplied. - - the date pattern to calculate the check period for - The RollPoint that is most accurate for the date pattern supplied - - Essentially the date pattern is examined to determine what the - most suitable roll point is. The roll point chosen is the roll point - with the smallest period that can be detected using the date pattern - supplied. i.e. if the date pattern only outputs the year, month, day - and hour then the smallest roll point that can be detected would be - and hourly roll point as minutes could not be detected. - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Sets initial conditions including date/time roll over information, first check, - scheduledFilename, and calls to initialize - the current number of backups. - - - - - - - - - .1, .2, .3, etc. - - - - - Rollover the file(s) to date/time tagged file(s). - - set to true if the file to be rolled is currently open - - - Rollover the file(s) to date/time tagged file(s). - Resets curSizeRollBackups. - If fileIsOpen is set then the new file is opened (through SafeOpenFile). - - - - - - Renames file to file . - - Name of existing file to roll. - New name for file. - - - Renames file to file . It - also checks for existence of target file and deletes if it does. - - - - - - Test if a file exists at a specified path - - the path to the file - true if the file exists - - - Test if a file exists at a specified path - - - - - - Deletes the specified file if it exists. - - The file to delete. - - - Delete a file if is exists. - The file is first moved to a new filename then deleted. - This allows the file to be removed even when it cannot - be deleted, but it still can be moved. - - - - - - Implements file roll base on file size. - - - - If the maximum number of size based backups is reached - (curSizeRollBackups == maxSizeRollBackups) then the oldest - file is deleted -- its index determined by the sign of countDirection. - If countDirection < 0, then files - {File.1, ..., File.curSizeRollBackups -1} - are renamed to {File.2, ..., - File.curSizeRollBackups}. Moreover, File is - renamed File.1 and closed. - - - A new file is created to receive further log output. - - - If maxSizeRollBackups is equal to zero, then the - File is truncated with no backup files created. - - - If maxSizeRollBackups < 0, then File is - renamed if needed and no files are deleted. - - - - - - Implements file roll. - - the base name to rename - - - If the maximum number of size based backups is reached - (curSizeRollBackups == maxSizeRollBackups) then the oldest - file is deleted -- its index determined by the sign of countDirection. - If countDirection < 0, then files - {File.1, ..., File.curSizeRollBackups -1} - are renamed to {File.2, ..., - File.curSizeRollBackups}. - - - If maxSizeRollBackups is equal to zero, then the - File is truncated with no backup files created. - - - If maxSizeRollBackups < 0, then File is - renamed if needed and no files are deleted. - - - This is called by to rename the files. - - - - - - Get the start time of the next window for the current rollpoint - - the current date - the type of roll point we are working with - the start time for the next roll point an interval after the currentDateTime date - - - Returns the date of the next roll point after the currentDateTime date passed to the method. - - - The basic strategy is to subtract the time parts that are less significant - than the rollpoint from the current time. This should roll the time back to - the start of the time window for the current rollpoint. Then we add 1 window - worth of time and get the start time of the next window for the rollpoint. - - - - - - This object supplies the current date/time. Allows test code to plug in - a method to control this class when testing date/time based rolling. The default - implementation uses the underlying value of DateTime.Now. - - - - - The date pattern. By default, the pattern is set to ".yyyy-MM-dd" - meaning daily rollover. - - - - - The actual formatted filename that is currently being written to - or will be the file transferred to on roll over - (based on staticLogFileName). - - - - - The timestamp when we shall next recompute the filename. - - - - - Holds date of last roll over - - - - - The type of rolling done - - - - - The default maximum file size is 10MB - - - - - There is zero backup files by default - - - - - How many sized based backups have been made so far - - - - - The rolling file count direction. - - - - - The rolling mode used in this appender. - - - - - Cache flag set if we are rolling by date. - - - - - Cache flag set if we are rolling by size. - - - - - Value indicating whether to always log to the same file. - - - - - Value indicating whether to preserve the file name extension when rolling. - - - - - FileName provided in configuration. Used for rolling properly - - - - - The 1st of January 1970 in UTC - - - - - Gets or sets the strategy for determining the current date and time. The default - implementation is to use LocalDateTime which internally calls through to DateTime.Now. - DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying - . - - - An implementation of the interface which returns the current date and time. - - - - Gets or sets the used to return the current date and time. - - - There are two built strategies for determining the current date and time, - - and . - - - The default strategy is . - - - - - - Gets or sets the date pattern to be used for generating file names - when rolling over on date. - - - The date pattern to be used for generating file names when rolling - over on date. - - - - Takes a string in the same format as expected by - . - - - This property determines the rollover schedule when rolling over - on date. - - - - - - Gets or sets the maximum number of backup files that are kept before - the oldest is erased. - - - The maximum number of backup files that are kept before the oldest is - erased. - - - - If set to zero, then there will be no backup files and the log file - will be truncated when it reaches . - - - If a negative number is supplied then no deletions will be made. Note - that this could result in very slow performance as a large number of - files are rolled over unless is used. - - - The maximum applies to each time based group of files and - not the total. - - - - - - Gets or sets the maximum size that the output file is allowed to reach - before being rolled over to backup files. - - - The maximum size in bytes that the output file is allowed to reach before being - rolled over to backup files. - - - - This property is equivalent to except - that it is required for differentiating the setter taking a - argument from the setter taking a - argument. - - - The default maximum file size is 10MB (10*1024*1024). - - - - - - Gets or sets the maximum size that the output file is allowed to reach - before being rolled over to backup files. - - - The maximum size that the output file is allowed to reach before being - rolled over to backup files. - - - - This property allows you to specify the maximum size with the - suffixes "KB", "MB" or "GB" so that the size is interpreted being - expressed respectively in kilobytes, megabytes or gigabytes. - - - For example, the value "10KB" will be interpreted as 10240 bytes. - - - The default maximum file size is 10MB. - - - If you have the option to set the maximum file size programmatically - consider using the property instead as this - allows you to set the size in bytes as a . - - - - - - Gets or sets the rolling file count direction. - - - The rolling file count direction. - - - - Indicates if the current file is the lowest numbered file or the - highest numbered file. - - - By default newer files have lower numbers ( < 0), - i.e. log.1 is most recent, log.5 is the 5th backup, etc... - - - >= 0 does the opposite i.e. - log.1 is the first backup made, log.5 is the 5th backup made, etc. - For infinite backups use >= 0 to reduce - rollover costs. - - The default file count direction is -1. - - - - - Gets or sets the rolling style. - - The rolling style. - - - The default rolling style is . - - - When set to this appender's - property is set to false, otherwise - the appender would append to a single file rather than rolling - the file each time it is opened. - - - - - - Gets or sets a value indicating whether to preserve the file name extension when rolling. - - - true if the file name extension should be preserved. - - - - By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. - However, under Windows the new file name will loose any program associations as the - extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or - file.curSizeRollBackup.log to maintain any program associations. - - - - - - Gets or sets a value indicating whether to always log to - the same file. - - - true if always should be logged to the same file, otherwise false. - - - - By default file.log is always the current file. Optionally - file.log.yyyy-mm-dd for current formatted datePattern can by the currently - logging file (or file.log.curSizeRollBackup or even - file.log.yyyy-mm-dd.curSizeRollBackup). - - - This will make time based rollovers with a large number of backups - much faster as the appender it won't have to rename all the backups! - - - - - - Style of rolling to use - - - - Style of rolling to use - - - - - - Roll files once per program execution - - - - Roll files once per program execution. - Well really once each time this appender is - configured. - - - Setting this option also sets AppendToFile to - false on the RollingFileAppender, otherwise - this appender would just be a normal file appender. - - - - - - Roll files based only on the size of the file - - - - - Roll files based only on the date - - - - - Roll files based on both the size and date of the file - - - - - The code assumes that the following 'time' constants are in a increasing sequence. - - - - The code assumes that the following 'time' constants are in a increasing sequence. - - - - - - Roll the log not based on the date - - - - - Roll the log for each minute - - - - - Roll the log for each hour - - - - - Roll the log twice a day (midday and midnight) - - - - - Roll the log each day (midnight) - - - - - Roll the log each week - - - - - Roll the log each month - - - - - This interface is used to supply Date/Time information to the . - - - This interface is used to supply Date/Time information to the . - Used primarily to allow test classes to plug themselves in so they can - supply test date/times. - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Default implementation of that returns the current time. - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Implementation of that returns the current time as the coordinated universal time (UTC). - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Send an e-mail when a specific logging event occurs, typically on errors - or fatal errors. - - - - The number of logging events delivered in this e-mail depend on - the value of option. The - keeps only the last - logging events in its - cyclic buffer. This keeps memory requirements at a reasonable level while - still delivering useful application context. - - - Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. - For these features to be enabled you need to ensure that you are using a version of - the log4net assembly that is built against the MS .NET 1.1 framework and that you are - running the your application on the MS .NET 1.1 runtime. On all other platforms only sending - unauthenticated messages to a server listening on port 25 (the default) is supported. - - - Authentication is supported by setting the property to - either or . - If using authentication then the - and properties must also be set. - - - To set the SMTP server port use the property. The default port is 25. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Default constructor - - - - - - Sends the contents of the cyclic buffer as an e-mail message. - - The logging events to send. - - - - Send the email message - - the body text to include in the mail - - - - Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - - Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses - that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. - - - For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. - - - - - - Gets or sets a semicolon-delimited list of recipient e-mail addresses - that will be blind carbon copied. - - - A semicolon-delimited list of e-mail addresses. - - - - A semicolon-delimited list of recipient e-mail addresses. - - - - - - Gets or sets the e-mail address of the sender. - - - The e-mail address of the sender. - - - - The e-mail address of the sender. - - - - - - Gets or sets the subject line of the e-mail message. - - - The subject line of the e-mail message. - - - - The subject line of the e-mail message. - - - - - - Gets or sets the name of the SMTP relay mail server to use to send - the e-mail messages. - - - The name of the e-mail relay server. If SmtpServer is not set, the - name of the local SMTP server is used. - - - - The name of the e-mail relay server. If SmtpServer is not set, the - name of the local SMTP server is used. - - - - - - Obsolete - - - Use the BufferingAppenderSkeleton Fix methods instead - - - - Obsolete property. - - - - - - The mode to use to authentication with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - Valid Authentication mode values are: , - , and . - The default value is . When using - you must specify the - and to use to authenticate. - When using the Windows credentials for the current - thread, if impersonating, or the process will be used to authenticate. - - - - - - The username to use to authenticate with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - A and must be specified when - is set to , - otherwise the username will be ignored. - - - - - - The password to use to authenticate with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - A and must be specified when - is set to , - otherwise the password will be ignored. - - - - - - The port on which the SMTP server is listening - - - Server Port is only available on the MS .NET 1.1 runtime. - - The port on which the SMTP server is listening. The default - port is 25. The Port can only be changed when running on - the MS .NET 1.1 runtime. - - - - - - Gets or sets the priority of the e-mail message - - - One of the values. - - - - Sets the priority of the e-mails generated by this - appender. The default priority is . - - - If you are using this appender to report errors then - you may want to set the priority to . - - - - - - Gets or sets the subject encoding to be used. - - - The default encoding is the operating system's current ANSI codepage. - - - - - Gets or sets the body encoding to be used. - - - The default encoding is the operating system's current ANSI codepage. - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Values for the property. - - - - SMTP authentication modes. - - - - - - No authentication - - - - - Basic authentication. - - - Requires a username and password to be supplied - - - - - Integrated authentication - - - Uses the Windows credentials from the current thread or process to authenticate. - - - - - Send an email when a specific logging event occurs, typically on errors - or fatal errors. Rather than sending via smtp it writes a file into the - directory specified by . This allows services such - as the IIS SMTP agent to manage sending the messages. - - - - The configuration for this appender is identical to that of the SMTPAppender, - except that instead of specifying the SMTPAppender.SMTPHost you specify - . - - - The number of logging events delivered in this e-mail depend on - the value of option. The - keeps only the last - logging events in its - cyclic buffer. This keeps memory requirements at a reasonable level while - still delivering useful application context. - - - Niall Daley - Nicko Cadell - - - - Default constructor - - - - Default constructor - - - - - - Sends the contents of the cyclic buffer as an e-mail message. - - The logging events to send. - - - Sends the contents of the cyclic buffer as an e-mail message. - - - - - - Activate the options on this appender. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Convert a path into a fully qualified path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - - - - The security context to use for privileged calls - - - - - Gets or sets a semicolon-delimited list of recipient e-mail addresses. - - - A semicolon-delimited list of e-mail addresses. - - - - A semicolon-delimited list of e-mail addresses. - - - - - - Gets or sets the e-mail address of the sender. - - - The e-mail address of the sender. - - - - The e-mail address of the sender. - - - - - - Gets or sets the subject line of the e-mail message. - - - The subject line of the e-mail message. - - - - The subject line of the e-mail message. - - - - - - Gets or sets the path to write the messages to. - - - - Gets or sets the path to write the messages to. This should be the same - as that used by the agent sending the messages. - - - - - - Gets or sets the used to write to the pickup directory. - - - The used to write to the pickup directory. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appender that allows clients to connect via Telnet to receive log messages - - - - The TelnetAppender accepts socket connections and streams logging messages - back to the client. - The output is provided in a telnet-friendly way so that a log can be monitored - over a TCP/IP socket. - This allows simple remote monitoring of application logging. - - - The default is 23 (the telnet port). - - - Keith Long - Nicko Cadell - - - - Default constructor - - - - Default constructor - - - - - - The fully qualified type of the TelnetAppender class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Overrides the parent method to close the socket handler - - - - Closes all the outstanding connections. - - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Create the socket handler and wait for connections - - - - - - Writes the logging event to each connected client. - - The event to log. - - - Writes the logging event to each connected client. - - - - - - Gets or sets the TCP port number on which this will listen for connections. - - - An integer value in the range to - indicating the TCP port number on which this will listen for connections. - - - - The default value is 23 (the telnet port). - - - The value specified is less than - or greater than . - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Helper class to manage connected clients - - - - The SocketHandler class is used to accept connections from - clients. It is threaded so that clients can connect/disconnect - asynchronously. - - - - - - Opens a new server port on - - the local port to listen on for connections - - - Creates a socket handler on the specified local server port. - - - - - - Sends a string message to each of the connected clients - - the text to send - - - Sends a string message to each of the connected clients - - - - - - Add a client to the internal clients list - - client to add - - - - Remove a client from the internal clients list - - client to remove - - - - Callback used to accept a connection on the server socket - - The result of the asynchronous operation - - - On connection adds to the list of connections - if there are two many open connections you will be disconnected - - - - - - Close all network connections - - - - Make sure we close all network connections - - - - - - Test if this handler has active connections - - - true if this handler has active connections - - - - This property will be true while this handler has - active connections, that is at least one connection that - the handler will attempt to send a message to. - - - - - - Class that represents a client connected to this handler - - - - Class that represents a client connected to this handler - - - - - - Create this for the specified - - the client's socket - - - Opens a stream writer on the socket. - - - - - - Write a string to the client - - string to send - - - Write a string to the client - - - - - - Cleanup the clients connection - - - - Close the socket connection. - - - - - - Appends log events to the system. - - - - The application configuration file can be used to control what listeners - are actually used. See the MSDN documentation for the - class for details on configuring the - trace system. - - - Events are written using the System.Diagnostics.Trace.Write(string,string) - method. The event's logger name is the default value for the category parameter - of the Write method. - - - Compact Framework
    - The Compact Framework does not support the - class for any operation except Assert. When using the Compact Framework this - appender will write to the system rather than - the Trace system. This appender will therefore behave like the . -
    -
    - Douglas de la Torre - Nicko Cadell - Gert Driesen - Ron Grabowski -
    - - - Initializes a new instance of the . - - - - Default constructor. - - - - - - Initializes a new instance of the - with a specified layout. - - The layout to use with this appender. - - - Obsolete constructor. - - - - - - Writes the logging event to the system. - - The event to log. - - - Writes the logging event to the system. - - - - - - Immediate flush means that the underlying writer or output stream - will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logs events are not actually written to persistent media if and - when the application crashes. - - - The default value is true. - - - - - Defaults to %logger - - - - - Gets or sets a value that indicates whether the appender will - flush at the end of each write. - - - The default behavior is to flush at the end of each - write. If the option is set tofalse, then the underlying - stream can defer writing to physical medium to a later time. - - - Avoiding the flush operation at the end of each append results - in a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - - The category parameter sent to the Trace method. - - - - Defaults to %logger which will use the logger name of the current - as the category parameter. - - - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Assembly level attribute that specifies a domain to alias to this assembly's repository. - - - - AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. - - - An assembly's logger repository is defined by its , - however this can be overridden by an assembly loaded before the target assembly. - - - An assembly can alias another assembly's domain to its repository by - specifying this attribute with the name of the target domain. - - - This attribute can only be specified on the assembly and may be used - as many times as necessary to alias all the required domains. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute that specifies a repository to alias to this assembly's repository. - - - - An assembly's logger repository is defined by its , - however this can be overridden by an assembly loaded before the target assembly. - - - An assembly can alias another assembly's repository to its repository by - specifying this attribute with the name of the target repository. - - - This attribute can only be specified on the assembly and may be used - as many times as necessary to alias all the required repositories. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class with - the specified repository to alias to this assembly's repository. - - The repository to alias to this assemby's repository. - - - Initializes a new instance of the class with - the specified repository to alias to this assembly's repository. - - - - - - Gets or sets the repository to alias to this assemby's repository. - - - The repository to alias to this assemby's repository. - - - - The name of the repository to alias to this assemby's repository. - - - - - - Initializes a new instance of the class with - the specified domain to alias to this assembly's repository. - - The domain to alias to this assemby's repository. - - - Obsolete. Use instead of . - - - - - - Use this class to quickly configure a . - - - - Allows very simple programmatic configuration of log4net. - - - Only one appender can be configured using this configurator. - The appender is set at the root of the hierarchy and all logging - events will be delivered to that appender. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - The fully qualified type of the BasicConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Initializes the log4net system with a default configuration. - - - - Initializes the log4net logging system using a - that will write to Console.Out. The log messages are - formatted using the layout object - with the - layout style. - - - - - - Initializes the log4net system using the specified appender. - - The appender to use to log all logging events. - - - Initializes the log4net system using the specified appender. - - - - - - Initializes the log4net system using the specified appenders. - - The appenders to use to log all logging events. - - - Initializes the log4net system using the specified appenders. - - - - - - Initializes the with a default configuration. - - The repository to configure. - - - Initializes the specified repository using a - that will write to Console.Out. The log messages are - formatted using the layout object - with the - layout style. - - - - - - Initializes the using the specified appender. - - The repository to configure. - The appender to use to log all logging events. - - - Initializes the using the specified appender. - - - - - - Initializes the using the specified appenders. - - The repository to configure. - The appenders to use to log all logging events. - - - Initializes the using the specified appender. - - - - - - Base class for all log4net configuration attributes. - - - This is an abstract class that must be extended by - specific configurators. This attribute allows the - configurator to be parameterized by an assembly level - attribute. - - Nicko Cadell - Gert Driesen - - - - Constructor used by subclasses. - - the ordering priority for this configurator - - - The is used to order the configurator - attributes before they are invoked. Higher priority configurators are executed - before lower priority ones. - - - - - - Configures the for the specified assembly. - - The assembly that this attribute was defined on. - The repository to configure. - - - Abstract method implemented by a subclass. When this method is called - the subclass should configure the . - - - - - - Compare this instance to another ConfiguratorAttribute - - the object to compare to - see - - - Compares the priorities of the two instances. - Sorts by priority in descending order. Objects with the same priority are - randomly ordered. - - - - - - Assembly level attribute that specifies the logging domain for the assembly. - - - - DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - Assemblies are mapped to logging domains. Each domain has its own - logging repository. This attribute specified on the assembly controls - the configuration of the domain. The property specifies the name - of the domain that this assembly is a part of. The - specifies the type of the repository objects to create for the domain. If - this attribute is not specified and a is not specified - then the assembly will be part of the default shared logging domain. - - - This attribute can only be specified on the assembly and may only be used - once per assembly. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute that specifies the logging repository for the assembly. - - - - Assemblies are mapped to logging repository. This attribute specified - on the assembly controls - the configuration of the repository. The property specifies the name - of the repository that this assembly is a part of. The - specifies the type of the object - to create for the assembly. If this attribute is not specified or a - is not specified then the assembly will be part of the default shared logging repository. - - - This attribute can only be specified on the assembly and may only be used - once per assembly. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initialize a new instance of the class - with the name of the repository. - - The name of the repository. - - - Initialize the attribute with the name for the assembly's repository. - - - - - - Gets or sets the name of the logging repository. - - - The string name to use as the name of the repository associated with this - assembly. - - - - This value does not have to be unique. Several assemblies can share the - same repository. They will share the logging configuration of the repository. - - - - - - Gets or sets the type of repository to create for this assembly. - - - The type of repository to create for this assembly. - - - - The type of the repository to create for the assembly. - The type must implement the - interface. - - - This will be the type of repository created when - the repository is created. If multiple assemblies reference the - same repository then the repository is only created once using the - of the first assembly to call into the - repository. - - - - - - Initializes a new instance of the class. - - - - Obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - - - - Initialize a new instance of the class - with the name of the domain. - - The name of the domain. - - - Obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - - - - Use this class to initialize the log4net environment using an Xml tree. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - Configures a using an Xml tree. - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - - - Automatically configures the log4net system based on the - application's configuration settings. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - 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 - log4net that contains the configuration data. - - - - - Automatically configures the using settings - stored in the application's configuration file. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - 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 - log4net that contains the configuration data. - - The repository to configure. - - - - Configures log4net using a log4net element - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - Loads the log4net configuration from the XML element - supplied as . - - The element to parse. - - - - Configures the using the specified XML - element. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - Loads the log4net configuration from the XML element - supplied as . - - The repository to configure. - The element to parse. - - - - Configures log4net using the specified configuration file. - - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures log4net using the specified configuration file. - - A stream to load the XML configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The stream to load the XML configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures log4net using the file specified, monitors the file for changes - and reloads the configuration if a change is detected. - - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the using the file specified, - monitors the file for changes and reloads the configuration if a change - is detected. - - The repository to configure. - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Assembly level attribute to configure the . - - - - AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute to configure the . - - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - If neither of the or - properties are set the configuration is loaded from the application's .config file. - If set the property takes priority over the - property. The property - specifies a path to a file to load the config from. The path is relative to the - application's base directory; . - The property is used as a postfix to the assembly file name. - The config file must be located in the application's base directory; . - For example in a console application setting the to - config has the same effect as not specifying the or - properties. - - - The property can be set to cause the - to watch the configuration file for changes. - - - - Log4net will only look for assembly level configuration attributes once. - When using the log4net assembly level attributes to control the configuration - of log4net you must ensure that the first call to any of the - methods is made from the assembly with the configuration - attributes. - - - If you cannot guarantee the order in which log4net calls will be made from - different assemblies you must use programmatic configuration instead, i.e. - call the method directly. - - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Default constructor - - - - - - Configures the for the specified assembly. - - The assembly that this attribute was defined on. - The repository to configure. - - - Configure the repository using the . - The specified must extend the - class otherwise the will not be able to - configure it. - - - The does not extend . - - - - Attempt to load configuration from the local file system - - The assembly that this attribute was defined on. - The repository to configure. - - - - Configure the specified repository using a - - The repository to configure. - the FileInfo pointing to the config file - - - - Attempt to load configuration from a URI - - The assembly that this attribute was defined on. - The repository to configure. - - - - The fully qualified type of the XmlConfiguratorAttribute class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the filename of the configuration file. - - - The filename of the configuration file. - - - - If specified, this is the name of the configuration file to use with - the . This file path is relative to the - application base directory (). - - - The takes priority over the . - - - - - - Gets or sets the extension of the configuration file. - - - The extension of the configuration file. - - - - If specified this is the extension for the configuration file. - The path to the config file is built by using the application - base directory (), - the assembly file name and the config file extension. - - - If the is set to MyExt then - possible config file names would be: MyConsoleApp.exe.MyExt or - MyClassLibrary.dll.MyExt. - - - The takes priority over the . - - - - - - Gets or sets a value indicating whether to watch the configuration file. - - - true if the configuration should be watched, false otherwise. - - - - If this flag is specified and set to true then the framework - will watch the configuration file and will reload the config each time - the file is modified. - - - The config file can only be watched if it is loaded from local disk. - In a No-Touch (Smart Client) deployment where the application is downloaded - from a web server the config file may not reside on the local disk - and therefore it may not be able to watch it. - - - Watching configuration is not supported on the SSCLI. - - - - - - Class to register for the log4net section of the configuration file - - - The log4net section of the configuration file needs to have a section - handler registered. This is the section handler used. It simply returns - the XML element that is the root of the section. - - - Example of registering the log4net section handler : - - - -
    - - - log4net configuration XML goes here - - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Parses the configuration section. - - The configuration settings in a corresponding parent configuration section. - The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. - The for the log4net section. - The for the log4net section. - - - Returns the containing the configuration data, - - - - - - Assembly level attribute that specifies a plugin to attach to - the repository. - - - - Specifies the type of a plugin to create and attach to the - assembly's repository. The plugin type must implement the - interface. - - - Nicko Cadell - Gert Driesen - - - - Interface used to create plugins. - - - - Interface used to create a plugin. - - - Nicko Cadell - Gert Driesen - - - - Creates the plugin object. - - the new plugin instance - - - Create and return a new plugin instance. - - - - - - Initializes a new instance of the class - with the specified type. - - The type name of plugin to create. - - - Create the attribute with the plugin type specified. - - - Where possible use the constructor that takes a . - - - - - - Initializes a new instance of the class - with the specified type. - - The type of plugin to create. - - - Create the attribute with the plugin type specified. - - - - - - Creates the plugin object defined by this attribute. - - - - Creates the instance of the object as - specified by this attribute. - - - The plugin object. - - - - Returns a representation of the properties of this object. - - - - Overrides base class method to - return a representation of the properties of this object. - - - A representation of the properties of this object - - - - Gets or sets the type for the plugin. - - - The type for the plugin. - - - - The type for the plugin. - - - - - - Gets or sets the type name for the plugin. - - - The type name for the plugin. - - - - The type name for the plugin. - - - Where possible use the property instead. - - - - - - Assembly level attribute to configure the . - - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - Nicko Cadell - - - - Construct provider attribute with type specified - - the type of the provider to use - - - The provider specified must subclass the - class. - - - - - - Configures the SecurityContextProvider - - The assembly that this attribute was defined on. - The repository to configure. - - - Creates a provider instance from the specified. - Sets this as the default security context provider . - - - - - - The fully qualified type of the SecurityContextProviderAttribute class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the type of the provider to use. - - - the type of the provider to use. - - - - The provider specified must subclass the - class. - - - - - - Use this class to initialize the log4net environment using an Xml tree. - - - - Configures a using an Xml tree. - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - - - Automatically configures the log4net system based on the - application's configuration settings. - - - - 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 - log4net that contains the configuration data. - - - To use this method to configure log4net you must specify - the section - handler for the log4net configuration section. See the - for an example. - - - - - - - Automatically configures the using settings - stored in the application's configuration file. - - - - 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 - log4net that contains the configuration data. - - - To use this method to configure log4net you must specify - the section - handler for the log4net configuration section. See the - for an example. - - - The repository to configure. - - - - Configures log4net using a log4net element - - - - Loads the log4net configuration from the XML element - supplied as . - - - The element to parse. - - - - Configures the using the specified XML - element. - - - Loads the log4net configuration from the XML element - supplied as . - - The repository to configure. - The element to parse. - - - - Configures log4net using the specified configuration file. - - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The first element matching <configuration> will be read as the - configuration. If this file is also a .NET .config file then you must specify - a configuration section for the log4net element otherwise .NET will - complain. Set the type for the section handler to , for example: - - -
    - - - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures log4net using the specified configuration URI. - - A URI to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The must support the URI scheme specified. - - - - - - Configures log4net using the specified configuration data stream. - - A stream to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The first element matching <configuration> will be read as the - configuration. If this file is also a .NET .config file then you must specify - a configuration section for the log4net element otherwise .NET will - complain. Set the type for the section handler to , for example: - - -
    - - - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures the using the specified configuration - URI. - - The repository to configure. - A URI to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The must support the URI scheme specified. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The stream to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures log4net using the file specified, monitors the file for changes - and reloads the configuration if a change is detected. - - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the using the file specified, - monitors the file for changes and reloads the configuration if a change - is detected. - - The repository to configure. - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the specified repository using a log4net element. - - The hierarchy to configure. - The element to parse. - - - Loads the log4net configuration from the XML element - supplied as . - - - This method is ultimately called by one of the Configure methods - to load the configuration from an . - - - - - - Maps repository names to ConfigAndWatchHandler instances to allow a particular - ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is - reconfigured. - - - - - The fully qualified type of the XmlConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Class used to watch config files. - - - - Uses the to monitor - changes to a specified file. Because multiple change notifications - may be raised when the file is modified, a timer is used to - compress the notifications into a single event. The timer - waits for time before delivering - the event notification. If any further - change notifications arrive while the timer is waiting it - is reset and waits again for to - elapse. - - - - - - The default amount of time to wait after receiving notification - before reloading the config file. - - - - - Holds the FileInfo used to configure the XmlConfigurator - - - - - Holds the repository being configured. - - - - - The timer used to compress the notification events. - - - - - Watches file for changes. This object should be disposed when no longer - needed to free system handles on the watched resources. - - - - - Initializes a new instance of the class to - watch a specified config file used to configure a repository. - - The repository to configure. - The configuration file to watch. - - - Initializes a new instance of the class. - - - - - - Event handler used by . - - The firing the event. - The argument indicates the file that caused the event to be fired. - - - This handler reloads the configuration from the file when the event is fired. - - - - - - Event handler used by . - - The firing the event. - The argument indicates the file that caused the event to be fired. - - - This handler reloads the configuration from the file when the event is fired. - - - - - - Called by the timer when the configuration has been updated. - - null - - - - Release the handles held by the watcher and timer. - - - - - The implementation of the interface suitable - for use with the compact framework - - - - This implementation is a simple - mapping between repository name and - object. - - - The .NET Compact Framework 1.0 does not support retrieving assembly - level attributes therefore unlike the DefaultRepositorySelector - this selector does not examine the calling assembly for attributes. - - - Nicko Cadell - - - - Interface used by the to select the . - - - - The uses a - to specify the policy for selecting the correct - to return to the caller. - - - Nicko Cadell - Gert Driesen - - - - Gets the for the specified assembly. - - The assembly to use to lookup to the - The for the assembly. - - - Gets the for the specified assembly. - - - How the association between and - is made is not defined. The implementation may choose any method for - this association. The results of this method must be repeatable, i.e. - when called again with the same arguments the result must be the - save value. - - - - - - Gets the named . - - The name to use to lookup to the . - The named - - Lookup a named . This is the repository created by - calling . - - - - - Creates a new repository for the assembly specified. - - The assembly to use to create the domain to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the domain - specified such that a call to with the - same assembly specified will return the same repository instance. - - - How the association between and - is made is not defined. The implementation may choose any method for - this association. - - - - - - Creates a new repository with the name specified. - - The name to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the name - specified such that a call to with the - same name will return the same repository instance. - - - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets an array of all currently defined repositories. - - - An array of the instances created by - this . - - - Gets an array of all of the repositories created by this selector. - - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - Create a new repository selector - - the type of the repositories to create, must implement - - - Create an new compact repository selector. - The default type for repositories must be specified, - an appropriate value would be . - - - throw if is null - throw if does not implement - - - - Get the for the specified assembly - - not used - The default - - - The argument is not used. This selector does not create a - separate repository for each assembly. - - - As a named repository is not specified the default repository is - returned. The default repository is named log4net-default-repository. - - - - - - Get the named - - the name of the repository to lookup - The named - - - Get the named . The default - repository is log4net-default-repository. Other repositories - must be created using the . - If the named repository does not exist an exception is thrown. - - - throw if is null - throw if the does not exist - - - - Create a new repository for the assembly specified - - not used - the type of repository to create, must implement - the repository created - - - The argument is not used. This selector does not create a - separate repository for each assembly. - - - If the is null then the - default repository type specified to the constructor is used. - - - As a named repository is not specified the default repository is - returned. The default repository is named log4net-default-repository. - - - - - - Create a new repository for the repository specified - - the repository to associate with the - the type of repository to create, must implement . - If this param is null then the default repository type is used. - the repository created - - - The created will be associated with the repository - specified such that a call to with the - same repository specified will return the same repository instance. - - - If the named repository already exists an exception will be thrown. - - - If is null then the default - repository type specified to the constructor is used. - - - throw if is null - throw if the already exists - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets a list of objects - - an array of all known objects - - - Gets an array of all of the repositories created by this selector. - - - - - - The fully qualified type of the CompactRepositorySelector class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Notify the registered listeners that the repository has been created - - The repository that has been created - - - Raises the LoggerRepositoryCreatedEvent - event. - - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - The default implementation of the interface. - - - - Uses attributes defined on the calling assembly to determine how to - configure the hierarchy for the repository. - - - Nicko Cadell - Gert Driesen - - - - Creates a new repository selector. - - The type of the repositories to create, must implement - - - Create an new repository selector. - The default type for repositories must be specified, - an appropriate value would be . - - - is . - does not implement . - - - - Gets the for the specified assembly. - - The assembly use to lookup the . - - - The type of the created and the repository - to create can be overridden by specifying the - attribute on the . - - - The default values are to use the - implementation of the interface and to use the - as the name of the repository. - - - The created will be automatically configured using - any attributes defined on - the . - - - The for the assembly - is . - - - - Gets the for the specified repository. - - The repository to use to lookup the . - The for the specified repository. - - - Returns the named repository. If is null - a is thrown. If the repository - does not exist a is thrown. - - - Use to create a repository. - - - is . - does not exist. - - - - Create a new repository for the assembly specified - - the assembly to use to create the repository to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The type of the created and - the repository to create can be overridden by specifying the - attribute on the - . The default values are to use the - implementation of the - interface and to use the - as the name of the repository. - - - The created will be automatically - configured using any - attributes defined on the . - - - If a repository for the already exists - that repository will be returned. An error will not be raised and that - repository may be of a different type to that specified in . - Also the attribute on the - assembly may be used to override the repository type specified in - . - - - is . - - - - Creates a new repository for the assembly specified. - - the assembly to use to create the repository to associate with the . - The type of repository to create, must implement . - The name to assign to the created repository - Set to true to read and apply the assembly attributes - The repository created. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The type of the created and - the repository to create can be overridden by specifying the - attribute on the - . The default values are to use the - implementation of the - interface and to use the - as the name of the repository. - - - The created will be automatically - configured using any - attributes defined on the . - - - If a repository for the already exists - that repository will be returned. An error will not be raised and that - repository may be of a different type to that specified in . - Also the attribute on the - assembly may be used to override the repository type specified in - . - - - is . - - - - Creates a new repository for the specified repository. - - The repository to associate with the . - The type of repository to create, must implement . - If this param is then the default repository type is used. - The new repository. - - - The created will be associated with the repository - specified such that a call to with the - same repository specified will return the same repository instance. - - - is . - already exists. - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets a list of objects - - an array of all known objects - - - Gets an array of all of the repositories created by this selector. - - - - - - Aliases a repository to an existing repository. - - The repository to alias. - The repository that the repository is aliased to. - - - The repository specified will be aliased to the repository when created. - The repository must not already exist. - - - When the repository is created it must utilize the same repository type as - the repository it is aliased to, otherwise the aliasing will fail. - - - - is . - -or- - is . - - - - - Notifies the registered listeners that the repository has been created. - - The repository that has been created. - - - Raises the event. - - - - - - Gets the repository name and repository type for the specified assembly. - - The assembly that has a . - in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. - in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. - is . - - - - Configures the repository using information from the assembly. - - The assembly containing - attributes which define the configuration for the repository. - The repository to configure. - - is . - -or- - is . - - - - - Loads the attribute defined plugins on the assembly. - - The assembly that contains the attributes. - The repository to add the plugins to. - - is . - -or- - is . - - - - - Loads the attribute defined aliases on the assembly. - - The assembly that contains the attributes. - The repository to alias to. - - is . - -or- - is . - - - - - The fully qualified type of the DefaultRepositorySelector class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - Defined error codes that can be passed to the method. - - - - Values passed to the method. - - - Nicko Cadell - - - - A general error - - - - - Error while writing output - - - - - Failed to flush file - - - - - Failed to close file - - - - - Unable to open output file - - - - - No layout specified - - - - - Failed to parse address - - - - - An evaluator that triggers on an Exception type - - - - This evaluator will trigger if the type of the Exception - passed to - is equal to a Type in . /// - - - Drew Schaeffer - - - - Test if an triggers an action - - - - Implementations of this interface allow certain appenders to decide - when to perform an appender specific action. - - - The action or behavior triggered is defined by the implementation. - - - Nicko Cadell - - - - Test if this event triggers the action - - The event to check - true if this event triggers the action, otherwise false - - - Return true if this event triggers the action - - - - - - The type that causes the trigger to fire. - - - - - Causes subclasses of to cause the trigger to fire. - - - - - Default ctor to allow dynamic creation through a configurator. - - - - - Constructs an evaluator and initializes to trigger on - - the type that triggers this evaluator. - If true, this evaluator will trigger on subclasses of . - - - - Is this the triggering event? - - The event to check - This method returns true, if the logging event Exception - Type is . - Otherwise it returns false - - - This evaluator will trigger if the Exception Type of the event - passed to - is . - - - - - - The type that triggers this evaluator. - - - - - If true, this evaluator will trigger on subclasses of . - - - - - Appenders may delegate their error handling to an . - - - - Error handling is a particularly tedious to get right because by - definition errors are hard to predict and to reproduce. - - - Nicko Cadell - Gert Driesen - - - - Handles the error and information about the error condition is passed as - a parameter. - - The message associated with the error. - The that was thrown when the error occurred. - The error code associated with the error. - - - Handles the error and information about the error condition is passed as - a parameter. - - - - - - Prints the error message passed as a parameter. - - The message associated with the error. - The that was thrown when the error occurred. - - - See . - - - - - - Prints the error message passed as a parameter. - - The message associated with the error. - - - See . - - - - - - Interface for objects that require fixing. - - - - Interface that indicates that the object requires fixing before it - can be taken outside the context of the appender's - method. - - - When objects that implement this interface are stored - in the context properties maps - and - are fixed - (see ) the - method will be called. - - - Nicko Cadell - - - - Get a portable version of this object - - the portable instance of this object - - - Get a portable instance object that represents the current - state of this object. The portable object can be stored - and logged from any thread with identical results. - - - - - - Interface that all loggers implement - - - - This interface supports logging events and testing if a level - is enabled for logging. - - - These methods will not throw exceptions. Note to implementor, ensure - that the implementation of these methods cannot allow an exception - to be thrown to the caller. - - - Nicko Cadell - Gert Driesen - - - - This generic form is intended to be used by wrappers. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - the exception to log, including its stack trace. Pass null to not log an exception. - - - Generates a logging event for the specified using - the and . - - - - - - This is the most generic printing method that is intended to be used - by wrappers. - - The event being logged. - - - Logs the specified logging event through this logger. - - - - - - Checks if this logger is enabled for a given passed as parameter. - - The level to check. - - true if this logger is enabled for level, otherwise false. - - - - Test if this logger is going to log events of the specified . - - - - - - Gets the name of the logger. - - - The name of the logger. - - - - The name of this logger - - - - - - Gets the where this - Logger instance is attached to. - - - The that this logger belongs to. - - - - Gets the where this - Logger instance is attached to. - - - - - - Base interface for all wrappers - - - - Base interface for all wrappers. - - - All wrappers must implement this interface. - - - Nicko Cadell - - - - Get the implementation behind this wrapper object. - - - The object that in implementing this object. - - - - The object that in implementing this - object. The Logger object may not - be the same object as this object because of logger decorators. - This gets the actual underlying objects that is used to process - the log events. - - - - - - Delegate used to handle logger repository creation event notifications - - The which created the repository. - The event args - that holds the instance that has been created. - - - Delegate used to handle logger repository creation event notifications. - - - - - - Provides data for the event. - - - - A - event is raised every time a is created. - - - - - - The created - - - - - Construct instance using specified - - the that has been created - - - Construct instance using specified - - - - - - The that has been created - - - The that has been created - - - - The that has been created - - - - - - Defines the default set of levels recognized by the system. - - - - Each has an associated . - - - Levels have a numeric that defines the relative - ordering between levels. Two Levels with the same - are deemed to be equivalent. - - - The levels that are recognized by log4net are set for each - and each repository can have different levels defined. The levels are stored - in the on the repository. Levels are - looked up by name from the . - - - When logging at level INFO the actual level used is not but - the value of LoggerRepository.LevelMap["INFO"]. The default value for this is - , but this can be changed by reconfiguring the level map. - - - Each level has a in addition to its . The - is the string that is written into the output log. By default - the display name is the same as the level name, but this can be used to alias levels - or to localize the log output. - - - Some of the predefined levels recognized by the system are: - - - - . - - - . - - - . - - - . - - - . - - - . - - - . - - - - Nicko Cadell - Gert Driesen - - - - Constructor - - Integer value for this level, higher values represent more severe levels. - The string name of this level. - The display name for this level. This may be localized or otherwise different from the name - - - Initializes a new instance of the class with - the specified level name and value. - - - - - - Constructor - - Integer value for this level, higher values represent more severe levels. - The string name of this level. - - - Initializes a new instance of the class with - the specified level name and value. - - - - - - Returns the representation of the current - . - - - A representation of the current . - - - - Returns the level . - - - - - - Compares levels. - - The object to compare against. - true if the objects are equal. - - - Compares the levels of instances, and - defers to base class if the target object is not a - instance. - - - - - - Returns a hash code - - A hash code for the current . - - - Returns a hash code suitable for use in hashing algorithms and data - structures like a hash table. - - - Returns the hash code of the level . - - - - - - Compares this instance to a specified object and returns an - indication of their relative values. - - A instance or to compare with this instance. - - A 32-bit signed integer that indicates the relative order of the - values compared. The return value has these meanings: - - - Value - Meaning - - - Less than zero - This instance is less than . - - - Zero - This instance is equal to . - - - Greater than zero - - This instance is greater than . - -or- - is . - - - - - - - must be an instance of - or ; otherwise, an exception is thrown. - - - is not a . - - - - Returns a value indicating whether a specified - is greater than another specified . - - A - A - - true if is greater than - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is less than another specified . - - A - A - - true if is less than - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is greater than or equal to another specified . - - A - A - - true if is greater than or equal to - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is less than or equal to another specified . - - A - A - - true if is less than or equal to - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether two specified - objects have the same value. - - A or . - A or . - - true if the value of is the same as the - value of ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether two specified - objects have different values. - - A or . - A or . - - true if the value of is different from - the value of ; otherwise, false. - - - - Compares two levels. - - - - - - Compares two specified instances. - - The first to compare. - The second to compare. - - A 32-bit signed integer that indicates the relative order of the - two values compared. The return value has these meanings: - - - Value - Meaning - - - Less than zero - is less than . - - - Zero - is equal to . - - - Greater than zero - is greater than . - - - - - - Compares two levels. - - - - - - The level designates a higher level than all the rest. - - - - - The level designates very severe error events. - System unusable, emergencies. - - - - - The level designates very severe error events. - System unusable, emergencies. - - - - - The level designates very severe error events - that will presumably lead the application to abort. - - - - - The level designates very severe error events. - Take immediate action, alerts. - - - - - The level designates very severe error events. - Critical condition, critical. - - - - - The level designates very severe error events. - - - - - The level designates error events that might - still allow the application to continue running. - - - - - The level designates potentially harmful - situations. - - - - - The level designates informational messages - that highlight the progress of the application at the highest level. - - - - - The level designates informational messages that - highlight the progress of the application at coarse-grained level. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates the lowest level possible. - - - - - Gets the name of this level. - - - The name of this level. - - - - Gets the name of this level. - - - - - - Gets the value of this level. - - - The value of this level. - - - - Gets the value of this level. - - - - - - Gets the display name of this level. - - - The display name of this level. - - - - Gets the display name of this level. - - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a LevelCollection instance. - - list to create a readonly wrapper arround - - A LevelCollection wrapper that is read-only. - - - - - Initializes a new instance of the LevelCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the LevelCollection class - that has the specified initial capacity. - - - The number of elements that the new LevelCollection is initially capable of storing. - - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified LevelCollection. - - The LevelCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - Copies the entire LevelCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire LevelCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the LevelCollection. - - The to be added to the end of the LevelCollection. - The index at which the value has been added. - - - - Removes all elements from the LevelCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the LevelCollection. - - The to check for. - true if is found in the LevelCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the LevelCollection. - - The to locate in the LevelCollection. - - The zero-based index of the first occurrence of - in the entire LevelCollection, if found; otherwise, -1. - - - - - Inserts an element into the LevelCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the LevelCollection. - - The to remove from the LevelCollection. - - The specified was not found in the LevelCollection. - - - - - Removes the element at the specified index of the LevelCollection. - - The zero-based index of the element to remove. - - is less than zero - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the LevelCollection. - - An for the entire LevelCollection. - - - - Adds the elements of another LevelCollection to the current LevelCollection. - - The LevelCollection whose elements should be added to the end of the current LevelCollection. - The new of the LevelCollection. - - - - Adds the elements of a array to the current LevelCollection. - - The array whose elements should be added to the end of the LevelCollection. - The new of the LevelCollection. - - - - Adds the elements of a collection to the current LevelCollection. - - The collection whose elements should be added to the end of the LevelCollection. - The new of the LevelCollection. - - - - Sets the capacity to the actual number of elements. - - - - - is less than zero - -or- - is equal to or greater than . - - - - - is less than zero - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the LevelCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - The zero-based index of the element to get or set. - - is less than zero - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false - - - - Gets or sets the number of elements the LevelCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - A value - - - - - Supports simple iteration over a . - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - An evaluator that triggers at a threshold level - - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - Nicko Cadell - - - - The threshold for triggering - - - - - Create a new evaluator using the threshold. - - - - Create a new evaluator using the threshold. - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Create a new evaluator using the specified threshold. - - the threshold to trigger at - - - Create a new evaluator using the specified threshold. - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Is this the triggering event? - - The event to check - This method returns true, if the event level - is equal or higher than the . - Otherwise it returns false - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - the threshold to trigger at - - - The that will cause this evaluator to trigger - - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Mapping between string name and Level object - - - - Mapping between string name and object. - This mapping is held separately for each . - The level name is case insensitive. - - - Nicko Cadell - - - - Mapping from level name to Level object. The - level name is case insensitive - - - - - Construct the level map - - - - Construct the level map. - - - - - - Clear the internal maps of all levels - - - - Clear the internal maps of all levels - - - - - - Create a new Level and add it to the map - - the string to display for the Level - the level value to give to the Level - - - Create a new Level and add it to the map - - - - - - - Create a new Level and add it to the map - - the string to display for the Level - the level value to give to the Level - the display name to give to the Level - - - Create a new Level and add it to the map - - - - - - Add a Level to the map - - the Level to add - - - Add a Level to the map - - - - - - Lookup a named level from the map - - the name of the level to lookup is taken from this level. - If the level is not set on the map then this level is added - the level in the map with the name specified - - - Lookup a named level from the map. The name of the level to lookup is taken - from the property of the - argument. - - - If no level with the specified name is found then the - argument is added to the level map - and returned. - - - - - - Lookup a by name - - The name of the Level to lookup - a Level from the map with the name specified - - - Returns the from the - map with the name specified. If the no level is - found then null is returned. - - - - - - Return all possible levels as a list of Level objects. - - all possible levels as a list of Level objects - - - Return all possible levels as a list of Level objects. - - - - - - The internal representation of caller location information. - - - - This class uses the System.Diagnostics.StackTrace class to generate - a call stack. The caller's information is then extracted from this stack. - - - The System.Diagnostics.StackTrace class is not supported on the - .NET Compact Framework 1.0 therefore caller location information is not - available on that framework. - - - The System.Diagnostics.StackTrace class has this to say about Release builds: - - - "StackTrace information will be most informative with Debug build configurations. - By default, Debug builds include debug symbols, while Release builds do not. The - debug symbols contain most of the file, method name, line number, and column - information used in constructing StackFrame and StackTrace objects. StackTrace - might not report as many method calls as expected, due to code transformations - that occur during optimization." - - - This means that in a Release build the caller information may be incomplete or may - not exist at all! Therefore caller location information cannot be relied upon in a Release build. - - - Nicko Cadell - Gert Driesen - - - - When location information is not available the constant - NA is returned. Current value of this string - constant is ?. - - - - - Constructor - - The declaring type of the method that is - the stack boundary into the logging system for this call. - - - Initializes a new instance of the - class based on the current thread. - - - - - - Constructor - - The fully qualified class name. - The method name. - The file name. - The line number of the method within the file. - - - Initializes a new instance of the - class with the specified data. - - - - - - The fully qualified type of the LocationInfo class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the fully qualified class name of the caller making the logging - request. - - - The fully qualified class name of the caller making the logging - request. - - - - Gets the fully qualified class name of the caller making the logging - request. - - - - - - Gets the file name of the caller. - - - The file name of the caller. - - - - Gets the file name of the caller. - - - - - - Gets the line number of the caller. - - - The line number of the caller. - - - - Gets the line number of the caller. - - - - - - Gets the method name of the caller. - - - The method name of the caller. - - - - Gets the method name of the caller. - - - - - - Gets all available caller information - - - All available caller information, in the format - fully.qualified.classname.of.caller.methodName(Filename:line) - - - - Gets all available caller information, in the format - fully.qualified.classname.of.caller.methodName(Filename:line) - - - - - - Gets the stack frames from the stack trace of the caller making the log request - - - - - Static manager that controls the creation of repositories - - - - Static manager that controls the creation of repositories - - - This class is used by the wrapper managers (e.g. ) - to provide access to the objects. - - - This manager also holds the that is used to - lookup and create repositories. The selector can be set either programmatically using - the property, or by setting the log4net.RepositorySelector - AppSetting in the applications config file to the fully qualified type name of the - selector to use. - - - Nicko Cadell - Gert Driesen - - - - Private constructor to prevent instances. Only static methods should be used. - - - - Private constructor to prevent instances. Only static methods should be used. - - - - - - Hook the shutdown event - - - - On the full .NET runtime, the static constructor hooks up the - AppDomain.ProcessExit and AppDomain.DomainUnload> events. - These are used to shutdown the log4net system as the application exits. - - - - - - Register for ProcessExit and DomainUnload events on the AppDomain - - - - This needs to be in a separate method because the events make - a LinkDemand for the ControlAppDomain SecurityPermission. Because - this is a LinkDemand it is demanded at JIT time. Therefore we cannot - catch the exception in the method itself, we have to catch it in the - caller. - - - - - - Return the default instance. - - the repository to lookup in - Return the default instance - - - Gets the for the repository specified - by the argument. - - - - - - Returns the default instance. - - The assembly to use to lookup the repository. - The default instance. - - - - Return the default instance. - - the repository to lookup in - Return the default instance - - - Gets the for the repository specified - by the argument. - - - - - - Returns the default instance. - - The assembly to use to lookup the repository. - The default instance. - - - Returns the default instance. - - - - - - Returns the named logger if it exists. - - The repository to lookup in. - The fully qualified logger name to look for. - - The logger found, or null if the named logger does not exist in the - specified repository. - - - - If the named logger exists (in the specified repository) then it - returns a reference to the logger, otherwise it returns - null. - - - - - - Returns the named logger if it exists. - - The assembly to use to lookup the repository. - The fully qualified logger name to look for. - - The logger found, or null if the named logger does not exist in the - specified assembly's repository. - - - - If the named logger exists (in the specified assembly's repository) then it - returns a reference to the logger, otherwise it returns - null. - - - - - - Returns all the currently defined loggers in the specified repository. - - The repository to lookup in. - All the defined loggers. - - - The root logger is not included in the returned array. - - - - - - Returns all the currently defined loggers in the specified assembly's repository. - - The assembly to use to lookup the repository. - All the defined loggers. - - - The root logger is not included in the returned array. - - - - - - Retrieves or creates a named logger. - - The repository to lookup in. - The name of the logger to retrieve. - The logger with the name specified. - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - - - - Retrieves or creates a named logger. - - The assembly to use to lookup the repository. - The name of the logger to retrieve. - The logger with the name specified. - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - - - - Shorthand for . - - The repository to lookup in. - The of which the fullname will be used as the name of the logger to retrieve. - The logger with the name specified. - - - Gets the logger for the fully qualified name of the type specified. - - - - - - Shorthand for . - - the assembly to use to lookup the repository - The of which the fullname will be used as the name of the logger to retrieve. - The logger with the name specified. - - - Gets the logger for the fully qualified name of the type specified. - - - - - - Shuts down the log4net system. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in all the - default repositories. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - The repository to shutdown. - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository for the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - The assembly to use to lookup the repository. - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository for the repository. The repository is looked up using - the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Resets all values contained in this repository instance to their defaults. - - The repository to reset. - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - - - - Resets all values contained in this repository instance to their defaults. - - The assembly to use to lookup the repository to reset. - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - - - - Creates a repository with the specified name. - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name. - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The name must be unique. Repositories cannot be redefined. - An Exception will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The name must be unique. Repositories cannot be redefined. - An Exception will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository for the specified assembly and repository type. - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - - - - Creates a repository for the specified assembly and repository type. - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - - - - Gets an array of all currently defined repositories. - - An array of all the known objects. - - - Gets an array of all currently defined repositories. - - - - - - Internal method to get pertinent version info. - - A string of version info. - - - - Called when the event fires - - the that is exiting - null - - - Called when the event fires. - - - When the event is triggered the log4net system is . - - - - - - Called when the event fires - - the that is exiting - null - - - Called when the event fires. - - - When the event is triggered the log4net system is . - - - - - - The fully qualified type of the LoggerManager class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Initialize the default repository selector - - - - - Gets or sets the repository selector used by the . - - - The repository selector used by the . - - - - The repository selector () is used by - the to create and select repositories - (). - - - The caller to supplies either a string name - or an assembly (if not supplied the assembly is inferred using - ). - - - This context is used by the selector to lookup a specific repository. - - - For the full .NET Framework, the default repository is DefaultRepositorySelector; - for the .NET Compact Framework CompactRepositorySelector is the default - repository. - - - - - - Implementation of the interface. - - - - This class should be used as the base for all wrapper implementations. - - - Nicko Cadell - Gert Driesen - - - - Constructs a new wrapper for the specified logger. - - The logger to wrap. - - - Constructs a new wrapper for the specified logger. - - - - - - The logger that this object is wrapping - - - - - Gets the implementation behind this wrapper object. - - - The object that this object is implementing. - - - - The Logger object may not be the same object as this object - because of logger decorators. - - - This gets the actual underlying objects that is used to process - the log events. - - - - - - Portable data structure used by - - - - Portable data structure used by - - - Nicko Cadell - - - - The logger name. - - - - The logger name. - - - - - - Level of logging event. - - - - Level of logging event. Level cannot be Serializable - because it is a flyweight. Due to its special serialization it - cannot be declared final either. - - - - - - The application supplied message. - - - - The application supplied message of logging event. - - - - - - The name of thread - - - - The name of thread in which this logging event was generated - - - - - - The time the event was logged - - - - The TimeStamp is stored in the local time zone for this computer. - - - - - - Location information for the caller. - - - - Location information for the caller. - - - - - - String representation of the user - - - - String representation of the user's windows name, - like DOMAIN\username - - - - - - String representation of the identity. - - - - String representation of the current thread's principal identity. - - - - - - The string representation of the exception - - - - The string representation of the exception - - - - - - String representation of the AppDomain. - - - - String representation of the AppDomain. - - - - - - Additional event specific properties - - - - A logger or an appender may attach additional - properties to specific events. These properties - have a string key and an object value. - - - - - - Flags passed to the property - - - - Flags passed to the property - - - Nicko Cadell - - - - Fix the MDC - - - - - Fix the NDC - - - - - Fix the rendered message - - - - - Fix the thread name - - - - - Fix the callers location information - - - CAUTION: Very slow to generate - - - - - Fix the callers windows user name - - - CAUTION: Slow to generate - - - - - Fix the domain friendly name - - - - - Fix the callers principal name - - - CAUTION: May be slow to generate - - - - - Fix the exception text - - - - - Fix the event properties. Active properties must implement in order to be eligible for fixing. - - - - - No fields fixed - - - - - All fields fixed - - - - - Partial fields fixed - - - - This set of partial fields gives good performance. The following fields are fixed: - - - - - - - - - - - - - The internal representation of logging events. - - - - When an affirmative decision is made to log then a - instance is created. This instance - is passed around to the different log4net components. - - - This class is of concern to those wishing to extend log4net. - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - for incurred by calling but it - is essential to maintaining data consistency. - - - Nicko Cadell - Gert Driesen - Douglas de la Torre - Daniel Cazzulino - - - - The key into the Properties map for the host name value. - - - - - The key into the Properties map for the thread identity value. - - - - - The key into the Properties map for the user name value. - - - - - Initializes a new instance of the class - from the supplied parameters. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - The name of the logger of this event. - The level of this event. - The message of this event. - The exception for this event. - - - Except , and , - all fields of LoggingEvent are filled when actually needed. Call - to cache all data locally - to prevent inconsistencies. - - This method is called by the log4net framework - to create a logging event. - - - - - - Initializes a new instance of the class - using specific data. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - Data used to initialize the logging event. - The fields in the struct that have already been fixed. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - The parameter should be used to specify which fields in the - struct have been preset. Fields not specified in the - will be captured from the environment if requested or fixed. - - - - - - Initializes a new instance of the class - using specific data. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - Data used to initialize the logging event. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - This constructor sets this objects flags to , - this assumes that all the data relating to this event is passed in via the - parameter and no other data should be captured from the environment. - - - - - - Initializes a new instance of the class - using specific data. - - Data used to initialize the logging event. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - This constructor sets this objects flags to , - this assumes that all the data relating to this event is passed in via the - parameter and no other data should be captured from the environment. - - - - - - Serialization constructor - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Ensure that the repository is set. - - the value for the repository - - - - Write the rendered message to a TextWriter - - the writer to write the message to - - - Unlike the property this method - does store the message data in the internal cache. Therefore - if called only once this method should be faster than the - property, however if the message is - to be accessed multiple times then the property will be more efficient. - - - - - - Serializes this object into the provided. - - The to populate with data. - The destination for this serialization. - - - The data in this event must be fixed before it can be serialized. - - - The method must be called during the - method call if this event - is to be used outside that method. - - - - - - Gets the portable data for this . - - The for this event. - - - A new can be constructed using a - instance. - - - Does a fix of the data - in the logging event before returning the event data. - - - - - - Gets the portable data for this . - - The set of data to ensure is fixed in the LoggingEventData - The for this event. - - - A new can be constructed using a - instance. - - - - - - Returns this event's exception's rendered using the - . - - - This event's exception's rendered using the . - - - - Obsolete. Use instead. - - - - - - Returns this event's exception's rendered using the - . - - - This event's exception's rendered using the . - - - - Returns this event's exception's rendered using the - . - - - - - - Fix instance fields that hold volatile data. - - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - incurred by calling but it - is essential to maintaining data consistency. - - - Calling is equivalent to - calling passing the parameter - false. - - - See for more - information. - - - - - - Fixes instance fields that hold volatile data. - - Set to true to not fix data that takes a long time to fix. - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - for incurred by calling but it - is essential to maintaining data consistency. - - - The param controls the data that - is fixed. Some of the data that can be fixed takes a long time to - generate, therefore if you do not require those settings to be fixed - they can be ignored by setting the param - to true. This setting will ignore the - and settings. - - - Set to false to ensure that all - settings are fixed. - - - - - - Fix the fields specified by the parameter - - the fields to fix - - - Only fields specified in the will be fixed. - Fields will not be fixed if they have previously been fixed. - It is not possible to 'unfix' a field. - - - - - - Lookup a composite property in this event - - the key for the property to lookup - the value for the property - - - This event has composite properties that combine together properties from - several different contexts in the following order: - - - this events properties - - This event has that can be set. These - properties are specific to this event only. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - - - Get all the composite properties in this event - - the containing all the properties - - - See for details of the composite properties - stored by the event. - - - This method returns a single containing all the - properties defined for this event. - - - - - - The internal logging event data. - - - - - The internal logging event data. - - - - - The internal logging event data. - - - - - The fully qualified Type of the calling - logger class in the stack frame (i.e. the declaring type of the method). - - - - - The application supplied message of logging event. - - - - - The exception that was thrown. - - - This is not serialized. The string representation - is serialized instead. - - - - - The repository that generated the logging event - - - This is not serialized. - - - - - The fix state for this event - - - These flags indicate which fields have been fixed. - Not serialized. - - - - - Indicated that the internal cache is updateable (ie not fixed) - - - This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler - changes in the caching strategy. - - - - - Gets the time when the current process started. - - - This is the time when this process started. - - - - The TimeStamp is stored in the local time zone for this computer. - - - Tries to get the start time for the current process. - Failing that it returns the time of the first call to - this property. - - - Note that AppDomains may be loaded and unloaded within the - same process without the process terminating and therefore - without the process start time being reset. - - - - - - Gets the of the logging event. - - - The of the logging event. - - - - Gets the of the logging event. - - - - - - Gets the time of the logging event. - - - The time of the logging event. - - - - The TimeStamp is stored in the local time zone for this computer. - - - - - - Gets the name of the logger that logged the event. - - - The name of the logger that logged the event. - - - - Gets the name of the logger that logged the event. - - - - - - Gets the location information for this logging event. - - - The location information for this logging event. - - - - The collected information is cached for future use. - - - See the class for more information on - supported frameworks and the different behavior in Debug and - Release builds. - - - - - - Gets the message object used to initialize this event. - - - The message object used to initialize this event. - - - - Gets the message object used to initialize this event. - Note that this event may not have a valid message object. - If the event is serialized the message object will not - be transferred. To get the text of the message the - property must be used - not this property. - - - If there is no defined message object for this event then - null will be returned. - - - - - - Gets the exception object used to initialize this event. - - - The exception object used to initialize this event. - - - - Gets the exception object used to initialize this event. - Note that this event may not have a valid exception object. - If the event is serialized the exception object will not - be transferred. To get the text of the exception the - method must be used - not this property. - - - If there is no defined exception object for this event then - null will be returned. - - - - - - The that this event was created in. - - - - The that this event was created in. - - - - - - Gets the message, rendered through the . - - - The message rendered through the . - - - - The collected information is cached for future use. - - - - - - Gets the name of the current thread. - - - The name of the current thread, or the thread ID when - the name is not available. - - - - The collected information is cached for future use. - - - - - - Gets the name of the current user. - - - The name of the current user, or NOT AVAILABLE when the - underlying runtime has no support for retrieving the name of the - current user. - - - - Calls WindowsIdentity.GetCurrent().Name to get the name of - the current windows user. - - - To improve performance, we could cache the string representation of - the name, and reuse that as long as the identity stayed constant. - Once the identity changed, we would need to re-assign and re-render - the string. - - - However, the WindowsIdentity.GetCurrent() call seems to - return different objects every time, so the current implementation - doesn't do this type of caching. - - - Timing for these operations: - - - - Method - Results - - - WindowsIdentity.GetCurrent() - 10000 loops, 00:00:00.2031250 seconds - - - WindowsIdentity.GetCurrent().Name - 10000 loops, 00:00:08.0468750 seconds - - - - This means we could speed things up almost 40 times by caching the - value of the WindowsIdentity.GetCurrent().Name property, since - this takes (8.04-0.20) = 7.84375 seconds. - - - - - - Gets the identity of the current thread principal. - - - The string name of the identity of the current thread principal. - - - - Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get - the name of the current thread principal. - - - - - - Gets the AppDomain friendly name. - - - The AppDomain friendly name. - - - - Gets the AppDomain friendly name. - - - - - - Additional event specific properties. - - - Additional event specific properties. - - - - A logger or an appender may attach additional - properties to specific events. These properties - have a string key and an object value. - - - This property is for events that have been added directly to - this event. The aggregate properties (which include these - event properties) can be retrieved using - and . - - - Once the properties have been fixed this property - returns the combined cached properties. This ensures that updates to - this property are always reflected in the underlying storage. When - returning the combined properties there may be more keys in the - Dictionary than expected. - - - - - - The fixed fields in this event - - - The set of fields that are fixed in this event - - - - Fields will not be fixed if they have previously been fixed. - It is not possible to 'unfix' a field. - - - - - - Implementation of wrapper interface. - - - - This implementation of the interface - forwards to the held by the base class. - - - This logger has methods to allow the caller to log at the following - levels: - - - - DEBUG - - The and methods log messages - at the DEBUG level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - INFO - - The and methods log messages - at the INFO level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - WARN - - The and methods log messages - at the WARN level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - ERROR - - The and methods log messages - at the ERROR level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - FATAL - - The and methods log messages - at the FATAL level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - - The values for these levels and their semantic meanings can be changed by - configuring the for the repository. - - - Nicko Cadell - Gert Driesen - - - - The ILog interface is use by application to log messages into - the log4net framework. - - - - Use the to obtain logger instances - that implement this interface. The - static method is used to get logger instances. - - - This class contains methods for logging at different levels and also - has properties for determining if those logging levels are - enabled in the current configuration. - - - This interface can be implemented in different ways. This documentation - specifies reasonable behavior that a caller can expect from the actual - implementation, however different implementations reserve the right to - do things differently. - - - Simple example of logging messages - - ILog log = LogManager.GetLogger("application-log"); - - log.Info("Application Start"); - log.Debug("This is a debug message"); - - if (log.IsDebugEnabled) - { - log.Debug("This is another debug message"); - } - - - - - Nicko Cadell - Gert Driesen - - - Log a message object with the level. - - Log a message object with the level. - - The message object to log. - - - This method first checks if this logger is DEBUG - enabled by comparing the level of this logger with the - level. If this logger is - DEBUG enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of - the additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Logs a message object with the level. - - - - This method first checks if this logger is INFO - enabled by comparing the level of this logger with the - level. If this logger is - INFO enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Logs a message object with the INFO level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Log a message object with the level. - - - - This method first checks if this logger is WARN - enabled by comparing the level of this logger with the - level. If this logger is - WARN enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Logs a message object with the level. - - The message object to log. - - - This method first checks if this logger is ERROR - enabled by comparing the level of this logger with the - level. If this logger is - ERROR enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Log a message object with the level. - - - - This method first checks if this logger is FATAL - enabled by comparing the level of this logger with the - level. If this logger is - FATAL enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - - This function is intended to lessen the computational cost of - disabled log debug statements. - - For some ILog interface log, when you write: - - log.Debug("This is entry number: " + i ); - - - You incur the cost constructing the message, string construction and concatenation in - this case, regardless of whether the message is logged or not. - - - If you are worried about speed (who isn't), then you should write: - - - if (log.IsDebugEnabled) - { - log.Debug("This is entry number: " + i ); - } - - - This way you will not incur the cost of parameter - construction if debugging is disabled for log. On - the other hand, if the log is debug enabled, you - will incur the cost of evaluating whether the logger is debug - enabled twice. Once in and once in - the . This is an insignificant overhead - since evaluating a logger takes about 1% of the time it - takes to actually log. This is the preferred style of logging. - - Alternatively if your logger is available statically then the is debug - enabled state can be stored in a static variable like this: - - - private static readonly bool isDebugEnabled = log.IsDebugEnabled; - - - Then when you come to log you can write: - - - if (isDebugEnabled) - { - log.Debug("This is entry number: " + i ); - } - - - This way the debug enabled state is only queried once - when the class is loaded. Using a private static readonly - variable is the most efficient because it is a run time constant - and can be heavily optimized by the JIT compiler. - - - Of course if you use a static readonly variable to - hold the enabled state of the logger then you cannot - change the enabled state at runtime to vary the logging - that is produced. You have to decide if you need absolute - speed or runtime flexibility. - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Construct a new wrapper for the specified logger. - - The logger to wrap. - - - Construct a new wrapper for the specified logger. - - - - - - Virtual method called when the configuration of the repository changes - - the repository holding the levels - - - Virtual method called when the configuration of the repository changes - - - - - - Logs a message object with the DEBUG level. - - The message object to log. - - - This method first checks if this logger is DEBUG - enabled by comparing the level of this logger with the - DEBUG level. If this logger is - DEBUG enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the DEBUG level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the DEBUG level including - the stack trace of the passed - as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the INFO level. - - The message object to log. - - - This method first checks if this logger is INFO - enabled by comparing the level of this logger with the - INFO level. If this logger is - INFO enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of - the additivity flag. - - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the INFO level. - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the INFO level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the WARN level. - - the message object to log - - - This method first checks if this logger is WARN - enabled by comparing the level of this logger with the - WARN level. If this logger is - WARN enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the WARN level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the WARN level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the ERROR level. - - The message object to log. - - - This method first checks if this logger is ERROR - enabled by comparing the level of this logger with the - ERROR level. If this logger is - ERROR enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the ERROR level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the ERROR level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the FATAL level. - - The message object to log. - - - This method first checks if this logger is FATAL - enabled by comparing the level of this logger with the - FATAL level. If this logger is - FATAL enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the FATAL level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the FATAL level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Event handler for the event - - the repository - Empty - - - - The fully qualified name of this declaring type not the type of any subclass. - - - - - Checks if this logger is enabled for the DEBUG - level. - - - true if this logger is enabled for DEBUG events, - false otherwise. - - - - This function is intended to lessen the computational cost of - disabled log debug statements. - - - For some log Logger object, when you write: - - - log.Debug("This is entry number: " + i ); - - - You incur the cost constructing the message, concatenation in - this case, regardless of whether the message is logged or not. - - - If you are worried about speed, then you should write: - - - if (log.IsDebugEnabled()) - { - log.Debug("This is entry number: " + i ); - } - - - This way you will not incur the cost of parameter - construction if debugging is disabled for log. On - the other hand, if the log is debug enabled, you - will incur the cost of evaluating whether the logger is debug - enabled twice. Once in IsDebugEnabled and once in - the Debug. This is an insignificant overhead - since evaluating a logger takes about 1% of the time it - takes to actually log. - - - - - - Checks if this logger is enabled for the INFO level. - - - true if this logger is enabled for INFO events, - false otherwise. - - - - See for more information and examples - of using this method. - - - - - - - Checks if this logger is enabled for the WARN level. - - - true if this logger is enabled for WARN events, - false otherwise. - - - - See for more information and examples - of using this method. - - - - - - - Checks if this logger is enabled for the ERROR level. - - - true if this logger is enabled for ERROR events, - false otherwise. - - - - See for more information and examples of using this method. - - - - - - - Checks if this logger is enabled for the FATAL level. - - - true if this logger is enabled for FATAL events, - false otherwise. - - - - See for more information and examples of using this method. - - - - - - - provides method information without actually referencing a System.Reflection.MethodBase - as that would require that the containing assembly is loaded. - - - - - - When location information is not available the constant - NA is returned. Current value of this string - constant is ?. - - - - - constructs a method item for an unknown method. - - - - - constructs a method item from the name of the method. - - - - - - constructs a method item from the name of the method and its parameters. - - - - - - - constructs a method item from a method base by determining the method name and its parameters. - - - - - - The fully qualified type of the StackFrameItem class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the method name of the caller making the logging - request. - - - The method name of the caller making the logging - request. - - - - Gets the method name of the caller making the logging - request. - - - - - - Gets the method parameters of the caller making - the logging request. - - - The method parameters of the caller making - the logging request - - - - Gets the method parameters of the caller making - the logging request. - - - - - - A SecurityContext used by log4net when interacting with protected resources - - - - A SecurityContext used by log4net when interacting with protected resources - for example with operating system services. This can be used to impersonate - a principal that has been granted privileges on the system resources. - - - Nicko Cadell - - - - Impersonate this SecurityContext - - State supplied by the caller - An instance that will - revoke the impersonation of this SecurityContext, or null - - - Impersonate this security context. Further calls on the current - thread should now be made in the security context provided - by this object. When the result - method is called the security - context of the thread should be reverted to the state it was in - before was called. - - - - - - The providers default instances. - - - - A configured component that interacts with potentially protected system - resources uses a to provide the elevated - privileges required. If the object has - been not been explicitly provided to the component then the component - will request one from this . - - - By default the is - an instance of which returns only - objects. This is a reasonable default - where the privileges required are not know by the system. - - - This default behavior can be overridden by subclassing the - and overriding the method to return - the desired objects. The default provider - can be replaced by programmatically setting the value of the - property. - - - An alternative is to use the log4net.Config.SecurityContextProviderAttribute - This attribute can be applied to an assembly in the same way as the - log4net.Config.XmlConfiguratorAttribute". The attribute takes - the type to use as the as an argument. - - - Nicko Cadell - - - - The default provider - - - - - Protected default constructor to allow subclassing - - - - Protected default constructor to allow subclassing - - - - - - Create a SecurityContext for a consumer - - The consumer requesting the SecurityContext - An impersonation context - - - The default implementation is to return a . - - - Subclasses should override this method to provide their own - behavior. - - - - - - Gets or sets the default SecurityContextProvider - - - The default SecurityContextProvider - - - - The default provider is used by configured components that - require a and have not had one - given to them. - - - By default this is an instance of - that returns objects. - - - The default provider can be set programmatically by setting - the value of this property to a sub class of - that has the desired behavior. - - - - - - provides stack frame information without actually referencing a System.Diagnostics.StackFrame - as that would require that the containing assembly is loaded. - - - - - - When location information is not available the constant - NA is returned. Current value of this string - constant is ?. - - - - - returns a stack frame item from a stack frame. This - - - - - - - The fully qualified type of the StackFrameItem class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the fully qualified class name of the caller making the logging - request. - - - The fully qualified class name of the caller making the logging - request. - - - - Gets the fully qualified class name of the caller making the logging - request. - - - - - - Gets the file name of the caller. - - - The file name of the caller. - - - - Gets the file name of the caller. - - - - - - Gets the line number of the caller. - - - The line number of the caller. - - - - Gets the line number of the caller. - - - - - - Gets the method name of the caller. - - - The method name of the caller. - - - - Gets the method name of the caller. - - - - - - Gets all available caller information - - - All available caller information, in the format - fully.qualified.classname.of.caller.methodName(Filename:line) - - - - Gets all available caller information, in the format - fully.qualified.classname.of.caller.methodName(Filename:line) - - - - - - An evaluator that triggers after specified number of seconds. - - - - This evaluator will trigger if the specified time period - has passed since last check. - - - Robert Sevcik - - - - The default time threshold for triggering in seconds. Zero means it won't trigger at all. - - - - - The time threshold for triggering in seconds. Zero means it won't trigger at all. - - - - - The time of last check. This gets updated when the object is created and when the evaluator triggers. - - - - - Create a new evaluator using the time threshold in seconds. - - - - Create a new evaluator using the time threshold in seconds. - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Create a new evaluator using the specified time threshold in seconds. - - - The time threshold in seconds to trigger after. - Zero means it won't trigger at all. - - - - Create a new evaluator using the specified time threshold in seconds. - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Is this the triggering event? - - The event to check - This method returns true, if the specified time period - has passed since last check.. - Otherwise it returns false - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - The time threshold in seconds to trigger after - - - The time threshold in seconds to trigger after. - Zero means it won't trigger at all. - - - - This evaluator will trigger if the specified time period - has passed since last check. - - - - - - Delegate used to handle creation of new wrappers. - - The logger to wrap in a wrapper. - - - Delegate used to handle creation of new wrappers. This delegate - is called from the - method to construct the wrapper for the specified logger. - - - The delegate to use is supplied to the - constructor. - - - - - - Maps between logger objects and wrapper objects. - - - - This class maintains a mapping between objects and - objects. Use the method to - lookup the for the specified . - - - New wrapper instances are created by the - method. The default behavior is for this method to delegate construction - of the wrapper to the delegate supplied - to the constructor. This allows specialization of the behavior without - requiring subclassing of this type. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the - - The handler to use to create the wrapper objects. - - - Initializes a new instance of the class with - the specified handler to create the wrapper objects. - - - - - - Gets the wrapper object for the specified logger. - - The wrapper object for the specified logger - - - If the logger is null then the corresponding wrapper is null. - - - Looks up the wrapper it it has previously been requested and - returns it. If the wrapper has never been requested before then - the virtual method is - called. - - - - - - Creates the wrapper object for the specified logger. - - The logger to wrap in a wrapper. - The wrapper object for the logger. - - - This implementation uses the - passed to the constructor to create the wrapper. This method - can be overridden in a subclass. - - - - - - Called when a monitored repository shutdown event is received. - - The that is shutting down - - - This method is called when a that this - is holding loggers for has signaled its shutdown - event . The default - behavior of this method is to release the references to the loggers - and their wrappers generated for this repository. - - - - - - Event handler for repository shutdown event. - - The sender of the event. - The event args. - - - - Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings - - - - - The handler to use to create the extension wrapper objects. - - - - - Internal reference to the delegate used to register for repository shutdown events. - - - - - Gets the map of logger repositories. - - - Map of logger repositories. - - - - Gets the hashtable that is keyed on . The - values are hashtables keyed on with the - value being the corresponding . - - - - - - Formats a as "HH:mm:ss,fff". - - - - Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". - - - Nicko Cadell - Gert Driesen - - - - Render a as a string. - - - - Interface to abstract the rendering of a - instance into a string. - - - The method is used to render the - date to a text writer. - - - Nicko Cadell - Gert Driesen - - - - Formats the specified date as a string. - - The date to format. - The writer to write to. - - - Format the as a string and write it - to the provided. - - - - - - String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. - - - - - String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. - - - - - String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. - - - - - Renders the date into a string. Format is "HH:mm:ss". - - The date to render into a string. - The string builder to write to. - - - Subclasses should override this method to render the date - into a string using a precision up to the second. This method - will be called at most once per second and the result will be - reused if it is needed again during the same second. - - - - - - Renders the date into a string. Format is "HH:mm:ss,fff". - - The date to render into a string. - The writer to write to. - - - Uses the method to generate the - time string up to the seconds and then appends the current - milliseconds. The results from are - cached and is called at most once - per second. - - - Sub classes should override - rather than . - - - - - - Last stored time with precision up to the second. - - - - - Last stored time with precision up to the second, formatted - as a string. - - - - - Last stored time with precision up to the second, formatted - as a string. - - - - - Formats a as "dd MMM yyyy HH:mm:ss,fff" - - - - Formats a in the format - "dd MMM yyyy HH:mm:ss,fff" for example, - "06 Nov 1994 15:49:37,459". - - - Nicko Cadell - Gert Driesen - Angelika Schnagl - - - - Default constructor. - - - - Initializes a new instance of the class. - - - - - - Formats the date without the milliseconds part - - The date to format. - The string builder to write to. - - - Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" - for example, "06 Nov 1994 15:49:37". - - - The base class will append the ",fff" milliseconds section. - This method will only be called at most once per second. - - - - - - The format info for the invariant culture. - - - - - Formats the as "yyyy-MM-dd HH:mm:ss,fff". - - - - Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Formats the date without the milliseconds part - - The date to format. - The string builder to write to. - - - Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". - - - The base class will append the ",fff" milliseconds section. - This method will only be called at most once per second. - - - - - - Formats the using the method. - - - - Formats the using the method. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The format string. - - - Initializes a new instance of the class - with the specified format string. - - - The format string must be compatible with the options - that can be supplied to . - - - - - - Formats the date using . - - The date to convert to a string. - The writer to write to. - - - Uses the date format string supplied to the constructor to call - the method to format the date. - - - - - - The format string used to format the . - - - - The format string must be compatible with the options - that can be supplied to . - - - - - - This filter drops all . - - - - You can add this filter to the end of a filter chain to - switch from the default "accept all unless instructed otherwise" - filtering behavior to a "deny all unless instructed otherwise" - behavior. - - - Nicko Cadell - Gert Driesen - - - - Subclass this type to implement customized logging event filtering - - - - Users should extend this class to implement customized logging - event filtering. Note that and - , the parent class of all standard - appenders, have built-in filtering rules. It is suggested that you - first use and understand the built-in rules before rushing to write - your own custom filters. - - - This abstract class assumes and also imposes that filters be - organized in a linear chain. The - method of each filter is called sequentially, in the order of their - addition to the chain. - - - The method must return one - of the integer constants , - or . - - - If the value is returned, then the log event is dropped - immediately without consulting with the remaining filters. - - - If the value is returned, then the next filter - in the chain is consulted. If there are no more filters in the - chain, then the log event is logged. Thus, in the presence of no - filters, the default behavior is to log all logging events. - - - If the value is returned, then the log - event is logged without consulting the remaining filters. - - - The philosophy of log4net filters is largely inspired from the - Linux ipchains. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface to provide customized logging event filtering - - - - Users should implement this interface to implement customized logging - event filtering. Note that and - , the parent class of all standard - appenders, have built-in filtering rules. It is suggested that you - first use and understand the built-in rules before rushing to write - your own custom filters. - - - This abstract class assumes and also imposes that filters be - organized in a linear chain. The - method of each filter is called sequentially, in the order of their - addition to the chain. - - - The method must return one - of the integer constants , - or . - - - If the value is returned, then the log event is dropped - immediately without consulting with the remaining filters. - - - If the value is returned, then the next filter - in the chain is consulted. If there are no more filters in the - chain, then the log event is logged. Thus, in the presence of no - filters, the default behavior is to log all logging events. - - - If the value is returned, then the log - event is logged without consulting the remaining filters. - - - The philosophy of log4net filters is largely inspired from the - Linux ipchains. - - - Nicko Cadell - Gert Driesen - - - - Decide if the logging event should be logged through an appender. - - The LoggingEvent to decide upon - The decision of the filter - - - If the decision is , then the event will be - dropped. If the decision is , then the next - filter, if any, will be invoked. If the decision is then - the event will be logged without consulting with other filters in - the chain. - - - - - - Property to get and set the next filter - - - The next filter in the chain - - - - Filters are typically composed into chains. This property allows the next filter in - the chain to be accessed. - - - - - - Points to the next filter in the filter chain. - - - - See for more information. - - - - - - Initialize the filter with the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Typically filter's options become active immediately on set, - however this method must still be called. - - - - - - Decide if the should be logged through an appender. - - The to decide upon - The decision of the filter - - - If the decision is , then the event will be - dropped. If the decision is , then the next - filter, if any, will be invoked. If the decision is then - the event will be logged without consulting with other filters in - the chain. - - - This method is marked abstract and must be implemented - in a subclass. - - - - - - Property to get and set the next filter - - - The next filter in the chain - - - - Filters are typically composed into chains. This property allows the next filter in - the chain to be accessed. - - - - - - Default constructor - - - - - Always returns the integer constant - - the LoggingEvent to filter - Always returns - - - Ignores the event being logged and just returns - . This can be used to change the default filter - chain behavior from to . This filter - should only be used as the last filter in the chain - as any further filters will be ignored! - - - - - - The return result from - - - - The return result from - - - - - - The log event must be dropped immediately without - consulting with the remaining filters, if any, in the chain. - - - - - This filter is neutral with respect to the log event. - The remaining filters, if any, should be consulted for a final decision. - - - - - The log event must be logged immediately without - consulting with the remaining filters, if any, in the chain. - - - - - This is a very simple filter based on matching. - - - - The filter admits two options and - . If there is an exact match between the value - of the option and the of the - , then the method returns in - case the option value is set - to true, if it is false then - is returned. If the does not match then - the result will be . - - - Nicko Cadell - Gert Driesen - - - - flag to indicate if the filter should on a match - - - - - the to match against - - - - - Default constructor - - - - - Tests if the of the logging event matches that of the filter - - the event to filter - see remarks - - - If the of the event matches the level of the - filter then the result of the function depends on the - value of . If it is true then - the function will return , it it is false then it - will return . If the does not match then - the result will be . - - - - - - when matching - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - The that the filter will match - - - - The level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - This is a simple filter based on matching. - - - - The filter admits three options and - that determine the range of priorities that are matched, and - . If there is a match between the range - of priorities and the of the , then the - method returns in case the - option value is set to true, if it is false - then is returned. If there is no match, is returned. - - - Nicko Cadell - Gert Driesen - - - - Flag to indicate the behavior when matching a - - - - - the minimum value to match - - - - - the maximum value to match - - - - - Default constructor - - - - - Check if the event should be logged. - - the logging event to check - see remarks - - - If the of the logging event is outside the range - matched by this filter then - is returned. If the is matched then the value of - is checked. If it is true then - is returned, otherwise - is returned. - - - - - - when matching and - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - Set the minimum matched - - - - The minimum level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - Sets the maximum matched - - - - The maximum level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - Simple filter to match a string in the event's logger name. - - - - The works very similar to the . It admits two - options and . If the - of the starts - with the value of the option, then the - method returns in - case the option value is set to true, - if it is false then is returned. - - - Daniel Cazzulino - - - - Flag to indicate the behavior when we have a match - - - - - The logger name string to substring match against the event - - - - - Default constructor - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The rendered message is matched against the . - If the equals the beginning of - the incoming () - then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - when matching - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - The that the filter will match - - - - This filter will attempt to match this value against logger name in - the following way. The match will be done against the beginning of the - logger name (using ). The match is - case sensitive. If a match is found then - the result depends on the value of . - - - - - - Simple filter to match a keyed string in the - - - - Simple filter to match a keyed string in the - - - As the MDC has been replaced with layered properties the - should be used instead. - - - Nicko Cadell - Gert Driesen - - - - Simple filter to match a string an event property - - - - Simple filter to match a string in the value for a - specific event property - - - Nicko Cadell - - - - Simple filter to match a string in the rendered message - - - - Simple filter to match a string in the rendered message - - - Nicko Cadell - Gert Driesen - - - - Flag to indicate the behavior when we have a match - - - - - The string to substring match against the message - - - - - A string regex to match - - - - - A regex object to match (generated from m_stringRegexToMatch) - - - - - Default constructor - - - - - Initialize and precompile the Regex if required - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The rendered message is matched against the . - If the occurs as a substring within - the message then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - when matching or - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - Sets the static string to match - - - - The string that will be substring matched against - the rendered message. If the message contains this - string then the filter will match. If a match is found then - the result depends on the value of . - - - One of or - must be specified. - - - - - - Sets the regular expression to match - - - - The regular expression pattern that will be matched against - the rendered message. If the message matches this - pattern then the filter will match. If a match is found then - the result depends on the value of . - - - One of or - must be specified. - - - - - - The key to use to lookup the string from the event properties - - - - - Default constructor - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The event property for the is matched against - the . - If the occurs as a substring within - the property value then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - The key to lookup in the event properties and then match against. - - - - The key name to use to lookup in the properties map of the - . The match will be performed against - the value of this property if it exists. - - - - - - Simple filter to match a string in the - - - - Simple filter to match a string in the - - - As the MDC has been replaced with named stacks stored in the - properties collections the should - be used instead. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Sets the to "NDC". - - - - - - Write the event appdomain name to the output - - - - Writes the to the output writer. - - - Daniel Cazzulino - Nicko Cadell - - - - Abstract class that provides the formatting functionality that - derived classes need. - - - Conversion specifiers in a conversion patterns are parsed to - individual PatternConverters. Each of which is responsible for - converting a logging event in a converter specific manner. - - Nicko Cadell - - - - Abstract class that provides the formatting functionality that - derived classes need. - - - - Conversion specifiers in a conversion patterns are parsed to - individual PatternConverters. Each of which is responsible for - converting a logging event in a converter specific manner. - - - Nicko Cadell - Gert Driesen - - - - Initial buffer size - - - - - Maximum buffer size before it is recycled - - - - - Protected constructor - - - - Initializes a new instance of the class. - - - - - - Evaluate this pattern converter and write the output to a writer. - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the appropriate way. - - - - - - Set the next pattern converter in the chains - - the pattern converter that should follow this converter in the chain - the next converter - - - The PatternConverter can merge with its neighbor during this method (or a sub class). - Therefore the return value may or may not be the value of the argument passed in. - - - - - - Write the pattern converter to the writer with appropriate formatting - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - This method calls to allow the subclass to perform - appropriate conversion of the pattern converter. If formatting options have - been specified via the then this method will - apply those formattings before writing the output. - - - - - - Fast space padding method. - - to which the spaces will be appended. - The number of spaces to be padded. - - - Fast space padding method. - - - - - - The option string to the converter - - - - - Write an dictionary to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the to a writer in the form: - - - {key1=value1, key2=value2, key3=value3} - - - If the specified - is not null then it is used to render the key and value to text, otherwise - the object's ToString method is called. - - - - - - Write an dictionary to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the to a writer in the form: - - - {key1=value1, key2=value2, key3=value3} - - - If the specified - is not null then it is used to render the key and value to text, otherwise - the object's ToString method is called. - - - - - - Write an object to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the Object to a writer. If the specified - is not null then it is used to render the object to text, otherwise - the object's ToString method is called. - - - - - - Get the next pattern converter in the chain - - - the next pattern converter in the chain - - - - Get the next pattern converter in the chain - - - - - - Gets or sets the formatting info for this converter - - - The formatting info for this converter - - - - Gets or sets the formatting info for this converter - - - - - - Gets or sets the option value for this converter - - - The option for this converter - - - - Gets or sets the option value for this converter - - - - - - - - - - - Initializes a new instance of the class. - - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The on which the pattern converter should be executed. - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - - Flag indicating if this converter handles exceptions - - - false if this converter handles exceptions - - - - - Flag indicating if this converter handles the logging event exception - - false if this converter handles the logging event exception - - - If this converter handles the exception object contained within - , then this property should be set to - false. Otherwise, if the layout ignores the exception - object, then the property should be set to true. - - - Set this value to override a this default setting. The default - value is true, this converter does not handle the exception. - - - - - - Write the event appdomain name to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output . - - - - - - Converter for items in the ASP.Net Cache. - - - - Outputs an item from the . - - - Ron Grabowski - - - - Abstract class that provides access to the current HttpContext () that - derived classes need. - - - This class handles the case when HttpContext.Current is null by writing - to the writer. - - Ron Grabowski - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - - Write the ASP.Net Cache item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. If no property has been set, all key value pairs from the Cache will - be written to the output. - - - - - - Converter for items in the . - - - - Outputs an item from the . - - - Ron Grabowski - - - - Write the ASP.Net HttpContext item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. - - - - - - Converter for items in the ASP.Net Cache. - - - - Outputs an item from the . - - - Ron Grabowski - - - - Write the ASP.Net Cache item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. - - - - - - Converter for items in the ASP.Net Cache. - - - - Outputs an item from the . - - - Ron Grabowski - - - - Write the ASP.Net Cache item to the output - - that will receive the formatted result. - The on which the pattern converter should be executed. - The under which the ASP.Net request is running. - - - Writes out the value of a named property. The property name - should be set in the - property. If no property has been set, all key value pairs from the Session will - be written to the output. - - - - - - Date pattern converter, uses a to format - the date of a . - - - - Render the to the writer as a string. - - - The value of the determines - the formatting of the date. The following values are allowed: - - - Option value - Output - - - ISO8601 - - Uses the formatter. - Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. - - - - DATE - - Uses the formatter. - Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". - - - - ABSOLUTE - - Uses the formatter. - Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". - - - - other - - Any other pattern string uses the formatter. - This formatter passes the pattern string to the - method. - For details on valid patterns see - DateTimeFormatInfo Class. - - - - - - The is in the local time zone and is rendered in that zone. - To output the time in Universal time see . - - - Nicko Cadell - - - - The used to render the date to a string - - - - The used to render the date to a string - - - - - - Initialize the converter pattern based on the property. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Convert the pattern into the rendered message - - that will receive the formatted result. - the event being logged - - - Pass the to the - for it to render it to the writer. - - - The passed is in the local time zone. - - - - - - The fully qualified type of the DatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the exception text to the output - - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - - - If there is no exception then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - Nicko Cadell - - - - Default constructor - - - - - Write the exception text to the output - - that will receive the formatted result. - the event being logged - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - - - If there is no exception or the exception property specified - by the Option value does not exist then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - Recognized values for the Option parameter are: - - - - Message - - - Source - - - StackTrace - - - TargetSite - - - HelpLink - - - - - - - Writes the caller location file name to the output - - - - Writes the value of the for - the event to the output writer. - - - Nicko Cadell - - - - Write the caller location file name to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the for - the to the output . - - - - - - Write the caller location info to the output - - - - Writes the to the output writer. - - - Nicko Cadell - - - - Write the caller location info to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output writer. - - - - - - Writes the event identity to the output - - - - Writes the value of the to - the output writer. - - - Daniel Cazzulino - Nicko Cadell - - - - Writes the event identity to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the - to - the output . - - - - - - Write the event level to the output - - - - Writes the display name of the event - to the writer. - - - Nicko Cadell - - - - Write the event level to the output - - that will receive the formatted result. - the event being logged - - - Writes the of the - to the . - - - - - - Write the caller location line number to the output - - - - Writes the value of the for - the event to the output writer. - - - Nicko Cadell - - - - Write the caller location line number to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the for - the to the output . - - - - - - Converter for logger name - - - - Outputs the of the event. - - - Nicko Cadell - - - - Converter to output and truncate '.' separated strings - - - - This abstract class supports truncating a '.' separated string - to show a specified number of elements from the right hand side. - This is used to truncate class names that are fully qualified. - - - Subclasses should override the method to - return the fully qualified string. - - - Nicko Cadell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Get the fully qualified string data - - the event being logged - the fully qualified name - - - Overridden by subclasses to get the fully qualified name before the - precision is applied to it. - - - Return the fully qualified '.' (dot/period) separated string. - - - - - - Convert the pattern to the rendered message - - that will receive the formatted result. - the event being logged - - Render the to the precision - specified by the property. - - - - - The fully qualified type of the NamedPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the fully qualified name of the logger - - the event being logged - The fully qualified logger name - - - Returns the of the . - - - - - - Writes the event message to the output - - - - Uses the method - to write out the event message. - - - Nicko Cadell - - - - Writes the event message to the output - - that will receive the formatted result. - the event being logged - - - Uses the method - to write out the event message. - - - - - - Write the method name to the output - - - - Writes the caller location to - the output. - - - Nicko Cadell - - - - Write the method name to the output - - that will receive the formatted result. - the event being logged - - - Writes the caller location to - the output. - - - - - - Converter to include event NDC - - - - Outputs the value of the event property named NDC. - - - The should be used instead. - - - Nicko Cadell - - - - Write the event NDC to the output - - that will receive the formatted result. - the event being logged - - - As the thread context stacks are now stored in named event properties - this converter simply looks up the value of the NDC property. - - - The should be used instead. - - - - - - Property pattern converter - - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - Nicko Cadell - - - - Write the property value to the output - - that will receive the formatted result. - the event being logged - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - - - - Converter to output the relative time of the event - - - - Converter to output the time of the event relative to the start of the program. - - - Nicko Cadell - - - - Write the relative time to the output - - that will receive the formatted result. - the event being logged - - - Writes out the relative time of the event in milliseconds. - That is the number of milliseconds between the event - and the . - - - - - - Helper method to get the time difference between two DateTime objects - - start time (in the current local time zone) - end time (in the current local time zone) - the time difference in milliseconds - - - - Write the caller stack frames to the output - - - - Writes the to the output writer, using format: - type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) - - - Adam Davies - - - - Write the caller stack frames to the output - - - - Writes the to the output writer, using format: - type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 - - - Michael Cromwell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the strack frames to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output writer. - - - - - - Returns the Name of the method - - - This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter - string - - - - The fully qualified type of the StackTracePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - The fully qualified type of the StackTraceDetailPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Converter to include event thread name - - - - Writes the to the output. - - - Nicko Cadell - - - - Write the ThreadName to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the . - - - - - - Pattern converter for the class name - - - - Outputs the of the event. - - - Nicko Cadell - - - - Gets the fully qualified name of the class - - the event being logged - The fully qualified type name for the caller location - - - Returns the of the . - - - - - - Converter to include event user name - - Douglas de la Torre - Nicko Cadell - - - - Convert the pattern to the rendered message - - that will receive the formatted result. - the event being logged - - - - Write the TimeStamp to the output - - - - Date pattern converter, uses a to format - the date of a . - - - Uses a to format the - in Universal time. - - - See the for details on the date pattern syntax. - - - - Nicko Cadell - - - - Write the TimeStamp to the output - - that will receive the formatted result. - the event being logged - - - Pass the to the - for it to render it to the writer. - - - The passed is in the local time zone, this is converted - to Universal time before it is rendered. - - - - - - - The fully qualified type of the UtcDatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - A flexible layout configurable with pattern string that re-evaluates on each call. - - - This class is built on and provides all the - features and capabilities of PatternLayout. PatternLayout is a 'static' class - in that its layout is done once at configuration time. This class will recreate - the layout on each reference. - One important difference between PatternLayout and DynamicPatternLayout is the - treatment of the Header and Footer parameters in the configuration. The Header and Footer - parameters for DynamicPatternLayout must be syntactically in the form of a PatternString, - but should not be marked as type log4net.Util.PatternString. Doing so causes the - pattern to be statically converted at configuration time and causes DynamicPatternLayout - to perform the same as PatternLayout. - Please see for complete documentation. - - <layout type="log4net.Layout.DynamicPatternLayout"> - <param name="Header" value="%newline**** Trace Opened Local: %date{yyyy-MM-dd HH:mm:ss.fff} UTC: %utcdate{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> - <param name="Footer" value="**** Trace Closed %date{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> - </layout> - - - - - - A flexible layout configurable with pattern string. - - - - The goal of this class is to a - as a string. The results - depend on the conversion pattern. - - - The conversion pattern is closely related to the conversion - pattern of the printf function in C. A conversion pattern is - composed of literal text and format control expressions called - conversion specifiers. - - - You are free to insert any literal text within the conversion - pattern. - - - Each conversion specifier starts with a percent sign (%) and is - followed by optional format modifiers and a conversion - pattern name. The conversion pattern name specifies the type of - data, e.g. logger, level, date, thread name. The format - modifiers control such things as field width, padding, left and - right justification. The following is a simple example. - - - Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume - that the log4net environment was set to use a PatternLayout. Then the - statements - - - ILog log = LogManager.GetLogger(typeof(TestApp)); - log.Debug("Message 1"); - log.Warn("Message 2"); - - would yield the output - - DEBUG [main]: Message 1 - WARN [main]: Message 2 - - - Note that there is no explicit separator between text and - conversion specifiers. The pattern parser knows when it has reached - the end of a conversion specifier when it reads a conversion - character. In the example above the conversion specifier - %-5level means the level of the logging event should be left - justified to a width of five characters. - - - The recognized conversion pattern names are: - - - - Conversion Pattern Name - Effect - - - a - Equivalent to appdomain - - - appdomain - - Used to output the friendly name of the AppDomain where the - logging event was generated. - - - - aspnet-cache - - - Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-context - - - Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-request - - - Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - aspnet-session - - - Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} - - - This pattern is not available for Compact Framework or Client Profile assemblies. - - - - - c - Equivalent to logger - - - C - Equivalent to type - - - class - Equivalent to type - - - d - Equivalent to date - - - date - - - Used to output the date of the logging event in the local time zone. - To output the date in universal time use the %utcdate pattern. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %date{HH:mm:ss,fff} or - %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %date{ISO8601} or %date{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - exception - - - Used to output the exception passed in with the log message. - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - If there is no exception then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - - - F - Equivalent to file - - - file - - - Used to output the file name where the logging request was - issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - identity - - - Used to output the user name for the currently active user - (Principal.Identity.Name). - - - WARNING Generating caller information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - - - l - Equivalent to location - - - L - Equivalent to line - - - location - - - Used to output location information of the caller which generated - the logging event. - - - The location information depends on the CLI implementation but - usually consists of the fully qualified name of the calling - method followed by the callers source the file name and line - number between parentheses. - - - The location information can be very useful. However, its - generation is extremely slow. Its use should be avoided - unless execution speed is not an issue. - - - See the note below on the availability of caller location information. - - - - - level - - - Used to output the level of the logging event. - - - - - line - - - Used to output the line number from where the logging request - was issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - logger - - - Used to output the logger of the logging event. The - logger conversion specifier can be optionally followed by - precision specifier, that is a decimal constant in - brackets. - - - If a precision specifier is given, then only the corresponding - number of right most components of the logger name will be - printed. By default the logger name is printed in full. - - - For example, for the logger name "a.b.c" the pattern - %logger{2} will output "b.c". - - - - - m - Equivalent to message - - - M - Equivalent to method - - - message - - - Used to output the application supplied message associated with - the logging event. - - - - - mdc - - - The MDC (old name for the ThreadContext.Properties) is now part of the - combined event properties. This pattern is supported for compatibility - but is equivalent to property. - - - - - method - - - Used to output the method name where the logging request was - issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - n - Equivalent to newline - - - newline - - - Outputs the platform dependent line separator character or - characters. - - - This conversion pattern offers the same performance as using - non-portable line separator strings such as "\n", or "\r\n". - Thus, it is the preferred way of specifying a line separator. - - - - - ndc - - - Used to output the NDC (nested diagnostic context) associated - with the thread that generated the logging event. - - - - - p - Equivalent to level - - - P - Equivalent to property - - - properties - Equivalent to property - - - property - - - Used to output the an event specific property. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %property{user} would include the value - from the property that is keyed by the string 'user'. Each property value - that is to be included in the log must be specified separately. - Properties are added to events by loggers or appenders. By default - the log4net:HostName property is set to the name of machine on - which the event was originally logged. - - - If no key is specified, e.g. %property then all the keys and their - values are printed in a comma separated list. - - - The properties of an event are combined from a number of different - contexts. These are listed below in the order in which they are searched. - - - - the event properties - - The event has that can be set. These - properties are specific to this event only. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - - r - Equivalent to timestamp - - - stacktrace - - - Used to output the stack trace of the logging event - The stack trace level specifier may be enclosed - between braces. For example, %stacktrace{level}. - If no stack trace level specifier is given then 1 is assumed - - - Output uses the format: - type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 - - - This pattern is not available for Compact Framework assemblies. - - - - - stacktracedetail - - - Used to output the stack trace of the logging event - The stack trace level specifier may be enclosed - between braces. For example, %stacktracedetail{level}. - If no stack trace level specifier is given then 1 is assumed - - - Output uses the format: - type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) - - - This pattern is not available for Compact Framework assemblies. - - - - - t - Equivalent to thread - - - timestamp - - - Used to output the number of milliseconds elapsed since the start - of the application until the creation of the logging event. - - - - - thread - - - Used to output the name of the thread that generated the - logging event. Uses the thread number if no name is available. - - - - - type - - - Used to output the fully qualified type name of the caller - issuing the logging request. This conversion specifier - can be optionally followed by precision specifier, that - is a decimal constant in brackets. - - - If a precision specifier is given, then only the corresponding - number of right most components of the class name will be - printed. By default the class name is output in fully qualified form. - - - For example, for the class name "log4net.Layout.PatternLayout", the - pattern %type{1} will output "PatternLayout". - - - WARNING Generating the caller class information is - slow. Thus, its use should be avoided unless execution speed is - not an issue. - - - See the note below on the availability of caller location information. - - - - - u - Equivalent to identity - - - username - - - Used to output the WindowsIdentity for the currently - active user. - - - WARNING Generating caller WindowsIdentity information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - - - utcdate - - - Used to output the date of the logging event in universal time. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %utcdate{HH:mm:ss,fff} or - %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %utcdate{ISO8601} or %utcdate{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - w - Equivalent to username - - - x - Equivalent to ndc - - - X - Equivalent to mdc - - - % - - - The sequence %% outputs a single percent sign. - - - - - - The single letter patterns are deprecated in favor of the - longer more descriptive pattern names. - - - By default the relevant information is output as is. However, - with the aid of format modifiers it is possible to change the - minimum field width, the maximum field width and justification. - - - The optional format modifier is placed between the percent sign - and the conversion pattern name. - - - The first optional format modifier is the left justification - flag which is just the minus (-) character. Then comes the - optional minimum field width modifier. This is a decimal - constant that represents the minimum number of characters to - output. If the data item requires fewer characters, it is padded on - either the left or the right until the minimum width is - reached. The default is to pad on the left (right justify) but you - can specify right padding with the left justification flag. The - padding character is space. If the data item is larger than the - minimum field width, the field is expanded to accommodate the - data. The value is never truncated. - - - This behavior can be changed using the maximum field - width modifier which is designated by a period followed by a - decimal constant. If the data item is longer than the maximum - field, then the extra characters are removed from the - beginning of the data item and not from the end. For - example, it the maximum field width is eight and the data item is - ten characters long, then the first two characters of the data item - are dropped. This behavior deviates from the printf function in C - where truncation is done from the end. - - - Below are various format modifier examples for the logger - conversion specifier. - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Format modifierleft justifyminimum widthmaximum widthcomment
    %20loggerfalse20none - - Left pad with spaces if the logger name is less than 20 - characters long. - -
    %-20loggertrue20none - - Right pad with spaces if the logger - name is less than 20 characters long. - -
    %.30loggerNAnone30 - - Truncate from the beginning if the logger - name is longer than 30 characters. - -
    %20.30loggerfalse2030 - - Left pad with spaces if the logger name is shorter than 20 - characters. However, if logger name is longer than 30 characters, - then truncate from the beginning. - -
    %-20.30loggertrue2030 - - Right pad with spaces if the logger name is shorter than 20 - characters. However, if logger name is longer than 30 characters, - then truncate from the beginning. - -
    -
    - - Note about caller location information.
    - The following patterns %type %file %line %method %location %class %C %F %L %l %M - all generate caller location information. - Location information uses the System.Diagnostics.StackTrace class to generate - a call stack. The caller's information is then extracted from this stack. -
    - - - The System.Diagnostics.StackTrace class is not supported on the - .NET Compact Framework 1.0 therefore caller location information is not - available on that framework. - - - - - The System.Diagnostics.StackTrace class has this to say about Release builds: - - - "StackTrace information will be most informative with Debug build configurations. - By default, Debug builds include debug symbols, while Release builds do not. The - debug symbols contain most of the file, method name, line number, and column - information used in constructing StackFrame and StackTrace objects. StackTrace - might not report as many method calls as expected, due to code transformations - that occur during optimization." - - - This means that in a Release build the caller information may be incomplete or may - not exist at all! Therefore caller location information cannot be relied upon in a Release build. - - - - Additional pattern converters may be registered with a specific - instance using the method. - -
    - - This is a more detailed pattern. - %timestamp [%thread] %level %logger %ndc - %message%newline - - - A similar pattern except that the relative time is - right padded if less than 6 digits, thread name is right padded if - less than 15 characters and truncated if longer and the logger - name is left padded if shorter than 30 characters and truncated if - longer. - %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline - - Nicko Cadell - Gert Driesen - Douglas de la Torre - Daniel Cazzulino -
    - - - Extend this abstract class to create your own log layout format. - - - - This is the base implementation of the - interface. Most layout objects should extend this class. - - - - - - Subclasses must implement the - method. - - - Subclasses should set the in their default - constructor. - - - - Nicko Cadell - Gert Driesen - - - - Interface implemented by layout objects - - - - An object is used to format a - as text. The method is called by an - appender to transform the into a string. - - - The layout can also supply and - text that is appender before any events and after all the events respectively. - - - Nicko Cadell - Gert Driesen - - - - Implement this method to create your own layout format. - - The TextWriter to write the formatted event to - The event to format - - - This method is called by an appender to format - the as text and output to a writer. - - - If the caller does not have a and prefers the - event to be formatted as a then the following - code can be used to format the event into a . - - - StringWriter writer = new StringWriter(); - Layout.Format(writer, loggingEvent); - string formattedEvent = writer.ToString(); - - - - - - The content type output by this layout. - - The content type - - - The content type output by this layout. - - - This is a MIME type e.g. "text/plain". - - - - - - The header for the layout format. - - the layout header - - - The Header text will be appended before any logging events - are formatted and appended. - - - - - - The footer for the layout format. - - the layout footer - - - The Footer text will be appended after all the logging events - have been formatted and appended. - - - - - - Flag indicating if this layout handle exceptions - - false if this layout handles exceptions - - - If this layout handles the exception object contained within - , then the layout should return - false. Otherwise, if the layout ignores the exception - object, then the layout should return true. - - - - - - The header text - - - - See for more information. - - - - - - The footer text - - - - See for more information. - - - - - - Flag indicating if this layout handles exceptions - - - - false if this layout handles exceptions - - - - - - Empty default constructor - - - - Empty default constructor - - - - - - Activate component options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - This method must be implemented by the subclass. - - - - - - Implement this method to create your own layout format. - - The TextWriter to write the formatted event to - The event to format - - - This method is called by an appender to format - the as text. - - - - - - Convenience method for easily formatting the logging event into a string variable. - - - - Creates a new StringWriter instance to store the formatted logging event. - - - - - The content type output by this layout. - - The content type is "text/plain" - - - The content type output by this layout. - - - This base class uses the value "text/plain". - To change this value a subclass must override this - property. - - - - - - The header for the layout format. - - the layout header - - - The Header text will be appended before any logging events - are formatted and appended. - - - - - - The footer for the layout format. - - the layout footer - - - The Footer text will be appended after all the logging events - have been formatted and appended. - - - - - - Flag indicating if this layout handles exceptions - - false if this layout handles exceptions - - - If this layout handles the exception object contained within - , then the layout should return - false. Otherwise, if the layout ignores the exception - object, then the layout should return true. - - - Set this value to override a this default setting. The default - value is true, this layout does not handle the exception. - - - - - - Default pattern string for log output. - - - - Default pattern string for log output. - Currently set to the string "%message%newline" - which just prints the application supplied message. - - - - - - A detailed conversion pattern - - - - A conversion pattern which includes Time, Thread, Logger, and Nested Context. - Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. - - - - - - Internal map of converter identifiers to converter types. - - - - This static map is overridden by the m_converterRegistry instance map - - - - - - the pattern - - - - - the head of the pattern converter chain - - - - - patterns defined on this PatternLayout only - - - - - Initialize the global registry - - - - Defines the builtin global rules. - - - - - - Constructs a PatternLayout using the DefaultConversionPattern - - - - The default pattern just produces the application supplied message. - - - Note to Inheritors: This constructor calls the virtual method - . If you override this method be - aware that it will be called before your is called constructor. - - - As per the contract the - method must be called after the properties on this object have been - configured. - - - - - - Constructs a PatternLayout using the supplied conversion pattern - - the pattern to use - - - Note to Inheritors: This constructor calls the virtual method - . If you override this method be - aware that it will be called before your is called constructor. - - - When using this constructor the method - need not be called. This may not be the case when using a subclass. - - - - - - Create the pattern parser instance - - the pattern to parse - The that will format the event - - - Creates the used to parse the conversion string. Sets the - global and instance rules on the . - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a formatted string as specified by the conversion pattern. - - the event being logged - The TextWriter to write the formatted event to - - - Parse the using the patter format - specified in the property. - - - - - - Add a converter to this PatternLayout - - the converter info - - - This version of the method is used by the configurator. - Programmatic users should use the alternative method. - - - - - - Add a converter to this PatternLayout - - the name of the conversion pattern for this converter - the type of the converter - - - Add a named pattern converter to this instance. This - converter will be used in the formatting of the event. - This method must be called before . - - - The specified must extend the - type. - - - - - - The pattern formatting string - - - - The ConversionPattern option. This is the string which - controls formatting and consists of a mix of literal content and - conversion specifiers. - - - - - - The header PatternString - - - - - The footer PatternString - - - - - Constructs a DynamicPatternLayout using the DefaultConversionPattern - - - - The default pattern just produces the application supplied message. - - - - - - Constructs a DynamicPatternLayout using the supplied conversion pattern - - the pattern to use - - - - - - The header for the layout format. - - the layout header - - - The Header text will be appended before any logging events - are formatted and appended. - - The pattern will be formatted on each get operation. - - - - - The footer for the layout format. - - the layout footer - - - The Footer text will be appended after all the logging events - have been formatted and appended. - - The pattern will be formatted on each get operation. - - - - - A Layout that renders only the Exception text from the logging event - - - - A Layout that renders only the Exception text from the logging event. - - - This Layout should only be used with appenders that utilize multiple - layouts (e.g. ). - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Constructs a ExceptionLayout - - - - - - Activate component options - - - - Part of the component activation - framework. - - - This method does nothing as options become effective immediately. - - - - - - Gets the exception text from the logging event - - The TextWriter to write the formatted event to - the event being logged - - - Write the exception string to the . - The exception string is retrieved from . - - - - - - Interface for raw layout objects - - - - Interface used to format a - to an object. - - - This interface should not be confused with the - interface. This interface is used in - only certain specialized situations where a raw object is - required rather than a formatted string. The - is not generally useful than this interface. - - - Nicko Cadell - Gert Driesen - - - - Implement this method to create your own layout format. - - The event to format - returns the formatted event - - - Implement this method to create your own layout format. - - - - - - Adapts any to a - - - - Where an is required this adapter - allows a to be specified. - - - Nicko Cadell - Gert Driesen - - - - The layout to adapt - - - - - Construct a new adapter - - the layout to adapt - - - Create the adapter for the specified . - - - - - - Format the logging event as an object. - - The event to format - returns the formatted event - - - Format the logging event as an object. - - - Uses the object supplied to - the constructor to perform the formatting. - - - - - - Type converter for the interface - - - - Used to convert objects to the interface. - Supports converting from the interface to - the interface using the . - - - Nicko Cadell - Gert Driesen - - - - Interface supported by type converters - - - - This interface supports conversion from arbitrary types - to a single target type. See . - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Test if the can be converted to the - type supported by this converter. - - - - - - Convert the source object to the type supported by this object - - the object to convert - the converted object - - - Converts the to the type supported - by this converter. - - - - - - Can the sourceType be converted to an - - the source to be to be converted - true if the source type can be converted to - - - Test if the can be converted to a - . Only is supported - as the . - - - - - - Convert the value to a object - - the value to convert - the object - - - Convert the object to a - object. If the object - is a then the - is used to adapt between the two interfaces, otherwise an - exception is thrown. - - - - - - Extract the value of a property from the - - - - Extract the value of a property from the - - - Nicko Cadell - - - - Constructs a RawPropertyLayout - - - - - Lookup the property for - - The event to format - returns property value - - - Looks up and returns the object value of the property - named . If there is no property defined - with than name then null will be returned. - - - - - - The name of the value to lookup in the LoggingEvent Properties collection. - - - Value to lookup in the LoggingEvent Properties collection - - - - String name of the property to lookup in the . - - - - - - Extract the date from the - - - - Extract the date from the - - - Nicko Cadell - Gert Driesen - - - - Constructs a RawTimeStampLayout - - - - - Gets the as a . - - The event to format - returns the time stamp - - - Gets the as a . - - - The time stamp is in local time. To format the time stamp - in universal time use . - - - - - - Extract the date from the - - - - Extract the date from the - - - Nicko Cadell - Gert Driesen - - - - Constructs a RawUtcTimeStampLayout - - - - - Gets the as a . - - The event to format - returns the time stamp - - - Gets the as a . - - - The time stamp is in universal time. To format the time stamp - in local time use . - - - - - - A very simple layout - - - - SimpleLayout consists of the level of the log statement, - followed by " - " and then the log message itself. For example, - - DEBUG - Hello world - - - - Nicko Cadell - Gert Driesen - - - - Constructs a SimpleLayout - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a simple formatted output. - - the event being logged - The TextWriter to write the formatted event to - - - Formats the event as the level of the even, - followed by " - " and then the log message itself. The - output is terminated by a newline. - - - - - - Layout that formats the log events as XML elements. - - - - The output of the consists of a series of - log4net:event elements. It does not output a complete well-formed XML - file. The output is designed to be included as an external entity - in a separate file to form a correct XML file. - - - For example, if abc is the name of the file where - the output goes, then a well-formed XML file would - be: - - - <?xml version="1.0" ?> - - <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> - <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> - &data; - </log4net:events> - - - This approach enforces the independence of the - and the appender where it is embedded. - - - The version attribute helps components to correctly - interpret output generated by . The value of - this attribute should be "1.2" for release 1.2 and later. - - - Alternatively the Header and Footer properties can be - configured to output the correct XML header, open tag and close tag. - When setting the Header and Footer properties it is essential - that the underlying data store not be appendable otherwise the data - will become invalid XML. - - - Nicko Cadell - Gert Driesen - - - - Layout that formats the log events as XML elements. - - - - This is an abstract class that must be subclassed by an implementation - to conform to a specific schema. - - - Deriving classes must implement the method. - - - Nicko Cadell - Gert Driesen - - - - Protected constructor to support subclasses - - - - Initializes a new instance of the class - with no location info. - - - - - - Protected constructor to support subclasses - - - - The parameter determines whether - location information will be output by the layout. If - is set to true, then the - file name and line number of the statement at the origin of the log - statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a formatted string. - - The event being logged. - The TextWriter to write the formatted event to - - - Format the and write it to the . - - - This method creates an that writes to the - . The is passed - to the method. Subclasses should override the - method rather than this method. - - - - - - Does the actual writing of the XML. - - The writer to use to output the event to. - The event to write. - - - Subclasses should override this method to format - the as XML. - - - - - - Flag to indicate if location information should be included in - the XML events. - - - - - The string to replace invalid chars with - - - - - Gets a value indicating whether to include location information in - the XML events. - - - true if location information should be included in the XML - events; otherwise, false. - - - - If is set to true, then the file - name and line number of the statement at the origin of the log - statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - The string to replace characters that can not be expressed in XML with. - - - Not all characters may be expressed in XML. This property contains the - string to replace those that can not with. This defaults to a ?. Set it - to the empty string to simply remove offending characters. For more - details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets - Character replacement will occur in the log message, the property names - and the property values. - - - - - - - Gets the content type output by this layout. - - - As this is the XML layout, the value is always "text/xml". - - - - As this is the XML layout, the value is always "text/xml". - - - - - - Constructs an XmlLayout - - - - - Constructs an XmlLayout. - - - - The LocationInfo option takes a boolean value. By - default, it is set to false which means there will be no location - information output by this layout. If the the option is set to - true, then the file name and line number of the statement - at the origin of the log statement will be output. - - - If you are embedding this layout within an SmtpAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Builds a cache of the element names - - - - - - Does the actual writing of the XML. - - The writer to use to output the event to. - The event to write. - - - Override the base class method - to write the to the . - - - - - - The prefix to use for all generated element names - - - - - The prefix to use for all element names - - - - The default prefix is log4net. Set this property - to change the prefix. If the prefix is set to an empty string - then no prefix will be written. - - - - - - Set whether or not to base64 encode the message. - - - - By default the log message will be written as text to the xml - output. This can cause problems when the message contains binary - data. By setting this to true the contents of the message will be - base64 encoded. If this is set then invalid character replacement - (see ) will not be performed - on the log message. - - - - - - Set whether or not to base64 encode the property values. - - - - By default the properties will be written as text to the xml - output. This can cause problems when one or more properties contain - binary data. By setting this to true the values of the properties - will be base64 encoded. If this is set then invalid character replacement - (see ) will not be performed - on the property values. - - - - - - Layout that formats the log events as XML elements compatible with the log4j schema - - - - Formats the log events according to the http://logging.apache.org/log4j schema. - - - Nicko Cadell - - - - The 1st of January 1970 in UTC - - - - - Constructs an XMLLayoutSchemaLog4j - - - - - Constructs an XMLLayoutSchemaLog4j. - - - - The LocationInfo option takes a boolean value. By - default, it is set to false which means there will be no location - information output by this layout. If the the option is set to - true, then the file name and line number of the statement - at the origin of the log statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Actually do the writing of the xml - - the writer to use - the event to write - - - Generate XML that is compatible with the log4j schema. - - - - - - The version of the log4j schema to use. - - - - Only version 1.2 of the log4j schema is supported. - - - - - - The default object Renderer. - - - - The default renderer supports rendering objects and collections to strings. - - - See the method for details of the output. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface in order to render objects as strings - - - - Certain types require special case conversion to - string form. This conversion is done by an object renderer. - Object renderers implement the - interface. - - - Nicko Cadell - Gert Driesen - - - - Render the object to a string - - The map used to lookup renderers - The object to render - The writer to render to - - - Render the object to a - string. - - - The parameter is - provided to lookup and render other objects. This is - very useful where contains - nested objects of unknown type. The - method can be used to render these objects. - - - - - - Default constructor - - - - Default constructor - - - - - - Render the object to a string - - The map used to lookup renderers - The object to render - The writer to render to - - - Render the object to a string. - - - The parameter is - provided to lookup and render other objects. This is - very useful where contains - nested objects of unknown type. The - method can be used to render these objects. - - - The default renderer supports rendering objects to strings as follows: - - - - Value - Rendered String - - - null - - "(null)" - - - - - - - For a one dimensional array this is the - array type name, an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. - - - For example: int[] {1, 2, 3}. - - - If the array is not one dimensional the - Array.ToString() is returned. - - - - - , & - - - Rendered as an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. - - - For example: {a, b, c}. - - - All collection classes that implement its subclasses, - or generic equivalents all implement the interface. - - - - - - - - Rendered as the key, an equals sign ('='), and the value (using the appropriate - renderer). - - - For example: key=value. - - - - - other - - Object.ToString() - - - - - - - - Render the array argument into a string - - The map used to lookup renderers - the array to render - The writer to render to - - - For a one dimensional array this is the - array type name, an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. For example: - int[] {1, 2, 3}. - - - If the array is not one dimensional the - Array.ToString() is returned. - - - - - - Render the enumerator argument into a string - - The map used to lookup renderers - the enumerator to render - The writer to render to - - - Rendered as an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. For example: - {a, b, c}. - - - - - - Render the DictionaryEntry argument into a string - - The map used to lookup renderers - the DictionaryEntry to render - The writer to render to - - - Render the key, an equals sign ('='), and the value (using the appropriate - renderer). For example: key=value. - - - - - - Map class objects to an . - - - - Maintains a mapping between types that require special - rendering and the that - is used to render them. - - - The method is used to render an - object using the appropriate renderers defined in this map. - - - Nicko Cadell - Gert Driesen - - - - Default Constructor - - - - Default constructor. - - - - - - Render using the appropriate renderer. - - the object to render to a string - the object rendered as a string - - - This is a convenience method used to render an object to a string. - The alternative method - should be used when streaming output to a . - - - - - - Render using the appropriate renderer. - - the object to render to a string - The writer to render to - - - Find the appropriate renderer for the type of the - parameter. This is accomplished by calling the - method. Once a renderer is found, it is - applied on the object and the result is returned - as a . - - - - - - Gets the renderer for the specified object type - - the object to lookup the renderer for - the renderer for - - - Gets the renderer for the specified object type. - - - Syntactic sugar method that calls - with the type of the object parameter. - - - - - - Gets the renderer for the specified type - - the type to lookup the renderer for - the renderer for the specified type - - - Returns the renderer for the specified type. - If no specific renderer has been defined the - will be returned. - - - - - - Internal function to recursively search interfaces - - the type to lookup the renderer for - the renderer for the specified type - - - - Clear the map of renderers - - - - Clear the custom renderers defined by using - . The - cannot be removed. - - - - - - Register an for . - - the type that will be rendered by - the renderer for - - - Register an object renderer for a specific source type. - This renderer will be returned from a call to - specifying the same as an argument. - - - - - - Get the default renderer instance - - the default renderer - - - Get the default renderer - - - - - - Interface implemented by logger repository plugins. - - - - Plugins define additional behavior that can be associated - with a . - The held by the - property is used to store the plugins for a repository. - - - The log4net.Config.PluginAttribute can be used to - attach plugins to repositories created using configuration - attributes. - - - Nicko Cadell - Gert Driesen - - - - Attaches the plugin to the specified . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - This method is called to notify the plugin that - it should stop operating and should detach from - the repository. - - - - - - Gets the name of the plugin. - - - The name of the plugin. - - - - Plugins are stored in the - keyed by name. Each plugin instance attached to a - repository must be a unique name. - - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a PluginCollection instance. - - list to create a readonly wrapper arround - - A PluginCollection wrapper that is read-only. - - - - - Initializes a new instance of the PluginCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the PluginCollection class - that has the specified initial capacity. - - - The number of elements that the new PluginCollection is initially capable of storing. - - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified PluginCollection. - - The PluginCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - - Copies the entire PluginCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire PluginCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the PluginCollection. - - The to be added to the end of the PluginCollection. - The index at which the value has been added. - - - - Removes all elements from the PluginCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the PluginCollection. - - The to check for. - true if is found in the PluginCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the PluginCollection. - - The to locate in the PluginCollection. - - The zero-based index of the first occurrence of - in the entire PluginCollection, if found; otherwise, -1. - - - - - Inserts an element into the PluginCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the PluginCollection. - - The to remove from the PluginCollection. - - The specified was not found in the PluginCollection. - - - - - Removes the element at the specified index of the PluginCollection. - - The zero-based index of the element to remove. - - is less than zero. - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the PluginCollection. - - An for the entire PluginCollection. - - - - Adds the elements of another PluginCollection to the current PluginCollection. - - The PluginCollection whose elements should be added to the end of the current PluginCollection. - The new of the PluginCollection. - - - - Adds the elements of a array to the current PluginCollection. - - The array whose elements should be added to the end of the PluginCollection. - The new of the PluginCollection. - - - - Adds the elements of a collection to the current PluginCollection. - - The collection whose elements should be added to the end of the PluginCollection. - The new of the PluginCollection. - - - - Sets the capacity to the actual number of elements. - - - - - is less than zero. - -or- - is equal to or greater than . - - - - - is less than zero. - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the PluginCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - An object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - - The at the specified index. - - The zero-based index of the element to get or set. - - is less than zero. - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false. - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false. - - - - Gets or sets the number of elements the PluginCollection can contain. - - - The number of elements the PluginCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - - A value - - - - - Supports simple iteration over a . - - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - The current element in the collection. - - - - - - - - Map of repository plugins. - - - - This class is a name keyed map of the plugins that are - attached to a repository. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The repository that the plugins should be attached to. - - - Initialize a new instance of the class with a - repository that the plugins should be attached to. - - - - - - Adds a to the map. - - The to add to the map. - - - The will be attached to the repository when added. - - - If there already exists a plugin with the same name - attached to the repository then the old plugin will - be and replaced with - the new plugin. - - - - - - Removes a from the map. - - The to remove from the map. - - - Remove a specific plugin from this map. - - - - - - Gets a by name. - - The name of the to lookup. - - The from the map with the name specified, or - null if no plugin is found. - - - - Lookup a plugin by name. If the plugin is not found null - will be returned. - - - - - - Gets all possible plugins as a list of objects. - - All possible plugins as a list of objects. - - - Get a collection of all the plugins defined in this map. - - - - - - Base implementation of - - - - Default abstract implementation of the - interface. This base class can be used by implementors - of the interface. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - the name of the plugin - - Initializes a new Plugin with the specified name. - - - - - Attaches this plugin to a . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - This method is called to notify the plugin that - it should stop operating and should detach from - the repository. - - - - - - The name of this plugin. - - - - - The repository this plugin is attached to. - - - - - Gets or sets the name of the plugin. - - - The name of the plugin. - - - - Plugins are stored in the - keyed by name. Each plugin instance attached to a - repository must be a unique name. - - - The name of the plugin must not change one the - plugin has been attached to a repository. - - - - - - The repository for this plugin - - - The that this plugin is attached to. - - - - Gets or sets the that this plugin is - attached to. - - - - - - Plugin that listens for events from the - - - - This plugin publishes an instance of - on a specified . This listens for logging events delivered from - a remote . - - - When an event is received it is relogged within the attached repository - as if it had been raised locally. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Initializes a new instance of the class. - - - The property must be set. - - - - - - Construct with sink Uri. - - The name to publish the sink under in the remoting infrastructure. - See for more details. - - - Initializes a new instance of the class - with specified name. - - - - - - Attaches this plugin to a . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - When the plugin is shutdown the remote logging - sink is disconnected. - - - - - - The fully qualified type of the RemoteLoggingServerPlugin class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the URI of this sink. - - - The URI of this sink. - - - - This is the name under which the object is marshaled. - - - - - - - Delivers objects to a remote sink. - - - - Internal class used to listen for logging events - and deliver them to the local repository. - - - - - - Constructor - - The repository to log to. - - - Initializes a new instance of the for the - specified . - - - - - - Logs the events to the repository. - - The events to log. - - - The events passed are logged to the - - - - - - Obtains a lifetime service object to control the lifetime - policy for this instance. - - null to indicate that this instance should live forever. - - - Obtains a lifetime service object to control the lifetime - policy for this instance. This object should live forever - therefore this implementation returns null. - - - - - - The underlying that events should - be logged to. - - - - - Default implementation of - - - - This default implementation of the - interface is used to create the default subclass - of the object. - - - Nicko Cadell - Gert Driesen - - - - Interface abstracts creation of instances - - - - This interface is used by the to - create new objects. - - - The method is called - to create a named . - - - Implement this interface to create new subclasses of . - - - Nicko Cadell - Gert Driesen - - - - Create a new instance - - The that will own the . - The name of the . - The instance for the specified name. - - - Create a new instance with the - specified name. - - - Called by the to create - new named instances. - - - If the is null then the root logger - must be returned. - - - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Create a new instance - - The that will own the . - The name of the . - The instance for the specified name. - - - Create a new instance with the - specified name. - - - Called by the to create - new named instances. - - - If the is null then the root logger - must be returned. - - - - - - Default internal subclass of - - - - This subclass has no additional behavior over the - class but does allow instances - to be created. - - - - - - Implementation of used by - - - - Internal class used to provide implementation of - interface. Applications should use to get - logger instances. - - - This is one of the central classes in the log4net implementation. One of the - distinctive features of log4net are hierarchical loggers and their - evaluation. The organizes the - instances into a rooted tree hierarchy. - - - The class is abstract. Only concrete subclasses of - can be created. The - is used to create instances of this type for the . - - - Nicko Cadell - Gert Driesen - Aspi Havewala - Douglas de la Torre - - - - This constructor created a new instance and - sets its name. - - The name of the . - - - This constructor is protected and designed to be used by - a subclass that is not abstract. - - - Loggers are constructed by - objects. See for the default - logger creator. - - - - - - Add to the list of appenders of this - Logger instance. - - An appender to add to this logger - - - Add to the list of appenders of this - Logger instance. - - - If is already in the list of - appenders, then it won't be added again. - - - - - - Look for the appender named as name - - The name of the appender to lookup - The appender with the name specified, or null. - - - Returns the named appender, or null if the appender is not found. - - - - - - Remove all previously added appenders from this Logger instance. - - - - Remove all previously added appenders from this Logger instance. - - - This is useful when re-reading configuration information. - - - - - - Remove the appender passed as parameter form the list of appenders. - - The appender to remove - The appender removed from the list - - - Remove the appender passed as parameter form the list of appenders. - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Remove the appender passed as parameter form the list of appenders. - - The name of the appender to remove - The appender removed from the list - - - Remove the named appender passed as parameter form the list of appenders. - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - This generic form is intended to be used by wrappers. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generate a logging event for the specified using - the and . - - - This method must not throw any exception to the caller. - - - - - - This is the most generic printing method that is intended to be used - by wrappers. - - The event being logged. - - - Logs the specified logging event through this logger. - - - This method must not throw any exception to the caller. - - - - - - Checks if this logger is enabled for a given passed as parameter. - - The level to check. - - true if this logger is enabled for level, otherwise false. - - - - Test if this logger is going to log events of the specified . - - - This method must not throw any exception to the caller. - - - - - - Deliver the to the attached appenders. - - The event to log. - - - Call the appenders in the hierarchy starting at - this. If no appenders could be found, emit a - warning. - - - This method calls all the appenders inherited from the - hierarchy circumventing any evaluation of whether to log or not - to log the particular log request. - - - - - - Closes all attached appenders implementing the interface. - - - - Used to ensure that the appenders are correctly shutdown. - - - - - - This is the most generic printing method. This generic form is intended to be used by wrappers - - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generate a logging event for the specified using - the . - - - - - - Creates a new logging event and logs the event without further checks. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generates a logging event and delivers it to the attached - appenders. - - - - - - Creates a new logging event and logs the event without further checks. - - The event being logged. - - - Delivers the logging event to the attached appenders. - - - - - - The fully qualified type of the Logger class. - - - - - The name of this logger. - - - - - The assigned level of this logger. - - - - The level variable need not be - assigned a value in which case it is inherited - form the hierarchy. - - - - - - The parent of this logger. - - - - The parent of this logger. - All loggers have at least one ancestor which is the root logger. - - - - - - Loggers need to know what Hierarchy they are in. - - - - Loggers need to know what Hierarchy they are in. - The hierarchy that this logger is a member of is stored - here. - - - - - - Helper implementation of the interface - - - - - Flag indicating if child loggers inherit their parents appenders - - - - Additivity is set to true by default, that is children inherit - the appenders of their ancestors by default. If this variable is - set to false then the appenders found in the - ancestors of this logger are not used. However, the children - of this logger will inherit its appenders, unless the children - have their additivity flag set to false too. See - the user manual for more details. - - - - - - Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl - - - - - Gets or sets the parent logger in the hierarchy. - - - The parent logger in the hierarchy. - - - - Part of the Composite pattern that makes the hierarchy. - The hierarchy is parent linked rather than child linked. - - - - - - Gets or sets a value indicating if child loggers inherit their parent's appenders. - - - true if child loggers inherit their parent's appenders. - - - - Additivity is set to true by default, that is children inherit - the appenders of their ancestors by default. If this variable is - set to false then the appenders found in the - ancestors of this logger are not used. However, the children - of this logger will inherit its appenders, unless the children - have their additivity flag set to false too. See - the user manual for more details. - - - - - - Gets the effective level for this logger. - - The nearest level in the logger hierarchy. - - - Starting from this logger, searches the logger hierarchy for a - non-null level and returns it. Otherwise, returns the level of the - root logger. - - The Logger class is designed so that this method executes as - quickly as possible. - - - - - Gets or sets the where this - Logger instance is attached to. - - The hierarchy that this logger belongs to. - - - This logger must be attached to a single . - - - - - - Gets or sets the assigned , if any, for this Logger. - - - The of this logger. - - - - The assigned can be null. - - - - - - Get the appenders contained in this logger as an - . - - A collection of the appenders in this logger - - - Get the appenders contained in this logger as an - . If no appenders - can be found, then a is returned. - - - - - - Gets the logger name. - - - The name of the logger. - - - - The name of this logger - - - - - - Gets the where this - Logger instance is attached to. - - - The that this logger belongs to. - - - - Gets the where this - Logger instance is attached to. - - - - - - Construct a new Logger - - the name of the logger - - - Initializes a new instance of the class - with the specified name. - - - - - - Delegate used to handle logger creation event notifications. - - The in which the has been created. - The event args that hold the instance that has been created. - - - Delegate used to handle logger creation event notifications. - - - - - - Provides data for the event. - - - - A event is raised every time a - is created. - - - - - - The created - - - - - Constructor - - The that has been created. - - - Initializes a new instance of the event argument - class,with the specified . - - - - - - Gets the that has been created. - - - The that has been created. - - - - The that has been created. - - - - - - Hierarchical organization of loggers - - - - The casual user should not have to deal with this class - directly. - - - This class is specialized in retrieving loggers by name and - also maintaining the logger hierarchy. Implements the - interface. - - - The structure of the logger hierarchy is maintained by the - method. The hierarchy is such that children - link to their parent but parents do not have any references to their - children. Moreover, loggers can be instantiated in any order, in - particular descendant before ancestor. - - - In case a descendant is created before a particular ancestor, - then it creates a provision node for the ancestor and adds itself - to the provision node. Other descendants of the same ancestor add - themselves to the previously created provision node. - - - Nicko Cadell - Gert Driesen - - - - Base implementation of - - - - Default abstract implementation of the interface. - - - Skeleton implementation of the interface. - All types can extend this type. - - - Nicko Cadell - Gert Driesen - - - - Interface implemented by logger repositories. - - - - This interface is implemented by logger repositories. e.g. - . - - - This interface is used by the - to obtain interfaces. - - - Nicko Cadell - Gert Driesen - - - - Check if the named logger exists in the repository. If so return - its reference, otherwise returns null. - - The name of the logger to lookup - The Logger object with the name specified - - - If the names logger exists it is returned, otherwise - null is returned. - - - - - - Returns all the currently defined loggers as an Array. - - All the defined loggers - - - Returns all the currently defined loggers as an Array. - - - - - - Returns a named logger instance - - The name of the logger to retrieve - The logger object with the name specified - - - Returns a named logger instance. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - - - Shutdown the repository - - - Shutting down a repository will safely close and remove - all appenders in all loggers including the root logger. - - - Some appenders need to be closed before the - application exists. Otherwise, pending logging events might be - lost. - - - The method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Reset the repositories configuration to a default state - - - - Reset all values contained in this instance to their - default state. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the through this repository. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are configured as an Array. - - All the Appenders - - - Returns all the Appenders that are configured as an Array. - - - - - - The name of the repository - - - The name of the repository - - - - The name of the repository. - - - - - - RendererMap accesses the object renderer map for this repository. - - - RendererMap accesses the object renderer map for this repository. - - - - RendererMap accesses the object renderer map for this repository. - - - The RendererMap holds a mapping between types and - objects. - - - - - - The plugin map for this repository. - - - The plugin map for this repository. - - - - The plugin map holds the instances - that have been attached to this repository. - - - - - - Get the level map for the Repository. - - - - Get the level map for the Repository. - - - The level map defines the mappings between - level names and objects in - this repository. - - - - - - The threshold for all events in this repository - - - The threshold for all events in this repository - - - - The threshold for all events in this repository. - - - - - - Flag indicates if this repository has been configured. - - - Flag indicates if this repository has been configured. - - - - Flag indicates if this repository has been configured. - - - - - - Collection of internal messages captured during the most - recent configuration process. - - - - - Event to notify that the repository has been shutdown. - - - Event to notify that the repository has been shutdown. - - - - Event raised when the repository has been shutdown. - - - - - - Event to notify that the repository has had its configuration reset. - - - Event to notify that the repository has had its configuration reset. - - - - Event raised when the repository's configuration has been - reset to default. - - - - - - Event to notify that the repository has had its configuration changed. - - - Event to notify that the repository has had its configuration changed. - - - - Event raised when the repository's configuration has been changed. - - - - - - Repository specific properties - - - Repository specific properties - - - - These properties can be specified on a repository specific basis. - - - - - - Default Constructor - - - - Initializes the repository with default (empty) properties. - - - - - - Construct the repository using specific properties - - the properties to set for this repository - - - Initializes the repository with specified properties. - - - - - - Test if logger exists - - The name of the logger to lookup - The Logger object with the name specified - - - Check if the named logger exists in the repository. If so return - its reference, otherwise returns null. - - - - - - Returns all the currently defined loggers in the repository - - All the defined loggers - - - Returns all the currently defined loggers in the repository as an Array. - - - - - - Return a new logger instance - - The name of the logger to retrieve - The logger object with the name specified - - - Return a new logger instance. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - - - - Shutdown the repository - - - - Shutdown the repository. Can be overridden in a subclass. - This base class implementation notifies the - listeners and all attached plugins of the shutdown event. - - - - - - Reset the repositories configuration to a default state - - - - Reset all values contained in this instance to their - default state. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the logEvent through this repository. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are configured as an Array. - - All the Appenders - - - Returns all the Appenders that are configured as an Array. - - - - - - The fully qualified type of the LoggerRepositorySkeleton class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Adds an object renderer for a specific class. - - The type that will be rendered by the renderer supplied. - The object renderer used to render the object. - - - Adds an object renderer for a specific class. - - - - - - Notify the registered listeners that the repository is shutting down - - Empty EventArgs - - - Notify any listeners that this repository is shutting down. - - - - - - Notify the registered listeners that the repository has had its configuration reset - - Empty EventArgs - - - Notify any listeners that this repository's configuration has been reset. - - - - - - Notify the registered listeners that the repository has had its configuration changed - - Empty EventArgs - - - Notify any listeners that this repository's configuration has changed. - - - - - - Raise a configuration changed event on this repository - - EventArgs.Empty - - - Applications that programmatically change the configuration of the repository should - raise this event notification to notify listeners. - - - - - - The name of the repository - - - The string name of the repository - - - - The name of this repository. The name is - used to store and lookup the repositories - stored by the . - - - - - - The threshold for all events in this repository - - - The threshold for all events in this repository - - - - The threshold for all events in this repository - - - - - - RendererMap accesses the object renderer map for this repository. - - - RendererMap accesses the object renderer map for this repository. - - - - RendererMap accesses the object renderer map for this repository. - - - The RendererMap holds a mapping between types and - objects. - - - - - - The plugin map for this repository. - - - The plugin map for this repository. - - - - The plugin map holds the instances - that have been attached to this repository. - - - - - - Get the level map for the Repository. - - - - Get the level map for the Repository. - - - The level map defines the mappings between - level names and objects in - this repository. - - - - - - Flag indicates if this repository has been configured. - - - Flag indicates if this repository has been configured. - - - - Flag indicates if this repository has been configured. - - - - - - Contains a list of internal messages captures during the - last configuration. - - - - - Event to notify that the repository has been shutdown. - - - Event to notify that the repository has been shutdown. - - - - Event raised when the repository has been shutdown. - - - - - - Event to notify that the repository has had its configuration reset. - - - Event to notify that the repository has had its configuration reset. - - - - Event raised when the repository's configuration has been - reset to default. - - - - - - Event to notify that the repository has had its configuration changed. - - - Event to notify that the repository has had its configuration changed. - - - - Event raised when the repository's configuration has been changed. - - - - - - Repository specific properties - - - Repository specific properties - - - These properties can be specified on a repository specific basis - - - - - Basic Configurator interface for repositories - - - - Interface used by basic configurator to configure a - with a default . - - - A should implement this interface to support - configuration by the . - - - Nicko Cadell - Gert Driesen - - - - Initialize the repository using the specified appender - - the appender to use to log all logging events - - - Configure the repository to route all logging events to the - specified appender. - - - - - - Initialize the repository using the specified appenders - - the appenders to use to log all logging events - - - Configure the repository to route all logging events to the - specified appenders. - - - - - - Configure repository using XML - - - - Interface used by Xml configurator to configure a . - - - A should implement this interface to support - configuration by the . - - - Nicko Cadell - Gert Driesen - - - - Initialize the repository using the specified config - - the element containing the root of the config - - - The schema for the XML configuration data is defined by - the implementation. - - - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Construct with properties - - The properties to pass to this repository. - - - Initializes a new instance of the class. - - - - - - Construct with a logger factory - - The factory to use to create new logger instances. - - - Initializes a new instance of the class with - the specified . - - - - - - Construct with properties and a logger factory - - The properties to pass to this repository. - The factory to use to create new logger instances. - - - Initializes a new instance of the class with - the specified . - - - - - - Test if a logger exists - - The name of the logger to lookup - The Logger object with the name specified - - - Check if the named logger exists in the hierarchy. If so return - its reference, otherwise returns null. - - - - - - Returns all the currently defined loggers in the hierarchy as an Array - - All the defined loggers - - - Returns all the currently defined loggers in the hierarchy as an Array. - The root logger is not included in the returned - enumeration. - - - - - - Return a new logger instance named as the first parameter using - the default factory. - - - - Return a new logger instance named as the first parameter using - the default factory. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - The name of the logger to retrieve - The logger object with the name specified - - - - Shutting down a hierarchy will safely close and remove - all appenders in all loggers including the root logger. - - - - Shutting down a hierarchy will safely close and remove - all appenders in all loggers including the root logger. - - - Some appenders need to be closed before the - application exists. Otherwise, pending logging events might be - lost. - - - The Shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Reset all values contained in this hierarchy instance to their default. - - - - Reset all values contained in this hierarchy instance to their - default. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the logEvent through this hierarchy. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are currently configured - - An array containing all the currently configured appenders - - - Returns all the instances that are currently configured. - All the loggers are searched for appenders. The appenders may also be containers - for appenders and these are also searched for additional loggers. - - - The list returned is unordered but does not contain duplicates. - - - - - - Collect the appenders from an . - The appender may also be a container. - - - - - - - Collect the appenders from an container - - - - - - - Initialize the log4net system using the specified appender - - the appender to use to log all logging events - - - - Initialize the log4net system using the specified appenders - - the appenders to use to log all logging events - - - - Initialize the log4net system using the specified appenders - - the appenders to use to log all logging events - - - This method provides the same functionality as the - method implemented - on this object, but it is protected and therefore can be called by subclasses. - - - - - - Initialize the log4net system using the specified config - - the element containing the root of the config - - - - Initialize the log4net system using the specified config - - the element containing the root of the config - - - This method provides the same functionality as the - method implemented - on this object, but it is protected and therefore can be called by subclasses. - - - - - - Test if this hierarchy is disabled for the specified . - - The level to check against. - - true if the repository is disabled for the level argument, false otherwise. - - - - If this hierarchy has not been configured then this method will - always return true. - - - This method will return true if this repository is - disabled for level object passed as parameter and - false otherwise. - - - See also the property. - - - - - - Clear all logger definitions from the internal hashtable - - - - This call will clear all logger definitions from the internal - hashtable. Invoking this method will irrevocably mess up the - logger hierarchy. - - - You should really know what you are doing before - invoking this method. - - - - - - Return a new logger instance named as the first parameter using - . - - The name of the logger to retrieve - The factory that will make the new logger instance - The logger object with the name specified - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated by the - parameter and linked with its existing - ancestors as well as children. - - - - - - Sends a logger creation event to all registered listeners - - The newly created logger - - Raises the logger creation event. - - - - - Updates all the parents of the specified logger - - The logger to update the parents for - - - This method loops through all the potential parents of - . There 3 possible cases: - - - - No entry for the potential parent of exists - - We create a ProvisionNode for this potential - parent and insert in that provision node. - - - - The entry is of type Logger for the potential parent. - - The entry is 's nearest existing parent. We - update 's parent field with this entry. We also break from - he loop because updating our parent's parent is our parent's - responsibility. - - - - The entry is of type ProvisionNode for this potential parent. - - We add to the list of children for this - potential parent. - - - - - - - - Replace a with a in the hierarchy. - - - - - - We update the links for all the children that placed themselves - in the provision node 'pn'. The second argument 'log' is a - reference for the newly created Logger, parent of all the - children in 'pn'. - - - We loop on all the children 'c' in 'pn'. - - - If the child 'c' has been already linked to a child of - 'log' then there is no need to update 'c'. - - - Otherwise, we set log's parent field to c's parent and set - c's parent field to log. - - - - - - Define or redefine a Level using the values in the argument - - the level values - - - Define or redefine a Level using the values in the argument - - - Supports setting levels via the configuration file. - - - - - - Set a Property using the values in the argument - - the property value - - - Set a Property using the values in the argument. - - - Supports setting property values via the configuration file. - - - - - - The fully qualified type of the Hierarchy class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Event used to notify that a logger has been created. - - - - Event raised when a logger is created. - - - - - - Has no appender warning been emitted - - - - Flag to indicate if we have already issued a warning - about not having an appender warning. - - - - - - Get the root of this hierarchy - - - - Get the root of this hierarchy. - - - - - - Gets or sets the default instance. - - The default - - - The logger factory is used to create logger instances. - - - - - - A class to hold the value, name and display name for a level - - - - A class to hold the value, name and display name for a level - - - - - - Override Object.ToString to return sensible debug info - - string info about this object - - - - Value of the level - - - - If the value is not set (defaults to -1) the value will be looked - up for the current level with the same name. - - - - - - Name of the level - - - The name of the level - - - - The name of the level. - - - - - - Display name for the level - - - The display name of the level - - - - The display name of the level. - - - - - - Used internally to accelerate hash table searches. - - - - Internal class used to improve performance of - string keyed hashtables. - - - The hashcode of the string is cached for reuse. - The string is stored as an interned value. - When comparing two objects for equality - the reference equality of the interned strings is compared. - - - Nicko Cadell - Gert Driesen - - - - Construct key with string name - - - - Initializes a new instance of the class - with the specified name. - - - Stores the hashcode of the string and interns - the string key to optimize comparisons. - - - The Compact Framework 1.0 the - method does not work. On the Compact Framework - the string keys are not interned nor are they - compared by reference. - - - The name of the logger. - - - - Returns a hash code for the current instance. - - A hash code for the current instance. - - - Returns the cached hashcode. - - - - - - Determines whether two instances - are equal. - - The to compare with the current . - - true if the specified is equal to the current ; otherwise, false. - - - - Compares the references of the interned strings. - - - - - - Provision nodes are used where no logger instance has been specified - - - - instances are used in the - when there is no specified - for that node. - - - A provision node holds a list of child loggers on behalf of - a logger that does not exist. - - - Nicko Cadell - Gert Driesen - - - - Create a new provision node with child node - - A child logger to add to this node. - - - Initializes a new instance of the class - with the specified child logger. - - - - - - The sits at the root of the logger hierarchy tree. - - - - The is a regular except - that it provides several guarantees. - - - First, it cannot be assigned a null - level. Second, since the root logger cannot have a parent, the - property always returns the value of the - level field without walking the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Construct a - - The level to assign to the root logger. - - - Initializes a new instance of the class with - the specified logging level. - - - The root logger names itself as "root". However, the root - logger cannot be retrieved by name. - - - - - - The fully qualified type of the RootLogger class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the assigned level value without walking the logger hierarchy. - - The assigned level value without walking the logger hierarchy. - - - Because the root logger cannot have a parent and its level - must not be null this property just returns the - value of . - - - - - - Gets or sets the assigned for the root logger. - - - The of the root logger. - - - - Setting the level of the root logger to a null reference - may have catastrophic results. We prevent this here. - - - - - - Initializes the log4net environment using an XML DOM. - - - - Configures a using an XML DOM. - - - Nicko Cadell - Gert Driesen - - - - Construct the configurator for a hierarchy - - The hierarchy to build. - - - Initializes a new instance of the class - with the specified . - - - - - - Configure the hierarchy by parsing a DOM tree of XML elements. - - The root element to parse. - - - Configure the hierarchy by parsing a DOM tree of XML elements. - - - - - - Parse appenders by IDREF. - - The appender ref element. - The instance of the appender that the ref refers to. - - - Parse an XML element that represents an appender and return - the appender. - - - - - - Parses an appender element. - - The appender element. - The appender instance or null when parsing failed. - - - Parse an XML element that represents an appender and return - the appender instance. - - - - - - Parses a logger element. - - The logger element. - - - Parse an XML element that represents a logger. - - - - - - Parses the root logger element. - - The root element. - - - Parse an XML element that represents the root logger. - - - - - - Parses the children of a logger element. - - The category element. - The logger instance. - Flag to indicate if the logger is the root logger. - - - Parse the child elements of a <logger> element. - - - - - - Parses an object renderer. - - The renderer element. - - - Parse an XML element that represents a renderer. - - - - - - Parses a level element. - - The level element. - The logger object to set the level on. - Flag to indicate if the logger is the root logger. - - - Parse an XML element that represents a level. - - - - - - Sets a parameter on an object. - - The parameter element. - The object to set the parameter on. - - The parameter name must correspond to a writable property - on the object. The value of the parameter is a string, - therefore this function will attempt to set a string - property first. If unable to set a string property it - will inspect the property and its argument type. It will - attempt to call a static method called Parse on the - type of the property. This method will take a single - string argument and return a value that can be used to - set the property. - - - - - Test if an element has no attributes or child elements - - the element to inspect - true if the element has any attributes or child elements, false otherwise - - - - Test if a is constructible with Activator.CreateInstance. - - the type to inspect - true if the type is creatable using a default constructor, false otherwise - - - - Look for a method on the that matches the supplied - - the type that has the method - the name of the method - the method info found - - - The method must be a public instance method on the . - The method must be named or "Add" followed by . - The method must take a single parameter. - - - - - - Converts a string value to a target type. - - The type of object to convert the string to. - The string value to use as the value of the object. - - - An object of type with value or - null when the conversion could not be performed. - - - - - - Creates an object as specified in XML. - - The XML element that contains the definition of the object. - The object type to use if not explicitly specified. - The type that the returned object must be or must inherit from. - The object or null - - - Parse an XML element and create an object instance based on the configuration - data. - - - The type of the instance may be specified in the XML. If not - specified then the is used - as the type. However the type is specified it must support the - type. - - - - - - key: appenderName, value: appender. - - - - - The Hierarchy being configured. - - - - - The fully qualified type of the XmlHierarchyConfigurator class. - - - Used by the internal logger to record the Type of the - log message. - - - - - - - - - - - - - - - - - - - - - Delegate used to handle logger repository shutdown event notifications - - The that is shutting down. - Empty event args - - - Delegate used to handle logger repository shutdown event notifications. - - - - - - Delegate used to handle logger repository configuration reset event notifications - - The that has had its configuration reset. - Empty event args - - - Delegate used to handle logger repository configuration reset event notifications. - - - - - - Delegate used to handle event notifications for logger repository configuration changes. - - The that has had its configuration changed. - Empty event arguments. - - - Delegate used to handle event notifications for logger repository configuration changes. - - - - - - Write the name of the current AppDomain to the output - - - - Write the name of the current AppDomain to the output writer - - - Nicko Cadell - - - - Write the name of the current AppDomain to the output - - the writer to write to - null, state is not set - - - Writes name of the current AppDomain to the output . - - - - - - Write the current date to the output - - - - Date pattern converter, uses a to format - the current date and time to the writer as a string. - - - The value of the determines - the formatting of the date. The following values are allowed: - - - Option value - Output - - - ISO8601 - - Uses the formatter. - Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. - - - - DATE - - Uses the formatter. - Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". - - - - ABSOLUTE - - Uses the formatter. - Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". - - - - other - - Any other pattern string uses the formatter. - This formatter passes the pattern string to the - method. - For details on valid patterns see - DateTimeFormatInfo Class. - - - - - - The date and time is in the local time zone and is rendered in that zone. - To output the time in Universal time see . - - - Nicko Cadell - - - - The used to render the date to a string - - - - The used to render the date to a string - - - - - - Initialize the converter options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the current date to the output - - that will receive the formatted result. - null, state is not set - - - Pass the current date and time to the - for it to render it to the writer. - - - The date and time passed is in the local time zone. - - - - - - The fully qualified type of the DatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write an folder path to the output - - - - Write an special path environment folder path to the output writer. - The value of the determines - the name of the variable to output. - should be a value in the enumeration. - - - Ron Grabowski - - - - Write an special path environment folder path to the output - - the writer to write to - null, state is not set - - - Writes the special path environment folder path to the output . - The name of the special path environment folder path to output must be set - using the - property. - - - - - - The fully qualified type of the EnvironmentFolderPathPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write an environment variable to the output - - - - Write an environment variable to the output writer. - The value of the determines - the name of the variable to output. - - - Nicko Cadell - - - - Write an environment variable to the output - - the writer to write to - null, state is not set - - - Writes the environment variable to the output . - The name of the environment variable to output must be set - using the - property. - - - - - - The fully qualified type of the EnvironmentPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the current thread identity to the output - - - - Write the current thread identity to the output writer - - - Nicko Cadell - - - - Write the current thread identity to the output - - the writer to write to - null, state is not set - - - Writes the current thread identity to the output . - - - - - - The fully qualified type of the IdentityPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Pattern converter for literal string instances in the pattern - - - - Writes the literal string value specified in the - property to - the output. - - - Nicko Cadell - - - - Set the next converter in the chain - - The next pattern converter in the chain - The next pattern converter - - - Special case the building of the pattern converter chain - for instances. Two adjacent - literals in the pattern can be represented by a single combined - pattern converter. This implementation detects when a - is added to the chain - after this converter and combines its value with this converter's - literal value. - - - - - - Write the literal to the output - - the writer to write to - null, not set - - - Override the formatting behavior to ignore the FormattingInfo - because we have a literal instead. - - - Writes the value of - to the output . - - - - - - Convert this pattern into the rendered message - - that will receive the formatted result. - null, not set - - - This method is not used. - - - - - - Writes a newline to the output - - - - Writes the system dependent line terminator to the output. - This behavior can be overridden by setting the : - - - - Option Value - Output - - - DOS - DOS or Windows line terminator "\r\n" - - - UNIX - UNIX line terminator "\n" - - - - Nicko Cadell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the current process ID to the output - - - - Write the current process ID to the output writer - - - Nicko Cadell - - - - Write the current process ID to the output - - the writer to write to - null, state is not set - - - Write the current process ID to the output . - - - - - - The fully qualified type of the ProcessIdPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Property pattern converter - - - - This pattern converter reads the thread and global properties. - The thread properties take priority over global properties. - See for details of the - thread properties. See for - details of the global properties. - - - If the is specified then that will be used to - lookup a single property. If no is specified - then all properties will be dumped as a list of key value pairs. - - - Nicko Cadell - - - - Write the property value to the output - - that will receive the formatted result. - null, state is not set - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - - - - A Pattern converter that generates a string of random characters - - - - The converter generates a string of random characters. By default - the string is length 4. This can be changed by setting the - to the string value of the length required. - - - The random characters in the string are limited to uppercase letters - and numbers only. - - - The random number generator used by this class is not cryptographically secure. - - - Nicko Cadell - - - - Shared random number generator - - - - - Length of random string to generate. Default length 4. - - - - - Initialize the converter options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write a randoim string to the output - - the writer to write to - null, state is not set - - - Write a randoim string to the output . - - - - - - The fully qualified type of the RandomStringPatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the current threads username to the output - - - - Write the current threads username to the output writer - - - Nicko Cadell - - - - Write the current threads username to the output - - the writer to write to - null, state is not set - - - Write the current threads username to the output . - - - - - - The fully qualified type of the UserNamePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Write the UTC date time to the output - - - - Date pattern converter, uses a to format - the current date and time in Universal time. - - - See the for details on the date pattern syntax. - - - - Nicko Cadell - - - - Write the current date and time to the output - - that will receive the formatted result. - null, state is not set - - - Pass the current date and time to the - for it to render it to the writer. - - - The date is in Universal time when it is rendered. - - - - - - - The fully qualified type of the UtcDatePatternConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Type converter for Boolean. - - - - Supports conversion from string to bool type. - - - - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Convert the source object to the type supported by this object - - the object to convert - the converted object - - - Uses the method to convert the - argument to a . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Exception base type for conversion errors. - - - - This type extends . It - does not add any new functionality but does differentiate the - type of exception being thrown. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - A message to include with the exception. - - - Initializes a new instance of the class - with the specified message. - - - - - - Constructor - - A message to include with the exception. - A nested exception to include. - - - Initializes a new instance of the class - with the specified message and inner exception. - - - - - - Serialization constructor - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Creates a new instance of the class. - - The conversion destination type. - The value to convert. - An instance of the . - - - Creates a new instance of the class. - - - - - - Creates a new instance of the class. - - The conversion destination type. - The value to convert. - A nested exception to include. - An instance of the . - - - Creates a new instance of the class. - - - - - - Register of type converters for specific types. - - - - Maintains a registry of type converters used to convert between - types. - - - Use the and - methods to register new converters. - The and methods - lookup appropriate converters to use. - - - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - Initializes a new instance of the class. - - - - - Static constructor. - - - - This constructor defines the intrinsic type converters. - - - - - - Adds a converter for a specific type. - - The type being converted to. - The type converter to use to convert to the destination type. - - - Adds a converter instance for a specific type. - - - - - - Adds a converter for a specific type. - - The type being converted to. - The type of the type converter to use to convert to the destination type. - - - Adds a converter for a specific type. - - - - - - Gets the type converter to use to convert values to the destination type. - - The type being converted from. - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - Gets the type converter to use to convert values to the destination type. - - - - - - Gets the type converter to use to convert values to the destination type. - - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - Gets the type converter to use to convert values to the destination type. - - - - - - Lookups the type converter to use as specified by the attributes on the - destination type. - - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - - Creates the instance of the type converter. - - The type of the type converter. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - The type specified for the type converter must implement - the or interfaces - and must have a public default (no argument) constructor. - - - - - - The fully qualified type of the ConverterRegistry class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Mapping from to type converter. - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to an encoding - the encoding - - - Uses the method to - convert the argument to an . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Interface supported by type converters - - - - This interface supports conversion from a single type to arbitrary types. - See . - - - Nicko Cadell - - - - Returns whether this converter can convert the object to the specified type - - A Type that represents the type you want to convert to - true if the conversion is possible - - - Test if the type supported by this converter can be converted to the - . - - - - - - Converts the given value object to the specified type, using the arguments - - the object to convert - The Type to convert the value parameter to - the converted object - - - Converts the (which must be of the type supported - by this converter) to the specified.. - - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to an IPAddress - the IPAddress - - - Uses the method to convert the - argument to an . - If that fails then the string is resolved as a DNS hostname. - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - The string is used as the - of the . - - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a PatternLayout - the PatternLayout - - - Creates and returns a new using - the as the - . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Convert between string and - - - - Supports conversion from string to type, - and from a type to a string. - - - The string is used as the - of the . - - - - - - Nicko Cadell - - - - Can the target type be converted to the type supported by this object - - A that represents the type you want to convert to - true if the conversion is possible - - - Returns true if the is - assignable from a type. - - - - - - Converts the given value object to the specified type, using the arguments - - the object to convert - The Type to convert the value parameter to - the converted object - - - Uses the method to convert the - argument to a . - - - - The object cannot be converted to the - . To check for this condition use the - method. - - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a PatternString - the PatternString - - - Creates and returns a new using - the as the - . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a Type - the Type - - - Uses the method to convert the - argument to a . - Additional effort is made to locate partially specified types - by searching the loaded assemblies. - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Attribute used to associate a type converter - - - - Class and Interface level attribute that specifies a type converter - to use with the associated type. - - - To associate a type converter with a target type apply a - TypeConverterAttribute to the target type. Specify the - type of the type converter on the attribute. - - - Nicko Cadell - Gert Driesen - - - - The string type name of the type converter - - - - - Default constructor - - - - Default constructor - - - - - - Create a new type converter attribute for the specified type name - - The string type name of the type converter - - - The type specified must implement the - or the interfaces. - - - - - - Create a new type converter attribute for the specified type - - The type of the type converter - - - The type specified must implement the - or the interfaces. - - - - - - The string type name of the type converter - - - The string type name of the type converter - - - - The type specified must implement the - or the interfaces. - - - - - - A straightforward implementation of the interface. - - - - This is the default implementation of the - interface. Implementors of the interface - should aggregate an instance of this type. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Append on on all attached appenders. - - The event being logged. - The number of appenders called. - - - Calls the method on all - attached appenders. - - - - - - Append on on all attached appenders. - - The array of events being logged. - The number of appenders called. - - - Calls the method on all - attached appenders. - - - - - - Calls the DoAppende method on the with - the objects supplied. - - The appender - The events - - - If the supports the - interface then the will be passed - through using that interface. Otherwise the - objects in the array will be passed one at a time. - - - - - - Attaches an appender. - - The appender to add. - - - If the appender is already in the list it won't be added again. - - - - - - Gets an attached appender with the specified name. - - The name of the appender to get. - - The appender with the name specified, or null if no appender with the - specified name is found. - - - - Lookup an attached appender by name. - - - - - - Removes all attached appenders. - - - - Removes and closes all attached appenders - - - - - - Removes the specified appender from the list of attached appenders. - - The appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - List of appenders - - - - - Array of appenders, used to cache the m_appenderList - - - - - The fully qualified type of the AppenderAttachedImpl class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets all attached appenders. - - - A collection of attached appenders, or null if there - are no attached appenders. - - - - The read only collection of all currently attached appenders. - - - - - - This class aggregates several PropertiesDictionary collections together. - - - - Provides a dictionary style lookup over an ordered list of - collections. - - - Nicko Cadell - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Add a Properties Dictionary to this composite collection - - the properties to add - - - Properties dictionaries added first take precedence over dictionaries added - later. - - - - - - Flatten this composite collection into a single properties dictionary - - the flattened dictionary - - - Reduces the collection of ordered dictionaries to a single dictionary - containing the resultant values for the keys. - - - - - - Gets the value of a property - - - The value for the property with the specified key - - - - Looks up the value for the specified. - The collections are searched - in the order in which they were added to this collection. The value - returned is the value held by the first collection that contains - the specified key. - - - If none of the collections contain the specified key then - null is returned. - - - - - - Base class for Context Properties implementations - - - - This class defines a basic property get set accessor - - - Nicko Cadell - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Gets or sets the value of a property - - - - - - Wrapper class used to map converter names to converter types - - - - Pattern converter info class used during configuration by custom - PatternString and PatternLayer converters. - - - - - - default constructor - - - - - - - - - - - Gets or sets the name of the conversion pattern - - - - The name of the pattern in the format string - - - - - - Gets or sets the type of the converter - - - - The value specified must extend the - type. - - - - - - - - - - - Subclass of that maintains a count of - the number of bytes written. - - - - This writer counts the number of bytes written. - - - Nicko Cadell - Gert Driesen - - - - that does not leak exceptions - - - - does not throw exceptions when things go wrong. - Instead, it delegates error handling to its . - - - Nicko Cadell - Gert Driesen - - - - Adapter that extends and forwards all - messages to an instance of . - - - - Adapter that extends and forwards all - messages to an instance of . - - - Nicko Cadell - - - - The writer to forward messages to - - - - - Create an instance of that forwards all - messages to a . - - The to forward to - - - Create an instance of that forwards all - messages to a . - - - - - - Closes the writer and releases any system resources associated with the writer - - - - - - - - - Dispose this writer - - flag indicating if we are being disposed - - - Dispose this writer - - - - - - Flushes any buffered output - - - - Clears all buffers for the writer and causes any buffered data to be written - to the underlying device - - - - - - Writes a character to the wrapped TextWriter - - the value to write to the TextWriter - - - Writes a character to the wrapped TextWriter - - - - - - Writes a character buffer to the wrapped TextWriter - - the data buffer - the start index - the number of characters to write - - - Writes a character buffer to the wrapped TextWriter - - - - - - Writes a string to the wrapped TextWriter - - the value to write to the TextWriter - - - Writes a string to the wrapped TextWriter - - - - - - Gets or sets the underlying . - - - The underlying . - - - - Gets or sets the underlying . - - - - - - The Encoding in which the output is written - - - The - - - - The Encoding in which the output is written - - - - - - Gets an object that controls formatting - - - The format provider - - - - Gets an object that controls formatting - - - - - - Gets or sets the line terminator string used by the TextWriter - - - The line terminator to use - - - - Gets or sets the line terminator string used by the TextWriter - - - - - - Constructor - - the writer to actually write to - the error handler to report error to - - - Create a new QuietTextWriter using a writer and error handler - - - - - - Writes a character to the underlying writer - - the char to write - - - Writes a character to the underlying writer - - - - - - Writes a buffer to the underlying writer - - the buffer to write - the start index to write from - the number of characters to write - - - Writes a buffer to the underlying writer - - - - - - Writes a string to the output. - - The string data to write to the output. - - - Writes a string to the output. - - - - - - Closes the underlying output writer. - - - - Closes the underlying output writer. - - - - - - The error handler instance to pass all errors to - - - - - Flag to indicate if this writer is closed - - - - - Gets or sets the error handler that all errors are passed to. - - - The error handler that all errors are passed to. - - - - Gets or sets the error handler that all errors are passed to. - - - - - - Gets a value indicating whether this writer is closed. - - - true if this writer is closed, otherwise false. - - - - Gets a value indicating whether this writer is closed. - - - - - - Constructor - - The to actually write to. - The to report errors to. - - - Creates a new instance of the class - with the specified and . - - - - - - Writes a character to the underlying writer and counts the number of bytes written. - - the char to write - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Writes a buffer to the underlying writer and counts the number of bytes written. - - the buffer to write - the start index to write from - the number of characters to write - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Writes a string to the output and counts the number of bytes written. - - The string data to write to the output. - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Total number of bytes written. - - - - - Gets or sets the total number of bytes written. - - - The total number of bytes written. - - - - Gets or sets the total number of bytes written. - - - - - - A fixed size rolling buffer of logging events. - - - - An array backed fixed size leaky bucket. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The maximum number of logging events in the buffer. - - - Initializes a new instance of the class with - the specified maximum number of buffered logging events. - - - The argument is not a positive integer. - - - - Appends a to the buffer. - - The event to append to the buffer. - The event discarded from the buffer, if the buffer is full, otherwise null. - - - Append an event to the buffer. If the buffer still contains free space then - null is returned. If the buffer is full then an event will be dropped - to make space for the new event, the event dropped is returned. - - - - - - Get and remove the oldest event in the buffer. - - The oldest logging event in the buffer - - - Gets the oldest (first) logging event in the buffer and removes it - from the buffer. - - - - - - Pops all the logging events from the buffer into an array. - - An array of all the logging events in the buffer. - - - Get all the events in the buffer and clear the buffer. - - - - - - Clear the buffer - - - - Clear the buffer of all events. The events in the buffer are lost. - - - - - - Gets the th oldest event currently in the buffer. - - The th oldest event currently in the buffer. - - - If is outside the range 0 to the number of events - currently in the buffer, then null is returned. - - - - - - Gets the maximum size of the buffer. - - The maximum size of the buffer. - - - Gets the maximum size of the buffer - - - - - - Gets the number of logging events in the buffer. - - The number of logging events in the buffer. - - - This number is guaranteed to be in the range 0 to - (inclusive). - - - - - - An always empty . - - - - A singleton implementation of the - interface that always represents an empty collection. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Copies the elements of the to an - , starting at a particular Array index. - - The one-dimensional - that is the destination of the elements copied from - . The Array must have zero-based - indexing. - The zero-based index in array at which - copying begins. - - - As the collection is empty no values are copied into the array. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - The singleton instance of the empty collection. - - - - - Gets the singleton instance of the empty collection. - - The singleton instance of the empty collection. - - - Gets the singleton instance of the empty collection. - - - - - - Gets a value indicating if access to the is synchronized (thread-safe). - - - true if access to the is synchronized (thread-safe); otherwise, false. - - - - For the this property is always true. - - - - - - Gets the number of elements contained in the . - - - The number of elements contained in the . - - - - As the collection is empty the is always 0. - - - - - - Gets an object that can be used to synchronize access to the . - - - An object that can be used to synchronize access to the . - - - - As the collection is empty and thread safe and synchronized this instance is also - the object. - - - - - - An always empty . - - - - A singleton implementation of the - interface that always represents an empty collection. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Copies the elements of the to an - , starting at a particular Array index. - - The one-dimensional - that is the destination of the elements copied from - . The Array must have zero-based - indexing. - The zero-based index in array at which - copying begins. - - - As the collection is empty no values are copied into the array. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - Adds an element with the provided key and value to the - . - - The to use as the key of the element to add. - The to use as the value of the element to add. - - - As the collection is empty no new values can be added. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - Removes all elements from the . - - - - As the collection is empty no values can be removed. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - Determines whether the contains an element - with the specified key. - - The key to locate in the . - false - - - As the collection is empty the method always returns false. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - Removes the element with the specified key from the . - - The key of the element to remove. - - - As the collection is empty no values can be removed. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - The singleton instance of the empty dictionary. - - - - - Gets the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets a value indicating if access to the is synchronized (thread-safe). - - - true if access to the is synchronized (thread-safe); otherwise, false. - - - - For the this property is always true. - - - - - - Gets the number of elements contained in the - - - The number of elements contained in the . - - - - As the collection is empty the is always 0. - - - - - - Gets an object that can be used to synchronize access to the . - - - An object that can be used to synchronize access to the . - - - - As the collection is empty and thread safe and synchronized this instance is also - the object. - - - - - - Gets a value indicating whether the has a fixed size. - - true - - - As the collection is empty always returns true. - - - - - - Gets a value indicating whether the is read-only. - - true - - - As the collection is empty always returns true. - - - - - - Gets an containing the keys of the . - - An containing the keys of the . - - - As the collection is empty a is returned. - - - - - - Gets an containing the values of the . - - An containing the values of the . - - - As the collection is empty a is returned. - - - - - - Gets or sets the element with the specified key. - - The key of the element to get or set. - null - - - As the collection is empty no values can be looked up or stored. - If the index getter is called then null is returned. - A is thrown if the setter is called. - - - This dictionary is always empty and cannot be modified. - - - - Contain the information obtained when parsing formatting modifiers - in conversion modifiers. - - - - Holds the formatting information extracted from the format string by - the . This is used by the - objects when rendering the output. - - - Nicko Cadell - Gert Driesen - - - - Defaut Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - - - Initializes a new instance of the class - with the specified parameters. - - - - - - Gets or sets the minimum value. - - - The minimum value. - - - - Gets or sets the minimum value. - - - - - - Gets or sets the maximum value. - - - The maximum value. - - - - Gets or sets the maximum value. - - - - - - Gets or sets a flag indicating whether left align is enabled - or not. - - - A flag indicating whether left align is enabled or not. - - - - Gets or sets a flag indicating whether left align is enabled or not. - - - - - - Implementation of Properties collection for the - - - - This class implements a properties collection that is thread safe and supports both - storing properties and capturing a read only copy of the current propertied. - - - This class is optimized to the scenario where the properties are read frequently - and are modified infrequently. - - - Nicko Cadell - - - - The read only copy of the properties. - - - - This variable is declared volatile to prevent the compiler and JIT from - reordering reads and writes of this thread performed on different threads. - - - - - - Lock object used to synchronize updates within this instance - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property from the global context - - the key for the entry to remove - - - Removing an entry from the global context properties is relatively expensive compared - with reading a value. - - - - - - Clear the global context properties - - - - - Get a readonly immutable copy of the properties - - the current global context properties - - - This implementation is fast because the GlobalContextProperties class - stores a readonly copy of the properties. - - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Reading the value for a key is faster than setting the value. - When the value is written a new read only copy of - the properties is created. - - - - - - Manages a mapping from levels to - - - - Manages an ordered mapping from instances - to subclasses. - - - Nicko Cadell - - - - Default constructor - - - - Initialise a new instance of . - - - - - - Add a to this mapping - - the entry to add - - - If a has previously been added - for the same then that entry will be - overwritten. - - - - - - Lookup the mapping for the specified level - - the level to lookup - the for the level or null if no mapping found - - - Lookup the value for the specified level. Finds the nearest - mapping value for the level that is equal to or less than the - specified. - - - If no mapping could be found then null is returned. - - - - - - Initialize options - - - - Caches the sorted list of in an array - - - - - - Implementation of Properties collection for the - - - - Class implements a collection of properties that is specific to each thread. - The class is not synchronized as each thread has its own . - - - This class stores its properties in a slot on the named - log4net.Util.LogicalThreadContextProperties. - - - The requires a link time - for the - . - If the calling code does not have this permission then this context will be disabled. - It will not store any property values set on it. - - - Nicko Cadell - - - - Flag used to disable this context if we don't have permission to access the CallContext. - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property - - the key for the entry to remove - - - Remove the value for the specified from the context. - - - - - - Clear all the context properties - - - - Clear all the context properties - - - - - - Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. - - create the dictionary if it does not exist, otherwise return null if is does not exist - the properties for this thread - - - The collection returned is only to be used on the calling thread. If the - caller needs to share the collection between different threads then the - caller must clone the collection before doings so. - - - - - - Gets the call context get data. - - The peroperties dictionary stored in the call context - - The method has a - security link demand, therfore we must put the method call in a seperate method - that we can wrap in an exception handler. - - - - - Sets the call context data. - - The properties. - - The method has a - security link demand, therfore we must put the method call in a seperate method - that we can wrap in an exception handler. - - - - - The fully qualified type of the LogicalThreadContextProperties class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Get or set the property value for the specified. - - - - - - - - - - - - - Outputs log statements from within the log4net assembly. - - - - Log4net components cannot make log4net logging calls. However, it is - sometimes useful for the user to learn about what log4net is - doing. - - - All log4net internal debug calls go to the standard output stream - whereas internal error messages are sent to the standard error output - stream. - - - Nicko Cadell - Gert Driesen - - - - Formats Prefix, Source, and Message in the same format as the value - sent to Console.Out and Trace.Write. - - - - - - Initializes a new instance of the class. - - - - - - - - - Static constructor that initializes logging by reading - settings from the application configuration file. - - - - The log4net.Internal.Debug application setting - controls internal debugging. This setting should be set - to true to enable debugging. - - - The log4net.Internal.Quiet application setting - suppresses all internal logging including error messages. - This setting should be set to true to enable message - suppression. - - - - - - Raises the LogReceived event when an internal messages is received. - - - - - - - - - Writes log4net internal debug messages to the - standard output stream. - - - The message to log. - - - All internal debug messages are prepended with - the string "log4net: ". - - - - - - Writes log4net internal debug messages to the - standard output stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal debug messages are prepended with - the string "log4net: ". - - - - - - Writes log4net internal warning messages to the - standard error stream. - - The Type that generated this message. - The message to log. - - - All internal warning messages are prepended with - the string "log4net:WARN ". - - - - - - Writes log4net internal warning messages to the - standard error stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal warning messages are prepended with - the string "log4net:WARN ". - - - - - - Writes log4net internal error messages to the - standard error stream. - - The Type that generated this message. - The message to log. - - - All internal error messages are prepended with - the string "log4net:ERROR ". - - - - - - Writes log4net internal error messages to the - standard error stream. - - The Type that generated this message. - The message to log. - An exception to log. - - - All internal debug messages are prepended with - the string "log4net:ERROR ". - - - - - - Writes output to the standard output stream. - - The message to log. - - - Writes to both Console.Out and System.Diagnostics.Trace. - Note that the System.Diagnostics.Trace is not supported - on the Compact Framework. - - - If the AppDomain is not configured with a config file then - the call to System.Diagnostics.Trace may fail. This is only - an issue if you are programmatically creating your own AppDomains. - - - - - - Writes output to the standard error stream. - - The message to log. - - - Writes to both Console.Error and System.Diagnostics.Trace. - Note that the System.Diagnostics.Trace is not supported - on the Compact Framework. - - - If the AppDomain is not configured with a config file then - the call to System.Diagnostics.Trace may fail. This is only - an issue if you are programmatically creating your own AppDomains. - - - - - - Default debug level - - - - - In quietMode not even errors generate any output. - - - - - The event raised when an internal message has been received. - - - - - The Type that generated the internal message. - - - - - The DateTime stamp of when the internal message was received. - - - - - A string indicating the severity of the internal message. - - - "log4net: ", - "log4net:ERROR ", - "log4net:WARN " - - - - - The internal log message. - - - - - The Exception related to the message. - - - Optional. Will be null if no Exception was passed. - - - - - Gets or sets a value indicating whether log4net internal logging - is enabled or disabled. - - - true if log4net internal logging is enabled, otherwise - false. - - - - When set to true, internal debug level logging will be - displayed. - - - This value can be set by setting the application setting - log4net.Internal.Debug in the application configuration - file. - - - The default value is false, i.e. debugging is - disabled. - - - - - The following example enables internal debugging using the - application configuration file : - - - - - - - - - - - - - Gets or sets a value indicating whether log4net should generate no output - from internal logging, not even for errors. - - - true if log4net should generate no output at all from internal - logging, otherwise false. - - - - When set to true will cause internal logging at all levels to be - suppressed. This means that no warning or error reports will be logged. - This option overrides the setting and - disables all debug also. - - This value can be set by setting the application setting - log4net.Internal.Quiet in the application configuration file. - - - The default value is false, i.e. internal logging is not - disabled. - - - - The following example disables internal logging using the - application configuration file : - - - - - - - - - - - - - - - - - Test if LogLog.Debug is enabled for output. - - - true if Debug is enabled - - - - Test if LogLog.Debug is enabled for output. - - - - - - Test if LogLog.Warn is enabled for output. - - - true if Warn is enabled - - - - Test if LogLog.Warn is enabled for output. - - - - - - Test if LogLog.Error is enabled for output. - - - true if Error is enabled - - - - Test if LogLog.Error is enabled for output. - - - - - - Subscribes to the LogLog.LogReceived event and stores messages - to the supplied IList instance. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Represents a native error code and message. - - - - Represents a Win32 platform native error. - - - Nicko Cadell - Gert Driesen - - - - Create an instance of the class with the specified - error number and message. - - The number of the native error. - The message of the native error. - - - Create an instance of the class with the specified - error number and message. - - - - - - Create a new instance of the class for the last Windows error. - - - An instance of the class for the last windows error. - - - - The message for the error number is lookup up using the - native Win32 FormatMessage function. - - - - - - Create a new instance of the class. - - the error number for the native error - - An instance of the class for the specified - error number. - - - - The message for the specified error number is lookup up using the - native Win32 FormatMessage function. - - - - - - Retrieves the message corresponding with a Win32 message identifier. - - Message identifier for the requested message. - - The message corresponding with the specified message identifier. - - - - The message will be searched for in system message-table resource(s) - using the native FormatMessage function. - - - - - - Return error information string - - error information string - - - Return error information string - - - - - - Formats a message string. - - Formatting options, and how to interpret the parameter. - Location of the message definition. - Message identifier for the requested message. - Language identifier for the requested message. - If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . - If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. - Pointer to an array of values that are used as insert values in the formatted message. - - - The function requires a message definition as input. The message definition can come from a - buffer passed into the function. It can come from a message table resource in an - already-loaded module. Or the caller can ask the function to search the system's message - table resource(s) for the message definition. The function finds the message definition - in a message table resource based on a message identifier and a language identifier. - The function copies the formatted message text to an output buffer, processing any embedded - insert sequences if requested. - - - To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. - - - - - If the function succeeds, the return value is the number of TCHARs stored in the output - buffer, excluding the terminating null character. - - - If the function fails, the return value is zero. To get extended error information, - call . - - - - - - Gets the number of the native error. - - - The number of the native error. - - - - Gets the number of the native error. - - - - - - Gets the message of the native error. - - - The message of the native error. - - - - - Gets the message of the native error. - - - - - An always empty . - - - - A singleton implementation of the over a collection - that is empty and not modifiable. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Test if the enumerator can advance, if so advance. - - false as the cannot advance. - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will always return false. - - - - - - Resets the enumerator back to the start. - - - - As the enumerator is over an empty collection does nothing. - - - - - - The singleton instance of the . - - - - - Gets the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets the current object from the enumerator. - - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current key from the enumerator. - - - Throws an exception because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current value from the enumerator. - - The current value from the enumerator. - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current entry from the enumerator. - - - Throws an because the - never has a current entry. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - An always empty . - - - - A singleton implementation of the over a collection - that is empty and not modifiable. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Test if the enumerator can advance, if so advance - - false as the cannot advance. - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will always return false. - - - - - - Resets the enumerator back to the start. - - - - As the enumerator is over an empty collection does nothing. - - - - - - The singleton instance of the . - - - - - Get the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets the current object from the enumerator. - - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - A SecurityContext used when a SecurityContext is not required - - - - The is a no-op implementation of the - base class. It is used where a - is required but one has not been provided. - - - Nicko Cadell - - - - Singleton instance of - - - - Singleton instance of - - - - - - Private constructor - - - - Private constructor for singleton pattern. - - - - - - Impersonate this SecurityContext - - State supplied by the caller - null - - - No impersonation is done and null is always returned. - - - - - - Implements log4net's default error handling policy which consists - of emitting a message for the first error in an appender and - ignoring all subsequent errors. - - - - The error message is processed using the LogLog sub-system by default. - - - This policy aims at protecting an otherwise working application - from being flooded with error messages when logging fails. - - - Nicko Cadell - Gert Driesen - Ron Grabowski - - - - Default Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - The prefix to use for each message. - - - Initializes a new instance of the class - with the specified prefix. - - - - - - Reset the error handler back to its initial disabled state. - - - - - Log an Error - - The error message. - The exception. - The internal error code. - - - Invokes if and only if this is the first error or the first error after has been called. - - - - - - Log the very first error - - The error message. - The exception. - The internal error code. - - - Sends the error information to 's Error method. - - - - - - Log an Error - - The error message. - The exception. - - - Invokes if and only if this is the first error or the first error after has been called. - - - - - - Log an error - - The error message. - - - Invokes if and only if this is the first error or the first error after has been called. - - - - - - The date the error was recorded. - - - - - Flag to indicate if it is the first error - - - - - The message recorded during the first error. - - - - - The exception recorded during the first error. - - - - - The error code recorded during the first error. - - - - - String to prefix each message with - - - - - The fully qualified type of the OnlyOnceErrorHandler class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Is error logging enabled - - - - Is error logging enabled. Logging is only enabled for the - first error delivered to the . - - - - - - The date the first error that trigged this error handler occured. - - - - - The message from the first error that trigged this error handler. - - - - - The exception from the first error that trigged this error handler. - - - May be . - - - - - The error code from the first error that trigged this error handler. - - - Defaults to - - - - - A convenience class to convert property values to specific types. - - - - Utility functions for converting types and parsing values. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Converts a string to a value. - - String to convert. - The default value. - The value of . - - - If is "true", then true is returned. - If is "false", then false is returned. - Otherwise, is returned. - - - - - - Parses a file size into a number. - - String to parse. - The default value. - The value of . - - - Parses a file size of the form: number[KB|MB|GB] into a - long value. It is scaled with the appropriate multiplier. - - - is returned when - cannot be converted to a value. - - - - - - Converts a string to an object. - - The target type to convert to. - The string to convert to an object. - - The object converted from a string or null when the - conversion failed. - - - - Converts a string to an object. Uses the converter registry to try - to convert the string value into the specified target type. - - - - - - Checks if there is an appropriate type conversion from the source type to the target type. - - The type to convert from. - The type to convert to. - true if there is a conversion from the source type to the target type. - - Checks if there is an appropriate type conversion from the source type to the target type. - - - - - - - Converts an object to the target type. - - The object to convert to the target type. - The type to convert to. - The converted object. - - - Converts an object to the target type. - - - - - - Instantiates an object given a class name. - - The fully qualified class name of the object to instantiate. - The class to which the new object should belong. - The object to return in case of non-fulfillment. - - An instance of the or - if the object could not be instantiated. - - - - Checks that the is a subclass of - . If that test fails or the object could - not be instantiated, then is returned. - - - - - - Performs variable substitution in string from the - values of keys found in . - - The string on which variable substitution is performed. - The dictionary to use to lookup variables. - The result of the substitutions. - - - The variable substitution delimiters are ${ and }. - - - For example, if props contains key=value, then the call - - - - string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); - - - - will set the variable s to "Value of key is value.". - - - If no value could be found for the specified key, then substitution - defaults to an empty string. - - - For example, if system properties contains no value for the key - "nonExistentKey", then the call - - - - string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); - - - - will set s to "Value of nonExistentKey is []". - - - An Exception is thrown if contains a start - delimiter "${" which is not balanced by a stop delimiter "}". - - - - - - Converts the string representation of the name or numeric value of one or - more enumerated constants to an equivalent enumerated object. - - The type to convert to. - The enum string value. - If true, ignore case; otherwise, regard case. - An object of type whose value is represented by . - - - - The fully qualified type of the OptionConverter class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Most of the work of the class - is delegated to the PatternParser class. - - - - The PatternParser processes a pattern string and - returns a chain of objects. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The pattern to parse. - - - Initializes a new instance of the class - with the specified pattern string. - - - - - - Parses the pattern into a chain of pattern converters. - - The head of a chain of pattern converters. - - - Parses the pattern into a chain of pattern converters. - - - - - - Build the unified cache of converters from the static and instance maps - - the list of all the converter names - - - Build the unified cache of converters from the static and instance maps - - - - - - Internal method to parse the specified pattern to find specified matches - - the pattern to parse - the converter names to match in the pattern - - - The matches param must be sorted such that longer strings come before shorter ones. - - - - - - Process a parsed literal - - the literal text - - - - Process a parsed converter pattern - - the name of the converter - the optional option for the converter - the formatting info for the converter - - - - Resets the internal state of the parser and adds the specified pattern converter - to the chain. - - The pattern converter to add. - - - - The first pattern converter in the chain - - - - - the last pattern converter in the chain - - - - - The pattern - - - - - Internal map of converter identifiers to converter types - - - - This map overrides the static s_globalRulesRegistry map. - - - - - - The fully qualified type of the PatternParser class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Get the converter registry used by this parser - - - The converter registry used by this parser - - - - Get the converter registry used by this parser - - - - - - Sort strings by length - - - - that orders strings by string length. - The longest strings are placed first - - - - - - This class implements a patterned string. - - - - This string has embedded patterns that are resolved and expanded - when the string is formatted. - - - This class functions similarly to the - in that it accepts a pattern and renders it to a string. Unlike the - however the PatternString - does not render the properties of a specific but - of the process in general. - - - The recognized conversion pattern names are: - - - - Conversion Pattern Name - Effect - - - appdomain - - - Used to output the friendly name of the current AppDomain. - - - - - date - - - Used to output the current date and time in the local time zone. - To output the date in universal time use the %utcdate pattern. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %date{HH:mm:ss,fff} or - %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %date{ISO8601} or %date{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - env - - - Used to output the a specific environment variable. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %env{COMPUTERNAME} would include the value - of the COMPUTERNAME environment variable. - - - The env pattern is not supported on the .NET Compact Framework. - - - - - identity - - - Used to output the user name for the currently active user - (Principal.Identity.Name). - - - - - newline - - - Outputs the platform dependent line separator character or - characters. - - - This conversion pattern name offers the same performance as using - non-portable line separator strings such as "\n", or "\r\n". - Thus, it is the preferred way of specifying a line separator. - - - - - processid - - - Used to output the system process ID for the current process. - - - - - property - - - Used to output a specific context property. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %property{user} would include the value - from the property that is keyed by the string 'user'. Each property value - that is to be included in the log must be specified separately. - Properties are stored in logging contexts. By default - the log4net:HostName property is set to the name of machine on - which the event was originally logged. - - - If no key is specified, e.g. %property then all the keys and their - values are printed in a comma separated list. - - - The properties of an event are combined from a number of different - contexts. These are listed below in the order in which they are searched. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - random - - - Used to output a random string of characters. The string is made up of - uppercase letters and numbers. By default the string is 4 characters long. - The length of the string can be specified within braces directly following the - pattern specifier, e.g. %random{8} would output an 8 character string. - - - - - username - - - Used to output the WindowsIdentity for the currently - active user. - - - - - utcdate - - - Used to output the date of the logging event in universal time. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %utcdate{HH:mm:ss,fff} or - %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %utcdate{ISO8601} or %utcdate{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - % - - - The sequence %% outputs a single percent sign. - - - - - - Additional pattern converters may be registered with a specific - instance using or - . - - - See the for details on the - format modifiers supported by the patterns. - - - Nicko Cadell - - - - Internal map of converter identifiers to converter types. - - - - - the pattern - - - - - the head of the pattern converter chain - - - - - patterns defined on this PatternString only - - - - - Initialize the global registry - - - - - Default constructor - - - - Initialize a new instance of - - - - - - Constructs a PatternString - - The pattern to use with this PatternString - - - Initialize a new instance of with the pattern specified. - - - - - - Initialize object options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Create the used to parse the pattern - - the pattern to parse - The - - - Returns PatternParser used to parse the conversion string. Subclasses - may override this to return a subclass of PatternParser which recognize - custom conversion pattern name. - - - - - - Produces a formatted string as specified by the conversion pattern. - - The TextWriter to write the formatted event to - - - Format the pattern to the . - - - - - - Format the pattern as a string - - the pattern formatted as a string - - - Format the pattern to a string. - - - - - - Add a converter to this PatternString - - the converter info - - - This version of the method is used by the configurator. - Programmatic users should use the alternative method. - - - - - - Add a converter to this PatternString - - the name of the conversion pattern for this converter - the type of the converter - - - Add a converter to this PatternString - - - - - - Gets or sets the pattern formatting string - - - The pattern formatting string - - - - The ConversionPattern option. This is the string which - controls formatting and consists of a mix of literal content and - conversion specifiers. - - - - - - String keyed object map. - - - - While this collection is serializable only member - objects that are serializable will - be serialized along with this collection. - - - Nicko Cadell - Gert Driesen - - - - String keyed object map that is read only. - - - - This collection is readonly and cannot be modified. - - - While this collection is serializable only member - objects that are serializable will - be serialized along with this collection. - - - Nicko Cadell - Gert Driesen - - - - The Hashtable used to store the properties data - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Copy Constructor - - properties to copy - - - Initializes a new instance of the class. - - - - - - Deserialization constructor - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Gets the key names. - - An array of all the keys. - - - Gets the key names. - - - - - - Test if the dictionary contains a specified key - - the key to look for - true if the dictionary contains the specified key - - - Test if the dictionary contains a specified key - - - - - - Serializes this object into the provided. - - The to populate with data. - The destination for this serialization. - - - Serializes this object into the provided. - - - - - - See - - - - - See - - - - - - See - - - - - - - Remove all properties from the properties collection - - - - - See - - - - - - - See - - - - - - - See - - - - - Gets or sets the value of the property with the specified key. - - - The value of the property with the specified key. - - The key of the property to get or set. - - - The property value will only be serialized if it is serializable. - If it cannot be serialized it will be silently ignored if - a serialization operation is performed. - - - - - - The hashtable used to store the properties - - - The internal collection used to store the properties - - - - The hashtable used to store the properties - - - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - The number of properties in this collection - - - - - See - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - properties to copy - - - Initializes a new instance of the class. - - - - - - Initializes a new instance of the class - with serialized data. - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Because this class is sealed the serialization constructor is private. - - - - - - Remove the entry with the specified key from this dictionary - - the key for the entry to remove - - - Remove the entry with the specified key from this dictionary - - - - - - See - - an enumerator - - - Returns a over the contest of this collection. - - - - - - See - - the key to remove - - - Remove the entry with the specified key from this dictionary - - - - - - See - - the key to lookup in the collection - true if the collection contains the specified key - - - Test if this collection contains a specified key. - - - - - - Remove all properties from the properties collection - - - - Remove all properties from the properties collection - - - - - - See - - the key - the value to store for the key - - - Store a value for the specified . - - - Thrown if the is not a string - - - - See - - - - - - - See - - - - - Gets or sets the value of the property with the specified key. - - - The value of the property with the specified key. - - The key of the property to get or set. - - - The property value will only be serialized if it is serializable. - If it cannot be serialized it will be silently ignored if - a serialization operation is performed. - - - - - - See - - - false - - - - This collection is modifiable. This property always - returns false. - - - - - - See - - - The value for the key specified. - - - - Get or set a value for the specified . - - - Thrown if the is not a string - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - A class to hold the key and data for a property set in the config file - - - - A class to hold the key and data for a property set in the config file - - - - - - Override Object.ToString to return sensible debug info - - string info about this object - - - - Property Key - - - Property Key - - - - Property Key. - - - - - - Property Value - - - Property Value - - - - Property Value. - - - - - - A that ignores the message - - - - This writer is used in special cases where it is necessary - to protect a writer from being closed by a client. - - - Nicko Cadell - - - - Constructor - - the writer to actually write to - - - Create a new ProtectCloseTextWriter using a writer - - - - - - Attach this instance to a different underlying - - the writer to attach to - - - Attach this instance to a different underlying - - - - - - Does not close the underlying output writer. - - - - Does not close the underlying output writer. - This method does nothing. - - - - - - Defines a lock that supports single writers and multiple readers - - - - ReaderWriterLock is used to synchronize access to a resource. - At any given time, it allows either concurrent read access for - multiple threads, or write access for a single thread. In a - situation where a resource is changed infrequently, a - ReaderWriterLock provides better throughput than a simple - one-at-a-time lock, such as . - - - If a platform does not support a System.Threading.ReaderWriterLock - implementation then all readers and writers are serialized. Therefore - the caller must not rely on multiple simultaneous readers. - - - Nicko Cadell - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Acquires a reader lock - - - - blocks if a different thread has the writer - lock, or if at least one thread is waiting for the writer lock. - - - - - - Decrements the lock count - - - - decrements the lock count. When the count - reaches zero, the lock is released. - - - - - - Acquires the writer lock - - - - This method blocks if another thread has a reader lock or writer lock. - - - - - - Decrements the lock count on the writer lock - - - - ReleaseWriterLock decrements the writer lock count. - When the count reaches zero, the writer lock is released. - - - - - - A that can be and reused - - - - A that can be and reused. - This uses a single buffer for string operations. - - - Nicko Cadell - - - - Create an instance of - - the format provider to use - - - Create an instance of - - - - - - Override Dispose to prevent closing of writer - - flag - - - Override Dispose to prevent closing of writer - - - - - - Reset this string writer so that it can be reused. - - the maximum buffer capacity before it is trimmed - the default size to make the buffer - - - Reset this string writer so that it can be reused. - The internal buffers are cleared and reset. - - - - - - Utility class for system specific information. - - - - Utility class of static methods for system specific information. - - - Nicko Cadell - Gert Driesen - Alexey Solofnenko - - - - Private constructor to prevent instances. - - - - Only static methods are exposed from this type. - - - - - - Initialize default values for private static fields. - - - - Only static methods are exposed from this type. - - - - - - Gets the assembly location path for the specified assembly. - - The assembly to get the location for. - The location of the assembly. - - - This method does not guarantee to return the correct path - to the assembly. If only tries to give an indication as to - where the assembly was loaded from. - - - - - - Gets the fully qualified name of the , including - the name of the assembly from which the was - loaded. - - The to get the fully qualified name for. - The fully qualified name for the . - - - This is equivalent to the Type.AssemblyQualifiedName property, - but this method works on the .NET Compact Framework 1.0 as well as - the full .NET runtime. - - - - - - Gets the short name of the . - - The to get the name for. - The short name of the . - - - The short name of the assembly is the - without the version, culture, or public key. i.e. it is just the - assembly's file name without the extension. - - - Use this rather than Assembly.GetName().Name because that - is not available on the Compact Framework. - - - Because of a FileIOPermission security demand we cannot do - the obvious Assembly.GetName().Name. We are allowed to get - the of the assembly so we - start from there and strip out just the assembly name. - - - - - - Gets the file name portion of the , including the extension. - - The to get the file name for. - The file name of the assembly. - - - Gets the file name portion of the , including the extension. - - - - - - Loads the type specified in the type string. - - A sibling type to use to load the type. - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified, it will be loaded from the assembly - containing the specified relative type. If the type is not found in the assembly - then all the loaded assemblies will be searched for the type. - - - - - - Loads the type specified in the type string. - - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified it will be loaded from the - assembly that is directly calling this method. If the type is not found - in the assembly then all the loaded assemblies will be searched for the type. - - - - - - Loads the type specified in the type string. - - An assembly to load the type from. - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified it will be loaded from the specified - assembly. If the type is not found in the assembly then all the loaded assemblies - will be searched for the type. - - - - - - Generate a new guid - - A new Guid - - - Generate a new guid - - - - - - Create an - - The name of the parameter that caused the exception - The value of the argument that causes this exception - The message that describes the error - the ArgumentOutOfRangeException object - - - Create a new instance of the class - with a specified error message, the parameter name, and the value - of the argument. - - - The Compact Framework does not support the 3 parameter constructor for the - type. This method provides an - implementation that works for all platforms. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Lookup an application setting - - the application settings key to lookup - the value for the key, or null - - - Configuration APIs are not supported under the Compact Framework - - - - - - Convert a path into a fully qualified local file path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - The path specified must be a local file path, a URI is not supported. - - - - - - Creates a new case-insensitive instance of the class with the default initial capacity. - - A new case-insensitive instance of the class with the default initial capacity - - - The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. - - - - - - Gets an empty array of types. - - - - The Type.EmptyTypes field is not available on - the .NET Compact Framework 1.0. - - - - - - The fully qualified type of the SystemInfo class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Cache the host name for the current machine - - - - - Cache the application friendly name - - - - - Text to output when a null is encountered. - - - - - Text to output when an unsupported feature is requested. - - - - - Start time for the current process. - - - - - Gets the system dependent line terminator. - - - The system dependent line terminator. - - - - Gets the system dependent line terminator. - - - - - - Gets the base directory for this . - - The base directory path for the current . - - - Gets the base directory for this . - - - The value returned may be either a local file path or a URI. - - - - - - Gets the path to the configuration file for the current . - - The path to the configuration file for the current . - - - The .NET Compact Framework 1.0 does not have a concept of a configuration - file. For this runtime, we use the entry assembly location as the root for - the configuration file name. - - - The value returned may be either a local file path or a URI. - - - - - - Gets the path to the file that first executed in the current . - - The path to the entry assembly. - - - Gets the path to the file that first executed in the current . - - - - - - Gets the ID of the current thread. - - The ID of the current thread. - - - On the .NET framework, the AppDomain.GetCurrentThreadId method - is used to obtain the thread ID for the current thread. This is the - operating system ID for the thread. - - - On the .NET Compact Framework 1.0 it is not possible to get the - operating system thread ID for the current thread. The native method - GetCurrentThreadId is implemented inline in a header file - and cannot be called. - - - On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this - gives a stable id unrelated to the operating system thread ID which may - change if the runtime is using fibers. - - - - - - Get the host name or machine name for the current machine - - - The hostname or machine name - - - - Get the host name or machine name for the current machine - - - The host name () or - the machine name (Environment.MachineName) for - the current machine, or if neither of these are available - then NOT AVAILABLE is returned. - - - - - - Get this application's friendly name - - - The friendly name of this application as a string - - - - If available the name of the application is retrieved from - the AppDomain using AppDomain.CurrentDomain.FriendlyName. - - - Otherwise the file name of the entry assembly is used. - - - - - - Get the start time for the current process. - - - - This is the time at which the log4net library was loaded into the - AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime - this is not the start time for the current process. - - - The log4net library should be loaded by an application early during its - startup, therefore this start time should be a good approximation for - the actual start time. - - - Note that AppDomains may be loaded and unloaded within the - same process without the process terminating, however this start time - will be set per AppDomain. - - - - - - Text to output when a null is encountered. - - - - Use this value to indicate a null has been encountered while - outputting a string representation of an item. - - - The default value is (null). This value can be overridden by specifying - a value for the log4net.NullText appSetting in the application's - .config file. - - - - - - Text to output when an unsupported feature is requested. - - - - Use this value when an unsupported feature is requested. - - - The default value is NOT AVAILABLE. This value can be overridden by specifying - a value for the log4net.NotAvailableText appSetting in the application's - .config file. - - - - - - Utility class that represents a format string. - - - - Utility class that represents a format string. - - - Nicko Cadell - - - - Initialise the - - An that supplies culture-specific formatting information. - A containing zero or more format items. - An array containing zero or more objects to format. - - - - Format the string and arguments - - the formatted string - - - - Replaces the format item in a specified with the text equivalent - of the value of a corresponding instance in a specified array. - A specified parameter supplies culture-specific formatting information. - - An that supplies culture-specific formatting information. - A containing zero or more format items. - An array containing zero or more objects to format. - - A copy of format in which the format items have been replaced by the - equivalent of the corresponding instances of in args. - - - - This method does not throw exceptions. If an exception thrown while formatting the result the - exception and arguments are returned in the result string. - - - - - - Process an error during StringFormat - - - - - Dump the contents of an array into a string builder - - - - - Dump an object to a string - - - - - The fully qualified type of the SystemStringFormat class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Implementation of Properties collection for the - - - - Class implements a collection of properties that is specific to each thread. - The class is not synchronized as each thread has its own . - - - Nicko Cadell - - - - Each thread will automatically have its instance. - - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property - - the key for the entry to remove - - - Remove a property - - - - - - Get the keys stored in the properties. - - - Gets the keys stored in the properties. - - a set of the defined keys - - - - Clear all properties - - - - Clear all properties - - - - - - Get the PropertiesDictionary for this thread. - - create the dictionary if it does not exist, otherwise return null if does not exist - the properties for this thread - - - The collection returned is only to be used on the calling thread. If the - caller needs to share the collection between different threads then the - caller must clone the collection before doing so. - - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Gets or sets the value of a property - - - - - - Implementation of Stack for the - - - - Implementation of Stack for the - - - Nicko Cadell - - - - The stack store. - - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - Clears all the contextual information held in this stack. - - - - Clears all the contextual information held in this stack. - Only call this if you think that this tread is being reused after - a previous call execution which may not have completed correctly. - You do not need to use this method if you always guarantee to call - the method of the - returned from even in exceptional circumstances, - for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) - syntax. - - - - - - Removes the top context from this stack. - - The message in the context that was removed from the top of this stack. - - - Remove the top context from this stack, and return - it to the caller. If this stack is empty then an - empty string (not ) is returned. - - - - - - Pushes a new context message into this stack. - - The new context message. - - An that can be used to clean up the context stack. - - - - Pushes a new context onto this stack. An - is returned that can be used to clean up this stack. This - can be easily combined with the using keyword to scope the - context. - - - Simple example of using the Push method with the using keyword. - - using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) - { - log.Warn("This should have an ThreadContext Stack message"); - } - - - - - - Gets the current context information for this stack. - - The current context information. - - - - Gets the current context information for this stack. - - Gets the current context information - - - Gets the current context information for this stack. - - - - - - Get a portable version of this object - - the portable instance of this object - - - Get a cross thread portable version of this object - - - - - - The number of messages in the stack - - - The current number of messages in the stack - - - - The current number of messages in the stack. That is - the number of times has been called - minus the number of times has been called. - - - - - - Gets and sets the internal stack used by this - - The internal storage stack - - - This property is provided only to support backward compatability - of the . Tytpically the internal stack should not - be modified. - - - - - - Inner class used to represent a single context frame in the stack. - - - - Inner class used to represent a single context frame in the stack. - - - - - - Constructor - - The message for this context. - The parent context in the chain. - - - Initializes a new instance of the class - with the specified message and parent context. - - - - - - Get the message. - - The message. - - - Get the message. - - - - - - Gets the full text of the context down to the root level. - - - The full text of the context down to the root level. - - - - Gets the full text of the context down to the root level. - - - - - - Struct returned from the method. - - - - This struct implements the and is designed to be used - with the pattern to remove the stack frame at the end of the scope. - - - - - - The ThreadContextStack internal stack - - - - - The depth to trim the stack to when this instance is disposed - - - - - Constructor - - The internal stack used by the ThreadContextStack. - The depth to return the stack to when this object is disposed. - - - Initializes a new instance of the class with - the specified stack and return depth. - - - - - - Returns the stack to the correct depth. - - - - Returns the stack to the correct depth. - - - - - - Implementation of Stacks collection for the - - - - Implementation of Stacks collection for the - - - Nicko Cadell - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - The fully qualified type of the ThreadContextStacks class. - - - Used by the internal logger to record the Type of the - log message. - - - - - Gets the named thread context stack - - - The named stack - - - - Gets the named thread context stack - - - - - - Utility class for transforming strings. - - - - Utility class for transforming strings. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Write a string to an - - the writer to write to - the string to write - The string to replace non XML compliant chars with - - - The test is escaped either using XML escape entities - or using CDATA sections. - - - - - - Replace invalid XML characters in text string - - the XML text input string - the string to use in place of invalid characters - A string that does not contain invalid XML characters. - - - Certain Unicode code points are not allowed in the XML InfoSet, for - details see: http://www.w3.org/TR/REC-xml/#charsets. - - - This method replaces any illegal characters in the input string - with the mask string specified. - - - - - - Count the number of times that the substring occurs in the text - - the text to search - the substring to find - the number of times the substring occurs in the text - - - The substring is assumed to be non repeating within itself. - - - - - - Characters illegal in XML 1.0 - - - - - Impersonate a Windows Account - - - - This impersonates a Windows account. - - - How the impersonation is done depends on the value of . - This allows the context to either impersonate a set of user credentials specified - using username, domain name and password or to revert to the process credentials. - - - - - - Default constructor - - - - Default constructor - - - - - - Initialize the SecurityContext based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The security context will try to Logon the specified user account and - capture a primary token for impersonation. - - - The required , - or properties were not specified. - - - - Impersonate the Windows account specified by the and properties. - - caller provided state - - An instance that will revoke the impersonation of this SecurityContext - - - - Depending on the property either - impersonate a user using credentials supplied or revert - to the process credentials. - - - - - - Create a given the userName, domainName and password. - - the user name - the domain name - the password - the for the account specified - - - Uses the Windows API call LogonUser to get a principal token for the account. This - token is used to initialize the WindowsIdentity. - - - - - - Gets or sets the impersonation mode for this security context - - - The impersonation mode for this security context - - - - Impersonate either a user with user credentials or - revert this thread to the credentials of the process. - The value is one of the - enum. - - - The default value is - - - When the mode is set to - the user's credentials are established using the - , and - values. - - - When the mode is set to - no other properties need to be set. If the calling thread is - impersonating then it will be reverted back to the process credentials. - - - - - - Gets or sets the Windows username for this security context - - - The Windows username for this security context - - - - This property must be set if - is set to (the default setting). - - - - - - Gets or sets the Windows domain name for this security context - - - The Windows domain name for this security context - - - - The default value for is the local machine name - taken from the property. - - - This property must be set if - is set to (the default setting). - - - - - - Sets the password for the Windows account specified by the and properties. - - - The password for the Windows account specified by the and properties. - - - - This property must be set if - is set to (the default setting). - - - - - - The impersonation modes for the - - - - See the property for - details. - - - - - - Impersonate a user using the credentials supplied - - - - - Revert this the thread to the credentials of the process - - - - - Adds to - - - - Helper class to expose the - through the interface. - - - - - - Constructor - - the impersonation context being wrapped - - - Constructor - - - - - - Revert the impersonation - - - - Revert the impersonation - - - - - - The log4net Global Context. - - - - The GlobalContext provides a location for global debugging - information to be stored. - - - The global context has a properties map and these properties can - be included in the output of log messages. The - supports selecting and outputing these properties. - - - By default the log4net:HostName property is set to the name of - the current machine. - - - - - GlobalContext.Properties["hostname"] = Environment.MachineName; - - - - Nicko Cadell - - - - Private Constructor. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - The global context properties instance - - - - - The global properties map. - - - The global properties map. - - - - The global properties map. - - - - - - Provides information about the environment the assembly has - been built for. - - - - Version of the assembly - - - Version of the framework targeted - - - Type of framework targeted - - - Does it target a client profile? - - - - Identifies the version and target for this assembly. - - - - - The log4net Logical Thread Context. - - - - The LogicalThreadContext provides a location for specific debugging - information to be stored. - The LogicalThreadContext properties override any or - properties with the same name. - - - The Logical Thread Context has a properties map and a stack. - The properties and stack can - be included in the output of log messages. The - supports selecting and outputting these properties. - - - The Logical Thread Context provides a diagnostic context for the current call context. - This is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The Logical Thread Context is managed on a per basis. - - - The requires a link time - for the - . - If the calling code does not have this permission then this context will be disabled. - It will not store any property values set on it. - - - Example of using the thread context properties to store a username. - - LogicalThreadContext.Properties["user"] = userName; - log.Info("This log message has a LogicalThreadContext Property called 'user'"); - - - Example of how to push a message into the context stack - - using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) - { - log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); - - } // at the end of the using block the message is automatically popped - - - - Nicko Cadell - - - - Private Constructor. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - The thread context properties instance - - - - - The thread context stacks instance - - - - - The thread properties map - - - The thread properties map - - - - The LogicalThreadContext properties override any - or properties with the same name. - - - - - - The thread stacks - - - stack map - - - - The logical thread stacks. - - - - - - This class is used by client applications to request logger instances. - - - - This class has static methods that are used by a client to request - a logger instance. The method is - used to retrieve a logger. - - - See the interface for more details. - - - Simple example of logging messages - - ILog log = LogManager.GetLogger("application-log"); - - log.Info("Application Start"); - log.Debug("This is a debug message"); - - if (log.IsDebugEnabled) - { - log.Debug("This is another debug message"); - } - - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - Returns the named logger if it exists. - - Returns the named logger if it exists. - - - - If the named logger exists (in the default repository) then it - returns a reference to the logger, otherwise it returns null. - - - The fully qualified logger name to look for. - The logger found, or null if no logger could be found. - - - - Returns the named logger if it exists. - - - - If the named logger exists (in the specified repository) then it - returns a reference to the logger, otherwise it returns - null. - - - The repository to lookup in. - The fully qualified logger name to look for. - - The logger found, or null if the logger doesn't exist in the specified - repository. - - - - - Returns the named logger if it exists. - - - - If the named logger exists (in the repository for the specified assembly) then it - returns a reference to the logger, otherwise it returns - null. - - - The assembly to use to lookup the repository. - The fully qualified logger name to look for. - - The logger, or null if the logger doesn't exist in the specified - assembly's repository. - - - - Get the currently defined loggers. - - Returns all the currently defined loggers in the default repository. - - - The root logger is not included in the returned array. - - All the defined loggers. - - - - Returns all the currently defined loggers in the specified repository. - - The repository to lookup in. - - The root logger is not included in the returned array. - - All the defined loggers. - - - - Returns all the currently defined loggers in the specified assembly's repository. - - The assembly to use to lookup the repository. - - The root logger is not included in the returned array. - - All the defined loggers. - - - Get or create a logger. - - Retrieves or creates a named logger. - - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The name of the logger to retrieve. - The logger with the name specified. - - - - Retrieves or creates a named logger. - - - - Retrieve a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The repository to lookup in. - The name of the logger to retrieve. - The logger with the name specified. - - - - Retrieves or creates a named logger. - - - - Retrieve a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The assembly to use to lookup the repository. - The name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Get the logger for the fully qualified name of the type specified. - - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Gets the logger for the fully qualified name of the type specified. - - The repository to lookup in. - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Gets the logger for the fully qualified name of the type specified. - - The assembly to use to lookup the repository. - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shuts down the log4net system. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in all the - default repositories. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - Shutdown a logger repository. - - Shuts down the default repository. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - default repository. - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - The repository to shutdown. - - - - Shuts down the repository specified. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository. The repository is looked up using - the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - The assembly to use to lookup the repository. - - - Reset the configuration of a repository - - Resets all values contained in this repository instance to their defaults. - - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - - - - Resets all values contained in this repository instance to their defaults. - - - - Reset all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - The repository to reset. - - - - Resets all values contained in this repository instance to their defaults. - - - - Reset all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - The assembly to use to lookup the repository to reset. - - - Get the logger repository. - - Returns the default instance. - - - - Gets the for the repository specified - by the callers assembly (). - - - The instance for the default repository. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The repository to lookup in. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The assembly to use to lookup the repository. - - - Get a logger repository. - - Returns the default instance. - - - - Gets the for the repository specified - by the callers assembly (). - - - The instance for the default repository. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The repository to lookup in. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The assembly to use to lookup the repository. - - - Create a domain - - Creates a repository with the specified repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to will return - the same repository instance. - - - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - Create a logger repository. - - Creates a repository with the specified repository type. - - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The created will be associated with the repository - specified such that a call to will return - the same repository instance. - - - - - - Creates a repository with the specified name. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name. - - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - The specified repository already exists. - - - - Creates a repository for the specified assembly and repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - - Creates a repository for the specified assembly and repository type. - - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - - Gets the list of currently defined repositories. - - - - Get an array of all the objects that have been created. - - - An array of all the known objects. - - - - Looks up the wrapper object for the logger specified. - - The logger to get the wrapper for. - The wrapper for the logger specified. - - - - Looks up the wrapper objects for the loggers specified. - - The loggers to get the wrappers for. - The wrapper objects for the loggers specified. - - - - Create the objects used by - this manager. - - The logger to wrap. - The wrapper for the logger specified. - - - - The wrapper map to use to hold the objects. - - - - - Implementation of Mapped Diagnostic Contexts. - - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - The MDC class is similar to the class except that it is - based on a map instead of a stack. It provides mapped - diagnostic contexts. A Mapped Diagnostic Context, or - MDC in short, is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The MDC is managed on a per thread basis. - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - Gets the context value identified by the parameter. - - The key to lookup in the MDC. - The string value held for the key, or a null reference if no corresponding value is found. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - If the parameter does not look up to a - previously defined context then null will be returned. - - - - - - Add an entry to the MDC - - The key to store the value under. - The value to store. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Puts a context value (the parameter) as identified - with the parameter into the current thread's - context map. - - - If a value is already defined for the - specified then the value will be replaced. If the - is specified as null then the key value mapping will be removed. - - - - - - Removes the key value mapping for the key specified. - - The key to remove. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Remove the specified entry from this thread's MDC - - - - - - Clear all entries in the MDC - - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Remove all the entries from this thread's MDC - - - - - - Implementation of Nested Diagnostic Contexts. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - A Nested Diagnostic Context, or NDC in short, is an instrument - to distinguish interleaved log output from different sources. Log - output is typically interleaved when a server handles multiple - clients near-simultaneously. - - - Interleaved log output can still be meaningful if each log entry - from different contexts had a distinctive stamp. This is where NDCs - come into play. - - - Note that NDCs are managed on a per thread basis. The NDC class - is made up of static methods that operate on the context of the - calling thread. - - - How to push a message into the context - - using(NDC.Push("my context message")) - { - ... all log calls will have 'my context message' included ... - - } // at the end of the using block the message is automatically removed - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - Clears all the contextual information held on the current thread. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Clears the stack of NDC data held on the current thread. - - - - - - Creates a clone of the stack of context information. - - A clone of the context info for this thread. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - The results of this method can be passed to the - method to allow child threads to inherit the context of their - parent thread. - - - - - - Inherits the contextual information from another thread. - - The context stack to inherit. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - This thread will use the context information from the stack - supplied. This can be used to initialize child threads with - the same contextual information as their parent threads. These - contexts will NOT be shared. Any further contexts that - are pushed onto the stack will not be visible to the other. - Call to obtain a stack to pass to - this method. - - - - - - Removes the top context from the stack. - - - The message in the context that was removed from the top - of the stack. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Remove the top context from the stack, and return - it to the caller. If the stack is empty then an - empty string (not null) is returned. - - - - - - Pushes a new context message. - - The new context message. - - An that can be used to clean up - the context stack. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Pushes a new context onto the context stack. An - is returned that can be used to clean up the context stack. This - can be easily combined with the using keyword to scope the - context. - - - Simple example of using the Push method with the using keyword. - - using(log4net.NDC.Push("NDC_Message")) - { - log.Warn("This should have an NDC message"); - } - - - - - - Removes the context information for this thread. It is - not required to call this method. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - This method is not implemented. - - - - - - Forces the stack depth to be at most . - - The maximum depth of the stack - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Forces the stack depth to be at most . - This may truncate the head of the stack. This only affects the - stack in the current thread. Also it does not prevent it from - growing, it only sets the maximum depth at the time of the - call. This can be used to return to a known context depth. - - - - - - Gets the current context depth. - - The current context depth. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - The number of context values pushed onto the context stack. - - - Used to record the current depth of the context. This can then - be restored using the method. - - - - - - - The log4net Thread Context. - - - - The ThreadContext provides a location for thread specific debugging - information to be stored. - The ThreadContext properties override any - properties with the same name. - - - The thread context has a properties map and a stack. - The properties and stack can - be included in the output of log messages. The - supports selecting and outputting these properties. - - - The Thread Context provides a diagnostic context for the current thread. - This is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The Thread Context is managed on a per thread basis. - - - Example of using the thread context properties to store a username. - - ThreadContext.Properties["user"] = userName; - log.Info("This log message has a ThreadContext Property called 'user'"); - - - Example of how to push a message into the context stack - - using(ThreadContext.Stacks["NDC"].Push("my context message")) - { - log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); - - } // at the end of the using block the message is automatically popped - - - - Nicko Cadell - - - - Private Constructor. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - The thread context properties instance - - - - - The thread context stacks instance - - - - - The thread properties map - - - The thread properties map - - - - The ThreadContext properties override any - properties with the same name. - - - - - - The thread stacks - - - stack map - - - - The thread local stacks. - - - - - diff --git a/source/packages/log4net.2.0.3/lib/net20-full/log4net.dll b/source/packages/log4net.2.0.3/lib/net20-full/log4net.dll deleted file mode 100644 index 3b32146c23ef1a537d392df0bba436958cf4bcfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 303104 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