关于日志记录,如果你不想随用随写,又不想用log4net的话,也许你可以了解一下这个!

我也是个很懒的人,程序上的东西,只要别人写好了,而且自己用着爽,绝不做重复的coding。这个组件的起源是因为感觉log4net太强大太复杂(对我来说真是这样),当我想用log4net的时候,看到配置我都吓尿n次了,而这个时候心中又突发奇想,用HTML来做日志的表现!理由有二,一是HTML和CSS大家都会,二是可以实现很好的可读可视性。

一、配置文件说明

.fatal{

background-color:red

}

.error{

background-color:purple;

}

.warn{

background-color:yellow;

}

.info{

background-color:green;

}

.debug{

background-color:gray;

}

.myinfo{

font-size:24px;

}

{type}:{message}

{date}

]]>

{type}:{message}

{date}

]]>

{type}:{message}

{date}

]]>

{type}:{message}

{date}

]]>

{type}:{message}

{date}

]]>

{type}:{message}

{date}

]]>

LoggerConfig.xml

虽然上面的配置也不短,洒洒洋洋80大行,但它真的只有3个(或者说2个半)很简单的结点组成。

1、style结点,这个不说了,和html页面里style结点是一个样的,用于定义下面模板tpl里的样式。

2、tpls结点,这里定义的是日志类型的默认模板,模板内容大家都懂,就是HTML标签,其中有三个占位符{type}、{message}、{date},日志类型和{type}是指一类东西,分别是fatal,error,warn,info,debug五个类型,这一点是参考log4net,那里它叫日志级别。

3、logs结点,里面每个子结点即log结点都定义一个logger对象的属性和行为。

先看log结点的属性:

1)name为唯一表识,用来得到唯一logger对象(内部有缓存机制,随用随调,无须担心),name="default"表示默认logger

2)path为目录或具体文件,为目录时日志文件会根据日期生成, 如上“D:\abc” 会随着日期生成多个这个命名的文件(D:\abc\yyyy\MM\dd.html),当为具体文件时,应该是.html或.htm的文件,日志便会一直追加这一个文件。

3)types就是上面说过的5个类型,为空表示什么都不记录,多个type时用英文逗号隔开,如只记录致命错误和警告,就是types="fatal,warn",如果要全部记录,可用types="all"来简单表示types="fatal,error,warn,info,debug"。

4)dateFmt这个是模板里{date}的格式,默认是"yyyy-MM-dd HH:mm:ss",记录日志时将做为DateTime.ToString()的参数调用。

log结点的子结点:

和上面tpls的子结点一样,都是定义模板用的,上面是默认的,这里自然是特殊、可选的了,大家应该能想到这里的定义会覆盖默认的,而其实上也的确如此~_~!因为是重复的内容,所以上面才说配置文件一共就2个半结点组成。

二、调用API

把组件dll引入项目后,要在App.config和web.config里设置Logger配置文件的路径,如:

1、得到Logger对象

//得到默认logger,即name="default"的那个

var logger = Logger.GetInstance();

//得到name="log2"的对象

var log2 = Logger.GetInstance("log2");

2、简单记录日志

logger.Debug("debugdebugdebug");

logger.Info("infoinfoinfoinfoinfoinfo");

3、过虑记录日志,由于日志的内容很可能是动态的,所以组件提供的所有记录日志的方法都可传入一个委托来过虑掉那些自己不关心的内容

//这个不会记录,开始为数字的被过滤掉了

logger.Error("2323ErrorErrorErrorError", (s) =>Regex.IsMatch(s,@"^\d+"));

//这个会记录,日志的内容在于10,不会被过滤

logger.Fatal();

4、HTML展示,开始一直都说用HTML表示,效果是什么样呢?(此处的不美,不表示不支持优美的布局,程序员的界面,你们懂的!)

以此献给那些喜欢简单编程的程序员们!下载

log4net--不可多得的开源日志记录组件

log4net--不可多得的开源日志记录组件 1 前奏 一直在用log4net日志工具,却没时间写个日志给大家分享一下这个工具,趁最近比较空些,好好分享一下这个工具. 2 说明 Log4net介绍就不 ...

【干货】.NET开发通用组件发布(四) 日志记录组件

组件介绍和合作开发 http://www.cnblogs.com/MrHuo/p/MrHuoControls.html 日志记录组件功能介绍 通过基类Logger,实现了文本记录日志和数据库记录日志两 ...

Elmah 日志记录组件

