运行日志

讲解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); 
    } 
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值