日志是程序的重要组成部分,是排查故障,解决问题的利器。这篇文章从一个菜鸟的角度,讲述了Nlog日志库的使用。
首先右键 引用==》管理NuGet程序包==》在预览输入Nlog==》安装
写了3个测试代码如下:
//设置日志名称
var log = LogManager.GetLogger("NlogTest");
//测试3种日志的输出
log.Info("info test");
log.Error("error test");
log.Warn("warning test");
日志的输出,是靠一个叫NLog.config的配置文件完成的,下面简单的说明下配置文件:
1、设置控制台输出:
全部日志都输出到控制台:
显示如下:
只输出error,需要增加级别过滤 level ="Error"
输出如下:
把日志写入文件:
增加规则配置如下:
<logger name="*" writeTo="IVS_CMS_file" />
还需要再前面先定义一下文件,这里定义了一个叫IVS_CMS_file的文件
<target name="IVS_CMS_file" xsi:type="File"
fileName="${basedir}/Logs/IVS_CMS/${shortdate}/IVS_CMS.txt" maxArchiveFiles="30"
layout="${longdate} | ${level:uppercase=false} ${newline} ${message} ${newline}" />
这时候,会在程序当前路径生成一个logs文件,
显示如下:
*******************---以上可以加解决基的日志需求----*************************************
但是当我们的程序一年360天一直运行下去,日志越来越多,就需要对日志文件进行一些处理,主要由两个需求:
第一个:日志文件不能太大,最好20M左右一个文件,便于排查故障
第二个:日志文件不能太多,最好1个G之后,会自动删除,循环覆盖
基于以上两点需求,还需要再继续研究一下nlog的配置文件的使用:
设置日志文件大小:
在前面的文件设置里面,设置文件大小属性
archiveAboveSize="1024"
单位是字节
修改测试程序之后,会生产大小为1024的
设置文件个数:
增加配置属性:maxArchiveFiles="30"
含义为:在当前文件夹下面最多生成30个文件,
增加archiveNumbering="Rolling" 字段,可以滚动写入,不会新建文件,直接覆盖前面的文件
为了方便大家学习,把完成的日志使用工程上传上去,供大家参考,开发环境VS2017
nlogdemo
----------------------------------------------------参考-----------------------------------
https://www.cnblogs.com/Cwj-XFH/p/5822837.html
我们将版本向前切换到20051025,这期的关注点是filter。我们在
使用
日志的时候可能希望加上一些过滤器,在满足某些特定条件的时候才输出。举个简单的
使用
方式如下:
<targets><target name='debug' type='Debug' layout='${basedir} ${message}' /></target...
<?xml version="1.0" encoding="UTF-8"?>
<!-- 从高到地低 OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 TRACE 、 ALL -->
原文地址:https://www.cnblogs.com/zh7791/p/12620439.html
NLog
是一个基于.NET平台编写的类库,我们可以
使用
NLog
在应用程序中添加极为完善的跟踪调试代码。
NLog
是一个简单灵活的.NET日志记录类库。通过
使用
NLog
,我们可以在任何一种.NET语言中输出带有上下文的(contextual information)调试诊断信息,根据喜好配置其表...
通过Nuget安装,搜索
Nlog
, 然后安装
NLog
和
NLog
.Config(相当于一个配置模板)。
当然也可以自己在项目根目录下创建一个配置文件
NLog
.config,注意在
NLog
.config的属性中设置 Copy to Output Directory: Copy always
基本目录结构
<?xml version="1.0" ?>
<...
export const request =(parmas)=> {
let contentType='application/json';
// 正确地检查 contentType 是否被定义且不是 null
if(parmas.contentType!==undefined && parmas.contentType!==null){
contentType=parmas.contentType;
return new Promise((resolve, reject) => {
wx.request({
url: BASE_URL + parmas.url,
method: parmas.method,
data: parmas.data,
timeout: TIMEOUT,
header: {
'content-type': contentType // 默认值
success: ( result => {
if (result.statusCode !== 200) {
reject(new Error(`请求失败,状态码: ${result.statusCode}`));
} else {
resolve(result.data);
fail: (err) => {
reject(err)
Vue之Promise
梅有卷呀:
windows之2012安装vs2017编译环境失败