因为项目日志太杂乱而且很大,打开一个就卡死了,何况用户电脑也扛不住日志积累,要做一个日志记录器管理日志。但对里面的配置有一些不熟悉(毕竟都是复制粘贴的),所以记录一下各个项的作用。方便后续复习。
1.0 使用配置文件
众所周知,如果要使用一个配置文件,则需要声明: [: ..(Watch = true)]。
可以放在 .cs文件中,也可以放在代码内,如下代码目的是把日志输出到控制台上。
using log4net;
using System;
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
ILog log = log4net.LogManager.GetLogger("Test");
log.Error("错误", new Exception("发生了一个异常"));//错误
log.Fatal("严重错误", new Exception("发生了一个致命错误"));//严重错误
log.Info("信息"); //记录一般信息
log.Debug("调试信息");//记录调试信息
log.Warn("警告");//记录警告信息
Console.WriteLine("日志记录完毕。");
Console.Read();
}
}
}
其中配置文件放在 App.
在很多demo上,也有 [: ..( = “.”, = “”, Watch = true)],实际上都是差不多,意思是 使用一个叫 .,后缀名为 配置文件。
2 配置文件内容介绍2.1 .level
通过上面简单的配置文件,可以发现是通过一个叫 来控制的。那么可以通过如下代码找到它。这个 ILog就提供了一堆方法(Error,Info…)让我们使用。
ILog log = log4net.LogManager.GetLogger("Test");
内部还有一个 ,就是日志的记录等级 由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF钢铁雄心4代码,0,45,-1,钢铁雄心4控制台代码大全(控制台代码一览表)-路途号,https://www.lutu88.com/11836.html,那么这个ALL就是什么都输出。如果把等级改为 WARN。那么上面代码输出如下,很明显,DEBUG|INFO已经失效了。
2.1 .
娜娜项目网每日更新创业和副业项目
网址:nanaxm.cn 点击前往娜娜项目网
站 长 微 信: nanadh666
上文给出的demo是针对控制台输出的,那么它是怎么控制的呢。这个时候就需要 和它名字下的一起控制了
其中type还有很多类型。这里就说几个常用的。
在控制台写日志
er 额,名字有点直白,就是控制台输出的还有颜色
往文件里面写日志
基于,不过它可以管理文件大小之类的。
具体的例子我们以后再看。
2.2 .
到这里就是控制记录格式了。其中常用的是 ,通过标识符来控制格式,以下是一些解释
%m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息
%n(new line):换行
%d(datetime):输出当前语句运行的时刻
%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数
%t(thread id):当前语句所在的线程ID
%p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等
%c(class):当前日志对象的名称
2.3 .
接下来,我们来点复杂的配置 ,为了避免看走神钢铁雄心4代码,0,45,-1,钢铁雄心4控制台代码大全(控制台代码一览表)-路途号,https://www.lutu88.com/11836.html,我们把配置文件再展示一次。加入这个类似于过滤,意思是只有等级区间内INFO|WARN|ERROR的才可以输出。
2.4 root
可以把它看做是根,如果没有显示定义,那么使用根日志定义的属性。
2.4 综合使用
现在已经了解基础配置了,快来试一试复杂的配置吧
3.0 通过代码获取配置信息
除了 ..(“Test”);还有一种可以获取以上配置信息
using System;
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
log4net.Repository.Hierarchy.Hierarchy hier =
(log4net.Repository.Hierarchy.Hierarchy)log4net.LogManager.GetRepository();
var logs = hier.GetCurrentLoggers();
//输出logger名称
foreach (var logger in logs)
{
Console.WriteLine(logger.Name);
}
//输出appenders名称
var appenders = hier.GetAppenders();
foreach (var appender in appenders)
{
Console.WriteLine(appender.Name);
}
Console.Read();
}
}
}
娜娜项目网每日更新创业和副业项目
网址:nanaxm.cn 点击前往娜娜项目网
站 长 微 信: nanadh666