<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="CuyahogaSettings" type="Cuyahoga.Core.Util.CuyahogaSectionHandler, Cuyahoga.Core" />
<section name="UrlMappings" type="Cuyahoga.Web.HttpModules.UrlMappingsSectionHandler, Cuyahoga.Web" />
<section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net debug="false">
<!-- 总:appender,定义输出介质 Appenders may only be defined as child elements of the <log4net> element.
Each appender must be uniquely named. The implementing type for the appender must be specified. -->
<!-- 说明name
Required attribute. Value must be a string name for this appender. The name must be unique among all the appenders defined in this configuration file.
This name is used by the <appender-ref> element of a Logger to reference an appender.
-->
<!-- 说明type: Required attribute. Value must be the type name for this appender. If the appender is not defined in the log4net assembly this type name must be fully assembly qualified. -->
<!-- RollingFileAppender: 输出到文件-->
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net"><!-- 设置好像有问题,一些设置冲突-->
<!-- 定义RollingFileAppender的属性 -->
<param name="File" value="log/log.txt" /><!-- Gets or sets the path to the file that logging will be written to. -->
<param name="AppendToFile" value="true" /><!--Gets or sets a flag that indicates weather the file should be appended to or overwritten -->
<param name="StaticLogFileName" value="true" /><!-- true if always should be logged to the same file --><!-- 使的下面三行的设置无效-->
<param name="RollingStyle" value="Date" /><!-- Gets or sets the rolling style ,Date是RollingMode枚举值Roll files based only on the date -->
<param name="DatePattern" value="yyyy.MM.dd" /><!-- Gets or sets the datepattern to be used for generating file names when rolling over on date. -->
<param name="CountDirection" value="1" /><!-- CountDirection > 0 does the opposite ,从1开始增加是无穷的-->
<!--文件名的格式为 :(or file.log.curSizeRollBackup or even file.log.yyyy-mm-dd.curSizeRollBackup). -->
<!-- Layout:输出日志的格式化器
用于向用户显示最后经过格式化的输出信息。输出信息可以以多种格式显示,主要依赖于我们采用的Layout组件类型。
可以是线性的或一个XML文件。Layout组件和一个Appender组件一起工作。API帮助手册中有关于不同Layout组件的列表。
一个Appender对象,只能对应一个Layout对象。要实现你自己的Layout类,你需要从log4net.Layout.LayoutSkeleton类继承,它实现了ILayout接口。
Layout elements may only be defined as children of <appender> elements. -->
<layout type="log4net.Layout.PatternLayout,log4net"> <!-- Defines the layout used by this appender -->
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] <%X{auth}> - %m%n" />
</layout>
</appender>
<root>
<priority value="ERROR" /><!-- 文档上只看到level 元素?-->
<!--level: Optional element, maximum of one allowed. Defines the logging level for this
logger. This logger will only accept event that are at this level or above-->
<appender-ref ref="rollingFile" />
</root>
<logger name="Cuyahoga.Core.Service.CoreRepository">
<level value="ERROR" />
</logger>
<logger name="Cuyahoga.Web.HttpModules.UrlHandlerModule">
<level value="INFO" />
</logger>
</log4net>
</configuration>
<!-- root 在框架的体系里,所有的日志对象都是根日志(root logger)的后代。
因此如果一个日志对象没有在配置文件里显式定义,则框架使用根日志中定义的属性。在<root>标签里,可以定义level级别值和Appender的列表。
如果没有定义LEVEL的值,则缺省为DEBUG。可以通过<appender-ref>标签定义日志对象使用的Appender对象。<appender-ref>声明了在其他地方定义的Appender对象的一个引用。在一个logger对象中的设置会覆盖根日志的设置。
而对Appender属性来说,子日志对象则会继承父日志对象的Appender列表。这种缺省的行为方式也可以通过显式地设定<logger>;标签的additivity属性为false而改变。-->
<!-- 格式名含义
%c输出日志信息所属的类的全名
%d输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-ddHH:mm:ss},输出类似:2002-10-18-22:10:28
%f输出日志信息所属的类的类名
%l输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
%m输出代码中指定的信息,如log(message)中的message
%n输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
%p输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推
%r输出自应用启动到输出该日志信息所耗费的毫秒数
%t输出产生该日志事件的线程名
-->
<configuration>
<configSections>
<section name="CuyahogaSettings" type="Cuyahoga.Core.Util.CuyahogaSectionHandler, Cuyahoga.Core" />
<section name="UrlMappings" type="Cuyahoga.Web.HttpModules.UrlMappingsSectionHandler, Cuyahoga.Web" />
<section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net debug="false">
<!-- 总:appender,定义输出介质 Appenders may only be defined as child elements of the <log4net> element.
Each appender must be uniquely named. The implementing type for the appender must be specified. -->
<!-- 说明name
Required attribute. Value must be a string name for this appender. The name must be unique among all the appenders defined in this configuration file.
This name is used by the <appender-ref> element of a Logger to reference an appender.
-->
<!-- 说明type: Required attribute. Value must be the type name for this appender. If the appender is not defined in the log4net assembly this type name must be fully assembly qualified. -->
<!-- RollingFileAppender: 输出到文件-->
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net"><!-- 设置好像有问题,一些设置冲突-->
<!-- 定义RollingFileAppender的属性 -->
<param name="File" value="log/log.txt" /><!-- Gets or sets the path to the file that logging will be written to. -->
<param name="AppendToFile" value="true" /><!--Gets or sets a flag that indicates weather the file should be appended to or overwritten -->
<param name="StaticLogFileName" value="true" /><!-- true if always should be logged to the same file --><!-- 使的下面三行的设置无效-->
<param name="RollingStyle" value="Date" /><!-- Gets or sets the rolling style ,Date是RollingMode枚举值Roll files based only on the date -->
<param name="DatePattern" value="yyyy.MM.dd" /><!-- Gets or sets the datepattern to be used for generating file names when rolling over on date. -->
<param name="CountDirection" value="1" /><!-- CountDirection > 0 does the opposite ,从1开始增加是无穷的-->
<!--文件名的格式为 :(or file.log.curSizeRollBackup or even file.log.yyyy-mm-dd.curSizeRollBackup). -->
<!-- Layout:输出日志的格式化器
用于向用户显示最后经过格式化的输出信息。输出信息可以以多种格式显示,主要依赖于我们采用的Layout组件类型。
可以是线性的或一个XML文件。Layout组件和一个Appender组件一起工作。API帮助手册中有关于不同Layout组件的列表。
一个Appender对象,只能对应一个Layout对象。要实现你自己的Layout类,你需要从log4net.Layout.LayoutSkeleton类继承,它实现了ILayout接口。
Layout elements may only be defined as children of <appender> elements. -->
<layout type="log4net.Layout.PatternLayout,log4net"> <!-- Defines the layout used by this appender -->
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] <%X{auth}> - %m%n" />
</layout>
</appender>
<root>
<priority value="ERROR" /><!-- 文档上只看到level 元素?-->
<!--level: Optional element, maximum of one allowed. Defines the logging level for this
logger. This logger will only accept event that are at this level or above-->
<appender-ref ref="rollingFile" />
</root>
<logger name="Cuyahoga.Core.Service.CoreRepository">
<level value="ERROR" />
</logger>
<logger name="Cuyahoga.Web.HttpModules.UrlHandlerModule">
<level value="INFO" />
</logger>
</log4net>
</configuration>
<!-- root 在框架的体系里,所有的日志对象都是根日志(root logger)的后代。
因此如果一个日志对象没有在配置文件里显式定义,则框架使用根日志中定义的属性。在<root>标签里,可以定义level级别值和Appender的列表。
如果没有定义LEVEL的值,则缺省为DEBUG。可以通过<appender-ref>标签定义日志对象使用的Appender对象。<appender-ref>声明了在其他地方定义的Appender对象的一个引用。在一个logger对象中的设置会覆盖根日志的设置。
而对Appender属性来说,子日志对象则会继承父日志对象的Appender列表。这种缺省的行为方式也可以通过显式地设定<logger>;标签的additivity属性为false而改变。-->
<!-- 格式名含义
%c输出日志信息所属的类的全名
%d输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-ddHH:mm:ss},输出类似:2002-10-18-22:10:28
%f输出日志信息所属的类的类名
%l输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
%m输出代码中指定的信息,如log(message)中的message
%n输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
%p输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推
%r输出自应用启动到输出该日志信息所耗费的毫秒数
%t输出产生该日志事件的线程名
-->