zoukankan      html  css  js  c++  java
  • 2017第43周日

    一、JVM调试排查问题会用到的参数:

    -XX:+TraceClassLoading:打印加载类文件路径,调试jar冲突有用
    -XX:+PrintGCDetails:打印GC消息详细
    -XX:+PrintGCTimeStamps:打印GC信息带时间。

    二、Java中异常体系

    一般编译时必须要开放处理的属于Exception,属于Error类业可以try.catch捕获,比如因jar包版本冲突引起的类方法不存在异常属于Error,要捕获Throwable异常才行。

    三、Tomcat中日志输出

    1、Tomcat自带日志功能,即时你的项目中有log4j也不会影响到Tomcat自己记录日志。

    2、你的项目中的log4j中的日志指定打印到什么地方(控制台或者文件),便会打印到什么地方,和Tomat日志无关。

    ——如果你项目中的log4j指定打印到控制台,并且你开启的tomcat有控制台,那么这个时候你可以在控制台观察到日志。

    ——如果你用log4j来处理了Tomcat的日志(具体需要你自己配置tomcat的配置文件),那么Tomcat便会使用log4j来打印,但是这和你项目中的log4j仍然不是同一个log4j。

    3、关于异常日志的打印

    如果你在你的项目中处理了某个异常:

            try {
                int i = 1/0;
            }catch(Exception e) {
                e.printStackTrace();
            }

      A、那么这个异常信息会打印到你的控制台。你说你没有开控制台,是用服务的形式跑的?那么这个异常的信息你就看不见了。

      B、你在你的项目中直接throw的,并且没有任何地方处理这个异常,那么最后这个异常会被抛给你的容器——Tomcat,Tomcat这时会在localhost.日期.log文件中记录这个异常。

    让tomcat控制台日志输出文件的方法

    把tomcat/bin目录下的startup.bat文件中的 
    call "%EXECUTABLE%" start "CMD_LINE_ARGS" 
    修改为 
    call "%EXECUTABLE%" run "CMD_LINE_ARGS" 
    再把catalina.bat文件中最后最长的几行修改一下(都是以%ACTION%结尾的),在后边加上: 
    >> %CATALINA_BASE%logsxxx_%DATE:~0,10%.log 
    (注:%CATALINA_BASE%是tomcat的根目录,%DATE:~0,10%是系统时间截取,有的系统可能不是这样截取的,你可以用echo %DATE%命令看一下结果,0是起始位置,10时长度,根据结果来截取一下) 
    添加这行的目的是让tomcat把控制台的信息都输出到 
    %CATALINA_BASE%logsxxx_%DATE:~0,10%.log 

  • 相关阅读:
    Windows 10 将MySQL5.5升级为MySQL5.7
    Django Rest Swagger生成api文档
    inception安装使用
    django 日志配置
    构建NTP时间服务器
    django 模型关系
    python 开发环境配置
    mongodb远程备份
    rest framework 尝鲜
    Django Rest Framework-介绍
  • 原文地址:https://www.cnblogs.com/doit8791/p/7749264.html
Copyright © 2011-2022 走看看