Spo*_*com 11
看起来这个链接已经死了.
我在Waybacktimemachine中找到它并将其发布到我的博客中.
http://spoiledtechie.com/post/2015/11/19/Conversion-Patterns-for-Log4Net.aspx
在SO上发帖可能太多了.如果我错了,如果每个人都认为这不是太糟糕,我会很乐意在这里发帖.
Dan*_*son 11
在撰写本文时,转换模式的 log4net 文档是有效的。如果出于某种原因,log4net 消失了,那么这里有一个指向它的 waybackmachine 文章的链接。
如果您不想浏览其他地方而只想查看完整列表(为什么不呢?),您可以在下面找到它:
| 转换模式名称 | 影响 |
|---|---|
a |
相当于appdomain |
appdomain |
用于输出生成日志记录事件的 AppDomain 的友好名称。 |
aspnet-cache |
用于在 的情况下输出所有缓存项%aspnet-cache,或者仅输出一个命名项(如果用作)%aspnet-cache{key}此模式不适用于 Compact Framework 或 Client Profile 程序集。 |
aspnet-context |
用于输出所有上下文项(如果用作)%aspnet-context或仅输出一个命名项。%aspnet-context{key}此模式不适用于 Compact Framework 或 Client Profile 程序集。 |
aspnet-request |
用于输出所有请求参数(如果用作)%aspnet-request或仅输出一个命名参数。%aspnet-request{key}此模式不适用于 Compact Framework 或 Client Profile 程序集。 |
aspnet-session |
用于输出所有会话项(如果用作)%aspnet-session或仅输出一个命名项。%aspnet-session{key}此模式不适用于 Compact Framework 或 Client Profile 程序集。 |
c |
相当于logger |
C |
相当于type |
class |
相当于type |
d |
相当于date |
date |
用于输出本地时区中记录事件的日期。要输出通用时间的日期,请使用该%utcdate模式。日期转换说明符后面可以跟着括在大括号内的日期格式说明符。例如,%date{HH:mm:ss,fff}或%date{dd MMM yyyy HH:mm:ss,fff}。如果未给出日期格式说明符,则假定为 ISO8601 格式 (Iso8601DateFormatter)。日期格式说明符允许与 ToString 的时间模式字符串相同的语法。 为了获得更好的结果,建议使用 log4net 日期格式化程序。这些可以使用字符串“ABSOLUTE”、“DATE”和“ISO8601”之一来指定,以分别指定 AbsoluteTimeDateFormatter、DateTimeDateFormatter 和 Iso8601DateFormatter。例如, %date{ISO8601}或%date{ABSOLUTE}。这些专用日期格式化程序的性能明显优于 ToString。 |
exception |
用于输出随日志消息传入的异常。 如果异常对象存储在日志记录事件中,它将被渲染到带有尾随换行符的模式输出中。如果没有异常,则不会输出任何内容,并且不会附加尾随换行符。通常在异常之前放置换行符并将异常作为模式中的最后一个数据。 |
F |
相当于file |
file |
用于输出发出日志记录请求的文件名。 警告生成呼叫者位置信息的速度非常慢。除非执行速度不是问题,否则应避免使用它。 请参阅下面有关呼叫者位置信息可用性的注释。 |
identity |
用于输出当前活动用户的用户名 (Principal.Identity.Name)。 警告生成呼叫者信息的速度非常慢。除非执行速度不是问题,否则应避免使用它。 |
l |
相当于location |
L |
相当于line |
location |
用于输出生成日志事件的调用者的位置信息。 位置信息取决于 CLI 实现,但通常由调用方法的完全限定名称组成,后跟调用者源文件名和括号之间的行号。 位置信息可能非常有用。然而,它的生成极其缓慢。除非执行速度不是问题,否则应避免使用它。 请参阅下面有关呼叫者位置信息可用性的注释。 |
level |
用于输出日志事件的级别。 |
line |
用于输出发出日志记录请求的行号。 警告生成呼叫者位置信息的速度非常慢。除非执行速度不是问题,否则应避免使用它。 请参阅下面有关呼叫者位置信息可用性的注释。 |
logger |
用于输出日志事件的记录器。记录器转换说明符可以选择后跟精度说明符,它是括号中的十进制常量。 如果给出了精度说明符,则仅打印记录器名称最右侧组件的相应数量。默认情况下,记录器名称会被完整打印。 例如,对于记录器名称“abc”,模式 %logger{2}将输出“bc”。 |
m |
相当于message |
M |
相当于method |
message |
用于输出应用程序提供的与日志记录事件关联的消息。 |
mdc |
MDC(ThreadContext.Properties 的旧名称)现在是组合事件属性的一部分。支持此模式是为了实现兼容性,但等同于属性。 |
method |
用于输出发出日志记录请求的方法名称。 警告生成呼叫者位置信息的速度非常慢。除非执行速度不是问题,否则应避免使用它。 请参阅下面有关呼叫者位置信息可用性的注释。 |
n |
相当于newline |
newline |
输出与平台相关的行分隔符。 此转换模式提供与使用不可移植行分隔符字符串(例如“\n”或“\r\n”)相同的性能。因此,它是指定行分隔符的首选方式。 |
ndc |
用于输出与生成日志记录事件的线程关联的 NDC(嵌套诊断上下文)。 |
p |
相当于level |
P |
相当于property |
properties |
相当于property |
property |
用于输出事件特定属性。查找的关键字必须在大括号内指定并直接跟在模式说明符之后,例如,%property{user}将包括由字符串“user”作为关键字的属性中的值。必须单独指定要包含在日志中的每个属性值。属性由记录器或附加程序添加到事件中。默认情况下,log4net:HostName 属性设置为最初记录事件的计算机的名称。例如,如果未指定键, %property则所有键及其值都打印在逗号分隔的列表中。事件的属性是由许多不同的上下文组合而成的。下面按搜索顺序列出了这些内容。 事件属性 事件具有可以设置的属性。这些属性仅特定于此事件。线程属性 在当前线程上设置的属性。这些属性由该线程上记录的所有事件共享。全局属性 全局设置的属性。这些属性由 AppDomain 中的所有线程共享。 |
r |
相当于timestamp |
stacktrace |
用于输出日志记录事件的堆栈跟踪 堆栈跟踪级别说明符可以括在大括号之间。例如,%stacktrace{level}。如果未给出堆栈跟踪级别说明符,则假定为 1输出使用以下格式: type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 此模式不适用于 Compact Framework 程序集。 |
stacktracedetail |
用于输出日志记录事件的堆栈跟踪 堆栈跟踪级别说明符可以括在大括号之间。例如,%stacktracedetail{level}。如果未给出堆栈跟踪级别说明符,则假定为 1输出使用以下格式: type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,.. .) 此模式不适用于 Compact Framework 程序集。 |
t |
相当于thread |
timestamp |
用于输出从应用程序启动到创建日志事件所经过的毫秒数。 |
thread |
用于输出生成日志事件的线程的名称。如果没有可用的名称,则使用线程号。 |
type |
用于输出发出日志记录请求的调用者的完全限定类型名称。此转换说明符可以选择后跟精度说明符,即括号中的十进制常量。 如果给出精度说明符,则仅打印类名最右边组件的相应数量。默认情况下,类名以完全限定的形式输出。 例如,对于类名“log4net.Layout.PatternLayout”,模式 %type{1}将输出“PatternLayout”。警告生成调用者类信息的速度很慢。因此,除非执行速度不是问题,否则应避免使用它。 请参阅下面有关呼叫者位置信息可用性的注释。 |
u |
相当于identity |
username |
用于输出当前活动用户的 WindowsIdentity。 警告生成调用者 WindowsIdentity 信息的速度非常慢。除非执行速度不是问题,否则应避免使用它。 |
utcdate |
用于输出记录事件的世界时日期。日期转换说明符后面可以跟着括在大括号内的日期格式说明符。例如,%utcdate{HH:mm:ss,fff}或%utcdate{dd MMM yyyy HH:mm:ss,fff}。如果未给出日期格式说明符,则假定为 ISO8601 格式 (Iso8601DateFormatter)。日期格式说明符允许与 ToString 的时间模式字符串相同的语法。 为了获得更好的结果,建议使用 log4net 日期格式化程序。这些可以使用字符串“ABSOLUTE”、“DATE”和“ISO8601”之一来指定,以分别指定 AbsoluteTimeDateFormatter、DateTimeDateFormatter 和 Iso8601DateFormatter。例如, %utcdate{ISO8601}或%utcdate{ABSOLUTE}。这些专用日期格式化程序的性能明显优于 ToString。 |
w |
相当于username |
x |
相当于ndc |
X |
相当于mdc |
% |
该序列%%输出一个百分号。 |
至于正式的模式列表,我想你找到了它!:)
至于获取托管应用程序的名称,是不是appdomain转换模式名称?不知道为什么它需要为AppDomain.ToString()过载回报应用友好的名称一个模式...啊... ...死守,toString()方法还包括上下文政策,他们很可能是在这种情况下额外的噪音.
至于添加自己的模式,Google在10秒内返回此链接.
Apache Log4Net SDK文档中该类的" 备注"部分log4net.Layout.PatternLayout看起来具有我们想要的内容:
http://logging.apache.org/log4net/release/sdk/?topic=html/T_log4net_Layout_PatternLayout.htm
| 归档时间: |
|
| 查看次数: |
51714 次 |
| 最近记录: |