log4j打印堆栈信息
原文地址:https://blog.csdn.net/xianyu_0418/article/details/6043174
大家都知道,网站在运行的过程中,打印必要的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)里面那样的异常详细信息了。
如果全部把异常详细打印出来,有可能造成日志文件会很大;打印概要信息,可能对分析问题帮助不大。应根据自己的实际情况,选择合适的方式。
package com.cvicse.ump.ulogger; import javax.annotation.PostConstruct; import org.apache.log4j.Logger;
import org.junit.Test; public class LoggerTest { Logger logger = Logger.getLogger("logTest"); @Test
@PostConstruct
public void test() { logger.debug( + "----Log.debug----");
logger.info( + "----Log.Info----");
logger.warn( + "----Log.warn----");
logger.error( + "----Log.error----"); int b = ;
try {
b = /;
} catch (Exception e) {
// TODO Auto-generated catch block
logger.error("除数不能为0", e);
}
logger.debug(b);
} }
log4j打印堆栈信息的更多相关文章
- Lua调用C++时打印堆栈信息
公司的手游项目,使用的是基于cocos2d-x绑lua的解决方案(参数quick-x的绑定),虽然使用了lua进行开发,更新很爽了,但是崩溃依然较为严重,从后台查看崩溃日志时,基本上只能靠" ...
- 转:Xcode打印堆栈信息
2# 分享于 14-11-26 19:15:36 Chrome 39.0.2171.71 Mac OS X 10.10.1 如果只是看调用栈的话,可以使用 lldb 的功能.在你的代码里面打上一个 ...
- java Exception 出错的栈信息打印到日志中 打印堆栈信息
我们在开发程序的过程当中,日志是必不可少的工具,这有助于我们分析问题的原因,和出错的详细信息,而java的异常机制又会方便且迅速的帮我们找到出错行的位置. try { .... } catch (Ex ...
- C/C++打印堆栈信息
转自:http://www.cnblogs.com/zhurizhe/p/3412369.html 在C/C++程序中打印当前函数调用栈 前几天帮同事跟踪的一个程序莫名退出,没有core dump(当 ...
- python 打印堆栈信息方法
第一种方法使用logging模块 import logging def test(self): try: 1 / 0 # 触发异常 except BaseException as e: logging ...
- java打印堆栈信息
StackTraceElement[] stackElements = new Throwable().getStackTrace(); if(stackElements != null){ for( ...
- log4j打印错误异常的详细堆栈信息
一.问题场景 使用Logger.error方法时只能打印出异常类型,无法打印出详细的堆栈信息,使得定位问题变得困难和不方便. 二.先放出结论 Logger类下有多个不同的error方法,根据传入参数的 ...
- 在java中捕获异常时,使用log4j打印出错误堆栈信息
当java捕获到异常时,把详细的堆栈信息打印出来有助于我们排查异常原因,并修复相关bug,比如下面两张图,是打印未打印堆栈信息和打印堆栈信息的对比: 那么在使用log4j输出日志时,使用org.apa ...
- Logger.error方法之打印错误异常的详细堆栈信息
一.问题场景 使用Logger.error方法时只能打印出异常类型,无法打印出详细的堆栈信息,使得定位问题变得困难和不方便. 二.先放出结论 Logger类下有多个不同的error方法,根据传入参数的 ...
随机推荐
- 2018-05-11-机器学习环境安装-I7-GTX960M-UBUNTU1804-CUDA90-CUDNN712-TF180-KERAS-GYM-ATARI-BOX2D
layout: post title: 2018-05-11-机器学习环境安装-I7-GTX960M-UBUNTU1804-CUDA90-CUDNN712-TF180-KERAS-GYM-ATARI- ...
- MSSQL Sql加密函数 hashbytes 用法简介
转自:http://www.maomao365.com/?p=4732 一.mssql sql hashbytes 函数简介 hashbytes函数功能为:返回一个字符,通过 MD2.MD4.MD5. ...
- 自动化测试基础篇--Selenium简介
摘自https://www.cnblogs.com/sanzangTst/p/7452636.html 一.软件开发的一般流程 二.什么叫软件测试? 软件测试(英语:Software Testing) ...
- 日志记录模块logging
在python中,日志记录显示有两种方式,一种是保存在文件和打印屏幕上,一种保存在文件中. 第一种,直接保存在文件中. import logging #日志模块,方便记录日志 # 下面是配置日志记录格 ...
- hive笔记:时间格式的统一
一.string类型,年月日部分包含的时间统一格式: 原数据格式(时间字段为string类型) 取数时间和格式的语法 2018-11-01 00:12:49.0 substr(regexp_repl ...
- Elasticsearch拼音和ik分词器的结合应用
一.创建索引时,自定义拼音分词和ik分词 PUT /my_index { "index": { "analysis": { "analyzer&quo ...
- 高通平台如何使用QPST抓DUMP
一 :确认手机状态 手机系统死机白屏后,使用USB线 连接手机和计算机.打开计算机设备管理器 ,当其中与手机相关的端口只有DIAG 口 项(9006端口)时,表明手机处于DUMP 模式,可以抓DUMP ...
- Windows Server 2016-管理站点复制(二)
为了保持所有域控制器上的目录数据一致和最新,Active Directory 会定期复制目录更改.复制根据标准网络协议进行,并使用更改跟踪信息防止发生不必要的复制,以及使用链接值复制以提高效率. 本章 ...
- SMB协议原理抓包分析
SMB协议原理抓包分析 目录: 1.SMB概述 2.SMB原理 3.SMB配置 一.SMB概述 SMB(全称是Server Message Block)是一个协议名,可用于在计算机间共享文件.打印机. ...
- June 8. 2018 Week Week 23rd Friday
You'll have bad times, but it'll always wake you up to the good stuff you weren't paying attention t ...