JWT+Log4net配置与使用详解
log4net的优点
log4net是.net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。程序运行过程中就能生成并输出日志信息而无需人工干预,可供开发人员尽快找到应用程序中的bug。另外,日志信息可以输出到不同的地方。
log4net的结构
log4net 有四种主要的组件,分别是logger(记录器), repository(库), appender(附着器)以及layout(布局)
重点---网上教程项目中添加log4日志流程如下
1.项目中都会有一个工具类库,然后添加对log4net.dll的引用,再该类库下封装一个log4help.cs帮助类
2.在mvc,api项目中再次添加对log4net.dll的引用,在根目录的global.asax.cs中的application_start方法中添加:
log4net.config.xmlconfigurator.configure();
3.添加log4net.config配置文件
讲解错误请多理解:
第二部操作是可以忽略掉的,项目一直都是提倡封装解耦,既然已经将log4封装到帮助类库中,是为了其它bll层和dal层能够使用,但是mvc和api层又再一次重复引用log4类库,作用也只是为了读取配置log4net.config配置文件,那么完全可以把配置文件读取写入到第一步中
[assembly: xmlconfigurator(configfile = "config/log4net.config", watch = true)] //重点是这句话,读取mvc或者apilog4net.config配置文件 namespace jwt.common { public class log4help { private static readonly ilog loginfo = logmanager.getlogger("loginfo"); private static readonly ilog logerror = logmanager.getlogger("logerror"); /// <summary> /// 打印日志信息 /// </summary> /// <param name="info"></param> public static void info(string info) { loginfo.info(info); } /// <summary> /// 错误日志信息 /// </summary> /// <param name="info"></param> /// <param name="ex"></param> public static void error(string info, exception ex) { logerror.error(info, ex); } } }
log4net.config配置文件,我是放在mvc这个文件目录下
如果去掉config文件夹目录,直接将log4net.config放在项目根目录,读取路径配置如下
[assembly: xmlconfigurator(configfile = "log4net.config", watch = true)]
个人都是将数据库链接字符串database.config和在线配置appsettings单独用两个文件拆分维护,全放在web.config,参数配置和链接字符串太多,容易眼花也不太好找
log4net配置
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configsections> <section name="log4net" type="log4net.config.log4netconfigurationsectionhandler,log4net" /> </configsections> <log4net> //logerror这个名字是在帮助类中使用的 <logger name="logerror"> <level value="all" /> <appender-ref ref="errorappender" /> //errorappender如下1.1 </logger> <logger name="loginfo"> <level value="all" /> <appender-ref ref="infoappender" /> </logger> //对应1.1名字必须一样 <appender name="errorappender" type="log4net.appender.rollingfileappender"> //file用于保存路径 <param name="file" value="log\\logerror\\" /> <param name="appendtofile" value="true" /> <param name="maxsizerollbackups" value="100" /> <param name="maxfilesize" value="10240" /> <param name="staticlogfilename" value="false" /> <param name="datepattern" value="yyyymmdd'.txt'" /> <param name="rollingstyle" value="date" /> <layout type="log4net.layout.patternlayout"> <param name="conversionpattern" value="%d [%t] [%-5level] : %message %newline" /> </layout> </appender> <appender name="infoappender" type="log4net.appender.rollingfileappender"> <param name="file" value="log\\loginfo\\" /> <param name="appendtofile" value="true" /> <param name="maxfilesize" value="10240" /> <param name="maxsizerollbackups" value="100" /> <param name="staticlogfilename" value="false" /> <param name="datepattern" value="yyyymmdd'.txt'" /> <param name="rollingstyle" value="date" /> <layout type="log4net.layout.patternlayout"> <param name="conversionpattern" value="%d [%t] [%-5level] : %message %newline" /> </layout> </appender> </log4net> </configuration>
public class homecontroller : controller { public actionresult index() { log4help.info("1111"); log4help.error("12345",null); return view(); } }
至此,所有准备工作以及配置工作全部完成,运行应用程序,然后打开项目资源管理文件,就能看见log文件夹
源码下载地址:https://github.com/yaols/jwt.mvcdemo
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
下一篇: SQLServer数据表用法