[外包]!采用asp.net core 快速构建小型创业公司后台管理系统(四.Log4Net的简单配置)
程序员文章站
2022-05-29 23:45:36
[外包]!采用asp.net core 快速构建小型创业公司后台管理系统(四.Log4Net的简单配置) ......
接着上一章继续唠
这一章主要说一下
- log4net在我项目里的配置,
另外群里有人说serilog是最好用的,这个我也用过,感觉就那样吧,以前还自己写log
一.基础配置类
infrastructure下直接一个log4net配置文件
代码如下:
/// <summary> /// 日志服务 /// </summary> public class log4net { /// <summary> /// 定义日志容器 /// </summary> private static iloggerrepository _repository = logmanager.createrepository(tbconstant.log4repositorykey); /// <summary> /// 定义日志配置文件 /// </summary> private static fileinfo logconfig = new fileinfo(configlocator.instance[tbconstant.log4netkey]); /// <summary> /// 定义接口参数 /// </summary> /// <returns></returns> private static ilog setlog() { var _methodname = string.empty; try { stackframe _call = new stackframe(2); _methodname = string.format("{0}.{1}", _call.getmethod().reflectedtype.fullname, _call.getmethod().name); var _st = new stacktrace().getframes(); foreach (var _item in _st) { if (_item.getmethod().declaringtype.tostring().endswith("exception") && _st.length > 2) { _methodname = string.format("{0}.{1}", _item.getmethod().reflectedtype.fullname, _item.getmethod().name); continue; } } } catch { } xmlconfigurator.configure(_repository, logconfig); return logmanager.getlogger(_repository.name, _methodname); } #region 异常日志 /// <summary> /// 异常日志 /// </summary> /// <param name="msg">错误信息</param> public static void debug(object msg) { setlog().debug(msg); } /// <summary> /// 异常日志 /// </summary> /// <param name="msg">错误信息</param> /// <param name="ex">异常信息</param> public static void debug(object msg, exception ex) { setlog().debug(msg, ex); } #endregion #region 错误日志 /// <summary> /// 错误日志 /// </summary> /// <param name="msg">错误信息</param> public static void error(object msg) { setlog().error(msg); } /// <summary> /// 错误日志 /// </summary> /// <param name="msg">错误信息</param> /// <param name="ex">异常信息</param> public static void error(object msg, exception ex) { setlog().error(msg, ex); } #endregion #region 数据日志 /// <summary> /// 数据日志 /// </summary> /// <param name="msg">错误信息</param> public static void info(object msg) { setlog().info(msg); } /// <summary> /// 数据日志 /// </summary> /// <param name="msg">错误信息</param> /// <param name="ex">异常信息</param> public static void info(object msg, exception ex) { setlog().info(msg, ex); } #endregion #region 警告日志 /// <summary> /// 警告日志 /// </summary> /// <param name="msg">错误信息</param> public static void warn(object msg) { setlog().warn(msg); } /// <summary> /// 警告日志 /// </summary> /// <param name="msg">错误信息</param> /// <param name="ex">异常信息</param> public static void warn(object msg, exception ex) { setlog().warn(msg, ex); } #endregion }
主要说一下这两句
/// <summary> /// 定义日志容器 /// </summary> private static iloggerrepository _repository = logmanager.createrepository(tbconstant.log4repositorykey); /// <summary> /// 定义日志配置文件 /// </summary> private static fileinfo logconfig = new fileinfo(configlocator.instance[tbconstant.log4netkey]);
createrepository里传入自定义key
第二句传入log4net配置文件路径
如图:
代码如下:配置还是老配置
<?xml version="1.0" encoding="utf-8" ?> <configuration> <log4net> <!--错误日志--> <appender name="errorrollingfileappender" type="log4net.appender.rollingfileappender"> <lockingmodel type="log4net.appender.fileappender+minimallock" /> <param name="file" value="log/error/" /> <param name="appendtofile" value="true" /> <param name="rollingstyle" value="date" /> <param name="datepattern" value="yyyy-mm-dd.'error.log'" /> <param name="staticlogfilename" value="false" /> <layout type="log4net.layout.patternlayout"> <conversionpattern value="%n%n%n记录时间:%date %n日志级别: %-5level %n类及方法:%logger %n描述:%message %newline%newline" /> </layout> <filter type="log4net.filter.levelrangefilter"> <param name="levelmin" value="error" /> <param name="levelmax" value="error" /> </filter> </appender> <!--警告日志--> <appender name="warnrollingfileappender" type="log4net.appender.rollingfileappender"> <lockingmodel type="log4net.appender.fileappender+minimallock" /> <param name="file" value="log/warn/" /> <param name="appendtofile" value="true" /> <param name="rollingstyle" value="date" /> <param name="datepattern" value="yyyy-mm-dd.'warn.log'" /> <param name="staticlogfilename" value="false" /> <layout type="log4net.layout.patternlayout"> <conversionpattern value="%n%n%n记录时间:%date %n日志级别: %-5level %n类及方法:%logger %n描述:%message %newline%newline" /> </layout> <filter type="log4net.filter.levelrangefilter"> <param name="levelmin" value="warn" /> <param name="levelmax" value="warn" /> </filter> </appender> <!--数据日志--> <appender name="inforollingfileappender" type="log4net.appender.rollingfileappender"> <lockingmodel type="log4net.appender.fileappender+minimallock" /> <param name="file" value="log/info/" /> <param name="appendtofile" value="true" /> <param name="rollingstyle" value="date" /> <param name="datepattern" value="yyyy-mm-dd.'info.log'" /> <param name="staticlogfilename" value="false" /> <layout type="log4net.layout.patternlayout"> <conversionpattern value="%n%n%n记录时间:%date %n日志级别: %-5level %n类及方法:%logger %n描述:%message %newline%newline" /> </layout> <filter type="log4net.filter.levelrangefilter"> <param name="levelmin" value="info" /> <param name="levelmax" value="info" /> </filter> </appender> <!--异常日志--> <appender name="debugrollingfileappender" type="log4net.appender.rollingfileappender"> <lockingmodel type="log4net.appender.fileappender+minimallock" /> <param name="file" value="log/debug/" /> <param name="appendtofile" value="true" /> <param name="rollingstyle" value="date" /> <param name="datepattern" value="yyyy-mm-dd.'debug.log'" /> <param name="staticlogfilename" value="false" /> <layout type="log4net.layout.patternlayout"> <conversionpattern value="%n%n%n记录时间:%date %n日志级别: %-5level %n类及方法:%logger %n描述:%message %newline%newline" /> </layout> <filter type="log4net.filter.levelrangefilter"> <param name="levelmin" value="debug" /> <param name="levelmax" value="debug" /> </filter> </appender> <root> <level value="debug" /> <!--文件形式记录日志--> <appender-ref ref="errorrollingfileappender" /> <appender-ref ref="debugrollingfileappender" /> <appender-ref ref="inforollingfileappender" /> <appender-ref ref="warnrollingfileappender" /> </root> </log4net> </configuration>
二.测试结果
在你想记录日至的地方,直接用log4net点他的四种日志类型,info,error,warn,debug
他会在你项目根目录下生成log文件夹,并包含四种类型日志,按日期划分
日志内容如下:
日志记录这块我就讲到这里
另外今天我对这个项目加了quartz计划任务管理模块,还加了报表导出
这个内容就下一章唠吧
下章内容
- quartz计划任务管理
- 权限模块
- 备注:项目浏览地址:http://xingchenbeta.52expo.top/welcome
- 用户名 admin 密码 123456
- 不要使用admin 用户测试权限,不要禁用admin用户
上一篇: 维钦托利对高卢历史有着怎样的影响?后人对他的评价如何
下一篇: 维钦托利是谁?高卢英雄维钦托利简介