`
稻-草
  • 浏览: 62666 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

运行日志

阅读更多

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

 

1
0
分享到:
评论

相关推荐

    Kettle运行日志记录

    标题“Kettle运行日志记录”涉及到的是Pentaho Data Integration(Kettle)工具的日志管理功能。Kettle,也称为Spoon,是一款强大的ETL(Extract, Transform, Load)工具,用于数据集成和数据转换任务。日志记录在...

    程序运行日志处理解决方案

    程序运行日志处理解决方案旨在提供有效管理和分析日志的方法,以确保系统的稳定性和优化问题诊断。以下将详细阐述使用Enterprise Library 2.0进行日志处理的一些核心知识点: 1. **引入依赖库**:在进行日志处理时...

    运行部运行日志管理制度汇编.doc

    运行部运行日志管理制度是规范运行部各岗位对运行日志进行填写、检查和考核的重要准则,旨在确保记录内容的准确性、一致性,真实反映运行状况,保障生产工作的连续性。制度要求运行日志涵盖主机和辅助设备的运行状态...

    基于Python开发网络运行日志收集整理系统设计与实现.zip

    标题中的“基于Python开发网络运行日志收集整理系统设计与实现”揭示了这个项目的核心内容,即使用Python编程语言来构建一个系统,该系统的主要功能是收集、整理网络运行过程中的日志数据。网络日志通常包含服务器...

    倍福运行日志算法.docx

    根据提供的文件信息,本文将对“倍福运行日志算法”进行详细解析,重点在于理解其日志记录机制以及如何通过扩展实现更高效、全面的日志管理。 ### 标题与描述解读 #### 标题:“倍福运行日志算法” - **倍福**:...

    基于Python开发网络运行日志收集整理系统设计与实现.pdf

    基于Python开发网络运行日志收集整理系统设计与实现.pdf

    压缩机运行日志模板共2页.pdf.zip

    【标题】"压缩机运行日志模板共2页.pdf.zip" 涉及的主要知识点是压缩文件管理和压缩机操作记录的规范性。这个文件是一个压缩包,包含一个名为"压缩机运行日志模板共2页.pdf"的文档,很可能是为了帮助用户或工作人员...

    运行部运行日志管理制度.doc

    运行部运行日志管理制度是规范运行部各岗位工作记录的重要准则,旨在确保日志内容的准确性、一致性,以便真实反映运行状态,保证生产工作的连续性和稳定性。本制度适用于运行部的所有岗位,要求运行人员严格按照规定...

    微信3.1.0.72 运行日志HOOK 源码

    微信3.1.0.72 运行日志HOOK源码分析 微信作为中国乃至全球最流行的即时通讯工具之一,其内部的运行机制一直是开发者和技术爱好者关注的焦点。本篇将深入探讨“微信3.1.0.72运行日志HOOK源码”这一主题,了解如何...

    调试运行日志程序,可以输出调试信息

    本文将详细讲解如何通过调试运行日志程序来输出调试信息,以及如何利用类CLog实现这一功能。 首先,让我们理解什么是调试信息。在软件开发中,调试信息是用于帮助开发者理解代码执行过程的详细数据。这些信息通常...

    毕业设计(论文)-基于ASP-NET的运行日志管理系统设计.doc

    然而,传统的手工运行日志管理模式存在许多缺陷,如记录工作日志、发送通知、分配任务等,都是手工操作的,这样不仅易于丢失,查找烦琐,并且管理麻烦。 二、ASP-NET技术的应用 ASP-NET是一种基于Web的开发技术,...

    qt 实现运行日志

    qt 实现日志打印功能,通过调用QsLog2,实现记录日志功能,代码下载调试,代码实现很清楚,功能完整,可以实现强大功能,打印日志。 qt 实现日志打印功能,通过调用QsLog2,实现记录日志功能,代码下载调试,代码...

    EasyTcpServer-CELLLog管理运行日志.zip

    EasyTcpServer-CELLLog管理运行日志

    linux下实时查看tomcat运行日志的方法

    ### Linux下实时查看Tomcat运行日志的方法及Tail命令详解 #### 核心知识点概览 1. **切换目录至Tomcat日志所在路径** 2. **使用`tail -f`命令实现实时查看日志** 3. **深入理解`tail`命令及其参数** #### 1. 切换...

    Zookeeper修改运行日志zookeeper.out输出路径

    Zookeeper中运行日志 zookeeper.out 文件的输出路径默认为启动脚本的当前路径,导致Zookeeper集群启动失败时总是不记得输出日志在哪儿,不便于查找错误原因,因此很有必要设置固定路径来保存运行日志 在本次实验之前...

    lammps中进行纳米压痕模拟的运行日志

    lammps中进行纳米压痕模拟的运行日志

    Docker容器中运行flume及启动不输出运行日志问题

    在Docker容器中运行Flume时,可能会遇到一个常见的问题,即Flume在启动后不会输出任何运行日志。这可能会导致调试和监控困难。本文将深入探讨这个问题的原因以及如何解决。 首先,让我们理解Flume的基本配置。Flume...

    基于Spring对远程Spark服务二次封装,实现SparkSql执行、动态资源分配以及获取运行日志等

    基于Spring对远程Spark服务二次封装,实现SparkSql执行、动态资源分配以及获取运行日志等。目前仅支持Yarn-Per-Job模式,即一个sql执行一个yarn容器。

    设备控制流程编辑框架 1.运行、复位流程工具编辑; 2.相机,寄存器,数量可增删改; 3.含报警、运行日志打印保存本地文件;

    设备控制流程编辑框架。 1.运行、复位流程工具编辑;...3.含报警、运行日志打印保存本地文件; 4.多线程任务,异步执行工具; 5.多轴操作工具; 6.电机,IO映射;xml文件可配置。 开发语言:C# + Halcon

Global site tag (gtag.js) - Google Analytics