http://www.cnblogs.com/jys509/p/4571298.html 简介 ELMAH(Error Logging Modules and Handlers)错误日志记录模块和处理 ...

日志记录组件[Log4net]详细介绍

转载:http://www.cnblogs.com/liwei6797/archive/2007/04/27/729679.html 因为工作中有要用到Log记录,找到一篇不错的文章,就转了过来. 一 ...

C#Log4net日志记录组件的使用

一.Log4Net介绍 Log4net是基于.NET开发的一款非常著名的记录日志开源组件.它通过一套XML配置的日志引擎,将日志分不同的等级,分别是:FATAL . ERROR. WARN. INFO ...

MVC使用 Elmah 日志记录组件

在后台管理中,有一些操作是需要增加操作日志的,尤其是对一些比较敏感的金额类的操作,比如商城类的修改商品金额.删除商品.赠送金额等人工的操作.日志中记录着相关操作人的操作信息,这样,出了问题也容易排查. ...

Log4Net异常日志记录在asp.net mvc3.0的应用

前言 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.本文主要是简单的介绍如何在Visual ...

log4net日志记录

这里是接着上一篇来优化的,上篇:ASP.NET MVC中错误日志信息记录 log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件,数据库,EventLog等),日志就是程序的黑 ...

Log4Net异常日志记录在asp.net mvc3.0的应用(转载)

这篇博客写的很好:http://www.cnblogs.com/qianlifeng/archive/2011/04/22/2024856.html 前言 log4net是.Net下一个非常优秀的开源 ...

随机推荐

扩展KVM镜像的虚拟磁盘大小

当我们需要扩展模板镜像的虚拟磁盘大小时,比如原来的虚拟磁盘大小为20G,现在我们想将其扩展到30G,那么我们可以根据如下步骤来操作. 整个流程可以分为三个阶段: 1.扩展KVM镜像磁盘文件大小到30G ...

请让页面中的一个元素(10px*10px)围绕坐标(200, 300) 做圆周运动

Making things move

【python】按行切分文本文件

python脚本利用shell命令来实现文本的操作, 这些命令大大减少了我们的代码量. 比如按行切分文件并返回切分后得到的文件列表,可以利用内建的split命令进行切分.为了返回得到的文件列表名,可以 ...

想要见识外太空?一款VR头显就能帮你实现梦想

除了宇航员,我们中的大多数人一生都没有机会前往地球之外的宇宙空间,只能在图片和纪录片中感受浩瀚宇宙的震撼. 美国肯尼迪航天中心和BrandVR合作推出的VR头显 而NASA在VR中的投资,创造的新的V ...

mysql创建数据表时如何判断是否已经存在?

>>> create table if not exists people(name text,age int(2),gender char(1)); 如上代码表示创建一个名为peo ...

PHP7.* AES的加密解密

之前写过一篇: PHP AES的加密解密-----[弃用] 使用的是php5.*之前的mcrypt_decrypt 函数,该函数已经在php7.1后弃用了,上马的是openssl的openssl_en ...

reset Cisco 2960 password

详见:http://www.cahilig.net/2014/04/14/how-reset-cisco-2960-switch-password-without-losing-your-config ...

mysql8.0 1251错误

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; ALTER USER '; FLUSH PR ...

Charles抓包显示乱码解决方法

