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

Log Exception的几个规则

    博客分类:
  • Java
 
阅读更多

要记好log,确实是一件显功底的事。平时在写代码的时候,往往不注意这桩事儿,但却又往往在项目上线后被没条理的,莫名其妙的日志弄的头昏脑胀。
下面,我们就来看下几个规则,也属作者的经验之谈

1. 只记录代码的异常,不记录业务上的异常
”比如登录用户名不存在“ 这样的异常,纯属浪费磁盘空间
2. 在异常中记录本次方法内的数据
我们经常会遇到在方法中由于数据所产生的异常,比如我们会看到这样的日志
could not charge money from account
如果我们记录为
Tried to charge 20 EUR from account 1234567890 but 10 EUR available” compared to “Charge failed”
我们就很直观的能知道错误的原因
3. 将异常产生的原因记录在log中
4. 注意log的级别。
5. 不要重复的记录日志
catch (NoUserException e) {
  LOG.error("No user available", e);
  throw new UserServiceException("No user available", e);
}

这样的日志由于在UserServiceException中会有记录,那么前面的LOG.error就是多余。
6. 不要用stdout
7. 注意Log的格式和语法,别记录的log到时候火星人都看不懂。
0
0
分享到:
评论

相关推荐

    log4net使用实例

    在C#项目中,集成log4net非常简单,主要分为以下几个步骤: 1. **安装log4net** 首先,需要在项目中引入log4net库。这可以通过NuGet包管理器完成,搜索"log4net"并安装对应的包。如果使用的是压缩包中的`log4...

    log4j详细的学习笔记.

    Logger的使用通常涉及以下几个步骤: 1. 获取Logger实例:通常使用`Logger.getLogger(String name)`或`Logger.getLogger(Class clazz)`方法获取。对于类内部的日志,推荐使用类名作为Logger的名称。 2. 配置日志...

    Mina2.0框架源码剖析.doc

    为了更深入地理解Mina的工作原理,我们需要详细了解Mina中的几个核心接口: ##### 1. `IoService` 接口 `IoService`接口是Mina中最基本的服务接口,它提供了网络服务的基础功能。在Mina2.0中,有两个主要实现:`...

    C# Nlog日志使用并发送邮件

    移植到你的系统中,主要涉及以下几个步骤: 1. 将Nlog库添加到项目。 2. 创建或修改Nlog.config配置文件,配置日志目标和规则。 3. 在代码中引入Nlog并创建Logger实例。 4. 捕获并记录异常信息,确保在Error级别及...

    Java选择题.pdf

    根据题目描述,我们可以深入探讨以下几个知识点: 1. 继承:子类可以从一个或多个基类(父类)继承属性和方法。选项C提到子类可以包含父类的私有属性,这是不正确的,因为Java的私有属性(private)在子类中是不...

    “智能门禁”项目 Server 端的 Java 源码。.zip

    例如,可能会有以下几个关键文件: 1. `Application.java`:Spring Boot的主入口类,启动应用。 2. `UserController.java`:处理用户登录、注册等请求的控制器。 3. `DoorAccessService.java`:门禁访问服务,负责...

    SpringAop.rar_aop

    在Spring AOP中,我们定义了几个核心概念: 1. 切面(Aspect):切面是AOP的核心,它结合了业务逻辑和系统服务,例如日志记录、事务管理和性能监控。一个切面可以包含多个通知(advice)。 2. 通知(Advice):...

    C#批量删除指定文件(路径,后缀名,大小) 代码

    首先,我们需要理解几个关键概念: 1. **路径(Path)**:文件在计算机中的位置,包括驱动器、目录和文件名。在C#中,可以使用`System.IO.Path`类来处理路径相关的操作,如获取路径的各个部分、组合路径等。 2. **...

    [C#图文教程]c#从0开始写采集软件 源码

    源码分析应关注以下几个方面: 1. UI布局和控件:理解界面设计,如使用什么控件展示输入和结果。 2. 事件处理:查看事件处理函数,了解用户交互如何触发采集过程。 3. 数据处理逻辑:查找处理网页数据和存储的代码...

    阿里巴巴Java开发手册_java开发手册_阿里巴巴_

    手册主要涵盖了以下几个核心部分: 1. **基本规约**:这部分主要包括了命名规则、注释规则、代码格式等基础规范。例如,类名采用全大写字母的驼峰命名法,变量名应简洁明了,注释要清晰解释代码逻辑,代码缩进使用...

    apache-camel-2.7.2.tar.gz

    在这个目录中,你可以期待找到以下几类文件和目录: 1. **README**: 提供有关Camel的基本信息、安装指南和快速入门说明。 2. **LICENSE**: 包含项目的许可协议,通常为Apache License 2.0,允许商业和非商业使用。 ...

    强力 Java 爬虫spiderman-master.zip

    在"spiderman-master"项目中,可能包含以下几个关键部分: 1. **主程序(Main Class)**:这是爬虫的入口点,通常包含启动爬虫的逻辑。主程序可能会初始化爬虫配置,创建线程池,以及调度爬虫任务。 2. **爬虫类...

    阿里巴巴 Java 开发手册。

    手册涵盖了许多关键的开发实践,包括但不限于以下几个方面: 1. **基本编码规范**:这是对 Java 代码风格的基本要求,包括命名规则(类名、方法名、变量名等),注释规范,以及代码格式化等。例如,类名应采用驼峰...

    新Java计算器(四)

    在前几部分中,我们可能已经搭建了基础的计算器框架,包括基本的加减乘除运算。现在,我们将进一步增强计算器的功能,引入更复杂的运算和错误处理机制。 首先,我们要关注的是支持更多种类的运算,如开方、指数、...

    THINKPHP项目源代码

    新手可以从以下几个方面学习和分析: 1. **路由配置**:查看`config/route.php`文件,了解ThinkPHP的路由规则,如何将URL映射到控制器和方法。 2. **控制器(Controller)**:在`application/controller`目录下,...

    android demo,webview_js(webview的js方法调用java方法)。

    总结来说,本示例的"android demo,webview_js"涵盖了以下几个关键知识点: 1. Android WebView的使用和配置,包括开启JavaScript支持。 2. 实现WebViewClient以监听和处理JavaScript调用Java方法的请求。 3. 在...

    阿里巴巴Java开发手册v1.2.0.zip

    手册的核心内容包括以下几个方面: 1. **基本编码规范**:这部分规定了Java代码的基本格式,如命名规则(类名、方法名、变量名等)、注释标准、空格和缩进等,以保持代码的一致性和可读性。例如,推荐使用驼峰命名...

    xwork-2.1.1

    在源码中,我们可以深入学习以下几个关键知识点: 1. **动作调度(Action Dispatching)**:XWork通过`com.opensymphony.xwork2.DefaultActionProxy`类来创建并执行Action。它根据配置文件(如struts.xml)中的映射...

    Enterprise Library 4.1 安装程序

    2. **Exception Handling Application Block (EHAB)**:这个模块帮助开发者实现统一的异常处理策略,可以捕获、记录和重新抛出异常,以提高代码的健壮性和可维护性。 3. **Logging Application Block (LAB)**:用于...

    阿里泰山版Java开发手册.zip

    在《阿里泰山版Java开发手册》中,以下几个核心知识点值得深入理解和掌握: 1. **编码风格与规范**:手册详细规定了Java代码的命名规则、注释标准、空格和缩进等,强调代码的整洁和一致性。例如,类名应采用驼峰...

Global site tag (gtag.js) - Google Analytics