精华内容
下载资源
问答
  • try {  .... } catch (Exception e) { ... 通常我们都会去这样找到出错的信息,而打印的出错的信息栈,因为会输出std.err,所以在我们自己定义的日志文件能够找到的,为了解决这个问题,可以通过

     

    try {

      ....

    } catch (Exception e) {

      e.printStackTrace();

      log.err(e.getMessage());

       .....

    }

      通常我们都会去这样找到出错的信息,而打印的出错的信息栈,因为会输出到std.err中,所以在我们自己定义的日志文件中是不能够找到的,为了解决这个问题,可以通过如下代码解决:

      

    复制代码
    StringWriter sw = null;
            PrintWriter pw = null;
            try {
                sw = new StringWriter();
                pw =  new PrintWriter(sw);
                //将出错的栈信息输出到printWriter中
                e.printStackTrace(pw);
                pw.flush();
                sw.flush();
            } finally {
                if (sw != null) {
                    try {
                        sw.close();
                    } catch (IOException e1) {
                        e1.printStackTrace();
                    }
                }
                if (pw != null) {
                    pw.close();
                }
            }
         log.err(sw.toString());
    复制代码

      当然上边的处理只是一个简单的示例,可以将上边的代码封装到一个处理异常的工具类中。

    展开全文
  • 当我们使用try..catch方法(如下图所示)捕获异常堆栈信息时,有时候无法打印出具体的错误信息到日志文件,即无法通过抛出的异常迅速定位问题所在。因此我们需要将异常堆栈信息通过某种方法解析出来,输出完整...

            当我们使用try..catch方法(如下图所示)捕获到异常堆栈信息时,有时候无法打印出具体的错误信息到日志文件,即无法通过抛出的异常迅速定位到问题所在。因此我们需要将异常堆栈信息通过某种方法解析出来,输出完整正确的日志信息。

    try{
        //do something
    }catch(Exception ex){
        ex.printStackTrace();
    }

             工作中经常会碰到以上情况,因此我将以上的解决办法抽象出了工具方法,供大家参考调用。

    public class ExcpUtil {
        //打印异常堆栈信息
        public static String getStackTraceString(Throwable ex){//(Exception ex) {
            StackTraceElement[] traceElements = ex.getStackTrace();
    
            StringBuilder traceBuilder = new StringBuilder();
    
            if (traceElements != null && traceElements.length > 0) {
                for (StackTraceElement traceElement : traceElements) {
                    traceBuilder.append(traceElement.toString());
                    traceBuilder.append("\n");
                }
            }
    
            return traceBuilder.toString();
        }
    
        //构造异常堆栈信息
        public static String buildErrorMessage(Exception ex) {
    
            String result;
            String stackTrace = getStackTraceString(ex);
            String exceptionType = ex.toString();
            String exceptionMessage = ex.getMessage();
    
            result = String.format("%s : %s \r\n %s", exceptionType, exceptionMessage, stackTrace);
    
            return result;
        }
    }

          运用场景:

          Example1:

            try {
                //do something
            } catch (Exception ex) {
                logger.info(ex.toString());
                logger.info("work exception" + ExcpUtil.getStackTraceString(ex));
            }

            Example2:

            try {
                //do something
            } catch (Exception e) {
                throw new CSException (ErrorCode.DEFAULT_ERR,"ctrip_SendEmail exception", ExcpUtil.buildErrorMessage(e));
            }

     

     

     

    展开全文
  • }通常我们都会去这样找到出错的信息,而打印的出错的信息栈,因为会输出std.err,所以在我们自己定义的日志文件能够找到的,为了解决这个问题,可以通过如下代码解决:public static String er
    try {
    
      ....
    
    } catch (Exception e) {
    
      e.printStackTrace();
    
      log.err(e.getMessage());
    
       .....
    }

    通常我们都会去这样找到出错的信息,而打印的出错的信息栈,因为会输出到std.err中,所以在我们自己定义的日志文件中是不能够找到的,为了解决这个问题,可以通过如下代码解决:

    public static String errInfo(Exception e) {  
        StringWriter sw = null;  
        PrintWriter pw = null;  
        try {  
            sw = new StringWriter();  
            pw = new PrintWriter(sw);  
            // 将出错的栈信息输出到printWriter中  
            e.printStackTrace(pw);  
            pw.flush();  
            sw.flush();  
        } finally {  
            if (sw != null) {  
                try {  
                    sw.close();  
                } catch (IOException e1) {  
                    e1.printStackTrace();  
                }  
            }  
            if (pw != null) {  
                pw.close();  
            }  
        }  
        return sw.toString();  
    }  

    e.getMessage(); 只会获得具体的异常名称. 比如说NullPoint 空指针,就告诉你说是空指针

    e.printStackTrace();会打出详细异常,异常名称,出错位置,便于调试用..

    展开全文
  • 将运行信息打印日志到文件

    千次阅读 2017-09-18 13:19:18
    开发程序经常要从控制台当中获取程序运行的情况,...于是就想到将运行信息打印日志到文件。接下来就分享一下这几天研究出来的几种打印日志文件的方法。 一:通过开发工具Eclipse设置来直接打印输出本地文件

    开发程序经常要从控制台当中获取程序运行的情况,最近在开发在服务器端,导师要求要记录好运行信息,包括异常信息,客户连接情况等信息,但控制台观看有种种限制,如窗口过小阅读不方便,或者在服务器上通过命令行运行jar包时的行数限制等等。于是就想到将运行信息打印日志到文件中。接下来就分享一下这几天研究出来的几种打印日志到文件中的方法。

    一:通过开发工具Eclipse设置来直接打印输出到本地文件中。

       在上方的工具栏打开Run -> Run Configuration 或者 Debug Configurations菜单。 然后点击工具栏的Common,勾选 “Output File:”, 填写输出文件路径及文件名。如果你勾选了“Append”,输出的日志将会被追加写入到文件最后,否则将会覆盖重写文件。




    二:通过log4j把异常信息打印到日志。

    首先是要先把log4j的jar包导入到工程中(jar到可以在网上下载)。然后在log4j.properties配置文件中配置如下信息:

        # 定义 DEBUG 优先级, R 为日志输出目的的
        log4j.rootLogger= DEBUG, R 
        # 设置日志输出类型 , 为文件类型
        log4j.appender.R= org.apache.log4j.FileAppender 
        # 设置日志文件的位置
        log4j.appender.R.file=D\:/Java/logs/logRecord.log
        # 每次在文件尾写入新的日志信息 
        log4j.appender.R.Append= true 
        # 日志输出信息格式类型 
        log4j.appender.R.layout= org.apache.log4j.PatternLayout 
        # 日志输出信息格式为 换行、日期、优先级、 [ 全类名 ] 、日志信息、换行 
        log4j.appender.R.layout.ConversionPattern= %n%d%p [%l] %m%n

    示例代码如下:

    import org.apache.log4j.Logger;
    
        public class Test {
               public static void main(String[] args) {
               Logger logger = Logger.getLogger(Test.class.getName());//获取日志记录器,这个记录器将负责控制日志信息
                  try {
                                //some code;
                       } catch (Exception e) {
                       logger.info(e.getMessage());//使用Logger对象的debug、info方法输出日志信息
                      }
                    }
            }

    三:把cmd命令提示符的信息打印到文本文件(如:在服务器上用命令提示符运行jar包的时候可用)

    在输入命令后再加上“>”和你想保存的文件地址和名字就行了。
    例如:将Ping命令的加长包输出到D盘的ping.txt文本文件。
    1、在D:目录下创建文本文件ping.txt(这步可以省略,偶尔提示无法创建文件时需要)
    2、在提示符下输入ping www.idoo.org.ru -t > D:ping.txt
    3、这时候发现D盘下面的ping.txt里面已经记录了所有的信息
    备注:
    只用“>”是覆盖现有的结果,每一个命令结果会覆盖现有的txt文件,如果要保存很多命令结果的话,就需要建立不同文件名的txt文件。
    那么有没有在一个更好的办法只用一个txt文件呢?答案是肯定的,要在同一个txt文件里面追加cmd命令结果,就要用“>>”替换“>” 就可以了.


    展开全文
  • log日志中不打印异常栈的具体信息

    千次阅读 2018-12-27 01:29:13
    问题与分析 ...这是因为jvm自身存在着优化机制,但一个同样的异常重复出现并被打印到log后,jvm可以不提供具体的堆栈信息来提高性能。关于这个的具体信息我们可以从官网上查相关的资料: http://www....
  • java 日志中打印异常信息

    千次阅读 2019-07-29 14:57:29
    java程序执行遇到的异常,通过e....打印到日志中呢。 百度了一位大神博主解决了这一问题:https://blog.csdn.net/hongweigg/article/details/18313461 ByteArrayOutputStream baos = new ByteA...
  • IDEA 控制台不打印日志信息

    千次阅读 2020-12-08 10:55:50
    这是打印日志样子 这是打印的样子: 我这边的问题是因为同事打包的时候把配置文件交上去了,然后改了路径,配置文件的路径不是本地的,之前一直都打印请求服务起上面去了。 修改:选择本地的路径就可以了。 ....
  • 最近工作遇到一个问题是测试环境服务器上的日志打印不出错误出现在第几行,尤其是在出现反射或代理等的情况下...但是e.printStackTrace()方法只能使用在控制台,那么我就想怎么把e.printStackeTrace的栈信息打印到...
  • log4j 是apache 提供的记录日志的jar 档。 下载地址:http://logging.apache.org/log4j/1.2/download.html 除了这个包外,还需要另一个jar包:.commons-logging.jar 下载地址:...
  • 详细探究logback不打印日志到文件的问题分析与案例演示,并提供官网bug的提交链接 环境与配置 问题 解决 原因 测试源码 测试结果 深入:线程出异常是否还会打印日志 环境与配置 使用maven构建的,...
  • springboot使用AOP打印日志信息

    千次阅读 2017-12-24 17:03:02
    随着项目功能的一点点增加,打印日志信息就非常必要了,可以帮助我们很快确定哪里出现了问题,这里使用slf4j来打印日志。AOP即面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。如果...
  • ffmpeg 后面加上 -loglevel quiet
  • 日志中不打印异常堆栈

    千次阅读 2019-01-24 16:36:29
    只能在本地调试查找异常位置,但是在本地调试过程可以打印异常堆栈的。后来继续查找之前的日志,之前的某段时间这个地方是存在异常堆栈信息的。 经过网上查找发现,可以设置JVM参数,在启动进程的时候配置:JVM...
  • Logback 日志级别设置和日志打印信息思考 前言 官网:https://logback.qos.ch/manual/architecture.html 日志级别 TRACE < DEBUG < INFO < WARN < ERROR TRACE 级别最小,打印信息最为详细 DEBUG INFO...
  • 本文概述如何打印日志,本文概述如何将捕获的异常详细信息打印到日志进行输出,方便定位问题。   首先定义一个函数getTrace如下所示 public static String getTrace(Throwable t) { StringWriter ...
  • 打印java异常堆栈信息到日志文件

    千次阅读 2015-05-26 10:08:09
    无法直接将堆栈信息打印到日志文件。 解决办法: 代码如下: public class LogExceptionStackUtil { /** * * @功能说明:在日志文件打印异常堆栈 * @param Throwable * @return:String */ ...
  • 在Android应用使用Log打印日志信息

    千次阅读 2017-10-22 10:42:21
    用例概述通常而言,在打印日志可以使用System.out或Android的日志工具类android.util.Log来进行日志输出。但在真正的项目开发,却极度建议使得System.out.println()方法,原因如下:System.out.println()...
  • 打印详细错误内容log日志中

    千次阅读 2018-03-28 14:22:21
    很难具体某一行,能像平时调bug一样全部打印到控制台上的内容纪录。所已专门找了这个。try{ }catch(Exception e){ StringWriter stringWriter = new StringWriter(); e.printStackTrace(new PrintWriter(string...
  • tomcat打印详细日志信息

    千次阅读 2015-05-29 10:06:26
    Tomcat后台信息太少以至于能得出问题空间出在哪儿(Tomcat的日志目录也无相关信息)。网上查询得知,通过配置Tomcat的Log,让它记录更多的日志信息,方能进一步分析原因。 在能启动的Web应用目录(我这里是...
  • Linux系统下SSH工具打印实时日志信息

    千次阅读 2018-06-15 14:32:06
    打开SSH工具后通过命令进入到日志文件夹下,命令如下:cd /你自己的文件夹路径 例如:cd /usr/java/tomcat/logs通过命令打印实时日志信息,命令如下:tail -你要显示的日志行数 日志的文件名称 例如:tail -10...
  • 终端无法将所有信息都能够保留在屏幕上,这样我们就能在终端获取我们想要的信息了,重定向很好的帮我们解决了这个问题,下面我就通过重定向printf将打印信息打印到文件,这也相当于一个打印日志。 打印日志的...
  • C#使用Logger打印日志

    千次阅读 2019-08-19 13:03:45
    2、获取一个用于当前类的Logger,用于记录日志信息 3、写记录日志的语句 4、执行了上面的语句后,实际上是没有任何效果的。因为我们还没有配置日志的输出路径。 配置可参考此地址:https://www.cnblog...
  • 由于定时任务日志打印跟其他任务日志打印在同一个文件,导致其他日志可读性很差,基本都是十秒一个的定时任务的日志,这样原先的日志就失去了意义,需要将定时任务日志与其他任务的日志分开打印,于是就使用了...
  • hive命令行不打印日志

    千次阅读 2015-10-13 13:26:38
    [Author]: kwu hive命令行不打印日志,hive的命令行运行会输出mapreduce的日志,这些日志对大部分用户来说是需要的。
  • 在项目开发,作为一个...分享一个打印日志记录的方法 /** * [errorLog 打印错误日志记录] * @param [type] $message [打印日志记录] * @param [type] $file [日志文件名] * @return [type] [description]...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 255,633
精华内容 102,253
关键字:

哪些信息不可以打印到日志中