- 浏览: 138059 次
文章分类
最新评论
大家都知道,网站在运行的过程中,打印必要的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)里面那样的异常详细信息了。
如果全部把异常详细打印出来,有可能造成日志文件会很大;打印概要信息,可能对分析问题帮助不大。应根据自己的实际情况,选择合适的方式。
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中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
2013-05-13 13:13 1253主要实现把java对常用的一些数据转换成Json,以便前台的 ... -
(转载)Java Socket实战之五:使用加密协议传输对象
2013-01-07 16:38 647前面几篇博文提到了Socket中一些常用的用法,但是对于一些有 ... -
(转载)Java Socket实战之四:传输压缩对象
2013-01-07 16:28 598上一篇文章说到了用Java Socket来传输对象,但是在有 ... -
(转载)Java Socket实战之三:传输对象
2013-01-07 16:25 685前面两篇文章介绍了怎样建立Java Socket通信,这一篇 ... -
(转载)Java Socket实战之二:多线程通信
2013-01-07 16:23 1005说到怎样写一个最简单的Java Socket通信,但是在上一 ... -
(转载)Java Socket实战之一:单线程通信
2013-01-07 15:46 683现在做Java直接使用Socket的情况是越来越少,因为有很 ... -
map的三种遍历方法!
2012-12-20 16:54 643map的三种遍历方法! 集合的一个很重要的操 ... -
JAVA数组的定义及使用方法
2012-12-13 11:34 778数组是有序数据的集合,数组中的每个元素具有相同的数组名和下标来 ... -
(转载)fastJson
2012-12-13 10:48 656FastJSON是一个很好的java开源json工具类库,相比 ... -
(转载)FTP文件上传与下载
2012-12-06 15:14 821实现FTP文件上传与下载可以通过以下两种种方式实现(不知道还有 ... -
ORA-01460: 转换请求无法实现或不合理
2012-11-27 17:27 3923oracle10g数据库执行数据库更新sql时报错: Cau ... -
配置TOMCAT(,JAVA_HOMECATALINA_HOME,CLASSPATH)环境变量
2012-11-18 15:42 4687配置TOMCAT(,JAVA_HOMECATALI ... -
(转载)验证码无法显示:Could not initialize class sun.awt.X1 解决方案
2012-11-16 14:41 689网站验证码突然无法显示,并报如下错误。 Caused by: ... -
(转载)linux 下tomcat 报java.lang.OutOfMemoryError: PermGen space及其解决方法
2012-11-16 11:20 632PermGen space的全称是Permanent Gene ... -
JSP内置对象
2012-11-13 15:42 5711.request对象 客户端的请求信息被封装 ... -
用Java删除文件夹里的所有文件
2012-11-11 15:27 838import java.io.File;publ ... -
通过Java几行代码截取屏幕
2012-11-11 15:25 571通过java.awt.Robot的createScreenCa ... -
oracle日期类型字段的操作
2012-10-26 09:32 693在java对oracle的操作中 ... -
验证码无法显示:Could not initialize class sun.awt.X1 解决方案
2012-10-22 11:10 1012网站验证码突然无法显示,并报如下错误。 Caused by: ... -
http协议-简介
2012-09-29 17:43 768一、简介 超文本传输 ...
相关推荐
这样 log 日志中就会直接打印出异常堆栈中的全部信息。但是,如果你使用的是 `logger.error("异常信息:"+e.toString())` ;这种形式,它只会输出异常的名称,而不会有详细信息。 解决方法二:使用 StringWriter 这...
4. 使用异常堆栈跟踪:当捕获到异常时,使用`Log.e()`配合`Exception.printStackTrace()`,这样可以获得完整的堆栈跟踪信息。 总结,Android Log系统是开发者调试和优化应用程序不可或缺的工具。熟练掌握LogCat的...
Log.e("TAG", "Error message"); ``` 其中`TAG`是自定义的标识符,用于区分不同的日志来源,`message`则是要输出的具体信息。 本Demo的亮点在于,它不仅输出了日志,还将这些日志信息保存到了存储卡上。Android...
`Log.printStackTrace()`可以打印出完整的堆栈跟踪信息,这对于定位问题非常有帮助。 在某些情况下,可能需要收集日志数据以供后期分析。这时,可以使用`adb logcat > filename.txt`命令将Logcat输出保存到本地文件...
首先,Android系统提供了一个名为`Log`的内置类,它提供了丰富的API用于打印不同级别的日志,如`Log.v()`, `Log.d()`, `Log.i()`, `Log.w()`, 和 `Log.e()`。这些方法分别对应于verbose、debug、info、warning和...
**解决方案**:在开发环境中可以使用 `printStackTrace` 进行调试,但在生产环境中应当使用日志框架(如 Log4j 或 SLF4J)来记录异常信息。 ```java logger.error("发生异常", e); ``` ##### 6. 异常传播不当 **...
Log.e(TAG, "an error occured while writing file...", e); } } ``` ##### 2.3 错误报告发送 `sendReport()` 方法实现了将错误报告发送至远程服务器的功能。主要包含以下步骤: - **构建请求参数**:从日志...
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开发中,日志打印是调试和问题排查的重要手段。`Log`类是Android SDK提供的内置工具,用于输出应用程序运行过程中的各种信息。本文将深入探讨如何利用自定义的日志打印类`LogTool`来增强`Log`类的功能,以...
在Java编程语言中,打印功能是程序开发过程中不可或缺的一部分,它可以帮助开发者调试代码、输出信息以及生成报告。本文将深入探讨Java中实现打印功能的方法、关键类库和实用技巧,以便于开发者更好地理解和运用。 ...
在你的错误处理模块中,当捕获到异常时,调用这个`sendEmail()`方法,将错误信息(包括堆栈跟踪、设备信息等)作为邮件正文发送出去。例如: ```java try { // 你的代码... } catch (Exception e) { String ...
### Java异常机制深入研究 #### 一、Java异常概述与分类 Java中的异常处理机制...` 重新抛出,然后在 `main` 方法中捕获并打印异常堆栈信息。这样的处理方式有助于保持异常信息的完整性,并使异常处理更加清晰有序。
} catch (Exception e) { log.error("文件下载出错:" + e.getMessage()); e.printStackTrace(); } return response; } } 这个代码段是关于在Java环境中使用FreeMarker模板引擎生成Word文件并提供下载服务的实现。...
在Java中,`e.printStackTrace()`或`Thread.currentThread().dumpStack()`可以打印堆栈跟踪。 4. **内存泄漏检测**:内存泄漏是Java应用程序常见的问题,可能导致系统资源耗尽。通过内存分析工具,如MAT(Memory ...
在生产环境中,应使用日志框架(如Log4j、SLF4J等)记录异常信息,以便于后续分析和监控。 #### 3. 异常转换 有时候,可能需要将一种类型的异常转换为另一种类型,例如,将`IOException`转换为自定义的业务异常。...
2. **异常打印:** 使用`ex.printStackTrace()`虽然简单,但在生产环境中并不推荐,因为它只在控制台输出异常堆栈,不利于问题的追踪和解决。更好的做法是使用日志框架(如Log4j、SLF4J等)记录异常信息。 3. **...
或者,如果你使用了日志框架,如log4j或slf4j,你可以直接将异常传递给日志方法,例如`logger.error("", e)`,这样日志记录器会自动处理异常信息。 总的来说,无论在Python还是Java中,捕获并记录异常信息是编写...
Log.e("TCP", "S:Error", e); } finally { socket.close(); } ``` - 同样地,在客户端也需要处理可能出现的各种异常情况。 - 无论是否出现异常,最终都需要关闭 `Socket` 连接,以释放系统资源。 #### 三、...
- 异常堆栈信息应通过`log.error("msg", e)`的形式输出,避免直接拼接日志消息和异常。 6. **文件命名**: - Java源文件命名应反映其功能,如`PartyDaoImpl.java`代表数据库操作的实现类。 - Web页面文件命名...