log4net学习手册二 Apache的log4net?支持的框架

以下内容是Apache log4net官网技术文档通过google翻译而来

http://logging.apache.org/log4net/release/features.html

对.NET框架的概述支持的log4net

log4net的是建立在许多不同的框架。该框架的每个新版本增加新的功能。为了充分利用这些新特性,我们必须建立log4net的使用适当的框架优势。我们还建立保持与旧版本的框架兼容。
重要的是要记住,.NET框架支持向后兼容性,这是一个新版本的框架将运行有针对性的框架的早期版本的二进制组件是很重要的。
虽然不同的版本数量可似乎令人困惑,你只需要选择最接近的版本为您的平台,等于或早于你所选择的部署框架。如果您打算部署在Microsoft®.NET Framework 1.0的应用程序不挑,是建立对Microsoft.NET Framework 1.1中的log4net的版本,因为.NET框架不保证向前兼容性只能向后兼容性。
最低的共同标准的构建是CLI1.0兼容的版本。此版本是与ECMA/ ISO CLI1.0标准的API兼容,可以运行在所有支持的标准框架。 (请注意,在Microsoft.NET Compact Framework不支持此标准)。如果你打算在你部署基于Microsoft .NET框架和Mono的框架,这两个应用程序中使用此版本。

log4net现在建立在以下框架:

FrameworkWebsite
Microsoft .NET Framework 1.0 http://msdn.microsoft.com/en-us/netframework/
Microsoft .NET Framework 1.1 http://msdn.microsoft.com/en-us/netframework/
Microsoft .NET Framework 2.0 http://msdn.microsoft.com/en-us/netframework/
Microsoft .NET Framework 3.5 http://msdn.microsoft.com/en-us/netframework/
Microsoft .NET Framework 4.0 http://msdn.microsoft.com/en-us/netframework/
Microsoft .NET Framework 3.5 Client Profile http://msdn.microsoft.com/en-us/library/cc656912.aspx
Microsoft .NET Framework 4.0 Client Profile http://msdn.microsoft.com/en-us/library/cc656912.aspx
Microsoft .NET Compact Framework 1.0 http://msdn2.microsoft.com/en-us/netframework/aa497273.aspx
Microsoft .NET Compact Framework 2.0 http://msdn2.microsoft.com/en-us/netframework/aa497273.aspx
Mono http://www.mono-project.com
Microsoft Shared Source CLI 1.0 http://msdn.microsoft.com/en-us/library/ms973879.aspx
CLI 1.0 Compatible http://msdn.microsoft.com/en-us/netframework/aa569283.aspx

对于大多数这些框架的目标框架内log4net的组件供应。虽然这是完全有可能使用.NET Framework1.0版本的log4net对.NET Framework 1.1中,具有真正针对一个特定的框架,使我们能够使用所不具备的其他框架中的框架功能或log4net的删除功能的组件未在特定的框架支撑。
有没有针对集会Compact Framework的1.0/2.0或微软共享源代码CLI1.0的二进制版本,但他们可以从源头上发布建成。

追加程序

提供给每个框架的追加程序依赖于框架和在其上运行的平台的功能:

Appender.NET Framework 1.0.NET Framework 1.1.NET Framework 2.0.NET Framework 3.5.NET Framework 4.0.NET Framework 3.5 Client Profile.NET Framework 4.0 Client Profile.NET CF 1.0.NET CF 2.0MonoShared Source CLI 1.0CLI 1.0 Compatible
AdoNetAppender x x x x x x x x x x   x
AnsiColorTerminalAppender x x x x x x x x x x x x
AspNetTraceAppender x x x x x         x   x
BufferingForwardingAppender x x x x x x x x x x x x
ColoredConsoleAppender x x x x x x x          
ConsoleAppender x x x x x x x x x x x x
DebugAppender x x x x x x x x x x x x
EventLogAppender x x x x x x x     x   x
FileAppender x x x x x x x x x x x x
ForwardingAppender x x x x x x x x x x x x
LocalSyslogAppender x x x x x x x     x   x
ManagedColoredConsoleAppender     x x x x x     x    
MemoryAppender x x x x x x x x x x x x
NetSendAppender x x x x x x x          
OutputDebugStringAppender x x x x x x x x x      
RemoteSyslogAppender x x x x x x x x x x x x
RemotingAppender x x x x x x x     x x x
RollingFileAppender x x x x x x x x x x x x
SmtpAppender x x x x x x x     x   x
SmtpPickupDirAppender x x x x x x x x x x x x
TelnetAppender x x x x x x x x x x x x
TraceAppender x x x x x x x x x x x x
UdpAppender x x x x x x x x x x x x

框架的具体注意事项

 框架名称  注意事项
