ThinkDev.Logging组件中,Layout在其中发挥了很重要的作用,包括日志Content Layout,日志路径定义等均可以使用layout来设置。
其中,不可避免的会用到一些常量,比如当前时间,换行,GUID等。(当然,组件也支持用户自定义变量,可参考配置中Variable节点,本文不做介绍)
以下是目前组件支持的一些常用系统变量:
变量 | 说明 |
LongDate | 长时间格式,例如:2012-08-19 10:00:00 |
ShortDate | 短日期格式,例如:2012-08-19 |
Year | 表示当前时间的年部分,例如:2012 |
Month | 表示当前时间的月部分,例如:08 |
Day | 表示当前时间的天部分,例如:19 |
Hour | 表示当前时间的小时部分,例如:10 |
Minute | 表示当前时间的分钟部分,例如:00 |
Second | 表示当前时间的秒部分,例如:00 |
Guid | 表示新生成一个GUID实例 |
NewLine | 表示系统环境的换行实现,例如文本文件中: |
BaseDir | 表示当前工作目录的完整路径 |
CurrentSysUser | 表示当前登录到操作系统用户名 |
MemorySize | 表示当前应用占用的内存,单位为字节 |
ProcessorCount | 表示当前计算机上的处理器数量 |
示例:
我们定义一个文本文件Target的配置:
<target Name="f1" TyPe="File" Filename="D:AppLog{year}{month}{day}.log" Encode="gb2312"/>
那么当2012年8月19日发生日志行为时,将会在D:AppLog2012 8 文件夹中生成19.log这个日志文件
我们定义个Target的日志内容Layout的配置:
Layout=" {LongDate} - {message}"
那么在发生日志行为时,将会自动在应用传入的内容中加上2012-08-19 10:00:00- 前缀
目前系统变量还不是很丰富,但不久的将来相信会逐渐丰富起来。