理解正确的日志输出级别

原文链接:http://macrochen.iteye.com/blog/1399082

 

很多程序员都忽略了日志输出级别, 甚至不知道如何指定日志的输出级别. 相对于System.out来说, 日志框架有两个最大的优点就是可以指定输出类别(category)和级别(level). 对于日志输出级别来说, 下面是我们应该记住的一些原则:
ERROR:系统发生了严重的错误, 必须马上进行处理, 否则系统将无法继续运行. 比如, NPE, 数据库不可用等.

WARN:系统能继续运行, 但是必须引起关注. 对于存在的问题一般可以分为两类: 一种系统存在明显的问题(比如, 数据不可用), 另一种就是系统存在潜在的问题, 需要引起注意或者给出一些建议(比如, 系统运行在安全模式或者访问当前系统的账号存在安全隐患). 总之就是系统仍然可用, 但是最好进行检查和调整.

INFO:重要的业务逻辑处理完成. 在理想情况下, INFO的日志信息要能让高级用户和系统管理员理解, 并从日志信息中能知道系统当前的运行状态. 比如对于一个机票预订系统来说, 当一个用户完成一个机票预订操作之后, 提醒应该给出"谁预订了从A到B的机票". 另一个需要输出INFO信息的地方就是一个系统操作引起系统的状态发生了重大变化(比如数据库更新, 过多的系统请求).

DEBUG:主要给开发人员看, 下面会进一步谈到.

TRACE: 系统详细信息, 主要给开发人员用, 一般来说, 如果是线上系统的话, 可以认为是临时输出, 而且随时可以通过开关将其关闭. 有时候我们很难将DEBUG和TRACE区分开, 一般情况下, 如果是一个已经开发测试完成的系统, 再往系统中添加日志输出, 那么应该设为TRACE级别.

以上只是建议, 你也可以建立一套属于你自己的规则. 但是一套良好的日志系统, 应该首先是能根据情况快速灵活的调整日志内容的输出.

转载于:https://www.cnblogs.com/game-life/p/4191408.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/423796.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mybatis学习(30):修改功能