Microsoft .NET Framework 1.0 none
Microsoft .NET Framework 1.1 none
Microsoft .NET Framework 2.0 none
Microsoft .NET Framework 3.5 none
Microsoft .NET Framework 4.0 none
Microsoft .NET Framework 3.5 Client Profile 由于log4net的1.2.11这个版本是相同的.NET3.5版本,而对于ASP.NET具体追加程序和模式的支持。
Microsoft .NET Framework 4.0 Client Profile 由于log4net的1.2.11这个版本是相同的.NET4.0版本,而对于ASP.NET具体追加程序和模式的支持。
Microsoft .NET Compact Framework 1.0 详见下方
Microsoft .NET Compact Framework 2.0 为.NET Compact Framework的1.0参见注释
Mono 有2个独立的mono版本的log4net;Mono1.0,使用C#编译器的模式,这与1.0 CLI语言规范兼容的内置; Mono2.0,使用.NET2.0扩展了C#语言建立。。
Mono 1.0 none
Mono 2.0 none
Microsoft Shared Source CLI 1.0 详见下方
CLI 1.0 Compatible 详见下方

Microsoft .NET Compact Framework 1.0

Assembly attributes

.NET Compact Framework的1.0不支持检索组件级别的属性,因此从.NET Compact Framework的1.0版本的log4net被删除了所有log4net的配置属性。
为智能设备的应用中,log4net的系统可以通过将log4net的配置文件的位置到log4net.Config.XmlConfigurator.Configure(FileInfo的)方法中的应用程序的入口点进行配置。

例如:

namespace TestApp
{
    using System.IO;

    public class EntryPoint
    {
        /// <summary>
        /// Application entry point.
        /// </summary>
        public static void Main() 
        {
            // Uncomment the next line to enable log4net internal debugging
            // log4net.Util.LogLog.InternalDebugging = true;

            // This will instruct log4net to look for a configuration file
            // called config.log4net in the root directory of the device
            log4net.Config.XmlConfigurator.Configure(new FileInfo(@"\config.log4net"));

            ...
            
            // This will shutdown the log4net system
            log4net.LogManager.Shutdown();
        }
    }
}       

Notification events

.NET Compact Framework的1.0的应用程序关闭时不支持事件通知,因此log4net的不能自动挂钩的应用程序关闭通知。
应用程序将需要以编程关闭log4net的系统使用log4net.LogManager.Shutdown()方法,以防止丢失日志记录事件的应用程序的关闭过程中。看到上面的代码为例。

FileSystemWatcher

.NET Compact Framework的1.0不支持System.IO.FileSystemWatcher类。作为一个结 果,XmlConfiguratorAttribute.Watch属性和XmlConfigurator.ConfigureAndWatch方法不可 用。不支持.NET Compact Framework的1.0看更改log4net的配置文件。

UserName

.NET Compact Framework的1.0不支持System.Security.Principal.WindowsIdentity类。这是用来捕捉当前线程的用户身份。因此,LoggingEvent.UserName属性将返回值“不可用”。

Identity

.NET Compact Framework的1.0不支持System.Security.Principal.IPrincipal接口。这是用来捕捉当前线程的用户身份。因此,LoggingEvent.Identity属性将返回值“不可用”。

Environment variables

.NET Compact Framework的1.0不支持获取环境变量,因此它不可能使用.NET Compact Framework的1.0版本的log4net时,在参数值替换环境变量。

Serialization

.NET Compact Framework的1.0不支持序列化,因此没有在.NET Compact Framework的1.0版本的log4net的类都是可序列化的。

LoggingEvent.Domain

.NET Compact Framework的1.0不支持应用程序域的功能。对于当前的应用程序域的友好名称被存储在LoggingEvent.Domain属性和使用%的的 PatternLayout的图案被访问。在.NET Compact Framework的1.0是通过将文件名的应用程序的主模块生成此值。

Microsoft Shared Source CLI 1.0

FileSystemWatcher

SSCLI1.0 不支持System.IO.FileSystemWatcher类。作为一个结果,XmlConfiguratorAttribute.Watch属性和 XmlConfigurator.ConfigureAndWatch方法不可用。不支持SSCLI1.0看着更改log4net的配置文件。

UserName

SSCLI1.0不支持System.Security.Principal.WindowsIdentity类。这是用来捕捉当前线程的用户身份。因此,LoggingEvent.UserName属性将返回值“不可用”。

Identity

SSCLI1.0不支持System.Security.Principal.IPrincipal接口。这是用来捕捉当前线程的用户身份。因此,LoggingEvent.Identity属性将返回值“不可用”。

 

CLI 1.0 Compatible

此版本的log4net的设计在任何ECMA CLI1.0兼容运行时运行。该组件不支持任何特定于平台的功能。构建包括的功能在.NET1.0中发现的常见的子集和Mono1.0版本。输出组件使用Microsoft .NET1.0编译器和库的建立。
log4net的CLI1.0组件是运行在以下框架兼容:

  • 微软的.NET Framework1.0(或更高版本)
  • Mono1.0(或更高版本)

此配置只生成一个发布版本,因为组装调试信息没有被标准化。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。