2.1 自定义日志系统-log4net
说明
- Prism中如果把日志级别设定为DEBUG,会显示框架加载信息
- Prism默认是没有日志系统的
步骤
- 下载log4net包
Install-Package log4net;
- 在app.config中配置日志系统需要的信息
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<!--使用log\\代表存储在log文件夹下-->
<file value="log\\" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<!--这里必须添加'.txt'代表创建日志后缀-->
<datePattern value="yyyyMMdd'.txt'"/>
<staticLogFileName value="false" />
<maximumFileSize value="10MB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="日期:%date%n线程ID:[%thread]%n日志等级:%-5level%n内容:%message%newline%newline" />
</layout>
</appender>
<root>
<level value="INFO" />
<appender-ref ref="RollingLogFileAppender" />
</root>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6"/>
</startup>
</configuration>
- 在AssemblyInfo.cs中设定使用app.config的配置信息
[assembly: log4net.Config.XmlConfigurator(Watch = false)]
- 在项目中使用log4net,
using Prism.Logging;
using log4net;
namespace AutoSeller
{
public class LogggerAdapter : ILoggerFacade
{
private static readonly ILog _log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public void Log(string message, Category category, Priority priority)
{
switch (category)
{
case Category.Debug:
_log.DebugFormat(message, category.ToString(), (int)priority);
break;
case Category.Exception:
_log.ErrorFormat(message, category.ToString(), (int)priority);
break;
case Category.Info:
_log.InfoFormat(message, category.ToString(), (int)priority);
break;
case Category.Warn:
_log.WarnFormat(message, category.ToString(), (int)priority);
break;
default:
break;
}
}
}
}
- 在bootstrapper中重写CreateLogger方法,创建日志系统。
using Prism.Logging;
namespace AutoSeller
{
public partial class SecondaryCacheBootstrapper
{
private readonly LoggerAdapter _logger = new LoggerAdapter();
protected override ILoggerFacade CreateLogger()
{
return _logger;
}
}
}
log4net说明
log4net支持记录5中类型日志消息:
- FATAL
- ERROR
- WARN
- INFO
- DEBUG
对应在程序中使用同名函数记录日志,如记录INFO类型日志使用 log .Info(msg)。我们可能不需要显示所有类型日志,在开发我们需要显示调试日志信息,错误日志信息,而在实际部署中只需显示错误日志消息即可。可以通过设定日志等级实现上述需求,log4net支持7个等级的日志:
- OFF -没有消息
- FATAL
- ERROR
- WARN
- INFO
- DEBUG
- ALL -所有消息
当我们在配置文件中配置日志等级为DEBUG时,
<root>
<level value="DEBUG" />
<appender-ref ref="RollingLogFileAppender" />
</root>
所有FATAL,ERROR,WARN,INFO,DEBUG类型消息都会被记录。
2.1 自定义日志系统-log4net的更多相关文章
- 磨刀不误砍柴工——统一日志系统 Log4Net/ExceptionLess
本文版权归博客园和作者吴双本人共同所有,转载和爬虫必须注明原文地址:www.cnblogs.com/tdws . 一. 写在前面 本文Log4Net介绍了基础的方式,大数据量生产环境不能使用,中等 ...
- 统一日志系统 Log4Net/ExceptionLess
一. 写在前面 本文Log4Net介绍了基础的方式,大数据量生产环境不能使用,中等日志量请日志单库. 希望爱技术的你不要错过exceptionless和ELK 第四节开始简单配置大牛们推荐的了Ex ...
- C# 日志系统 log4net 配置及使用
1.引用Dll 版本是:1.2.10.0,下载Dll 2.Web.config文件配置 <?xml version="1.0" encoding="utf-8&qu ...
- Django中配置自定义日志系统
将
- ELK+FileBeat+Log4Net搭建日志系统
ELK+FileBeat+Log4Net搭建日志系统 来源:https://www.zybuluo.com/muyanfeixiang/note/608470 标签(空格分隔): ELK Log4Ne ...
- .NET下日志系统的搭建——log4net+kafka+elk
.NET下日志系统的搭建--log4net+kafka+elk 前言 我们公司的程序日志之前都是采用log4net记录文件日志的方式(有关log4net的简单使用可以看我另一篇博客),但是随着 ...
- 【5】基于Log4Net的日志系统
阅读目录 日志系统应具备的特性 Log4Net 配置文件:log4net.config 初始化 输出信息 对Log4Net的封装 log4net.config复杂配置 不管是Web应用程序还是W ...
- 搭建一套自己实用的.net架构(2)【日志模块-log4net】
先谈谈简单的模块,日志.在系统中日志模块是必须的,什么系统日志,操作日志,调试日志.这里用的是log4net. 对log4net还不熟悉的小伙伴们赶快去搜索基础教程哦, 我这里就不温故了. 那么有人要 ...
- WCF 项目应用连载[2] - 创建Lig日志系统
WCF 项目应用连载[1] - 索引 - 轻量级的Log系统 - Lig Sample -序 现在我们创建一个Lig工程 - Litelog 2.1 创建Lig服务 _________________ ...
随机推荐
- Android高级控件(下)
计时器(Chronometer) getBase() 基准时间 setFormat() 设置显示格式 start() 开始计时 stop() 停止计时 setOnChronometerListener ...
- CentOS之—双网卡双IP双网关配置
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/77487639 一.配置讲解 1.配置DNS 修改对应网卡的DNS的配置文件 # v ...
- 一道web入门题
9月27日00:00 这道题是我将hctf_warmup魔改之后得到的,难度比较低,主要还是讲一些web相关的思考方式,所以这篇文章会比较冗长过于详细.(毕竟是给小姑娘入门看的23333).就当M1s ...
- SSIS 生成文件
程序说明 此SSIS的目标是生成如下的文本文件 此文件的列由TAB键分割,可以使用notepad++来查看 这样就能够看清TAB键了 文件由%H%表示头部和%D%表示的细节部分 以下为程序开发使用的V ...
- golang API 请求队列
概要 实现思路 使用方法 启动队列服务 使用队列服务 概要 在调用第三方 API 的时候, 基本都有访问限速的限制条件. 第三方的 API 有多个的时候, 就不太好控制访问速度, 常常会导致 HTTP ...
- Python初学习:简单的练习题
Python初学习 一些见到那的练习题: 初级难度 设计一重量转换器,输入以g为单位的数字后,返回换算结果以Kg为单位的结果 中级难度 设计一个求直角三角形斜边长的函数,(以两个直角边为参数,求最长边 ...
- 多测师接口测试 --常见的接口面试题目002---高级讲师肖sir
1.postman接口测试,它有一个功能可以设置参数化,你有用过吗 2.你测试过哪些接口 3.有做过接口测试吗?接口测试你们是怎么测的 4.多接口怎么测(postman里面有一个批量处理) 5.g ...
- 多测师讲解接口测试 _windows中搭建环境cms_高级讲师肖sir
eclipse集成开发环境 搭建开发环境需要安装的工具如下 jdk-8u60-windows-x64.exe jdk eclipse.rar 集成开发框架 mysql-inst ...
- 第一个月多测师讲解__项目讲解以及注意事项(肖sir)
一.目的讲解流程:(讲述业务时长10-15分钟为宜)1.自我介绍礼貌用语,姓名,籍贯,学校,个人技能,经验,表现,兴趣爱好等 ,1分钟 ,谢谢2.介绍项目的名字 ,项目的背景,(涉及什么架构)3.对项 ...
- MeteoInfoLab脚本示例:创建netCDF文件(合并文件)
在MeteoInfoLab中增加了创建netCDF文件并写入数据的功能,这里利用合并多个netCDF文件为一个新的netCDF文件为例.1.创建一个可写入的netCDF文件对象(下面用ncfile表示 ...