1 <appender name="AspNetTraceAppender" type="log4net.Appender.AspNetTraceAppender" >
2 <layout type="log4net.Layout.PatternLayout">
3 <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
4 </layout>
5 </appender>
配置AspNetTraceAppender,低于WARN级写入System.Web.TraceContext.Write方法,是WARN或更高写入 System.Web.TraceContext.Warn方法
1 <appender name="BufferingForwardingAppender" type="log4net.Appender.BufferingForwardingAppender" >
2 <bufferSize value="100"/>
3 <appender-ref ref="ConsoleAppender" />
4 </appender>
配置BufferingForwardingAppender以100条消息为单位传递到ConsoleAppender,不够100条不传递
1 <appender name="BufferingForwardingAppender" type="log4net.Appender.BufferingForwardingAppender" >
2 <bufferSize value="512" />
3 <lossy value="true" />
4 <evaluator type="log4net.Core.LevelEvaluator">
5 <threshold value="WARN"/>
6 </evaluator>
7 <appender-ref ref="ConsoleAppender" />
8 </appender>
配置BufferingForwardingAppender,LevelEvaluator阈值WARN表示只记录级别为WARN或更高级别的消息,缓存512条,未发送的消息将被丢弃
1 <appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
2 <mapping>
3 <level value="ERROR" />
4 <foreColor value="White" />
5 <backColor value="Red, HighIntensity" />
6 </mapping>
7 <layout type="log4net.Layout.PatternLayout">
8 <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
9 </layout>
10 </appender>
配置ColoredConsoleAppender将消息记录到控制台
1 <appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
2 <mapping>
3 <level value="ERROR" />
4 <foreColor value="White" />
5 <backColor value="Red, HighIntensity" />
6 </mapping>
7 <mapping>
8 <level value="DEBUG" />
9 <backColor value="Green" />
10 </mapping>
11 <layout type="log4net.Layout.PatternLayout">
12 <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
13 </layout>
14 </appender>
配置ColoredConsoleAppender显示如何为多个级别着色
1 <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
2 <layout type="log4net.Layout.PatternLayout">
3 <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
4 </layout>
5 </appender>
配置ConsoleAppender将消息记录到控制台
1 <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
2 <target value="Console.Error" />
3 <layout type="log4net.Layout.PatternLayout">
4 <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
5 </layout>
6 </appender>
配置ConsoleAppender如何将日志消息定向到控制台错误流
1 System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
解决问题log4net:ERROR Could not create Appender [ColoredConsoleAppender] of type [log4net.Appender.ColoredCo
1 <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
2 <layout type="log4net.Layout.PatternLayout">
3 <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
4 </layout>
5 </appender>
配置EventLogAppender使用AppDomain.FriendlyName的事件源记录到本地计算机上的应用程序事件日志
1 <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
2 <applicationName value="MyApp" />
3 <layout type="log4net.Layout.PatternLayout">
4 <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
5 </layout>
6 </appender>
配置EventLogAppender使用特定事件Source
1 <appender name="FileAppender" type="log4net.Appender.FileAppender">
2 <file value="log-file.txt" />
3 <appendToFile value="true" />
4 <layout type="log4net.Layout.PatternLayout">
5 <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
6 </layout>
7 </appender>
配置FileAppender将消息写入文件,文件名log-file.txt,该文件将被附加而不是覆盖
1 <appender name="FileAppender" type="log4net.Appender.FileAppender">
2 <file value="${TMP}\log-file.txt" />
3 <appendToFile value="true" />
4 <encoding value="unicodeFFFE" />
5 <layout type="log4net.Layout.PatternLayout">
6 <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
7 </layout>
8 </appender>
配置FileAppender使用环境变量TMP配置要写入的文件名,还指定了用于写入文件的编码
1 <appender name="FileAppender" type="log4net.Appender.FileAppender">
2 <file value="${TMP}\log-file.txt" />
3 <appendToFile value="true" />
4 <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
5 <layout type="log4net.Layout.PatternLayout">
6 <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
7 </layout>
8 </appender>
配置FileAppender使用允许多个进程写入同一个文件的最小锁定模型
1 <appender name="FileAppender" type="log4net.Appender.FileAppender">
2 <file value="${TMP}\log-file.txt" />
3 <appendToFile value="true" />
4 <lockingModel type="log4net.Appender.FileAppender+InterProcessLock" />
5 <layout type="log4net.Layout.PatternLayout">
6 <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
7
</layout>
8 </appender>
配置FileAppender附加程序以使用“进程间”锁定模型
1 <appender name="ForwardingAppender" type="log4net.Appender.ForwardingAppender" >
2 <threshold value="WARN"/>
3 <appender-ref ref="ConsoleAppender" />
4 </appender>
配置ForwardingAppender,案例ConsoleAppender使用WARN阈值装饰,意思是无论其级别如何ConsoleAppender的被记录,但指向ForwardingAppender的只在其级别为WARN或更高时才会传递给ConsoleAppender
1 <appender name="ManagedColoredConsoleAppender" type="log4net.Appender.ManagedColoredConsoleAppender">
2 <mapping>
3 <level value="ERROR" />
4 <foreColor value="White" />
5 <backColor value="Red" />
6 </mapping>
7 <layout type="log4net.Layout.PatternLayout">
8 <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
9 </layout>
10 </appender>
配置ManagedColoredConsoleAppender将消息记录到控制台,示例显示如何突出显示错误消息
1 <appender name="ManagedColoredConsoleAppender" type="log4net.Appender.ManagedColoredConsoleAppender">
2 <mapping>
3 <level value="ERROR" />
4 <foreColor value="DarkRed" />
5 </mapping>
6 <mapping>
7 <level value="WARN" />
8 <foreColor value="Yellow" />
9 </mapping>
10 <mapping>
11 <level value="INFO" />
12 <foreColor value="White" />
13 </mapping>
14 <mapping>
15 <level value="DEBUG" />
16 <foreColor value="Blue" />
17 </mapping>
19 <layout type="log4net.Layout.PatternLayout">
20 <conversionPattern value="%date %-5level %-20.20logger: %message%newline"/>
21 </layout>
22 </appender>
配置ManagedColoredConsoleAppender显示如何为多个级别着色
1 <appender name="NetSendAppender" type="log4net.Appender.NetSendAppender">
2 <threshold value="ERROR" />
3 <server value="SQUARE" />
4 <recipient value="nicko" />
5 <layout type="log4net.Layout.PatternLayout">
6 <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
7 </layout>
8 </appender>
配置NetSendAppender将消息传递到特定用户的屏幕,指定了级别错误的阈值,示例将消息传递给机器SQUARE上的用户nicko
1 <appender name="OutputDebugStringAppender" type="log4net.Appender.OutputDebugStringAppender" >
2 <layout type="log4net.Layout.PatternLayout">
3 <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
4 </layout>
5 </appender>
配置OutputDebugStringAppender将日志消息写入OutputDebugString API
1 <appender name="RemotingAppender" type="log4net.Appender.RemotingAppender" >
2 <sink value="tcp://localhost:8085/LoggingSink" />
3 <lossy value="false" />
4 <bufferSize value="95" />
5 <onlyFixPartialEventData value="true" />
6 </appender>
配置RemotingAppender将日志事件传递到指定的Sink,示例中Sink为tcp://localhost:8085/LoggingSink,缓存以95个事件块的形式传递,OnlyFixPartialEventData允许附加生成速度非常慢的日志事件属性(如调位置信息)
1 <appender name="RemotingAppender" type="log4net.Appender.RemotingAppender" >
2 <sink value="tcp://localhost:8085/LoggingSink" />
3 <lossy value
="true" />
4 <bufferSize value="200" />
5 <onlyFixPartialEventData value="true" />
6 <evaluator type="log4net.Core.LevelEvaluator">
7 <threshold value="ERROR"/>
8 </evaluator>
9 </appender>
配置RemotingAppender仅在记录级别为ERROR或更高级别的事件时才传递事件,传递200个缓存的事件,未传递的将被丢弃
1 <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
2 <file value="log.txt" />
3 <appendToFile value="true" />
4 <rollingStyle value="Size" />
5 <maxSizeRollBackups value="10" />
6 <maximumFileSize value="100KB" />
7 <staticLogFileName value="true" />
8 <layout type="log4net.Layout.PatternLayout">
9 <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
10 </layout>
11 </appender>
配置RollingFileAppender以写入文件log.txt,StaticLogFileName指定文件名,RollingStyle滚动类型,MaxSizeRollBackups最多将保留数,MaximumFileSize文件大小
1 <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
2 <file value="logfile" />
3 <appendToFile value="true" />
4 <rollingStyle value="Date" />
5 <datePattern value="yyyyMMdd-HHmm" />
6 <layout type="log4net.Layout.PatternLayout">
7 <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
8 </layout>
9 </appender>
配置RollingFileAppender日期期间滚动日志文件,示例每分钟滚动一次,DatePattern更改滚动周期,“yyyyMMdd”的日期模式将每天滚动
1 <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
2 <file value="logfile" />
3 <appendToFile value="true" />
4 <rollingStyle value="Composite" />
5 <datePattern value="yyyyMMdd" />
6 <maxSizeRollBackups value="10" />
7 <maximumFileSize value="1MB" />
8 <layout type="log4net.Layout.PatternLayout">
9 <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
10 </layout>
11 </appender>
配置RollingFileAppender只保留周期内滚动日志文件最后10MB的大小
1 <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
2 <file value="logfile.txt" />
3 <appendToFile value="false" />
4 <rollingStyle value="Size" />
5 <maxSizeRollBackups value="-1" />
6 <maximumFileSize value="50GB" />
7 <layout type="log4net.Layout.PatternLayout">
8 <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
9 </layout>
10 </appender>
配置RollingFileAppender每次程序执行时滚动一次日志文件,appendToFile为false不覆盖现有文件,maxSizeRollBackups为-1不限备份文件数量,文件大小为50GB,单次运行期间超过限制会滚动
1 <log4net>
2 <appender name="Console" type="log4net.Appender.ConsoleAppender">
3 <layout type="log4net.Layout.PatternLayout">
4 <conversionPattern value="%date{yyyy年MMM月dd日 HH:mm:ss,fff}%5level [%thread] (%file:%line)【%property{user}】 - %message%newline" />
5 </layout>
6 </appender>
8 <appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
9 <authentication value="Basic" />
10 <to value
="wangmin915@126.com" />
11 <!--接受邮件的邮箱-->
12 <from value="wongmin2015@163.com" />
13 <!--发送邮件的邮箱-->
14 <username value="wongmin2015@163.com" />
15 <!--发送邮件的邮箱-->
16 <password value="aiwoma" />
17 <!--为客户端授权码-->
18 <smtpHost value="smtp.163.com" />
19 <!--服务器地址-->
20 <subject value="test logging message" />
21 <!--日志消息-->
22 <bufferSize value="200" />
23 <lossy value="true" />
24 <evaluator type="log4net.Core.LevelEvaluator">
25 <threshold value="WARN"/>
26 </evaluator>
27 <layout type="log4net.Layout.PatternLayout">
28 <conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline%newline" />
29 </layout>
30 </appender>
32 <root>
33 <level value="ALL" />
34 <appender-ref ref="SmtpAppender" />
35 <appender-ref ref="Console" />
36 </root>
37 </log4net>
配置SmtpAppender电子邮件
1 <appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
2 <to value="to@domain.com" />
3 <from value="from@domain.com" />
4 <subject value="test logging message" />
5 <smtpHost value="SMTPServer.domain.com" />
6 <bufferSize value="512" />
7 <lossy value="true" />
8 <evaluator type="log4net.Core.LevelEvaluator">
9 <threshold value="WARN"/>
10 </evaluator>
11 <layout type="log4net.Layout.PatternLayout">
12 <conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline%newline" />
13 </layout>
14 </appender>
配置SmtpAppender通过SMTP电子邮件传递日志事件,To、From、Subject和SmtpHost 是必需参数,LevelEvaluator阈值WARN将为每个WARN或更高的消息发送邮件,邮件将包含512个缓存消息,未发送的消息将被丢弃
1 <appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
2 <to value="to@domain.com" />
3 <from value="from@domain.com" />
4 <subject value="test logging message" />
5 <smtpHost value="SMTPServer.domain.com" />
6 <bufferSize value="512" />
7 <lossy value="false" />
8 <layout type="log4net.Layout.PatternLayout">
9 <conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline%newline" />
10 </layout>
11 </appender>
配置SmtpAppender传递电子邮件中的所有消息,每封电子邮件有 512 ( BufferSize ) 消息
1 <appender name="SmtpAppender" type="log4net.Appender.SmtpAppender,log4net">
2 <to value="to@domain.com" />
3 <from value="from@domain.com" />
4 <subject value="test logging message" />
5 <smtpHost value="SMTPServer.domain.com" />
6 <bufferSize value="512" />
7 <lossy value="false" />
8 <evaluator type="log4net.Core.LevelEvaluator,log4net">
9 <
threshold value="WARN" />
10 </evaluator>
11 <layout type="log4net.Layout.PatternLayout,log4net">
12 <conversionPattern value="%property{log4net:HostName} :: %level :: %message %newlineLogger: %logger%newlineThread: %thread%newlineDate: %date%newlineNDC: %property{NDC}%newline%newline" />
13 </layout>
14 </appender>
配置SmtpAppender显示了邮件消息的更详细的格式布局
1 <appender name="SmtpPickupDirAppender" type="log4net.Appender.SmtpPickupDirAppender">
2 <to value="to@domain.com" />
3 <from value="from@domain.com" />
4 <subject value="test logging message" />
5 <pickupDir value="C:\SmtpPickup" />
6 <bufferSize value="512" />
7 <lossy value="true" />
8 <evaluator type="log4net.Core.LevelEvaluator">
9 <threshold value="WARN"/>
10 </evaluator>
11 <layout type="log4net.Layout.PatternLayout">
12 <conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline%newline" />
13 </layout>
14 </appender>
配置SmtpPickupDirAppender通过SMTP电子邮件传递日志,To、From、Subject和PickupDir是必需参数,示例显示如何仅交付重要事件
1 <appender name="TraceAppender" type="log4net.Appender.TraceAppender">
2 <layout type="log4net.Layout.PatternLayout">
3 <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
4 </layout>
5 </appender>
配置TraceAppender将消息记录到System.Diagnostics.Trace系统
1 <appender name="UdpAppender" type="log4net.Appender.UdpAppender">
2 <localPort value="8080" />
3 <remoteAddress value="224.0.0.1" />
4 <remotePort value="8080" />
5 <layout type="log4net.Layout.PatternLayout, log4net">
6 <conversionPattern value="%-5level %logger [%property{NDC}] - %message%newline" />
7 </layout>
8 </appender>
配置UdpAppender将事件发送到指定RemotePort上的RemoteAddress
1 <layout type="log4net.Layout.DynamicPatternLayout">
2 <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"/>
3 <param name="Footer" value="**** Trace Closed %date{yyyy-MM-dd HH:mm:ss.fff} ****%newline"/>
4 </layout>
配置DynamicPatternLayout动态图案布局,与不会在每次调用时重新评估的静态PatternLayout相比,DynamicPatternLayout确实会在每次调用时重新评估模式。例如,它允许在页眉和/或页脚中包含当前的DateTime,而静态PatternLayout不可能
经常我们不仅希望在附加器里自定义输出目标,还希望自定义输出格式,这需要使用Layout与附加程序关联来实现,附加程序复制将格式化的输出发送到目的地,Layout负责格式化记录日志。常用的PatternLayout就是标准log4net发行版的一种布局,看下面表格
<appender name="Console" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%5level [%thread] (%file:%line)【%property{user}】 - %message%newline" />
</layout>
</appender>
这是一个PatternLayout布局的案例, %5level [%thread] (%file:%line)【%property{user}】 - %message%newline 这是一种混合转换输出模式,由普通文本文字和表达式组成,表达式都以百分号 (%) 开头,后跟可选的格式修饰符和转换模式名称。正常情况下按转换模式输出全内容就可以了,有的特殊情况需要用歌声修饰符限定输出内容的长度等格式。请注意,文本和转换说明符之间没有明确的分隔符,模式解析器在读取转换字符时知道何时到达转换说明符的末尾。
用于在 %aspnet-cache 的情况下输出所有缓存项,或在用作%aspnet-cache{key}时仅输出一个命名项
此模式不适用于 Compact Framework 或 Client Profile 程序集。
用于在 %aspnet-context 的情况下输出所有上下文项或在用作%aspnet-context{key}时仅输出一个命名项
此模式不适用于 Compact Framework 或 Client Profile 程序集。
用于在 %aspnet-request 的情况下输出所有请求参数,如果用作%aspnet-request{key} 则只输出一个命名参数
此模式不适用于 Compact Framework 或 Client Profile 程序集。
用于在 %aspnet-session 的情况下输出所有会话项,如果用作%aspnet-session{key} ,则仅输出一个命名项
此模式不适用于 Compact Framework 或 Client Profile 程序集。
用于在本地时区输出日志记录事件的日期。要以通用时间输出日期,请使用%utcdate模式。日期转换说明符后面可以跟括在大括号之间的日期格式说明符。例如,%date{HH:mm:ss,fff}或 %date{dd MMM yyyy HH:mm:ss,fff}。如果没有给出日期格式说明符,则假定为 ISO8601 格式(Iso8601DateFormatter)。
日期格式说明符采用与ToString(string) 的时间模式字符串相同的语法。
为了获得更好的结果,建议使用 log4net 日期格式化程序。这些可以使用字符串“ABSOLUTE”、“DATE”和“ISO8601”之一来指定 AbsoluteTimeDateFormatter、 DateTimeDateFormatter和分别 指定Iso8601DateFormatter。例如, %date{ISO8601}或%date{ABSOLUTE}。
这些专用日期格式化程序的性能明显优于ToString(string)。
用于输出随日志消息传入的异常。
如果异常对象存储在日志记录事件中,它将被呈现到带有尾随换行符的模式输出中。如果没有异常,则不会输出任何内容,也不会添加尾随换行符。通常在异常之前放置一个换行符并将异常作为模式中的最后一个数据。
用于输出发出记录请求的文件名。
警告生成呼叫者位置信息非常慢。除非执行速度不是问题,否则应避免使用它。
请参阅下面有关呼叫者位置信息可用性的说明。
用于输出当前活动用户的用户名(Principal.Identity.Name)。
警告生成来电者信息非常慢。除非执行速度不是问题,否则应避免使用它。
用于输出产生日志事件的调用者的位置信息。
位置信息取决于 CLI 实现,但通常由调用方法的完全限定名称后跟调用者源文件名和括号之间的行号组成。
位置信息可能非常有用。但是,它的生成速度极慢。除非执行速度不是问题,否则应避免使用它。
请参阅下面有关呼叫者位置信息可用性的说明。
用于输出日志事件的级别。
用于输出发出记录请求的行号。
警告生成呼叫者位置信息非常慢。除非执行速度不是问题,否则应避免使用它。
请参阅下面有关呼叫者位置信息可用性的说明。
用于输出记录事件的记录器。记录器转换说明符可以选择后跟 精度说明符,即括号中的十进制常量。
如果给出了精度说明符,则只会打印记录器名称最右边的相应数量的组件。默认情况下,记录器名称被完整打印。
例如,对于记录器名称“abc”,模式 %logger{2}将输出“bc”。
用于输出与日志事件关联的应用程序提供的消息。
MDC(ThreadContext.Properties 的旧名称)现在是组合事件属性的一部分。支持此模式是为了兼容性,但等效于property。
用于输出发出日志请求的方法名称。
警告生成呼叫者位置信息非常慢。除非执行速度不是问题,否则应避免使用它。
请参阅下面有关呼叫者位置信息可用性的说明。
输出平台相关的行分隔符或字符。
此转换模式提供与使用不可移植行分隔符字符串(例如“\n”或“\r\n”)相同的性能。因此,它是指定行分隔符的首选方式。
用于输出与生成日志事件的线程关联的 NDC(嵌套诊断上下文)。
用于输出事件特定属性。查找的键必须在大括号内指定,并直接跟在模式说明符之后,例如%property{user}将包括由字符串“user”作为键的属性中的值。必须单独指定要包含在日志中的每个属性值。记录器或附加器将属性添加到事件中。默认情况下,log4net:HostName属性设置为最初记录事件的机器的名称。
如果没有指定键,例如%property ,那么所有键和它们的值都打印在一个逗号分隔的列表中。
事件的属性是从许多不同的上下文中组合而成的。这些按搜索顺序在下面列出。
- 事件属性
- 该事件具有可以设置的属性。这些属性仅特定于此事件。
- 线程属性
- 在当前线程上设置 的属性。这些属性由该线程上记录的所有事件共享。
- 全局属性
- 全局设置的属性。这些属性由 AppDomain 中的所有线程共享。
用于输出日志事件的堆栈跟踪堆栈跟踪级别说明符可以用大括号括起来。例如,%stacktrace{level}。如果没有给出堆栈跟踪级别说明符,则假定为 1
输出使用格式:type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1
此模式不适用于 Compact Framework 程序集。
用于输出日志事件的堆栈跟踪堆栈跟踪级别说明符可以用大括号括起来。例如,%stacktracedetail{level}。如果没有给出堆栈跟踪级别说明符,则假定为 1
输出使用格式:type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...)
此模式不适用于 Compact Framework 程序集。
用于输出从应用程序启动到创建日志事件所经过的毫秒数。
用于输出生成日志事件的线程的名称。如果没有名称可用,则使用线程号。
用于输出发出日志请求的调用者的完全限定类型名称。此转换说明符可以选择后跟精度说明符,即括号中的十进制常量。
如果给出了精度说明符,则只打印类名最右边的相应数量的组件。默认情况下,类名以完全限定的形式输出。
例如,对于类名“log4net.Layout.PatternLayout”,模式%type{1}将输出“PatternLayout”。
警告生成调用者类信息很慢。因此,除非执行速度不是问题,否则应避免使用它。
请参阅下面有关呼叫者位置信息可用性的说明。
用于输出当前活动用户的 WindowsIdentity。
警告生成调用方 WindowsIdentity 信息非常慢。除非执行速度不是问题,否则应避免使用它。
用于以通用时间输出日志记录事件的日期。日期转换说明符后面可以跟括在大括号之间的日期格式说明符。例如,%utcdate{HH:mm:ss,fff}或 %utcdate{dd MMM yyyy HH:mm:ss,fff}。如果没有给出日期格式说明符,则假定为 ISO8601 格式(Iso8601DateFormatter)。
日期格式说明符采用与ToString(string) 的时间模式字符串相同的语法。
为了获得更好的结果,建议使用 log4net 日期格式化程序。这些可以使用字符串“ABSOLUTE”、“DATE”和“ISO8601”之一来指定 AbsoluteTimeDateFormatter、 DateTimeDateFormatter和分别 指定Iso8601DateFormatter。例如, %utcdate{ISO8601}或%utcdate{ABSOLUTE}。
这些专用日期格式化程序的性能明显优于ToString(string)。