.Net中Log4Net的使用
程序员文章站
2022-03-26 10:25:11
2018-08-23 .Net中Log4Net的使用 一、log4net 分类型记录日志存放多个日志文件 1、在webconfig里添加配置 1.1 在 中添加节点 1.2 添加log4net配置section 2、在Global.asax.cs里添加 log4net ......
2018-08-23
.net中log4net的使用
一、log4net 分类型记录日志存放多个日志文件
1、在webconfig里添加配置
1.1 在<configsections> 中添加节点
1 <configsections> 2 <configsections> 3 <section name="log4net" type="log4net.config.log4netconfigurationsectionhandler,log4net"/> 4 </configsections> 5 </configsections>
1.2 添加log4net配置section
<log4net> <appender name="fatalappender" type="log4net.appender.rollingfileappender"> <filter type="log4net.filter.levelmatchfilter"> <leveltomatch value="fatal" /> </filter> <filter type="log4net.filter.denyallfilter" /> <file value="logs\fatal.log" /> <appendtofile value="true" /> <rollingstyle value="date" /> <datepattern value="yyyymmdd" /> <layout type="log4net.layout.patternlayout"> <conversionpattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> </appender> <appender name="errorappender" type="log4net.appender.rollingfileappender"> <filter type="log4net.filter.levelmatchfilter"> <leveltomatch value="error" /> </filter> <filter type="log4net.filter.denyallfilter" /> <file value="logs\err.log" /> <appendtofile value="true" /> <rollingstyle value="date" /> <datepattern value="yyyymmdd" /> <layout type="log4net.layout.patternlayout"> <conversionpattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> </appender> <appender name="warnappender" type="log4net.appender.rollingfileappender"> <filter type="log4net.filter.levelmatchfilter"> <leveltomatch value="warn" /> </filter> <filter type="log4net.filter.denyallfilter" /> <file value="logs\warn.log" /> <appendtofile value="true" /> <rollingstyle value="date" /> <datepattern value="yyyymmdd" /> <layout type="log4net.layout.patternlayout"> <conversionpattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> </appender> <appender name="infoappender" type="log4net.appender.rollingfileappender"> <filter type="log4net.filter.levelmatchfilter"> <leveltomatch value="info" /> </filter> <filter type="log4net.filter.denyallfilter" /> <file value="logs\info.log" /> <appendtofile value="true" /> <rollingstyle value="date" /> <datepattern value="yyyymmdd" /> <layout type="log4net.layout.patternlayout"> <conversionpattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> </appender> <appender name="debugappender" type="log4net.appender.rollingfileappender"> <filter type="log4net.filter.levelmatchfilter"> <leveltomatch value="debug" /> </filter> <filter type="log4net.filter.denyallfilter" /> <file value="logs\debug.log" /> <!--这里可以配置日志存放位置--> <appendtofile value="true" /> <rollingstyle value="date" /> <datepattern value="yyyymmdd" /> <layout type="log4net.layout.patternlayout"> <conversionpattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> </appender> <appender name="perfappender" type="log4net.appender.rollingfileappender"> <filter type="log4net.filter.levelmatchfilter"> <leveltomatch value="info" /> </filter> <filter type="log4net.filter.denyallfilter" /> <file value="logs\perf.log" /> <appendtofile value="true" /> <rollingstyle value="date" /> <datepattern value="yyyymmdd" /> <layout type="log4net.layout.patternlayout"> <conversionpattern value="%date %logger - %message%newline" /> </layout> </appender> <root> <level value="all" /> <appender-ref ref="fatalappender" /> <appender-ref ref="errorappender" /> <appender-ref ref="warnappender" /> <appender-ref ref="infoappender" /> <appender-ref ref="debugappender" /> </root> </log4net>
2、在global.asax.cs里添加
log4net.config.xmlconfigurator.configure();
3、添加 helper类
using log4net; using system; using system.collections.generic; using system.linq; using system.web; namespace testlog4net { public class log4nethelper { public static void fatal(type type, object message, exception exception = null) { ilog log = logmanager.getlogger(type); if (exception == null) log.fatal(message); else log.fatal(message, exception); } public static void error(type type, object message, exception exception = null) { ilog log = logmanager.getlogger(type); if (exception == null) log.error(message); else log.error(message, exception); } public static void warn(type type, object message, exception exception = null) { ilog log = logmanager.getlogger(type); if (exception == null) log.warn(message); else log.warn(message, exception); } public static void info(type type, object message, exception exception = null) { ilog log = logmanager.getlogger(type); if (exception == null) log.info(message); else log.info(message, exception); } public static void debug(type type, object message, exception exception = null) { ilog log = logmanager.getlogger(type); if (exception == null) log.debug(message); else log.debug(message, exception); } } }
4、代码里使用
ilog log = log4net.logmanager.getlogger(system.reflection.methodbase.getcurrentmethod().declaringtype);//获取一个日志记录器 log4nethelper.fatal(this.gettype(), "fatal"); //致命错误 log4nethelper.error(this.gettype(), "error", new exception("error")); //错误 log4nethelper.warn(this.gettype(), "warn"); //禁告 log4nethelper.info(this.gettype(), "info"); //信息 log4nethelper.debug(this.gettype(), "debug"); //调试
fatal(致命错误):记录系统中出现的能使用系统完全失去功能,服务停止,系统崩溃等使系统无法继续运行下去的错误。例如,数据库无法连接,系统出现死循环。
error(一般错误):记录系统中出现的导致系统不稳定,部分功能出现混乱或部分功能失效一类的错误。例如,数据字段为空,数据操作不可完成,操作出现异常等。
warn(警告):记录系统中不影响系统继续运行,但不符合系统运行正常条件,有可能引起系统错误的信息。例如,记录内容为空,数据内容不正确等。
info(一般信息):记录系统运行中应该让用户知道的基本信息。
debug (调试信息):记录系统用于调试的一切信息,内容或者是一些关键数据内容的输出。
二、存放单个日志
1、在以上基础上 配置修改
<log4net> <!-- off, fatal, error, warn, info, debug, all --> <!-- set root logger level to error and its appenders --> <root> <level value="all" /> <appender-ref ref="sysappender" /> </root> <!-- print only messages of level debug or above in the packages --> <logger name="weblogger"> <level value="log" /> </logger> <appender name="sysappender" type="log4net.appender.rollingfileappender,log4net"> <!--<param name="file" value="app_data/" />--> <file value="logs\log" /> <!--日志文件位置和文件名--> <param name="appendtofile" value="true" /> <param name="rollingstyle" value="date" /> <!--<param name="datepattern" value=""logs_"yyyymmdd".txt"" />--> <param name="datepattern" value="yyyymmdd".txt"" /><!--在文件名后面加内容 比如 log名变为log20180808--> <param name="staticlogfilename" value="false" /> <layout type="log4net.layout.patternlayout,log4net"> <param name="conversionpattern" value="%d [%t] %-5p %c - %m%n" /> </layout> </appender> <appender name="consoleapp" type="log4net.appender.consoleappender,log4net"> <layout type="log4net.layout.patternlayout,log4net"> <param name="conversionpattern" value="%d [%t] %-5p %c - %m%n" /> </layout> </appender> </log4net>
2、代码使用
ilog log = log4net.logmanager.getlogger(system.reflection.methodbase.getcurrentmethod().declaringtype);//获取一个日志记录器
log.fatal("info");
log.error("error");
log.warn("warn");
log.info("info");
log.debug("debug");
上一篇: python算法 整数反转
下一篇: Mysql锁表的问题解决
推荐阅读
-
使用uploadify上传大于3兆的文件时显示成功,但是没有上传到文件夹中
-
thinkphp中开启smarty是否不能使用默认的模板布局?
-
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析_PHP
-
PHP的Yii框架使用中的一些错误解决方法与建议
-
Oracle中序列的操作以及使用前对序列的初始化
-
Node.js中关于多进程模块Cluster的详细介绍以及如何使用
-
php中json_decode()和json_encode()的使用方法
-
WordPress中调试缩略图的相关PHP函数使用解析,wordpress缩略图
-
MySql中关于正则表达式查询的使用方法介绍
-
浅谈Android注解在日常开发中的简单使用