`
yuelangyc
  • 浏览: 454735 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java的logger打印异常的堆栈信息

阅读更多
        在java开发中,logger打印错误日志是最常用的,我以前在记录日志的时候习惯用的是logger.info(message); 或者将异常直接放进去,logger.info(exception);如果这样记录在程序出问题的时候,只能知道异常的大概信息,和自己注解的一些错误信息,不能像开发调试的时候那样看到一些错误堆栈的日志。就是像e.printStackTrace();的这样详细了。
        如何将堆栈的信息加入日志。


import org.apache.log4j.Logger;

public class TestException {

    public static final Logger logger = Logger.getLogger("logger.debug");
    
	public static void main(String[] args) {
		try {
			int a = 1 / 0;
		} catch (Exception e) {
			logger.error("ERROR", e);
			
			//e.printStackTrace();
		}
	}
}


分享到:
评论

相关推荐

    Java如何自定义异常打印非堆栈信息详解

    Java如何自定义异常打印非堆栈信息详解 Java中的异常处理是编程语言中非常重要的一部分,正确地处理异常可以避免程序的崩溃和错误,而自定义异常打印非堆栈信息则是Java中异常处理的一种重要机制。本文将详细介绍...

    Java Logger Logging 封装

    6. **异常堆栈跟踪**:在记录错误或警告日志时,自动添加异常的堆栈跟踪信息,帮助定位问题。 7. **关闭与清理**:提供`shutdown()`方法,用于在程序结束时关闭所有日志处理器,释放系统资源。 在`LoggerUtil.java...

    Android-logger日志打印工具

    此外,`logger`支持堆栈跟踪和异常信息的自动打印,这对于定位代码中的错误非常有帮助。当发生异常时,`logger`会自动捕获并输出相关的堆栈跟踪信息,无需开发者手动添加额外的代码。 在使用`logger`时,首先需要将...

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

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

    开源日志库Logger使用Demo

    // 这将打印堆栈跟踪信息 } ``` 或者,打印对象的JSON表示形式: ```java MyObject obj = new MyObject(); Logger.json(new Gson().toJson(obj)); // 如果使用Gson库 ``` 在博客...

    Logback 异常日志减少打印内容

    在日志模式中,减少`%throwable`的深度或完全移除可以避免过多的堆栈信息: ```xml <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n%ex{1} ``` 在这个例子中,`%ex{1}`只会显示异常堆栈的...

    java-操作记录-对比操作前后不同

    4. **异常处理**:捕获和记录任何在操作过程中抛出的异常,包括异常类型、堆栈跟踪和相关上下文信息。 5. **事务管理**:在涉及数据库操作时,确保日志与事务同步,以便在回滚事务时也能撤销相应的日志记录。 在...

    JAVA版简单日志工具类

    - **异常堆栈追踪**:当记录错误时,自动捕获并打印异常的堆栈信息,有助于定位问题所在。 - **文件输出**:除了控制台输出,还可以选择将日志写入文件,便于长期存储和后期分析。 3. **使用方法** - **引入依赖...

    异常+开源日志

    - `void printStackTrace()`:打印异常的堆栈跟踪信息。 - `String getMessage()`:获取异常的信息描述。 - **常见异常类型**: - 运行时异常(`RuntimeException`):无需显式处理的异常,如空指针异常(`...

    java 学习 帮手

    **问题描述**:在捕获异常后,仅通过打印堆栈跟踪信息而没有进一步处理,这种做法可能会忽略掉重要的异常情况,导致程序无法正常运行或数据不一致等问题。 **代码示例**: ```java catch (Exception ex) { ex....

    Android日志打印类

    - 添加自动打印堆栈跟踪的能力,帮助开发者快速定位日志生成的位置,特别是在复杂的代码结构中。 - `printStackTrace()`方法可以用于这个目的。 5. **日志裁剪**: - 当日志过长时,可以实现一个`LogTool`的裁剪...

    java代码重构经验总结

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

    android--java写日志文件

    - 日志信息应简洁明了,尽量包含关键信息,如错误码、异常信息等。 - 在发布版本中,可以考虑降低日志级别或完全关闭日志输出,以提高性能。 对于更复杂的需求,如保存日志到设备本地或上传服务器,你可以自定义...

    cll.rar_日志 java_日志管理

    例如,Log4j的配置文件可以设置哪些类的日志应打印到控制台,哪些应写入文件,以及使用何种日志级别。 日志处理器会根据消息的优先级和logger的等级来决定是否记录。Logger对象通常关联到特定的类或模块,每个...

    资料-Java日志.zip

    - 尽量避免在日志中打印异常的堆栈信息,除非调试需要。 - 使用占位符而非字符串连接来提高性能,如`logger.info("用户ID: {}", userId);` - 使用日志框架提供的MDC(Mapped Diagnostic Context)或NDC(Nested ...

    利用Java获取文件名、类名、方法名和行号的方法小结

    另外,如果代码是在JVM字节码级别被优化,例如通过Java的Just-In-Time (JIT)编译,那么获取到的信息可能并不完全准确,因为优化可能会消除某些堆栈信息。 在实际开发中,这些信息常用于创建详细的日志条目,帮助...

    异常处理的陋习

    仅仅打印堆栈跟踪并不解决问题。 5. **最后的catch块**:可以有一个`catch(Exception e)`作为最后的手段,用于捕获所有未被前面更具体`catch`块处理的异常,但这里应包含一些全局错误处理,如关闭资源、记录日志等...

    Java语言编程规范--华为技术有限公司

    - 使用`Logger`记录异常信息,提供足够的上下文信息。 - 不要在控制台直接打印异常堆栈,而是通过日志系统输出。 8. **并发编程** - 使用同步机制(如`synchronized`)或并发工具类(如`java.util.concurrent`包...

    slf4j完整日志文件

    `,这会自动打印异常堆栈信息。 **8. 性能优化** 在生产环境中,应根据需求调整日志级别,减少不必要的日志输出以提升性能。 总结,SLF4J是Java日志管理的重要工具,通过提供统一的API,使得开发者可以在不改变...

    android slf4j log4j日志框架

    这些方法接收一个字符串参数,代表日志消息,有些还可以接受一个Exception对象来记录异常堆栈信息。 总结来说,SLF4J和Log4j都是强大的日志解决方案,SLF4J在Android开发中提供了一种轻量级且灵活的方式来记录日志...

Global site tag (gtag.js) - Google Analytics