以下内容是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现在建立在以下框架:
Framework | Website |
---|---|
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.0 | Mono | Shared Source CLI 1.0 | CLI 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(或更高版本)
此配置只生成一个发布版本,因为组装调试信息没有被标准化。