<configuration> <configSections> <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/> </configSections> <log4net> <logger name="loggerAX"> <!--control log level: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF--> <!--如果没有定义LEVEL的值,则缺省为DEBUG--> <level value="ALL" /> <appender-ref ref="SmtpAppenderAX"></appender-ref> <appender-ref ref="FileAppenderAX"></appender-ref> </logger> <appender name="SmtpAppenderAX" type="log4net.Appender.SmtpAppender"> <to value="To@domain.com"></to> <from value="From@domain.com" /> <subject value="AX'Test Log Message" /> <smtpHost value="mail.eshinfo.com" /> <username value="eshinfo" /> <password value="eshinfo" /> <bufferSize value="2048" /> <!--超长部分是否丢弃--> <lossy value="false" /> <!--输出级别在WARN和OFF之间的日志--> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="WARN" /> <param name="LevelMax" value="OFF" /> </filter> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] : % newline%message%newline" /> </layout> </appender> <appender name="FileAppenderAX" type="log4net.Appender.RollingFileAppender"> <!--绝对路径--> <file value="D://AX.txt"></file> <!--相对路径,在项目的根目录下--> <!--以最后一个路径为准,所以上面的绝对路径下不会写日志--> <file value="./Log/AX.txt"></file> <!--防止多线程时不能写Log,官方说线程非安全--> <!--实际使用时,本地测试正常,部署后有不能写日志的情况--> <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> <appendToFile value="true" /> <!--可以为:Once|Size|Date|Composite--> <!--Composite为Size和Date的组合--> <rollingStyle value="composite" /> <!--日志最大个数,都是最新的--> <!--rollingStyle节点为Date时,该节点不起作用--> <!--rollingStyle节点为Size时,只能有value个日志--> <!--rollingStyle节点为Composite时,每天有value个日志--> <maxSizeRollBackups value="10" /> <!--当备份文件时,为文件名加的后缀--> <!--后缀为*.txt时,例:AX.txt_2008-07-24.PxP 应该是程序上的一个bug--> <!--后缀为*.TXT时,例:AX.txt_2008-07-25.TXT--> <datePattern value="_yyyy-MM-dd.TXT" /> <!--可用的单位:KB|MB|GB--> <!--不要使用小数,否则会一直写入当前日志--> <maximumFileSize value="1KB" /> <!--置为true,当前最新日志文件名永远为file节中的名字--> <staticLogFileName value="true" /> <!--输出级别在INFO和ERROR之间的日志--> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="INFO" /> <param name="LevelMax" value="ERROR" /> </filter> <!--必须结合起来用,第一个只过滤出WARN,第二个拒绝其它其它日志输出--> <filter type="log4net.Filter.LevelMatchFilter"> <param name="LevelToMatch" value="WARN" /> </filter> <filter type="log4net.Filter.DenyAllFilter" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" /> </layout> </appender> </log4net> </configuration> <!--==================layout节点的配置说明======================--> %m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息 %n(new line):换 行 %d(datetime):输出当前语句运行的时刻 %r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数 %t(thread id):当前语句所在的线程ID %p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等 %c(class):当前日志对象的名称,例如: 模式字符串为:%-10c -%m%n 代码为: ILog log=LogManager.GetLogger(“Exam.Log”); log.Debug(“Hello”); 则输出为下面的形式: Exam.Log - Hello %L:输出语句所在的行 号 %F:输出语句所在的文件名 %-数字:表示该项的最小长度,如果不够,则用空格填充
come from:http://blog.csdn.net/huwei2003/article/details/6060201