讲解Log4j等日志工具应用的文章很多, 但是如何打好日志,什么时候打什么日志确实更高深的学问。
好的运行日志可以有效帮助问题定位,提高工作效率。
典型的不好的日志
日志泛滥:日志太多导致有用信息淹没其中
日志过少:不能帮助问题的定位,典型的就是异常路径没有记录日志
缺少信息:虽然记录了日志,描述含糊或没有加上必要的定位信息;如"Can't add role", 没有记录失败原因。
级别错误:这个问题没有上面几个严重,但是会造成工作效率下降。
日志一般分为5 个级别如下表:
级别名称 |
级别定义 |
debug ( 调试) |
函数的入口,记录函数调用关系。 |
info (信息)
|
业务正常处理流程,记录业务流程。 |
warn (警告) |
非期望的分支,但不会造成大的影响。 |
error (错误) |
非期望的分支,会导致系统部分功能的不能工作。 |
fatal (致命) |
非期望的分支,会导致整个系统功能异常。 |
/**
* @param role 新增角色
* @return 新增角色的ID,null表示新增不成功
* @throws RoleCountLimitException 角色个数达规格异常
* @throws RoleNameConflictException 角色名称和已存在的角色冲突异常
* @throws RoleAclException 自定义角色不能有角色管理权限异常
*/
public Integer addRole(Role role)
throws RoleCountLimitException, RoleNameConflictException, RoleAclException
{
log.debug("Enter function addRole");
if (role == null ||
role.isSystemDefault() ||
role.getName() == null ||
role.getName().length() == 0)
{
log.warn("Can't add role for error input");
return null;
}
// 角色个数达最大值
if (roleDao.getRoleCount() >= MAX_ROLE_COUNT)
{
log.info("Can't add role for Role count reach it's limit");
throw new RoleCountLimitException();
}
RoleResource resource = resourceDAO.getRoleResource(role.getName());
if (resource != null)
{
log.info("Can't add role for RoleName conflict with system defalut role");
throw new RoleNameConflictException();
}
Role existRole = roleDao.getRole(role.getName());
if (existRole != null)
{
log.info("Can't add role for RoleName conflict with other role");
throw new RoleNameConflictException();
}
// 自定义角色不能有角色管理权限
if ((role.getAcl() & Role.ROLE_MANAGE) !=0)
{
log.warn("Can't add role with ROLE_MANAGE in acl");
throw new RoleAclException();
}
return roleDao.save(role);
}
分享到:
相关推荐
医疗废物暂存运行日志.docx
基于Python开发网络运行日志收集整理系统设计与实现.pdf
随着现代计算机系统的规模和复杂性不断增大,其运行日志的数量也不断增多,但是由于日志数据的规模巨大、内容杂乱,用户查看日志数据具有一定的困难,因此对应用软件运行日志进行有效收集与处理具有重要意义。...
基于Python开发网络运行日志收集整理系统设计与实现
运行部运行日志管理制度汇编.doc
倍福运行日志算法.docx
NULL 博文链接:https://qq85609655.iteye.com/blog/2173882
本资源用于解决日志处理需要的相关技术指导
这个代码实现了一个简单的应用程序,并使用了Logback日志框架来记录程序的运行日志。首先,我们通过调用LoggerFactory.getLogger()方法创建了一个Logger对象,用于记录应用程序的日志信息。然后,在主函数中,我们...
运行部运行日志管理制度.doc
调试运行日志程序文件,主要是对类CLog的实现,可以输出包括调试信息、 警告信息、错误信息和数据信息到每日的csv格式日志文件中去
压缩机运行日志模板共2页.pdf.zip
能获取到微信所有运行日志
Oracle AWR运行日志分析工具详解.docx
EasyTcpServer-CELLLog管理运行日志
lammps中进行纳米压痕模拟的运行日志
下面小编就为大家带来一篇linux下实时查看tomcat运行日志的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起 小编过来看看吧
毕业设计(论文)-基于ASP-NET的运行日志管理系统设计.doc
可实现每日机器运行日志的功能。同时也方便与上位机或协作方进行查错,带时间戳功能,在哪一毫秒进行的状态实实在在记录。 获取当前系统时间的各种数值,方便记录当前时间发生时间。三个输出可供选择,天、秒、毫秒...
Zookeeper中运行日志 zookeeper.out 文件的输出路径默认为启动脚本的当前路径,导致Zookeeper集群启动失败时总是不记得输出日志在哪儿,不便于查找错误原因,因此很有必要设置固定路径来保存运行日志 在本次实验之前...