[问题现象] 在抓https协议请求时,Request和Response显示乱码了: [解决办法] 第一步:点击 [工具栏-->Proxy-->SSL Proxying Settings. ...

Java在线备份和还原MySQL数据库。

2018年6月29日14:00:48 阅读数:1534 今天整了整整一整天,终于使用Java在线备份和还原MySQL数据库了,哎,备份倒是很快,就是在还原的时候遇到了一个问题,也不报错,结果将sql语 ...

html日志网页,以HTML为表现的日志记录组件相关推荐

  1. 日志模板html源码,HTML红色欧美形式教堂动态日志网页模板代码

    模板描述:红色 欧美形式 教堂动态日志.HTML红色欧美形式教堂动态日志网页模板代码HTML模板下载 代码结构 1. 引入CSS 2. 引入JS 3. HTML代码 Opening Hours - 1 ...

  2. 网页前端监控系统(错误日志,接口监控)的使用

    网页前端监控系统(错误日志,接口监控)的使用  开门见山地说当程序员开发网页达到一定的量级,用户的数量达到一个比较庞大的数量时,总会遇见一些怎么测试都无法复现的bug,但是用户操作的时候却能屡次碰到, ...

  3. 浅谈网页三层结构:表现层、业务层和数据层

    转自:微点阅读  https://www.weidianyuedu.com 网页设计 三层结构 表现层.业务层和数据层 1. 表现层(Presentation Layer): 表现层用于用户接口的展示 ...

  4. java看log技巧_Log日志框架的学习五.正确使用日志的10个技巧

    做一个苦逼的Java攻城师, 我们除了关心系统的架构这种high level的问题, 还需要了解一些语言的陷阱, 异常的处理, 以及日志的输出, 这些"鸡毛蒜皮"的细节. 这篇文章 ...

  5. 微信小程序开发17 日志监控:怎样面向业务设计日志方案?

    我们知道,应用在运行过程中会遇到各种突发情况,而完善的日志记录会提高开发者定位问题的速度,为开发者解决问题提供一些必要的信息.比如应用里负责和外部业务系统交互的接口,在某一时刻返回了与预期不符的数据. ...

  6. linux tail日志命令,linux tail命令及其它日志查看命令的用法

    当日志文件存储日志很大时,我们就不能用vi直接进去查看日志,需要Linux的命令去完成我们的查看任务. Log位置: /var/log/message 系统启动后的信息和错误日志,是Red Hat L ...

  7. 超详细部署ELK日志分析系统!每一步骤都有记录!ELK的详细使用!

    目录 一.ELK简介 二.Elasticsearch简介 三.Logstash简介 四.Kibana简介 五.ELK案例部署 5.1 案例环境 5.2 部署elasticsearch 5.3 部署Ap ...

  8. 小巧的日志记录组件 - 开源研究系列文章

    今天给大家带来一个小巧的日志记录组件LogHelper.这个组件是由Log4Net这个组件的由来而来的,不过只是写入.txt文本文件而已.如果能够对大家的项目有帮助那就更好了. 首先,打开.SLN解决 ...

  9. 日志记录组件[Log4net]详细介绍(转)

    一 Log4net简介 Log4net是基于.net开发的一款非常著名的记录日志开源组件.他最早是2001年7月由NeoWorks Limited启动的项目,基本的框架源于另外的一个非常著名的姐妹组件 ...

  10. ios 打印 详细错误日志_关于Xcode不能打印崩溃日志

    最近在调试应用的时候发现了一个问题, 就是Xcode的控制台不打印Crash日志. 几经周折终于发现了问题. 因为不能打印日志, 开始以为是我没有设置 NSSetUncaughtExceptionHa ...

最新文章

  1. c++软件开发面试旋极面试题_经典软件开发面试题:浏览器中输入一个网址后发生了什么?...
  2. WSL 使用者仍应该使用杀毒软件
  3. ORBSLAM2在Ubuntu14.04上详细配置流程
  4. shell 用环境变量的值修改properties文件
  5. 如何通过输入域名直接访问项目地址
  6. Uboot 启动流程分析
  7. Javascript:getElementsByClassName
  8. c语言如果调用的函数没有return,C语言中,整型函数若在调用时未获得return值,此时其值是如何确定的?...
  9. 免费的matlab程序学习下载网站总结
  10. 简单的遗传算法实例(MATLAB版)
  11. kernel ramdump分析--如何启动crash
  12. matlab中wavread函数错误改用方法
  13. Android wms粗略介绍
  14. 10005---CSS语法
  15. security基于数据库的认证
  16. TabLayout设置指示器的宽度
  17. 虚拟蜜网Honeywall的安装
  18. 大学生利用Python做了一个答题助手!别人自己搜,他的全自动!
  19. 【学习笔记】[北大集训 2021] 魔塔 OL
  20. 2021年T电梯修理考试资料及T电梯修理理论考试

热门文章

  1. 答读者问:钱和成长,哪个更重要?
  2. 辞职信微信html,女教师辞职信走红微信背后:“走心”
  3. Linux下查看CPU、内存占用率
  4. 2021全国高校计算机能力挑战赛程序设计赛Python组区域赛(初赛)试题及部分个人解答
  5. MaaS在绽放,为人们提供出行自由:过渡到新的范式
  6. Ubuntu:火狐浏览器加速下载(Flashgot+Aria2+Uget)
  7. 文件打开模式r,w,a,r+,w+,a+的区别和联系
  8. 101平衡模式 DIR的理解
  9. 4.1.8 OS之文件保护(口令保护、加密保护、访问控制)
  10. Hibernate入门简介----张冬