`

把e.printStackTrace的堆栈信息打印在log.error()中

    博客分类:
  • java
 
阅读更多
大家都知道,网站在运行的过程中,打印必要的log对记录网站的运行情况、从而分析程序问题是很重要的。在Java工程里面配置好log4j之后就可以进行log记录了。
log分为几个级别:error、info、debug、fatal,应根据网站的具体情况,配置合适的level。
例子:
log.error("libzone.cn exception:链接数据库出错")
log.info("libzone.cn exception:链接数据库出错")
log.debug("libzone.cn exception:链接数据库出错")
log.fatal("libzone.cn exception:链接数据库出错")。

有时候,我们有必要把出错时候的异常信息打印进log里面,例子:
        }catch (Exception e){
            e.printStackTrace();
            log.error("libzone.cn exception:" + e);
            //log.info("libzone.cn exception:" + e);
            //log.debug("libzone.cn exception:" + e);
            //log.fatal("libzone.cn exception:" + e);
        }
以这种方式,指的是以"libzone.cn exception:" + e这种方式打印异常的时候,只会打印一个异常的概要信息,例子如下:
libzone.cn exception:com.BusinessException: java.lang.NullPointerException

有时候,这样的一个概要性的异常信息对于分析问题帮助不大,有可能我们想把异常的堆栈具体信息打印在log里面,那怎么在log.error()里面把e.printStackTrace的堆栈具体信息打印出来呢?这时候我们要以log.XXX(Object obj,Thowable e)这种方式,也就是要将异常对象作为第二个参数传递到log的方法中。例子如下:

       }catch (Exception e){
            e.printStackTrace();
            log.error("libzone.cn exception:", e);
            //log.info("libzone.cn exception:", e);
            //log.debug("libzone.cn exception:", e);
            //log.fatal("libzone.cn exception:", e);
        }
这样,我们就可以在log日志里面看到类似于控制台(console)里面那样的异常详细信息了。
如果全部把异常详细打印出来,有可能造成日志文件会很大;打印概要信息,可能对分析问题帮助不大。应根据自己的实际情况,选择合适的方式。
分享到:
评论

相关推荐

    Java将Exception信息转为String字符串的方法

    这样 log 日志中就会直接打印出异常堆栈中的全部信息。但是,如果你使用的是 `logger.error("异常信息:"+e.toString())` ;这种形式,它只会输出异常的名称,而不会有详细信息。 解决方法二:使用 StringWriter 这...

    Android Log介绍

    4. 使用异常堆栈跟踪:当捕获到异常时,使用`Log.e()`配合`Exception.printStackTrace()`,这样可以获得完整的堆栈跟踪信息。 总结,Android Log系统是开发者调试和优化应用程序不可或缺的工具。熟练掌握LogCat的...

    Android Log 存储卡

    Log.e("TAG", "Error message"); ``` 其中`TAG`是自定义的标识符,用于区分不同的日志来源,`message`则是要输出的具体信息。 本Demo的亮点在于,它不仅输出了日志,还将这些日志信息保存到了存储卡上。Android...

    安卓log工具的使用

    `Log.printStackTrace()`可以打印出完整的堆栈跟踪信息,这对于定位问题非常有帮助。 在某些情况下,可能需要收集日志数据以供后期分析。这时,可以使用`adb logcat > filename.txt`命令将Logcat输出保存到本地文件...

    android--java写日志文件

    首先,Android系统提供了一个名为`Log`的内置类,它提供了丰富的API用于打印不同级别的日志,如`Log.v()`, `Log.d()`, `Log.i()`, `Log.w()`, 和 `Log.e()`。这些方法分别对应于verbose、debug、info、warning和...

    java 学习 帮手

    **解决方案**:在开发环境中可以使用 `printStackTrace` 进行调试,但在生产环境中应当使用日志框架(如 Log4j 或 SLF4J)来记录异常信息。 ```java logger.error("发生异常", e); ``` ##### 6. 异常传播不当 **...

    android崩溃日志收集

    Log.e(TAG, "an error occured while writing file...", e); } } ``` ##### 2.3 错误报告发送 `sendReport()` 方法实现了将错误报告发送至远程服务器的功能。主要包含以下步骤: - **构建请求参数**:从日志...

    Android 错误信息捕获发送至服务器【整理】

    Log.e(TAG, "Error sending report: " + response.code()); } else { Log.d(TAG, "Error report sent successfully."); } } catch (IOException e) { Log.e(TAG, "Error sending report: " + e.getMessage());...

    Android日志打印类

    在Android开发中,日志打印是调试和问题排查的重要手段。`Log`类是Android SDK提供的内置工具,用于输出应用程序运行过程中的各种信息。本文将深入探讨如何利用自定义的日志打印类`LogTool`来增强`Log`类的功能,以...

    Java语言中实现打印功能的分析与应用.zip

    在Java编程语言中,打印功能是程序开发过程中不可或缺的一部分,它可以帮助开发者调试代码、输出信息以及生成报告。本文将深入探讨Java中实现打印功能的方法、关键类库和实用技巧,以便于开发者更好地理解和运用。 ...

    android app发送错误报告到邮箱

    在你的错误处理模块中,当捕获到异常时,调用这个`sendEmail()`方法,将错误信息(包括堆栈跟踪、设备信息等)作为邮件正文发送出去。例如: ```java try { // 你的代码... } catch (Exception e) { String ...

    java异常机制研究

    ### Java异常机制深入研究 #### 一、Java异常概述与分类 Java中的异常处理机制...` 重新抛出,然后在 `main` 方法中捕获并打印异常堆栈信息。这样的处理方式有助于保持异常信息的完整性,并使异常处理更加清晰有序。

    java生成word文件并下载.pdf

    } catch (Exception e) { log.error("文件下载出错:" + e.getMessage()); e.printStackTrace(); } return response; } } 这个代码段是关于在Java环境中使用FreeMarker模板引擎生成Word文件并提供下载服务的实现。...

    java平台故障分析与诊断

    在Java中,`e.printStackTrace()`或`Thread.currentThread().dumpStack()`可以打印堆栈跟踪。 4. **内存泄漏检测**:内存泄漏是Java应用程序常见的问题,可能导致系统资源耗尽。通过内存分析工具,如MAT(Memory ...

    一篇不错的讲解Java异常的文章

    在生产环境中,应使用日志框架(如Log4j、SLF4J等)记录异常信息,以便于后续分析和监控。 #### 3. 异常转换 有时候,可能需要将一种类型的异常转换为另一种类型,例如,将`IOException`转换为自定义的业务异常。...

    java代码重构经验总结

    2. **异常打印:** 使用`ex.printStackTrace()`虽然简单,但在生产环境中并不推荐,因为它只在控制台输出异常堆栈,不利于问题的追踪和解决。更好的做法是使用日志框架(如Log4j、SLF4J等)记录异常信息。 3. **...

    Python实现捕获异常发生的文件和具体行数

    或者,如果你使用了日志框架,如log4j或slf4j,你可以直接将异常传递给日志方法,例如`logger.error("", e)`,这样日志记录器会自动处理异常信息。 总的来说,无论在Python还是Java中,捕获并记录异常信息是编写...

    Android与PC Socket通讯

    Log.e("TCP", "S:Error", e); } finally { socket.close(); } ``` - 同样地,在客户端也需要处理可能出现的各种异常情况。 - 无论是否出现异常,最终都需要关闭 `Socket` 连接,以释放系统资源。 #### 三、...

    代码规范文档

    - 异常堆栈信息应通过`log.error("msg", e)`的形式输出,避免直接拼接日志消息和异常。 6. **文件命名**: - Java源文件命名应反映其功能,如`PartyDaoImpl.java`代表数据库操作的实现类。 - Web页面文件命名...

Global site tag (gtag.js) - Google Analytics