目录结构 com.geyao.mybatis.mapper BlogMapper类 package com.geyao.mybatis.mapper;import java.util.List; import java.util.Map;import org.apache.ibatis.annotations.Param;import com.geyao.mybatis.pojo.Blog;public interface BlogMapper {Blog selectBlog(Integer…

如何在textarea中显示html代码

XML/HTML代码<html> <head> <meta http-equiv"Content-Type" content"text/html; charsetgb2312"> <title>新建网页</title> </head> <body> <table border"1" width"100%" id&qu…

ElasticSearch初体验之使用Java进行最基本的增删改查

好久没写博文了&#xff0c; 最近项目中使用到了ElaticSearch相关的一些内容&#xff0c; 刚好自己也来做个总结。 现在自己也只能算得上入门&#xff0c; 总结下自己在工作中使用Java操作ES的一些小经验吧。 本文总共分为三个部分&#xff1a; 一&#xff1a;ES相关基本概念及…

mybatis学习(31):修改部分字段(有外键,先查询,再修改)

目录结构 com.geyao.mybatis.mapper BlogMapper类 package com.geyao.mybatis.mapper;import java.util.List; import java.util.Map;import org.apache.ibatis.annotations.Param;import com.geyao.mybatis.pojo.Blog;public interface BlogMapper {Blog selectBlog(Integer…

vb 垂直滚动条定位

Sub TreeFill3(cTime As String, ByVal cKey As String) Tree3.Nodes.Clear 循环填充tree1控件内容 Dim c As String Dim cNode As Node Dim cSql As String Dim cRec As rdoResultset Dim cRec1 As rdoResultset Dim i As Integer cS…

python运算符的优先级

运算符优先级 如果你有一个如2 3 * 4那样的表达式&#xff0c;是先做加法呢&#xff0c;还是先做乘法&#xff1f;我们的中学数学告诉我们应当先做乘法——这意味着乘法运算符的优先级高于加法运算符。 下面这个表给出Python的运算符优先级&#xff0c;从最低的优先级&#xf…

mybatis学习(32):删除操作

目录结构 com.geyao.mybatis.mapper BlogMapper类 package com.geyao.mybatis.mapper;import java.util.List; import java.util.Map;import org.apache.ibatis.annotations.Param;import com.geyao.mybatis.pojo.Blog;public interface BlogMapper {Blog selectBlog(Integer…

创业起步的十大准备步骤

导读 对于大多数首次创业者&#xff0c;创业起步如同小孩子刚刚开始学走路一样&#xff0c;资金可能并不会十分丰厚&#xff0c;再加上经验的缺失&#xff0c;形成了创业阶段的薄弱环节。因此&#xff0c;创业起步时一定要结合自身优势并在规划中下足功夫。 ⒈怎样寻找创业模…

git 常用命令备查

一.git 提交文件的流程git add -> git commit -> git push 暂存区 ->本地仓库-> 远程仓库 二. 常用git命令1.初始化git仓库命令 git init 2.添加用户和邮箱 $ git config --global user.name "wumginxm" $ git config --global user.email zhangsan25…

Hive笔记之JOIN的左外链接和右外链接

一 为什么要用左外表或者右外表 hive中对多个表联合操作时,总是按照从左到右顺序执行,.因为hive在对每行记录进行 操作时,它会尝试将较小的表缓存起来,然后扫描最大的那张表.因此需要保证在连续查询中的表的大小从左往右依次增加,否则当数据的量很大时,会大大降低hive的执行的…

mybatis学习(33):动态sql if

目录结构 com.geyao.mybatis.mapper BlogMapper类 package com.geyao.mybatis.mapper;import java.util.List; import java.util.Map;import org.apache.ibatis.annotations.Param;import com.geyao.mybatis.pojo.Blog;public interface BlogMapper {Blog selectBlog(Integer…

小程序·云开发实战 - 体重记录小程序

前一段看到朋友圈里总是有人用txt记录体重&#xff0c;就特别想写一个记录体重的小程序&#xff0c; 现在小程序的云开发有云函数、数据库&#xff0c;真的挺好用&#xff0c;很适合个人开发者&#xff0c;服务器域名什么都不用管&#xff0c;云开发让你完全不用操心这些东西。…

“软件宝宝”出生前,安全系列文章(一)

原文出处&#xff1a;http://www.cnblogs.com/HappyQQ/ 作者&#xff1a;黄启清 日期&#xff1a;2008-6-26 谨以此文献给我最亲爱的妈妈(http://mama520.cn/) 本文将扩展“软件宝宝”安全成长史“软件宝宝出生前”段落中的内容&#xff0c;系列文章将会继续扩展&#xff0…

sql(join on 和where的执行顺序)

sql(join on 和where的执行顺序&#xff09;left join :左连接&#xff0c;返回左表中所有的记录以及右表中连接字段相等的记录。 right join :右连接&#xff0c;返回右表中所有的记录以及左表中连接字段相等的记录。 inner join: 内连接&#xff0c;又叫等值连接&#xff0c;…

mybatis学习(34):动态sql-choose

目录结构 com.geyao.mybatis.mapper BlogMapper类 package com.geyao.mybatis.mapper;import java.util.List; import java.util.Map;import org.apache.ibatis.annotations.Param;import com.geyao.mybatis.pojo.Blog;public interface BlogMapper {Blog selectBlog(Integer…

小程序·云开发实战 - 校园约拍小程序

创意来源于生活&#xff0c;之所以开发这个校园约拍小程序&#xff0c;是因为在摄影选修课上常听老师抱怨外出写生老找不到模特&#xff0c;许多大学生都想拥有一套专属自己记忆的摄影作品&#xff0c;记录下不会磨灭的美好回忆&#xff0c;可如何找到让自己满意的摄影师是他们…

传统图片验证算法的缺点及改进(原理篇)

图片验证最常用在防恶意注册的场景&#xff0c;但传统图片验证方法的缺点在于需在服务器端维护这些随机生成的验证码字符串&#xff0c;所以实质上只是将恶意注册的影响从数据库转移到了内存&#xff0c;维护这个内存资源仍然会带来一些麻烦&#xff0c;包括定期清理&#xff0…

hive关于left join 和join时候on条件总结

hive中使用join时候on条件 1、如果 select * from a left join b on(a.字段b.字段) 工作正常 2、如果 select * from a left join b on(a.字段b.字段&#xff0c;b.字段某值&#xff0c;b.……) 工作正常 3、如果 select * from a left join b on(a.字段b.字段&#xff0c;a.字…

mybatis学习(35):sql-where

目录结构 com.geyao.mybatis.mapper BlogMapper类 package com.geyao.mybatis.mapper;import java.util.List; import java.util.Map;import org.apache.ibatis.annotations.Param;import com.geyao.mybatis.pojo.Blog;public interface BlogMapper {Blog selectBlog(Integer…

You get a dream...you gotta protect it.

Dont ever let somebody tell you...you cant do something. You get a dream...you gotta protect it. If you want something,go get it. MOVIE 《当幸福来敲门》 转载于:https://www.cnblogs.com/mtc/archive/2008/07/03/1235079.html