日志,是软件运行过程中,对各类操作中重要信息的记录。 日志跟踪,不管对于怎么样的项目来说,都是非常重要的一部分,它关系到项目后期的维护和排错,起着举足轻重的作用。项目开发过程中,对日志的记录规则,也将影响到改项目后期维护的难度。

 
在开发过程中,我们经常遇到的日志记录方式包括有系统输出(System.out,最基础方式),日志框架输出(log4J 等)和分布式日志框架输出等。作为项目的开发者,和后期的管理者来说,对于日志的管理,除了需要知道如何进行日志输出,还需要关注的是,项目后期对日志文件的管理。
 
 
日志追踪第一步(web容器日志)
 
在此分享下自己在学习过程中的经历,本人虽然说是学计算机的,可是学校的Java课程并没怎么学习,大部分的Java知识都是在课后自学的。在最先开始,本人并没有接触到所谓的日志框架,哪怕是在搭建SSH项目的过程中,知道有这样的框架,知道三大框架都采用了这样的日子框架进行日志记录,可是还是没有主动的是去使用,所以在最先开始的时候,本人还是使用最原始的System.out,来进行日志的追踪。在项目开发的工程中,遇到了问题,就System.out一下,看看输出的是啥,然后再排错,我觉得应该不止是我一个人,采用的是这样的老办法吧。这样的问题来了,出了问题去哪找?
 
其实,不论我们有没有日志输出,只要我们采用的是成型的web容器,web容器就会对一些必要的信息进行日志的记录。在此以最常用的tomcat为例。
tomcat服务器的日志文件配置保存在$CATALINA_HOME/conf目录下的loggin.properties中(在此不做详解),而对应的日志文件,则保留在$CATALINA_HOME/logs目录下。Tomcat容器默认按照日期进行日志的保存,每天都会产生对应于当天的日志文件,其中包括:容器输出、管理日志、访问日志等。我们常见的tomcat启动输出,就对应的在容器日志文件中。对于一些tomcat的错误信息,可以通过这些日志文件进行排查
 
 
对于日志输出的规则和保留的目录,不同的web容器采用的方式不同,因此需要根据对应的web容器进行日志查找,在此不再举例了
 
 
日志追踪第二步(System.out在哪里)
 
在此说一下,编程过程中,除了System.out以外,当异常抛出或者是说异常处理的e.printstrack,也都采用的是out输出。从编程角度上看,提出尽量规范化编程,减少System.out和e.printstrack的输出,可是,当这一部分不可避免的时候,就得好好的利用它
 
作为常用的web容器,tomcat对系统输出有自己的一套管理方法,根据不同管理系统,有不同的配置。
在Linux下,tomcat会为对应的实例创建一个.out文件,放在$CATALINA_HOME/logs目录下,方便后期的排错使用。然而,该文件默认不能自动分割,在没有配置的情况下,该文件会不断的增大,日久天长,或许等到需要排错的时候,该文件的大小可以以G为单位了。所以,在配置完tomcat实例之后,建议修改一下启动文件,让.out文件随着日期的变化自增。
 
具体的配置如下:
 
vim catalina.sh
找到catalina.out所在处,将其改为catalina.$(date +%Y-%m-%d) .out(注意date之后的空格)
 
 
改完之后,重启tomcat,会发现,tomcat会根据日期的不同,动态的创建.out文件
 
 
 
 
 
在Windows下,启动tomcat通常需要启动一个控制台,同时该控制台需要一直开着,tomcat的SYstem.out 也默认为控制台输出。也就是说,开发者所写的System.out,还有异常输出,都会打印在控制台上面。所以如果出了问题,找控制台就行了。。
          但是,这一种方式显然非常麻烦,Windows控制台显示查看是有限制的,同时也没有持久化的文件保存下来。所以,需要通过配置tomcat的配置文件,来实现与Linux同样的效果。
 
 
1、打开startup.bat文件,找到call "%EXECUTABLE%" start %CMD_LINE_ARGS%, 改为call "%EXECUTABLE%" run %CMD_LINE_ARGS% 。
 
 
2、打开catalina.bat文件,在4处 %ACTION% 后面加上     >> %CATALINA_HOME%\logs\catalina.out 。重启tomcat,tomcat的logs文件夹下就会出现catalina.out文件了。
 
 
按照上面的方法,同样存在着.out无限变大的问题。如果想要其按照日期进行配置可以通过将catalina.out改为catalina.%date:~0,4%-%date:~5,2%-%date:~8,2%.out,重启即可
 
 
至此,关于tomcat的日志追踪,整理完毕。其中部分资源来自网络。
 

循序渐进看Java web日志跟踪(1)-Tomcat 日志追踪与配置的更多相关文章

  1. 循序渐进看Java web日志跟踪(3)-Log4J的使用和配置

    之前说过关于java日志跟踪的几大主要用的框架,也说到了,其实在其中,Log4J充当着一个相当重要的角色.目前,大部分框架也都是采用的是Log4J,虽然说它已经停止了更新,作者也重新起了LogBack ...

  2. 循序渐进看Java web日志跟踪(2)-Java日志API认识

    接触过Java的朋友应该都会知道,java的开源框架百花齐放,实现同样的功能,总能找到几个强大的开源框架来进行选择.在日志方面,Java同样不逊色.除了JDK本身自带的简单的日志工具,java还有如l ...

  3. java Web开发中,Tomcat安装顺序与配置(windows7系统下)

    一.要先安装JDK[比如,安装目录:D:/program Files/Java ] 注:1.JDK安装顺序可以参照百度,后期会补上 2.安装是否成功的验证方式:点击“开始”→输入“cmd”→输入“Ja ...

  4. ELK 收集 Tomcat日志以及修改Tomcat日志格式

    ELK 收集 Tomcat日志以及修改Tomcat日志格式 Tomcat日志 想要收集tomcat 日志 首先我们要对tomcat的日志有足够的了解 tomca日志分类 简单的说tomcat logs ...

  5. java web学习总结(二) -------------------TOMCAT使用帮助(一)

    一.Tomcat服务器端口的配置 Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件. 如果想修改Tomcat服务器的启动端口,则可以在server.xml ...

  6. 阿里云部署Java web项目初体验(转)/linux 上配置jdk和安装tomcat

    摘要:本文主要讲了如何在阿里云上安装JDK.Tomcat以及其配置过程.最后以一个实例来演示在阿里云上部署Java web项目. 一.准备工作 购买了阿里云的云解析,和云服务器ecs. 2.下载put ...

  7. java web 学习二(Tomcat服务器学习和使用1)

    一.Tomcat服务器端口的配置 Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件. 如果想修改Tomcat服务器的启动端口,则可以在server.xml ...

  8. Mac下Intellij IDea发布Java Web项目详解四 为所有Module配置Tomcat Deployment

    准备工作1:新建第一个JavaWeb项目 准备工作2:新建Module step5 为所有项目配置Deployment 5.1 如图 5.2 [+][Artifact] 5.3 将这里列出的所有内容选 ...

  9. 全网最详细的IDEA、Eclipse和MyEclipse之间于Java web项目发布到Tomcat上运行成功的对比事宜【博主强烈推荐】【适合普通的还是Maven方式创建的】(图文详解)

    不多说,直接上干货! IDEA [适合公司业务]全网最详细的IDEA里如何正确新建[普通或者Maven]的Java web项目并发布到Tomcat上运行成功[博主强烈推荐](类似eclipse里同一个 ...

随机推荐

  1. Birdge(桥接)模式

    1.出现原因 1.同一个类型,有两个变化的维度(两个维度的抽象:一个抽象部分的抽象,一个实现部分的抽象) 2.如何应对这种“多维度的变化”?如何利用面向对象技术来使得同一类型可以轻松地沿着两个方向变化 ...

  2. 几个 jQuery 小提示和技巧

    几个 jQuery 小提示和技巧 今天,我们将分享一些很有用的技巧和窍门给 jQuery 开发人员.jQuery 是最好的 JavaScript 库之一,用于简化动画,事件处理,支持 Ajax 和 H ...

  3. 2 MySQL安装

    目录: 1. mysql安装简介2. 下载AppServ3. 安装AppServ4. 使用phpmyadmin连接MySQL5. 使用MySQL Command Line Client 连接MySQL ...

  4. 2013集训.DAY21.A

    随便点了一套刷,这套质量挺棒的,学了不少的东西,并且碰到了很久都没有打的题目 T1 card [指针技巧] 题1 集卡片 [问题描述] lzh小时候很喜欢收集卡片,他经常要去商店购买新到的卡片. 商店 ...

  5. 马赛克算法及iOS代码实现

    之前做了一下相关涂鸦的东西,发现图片处理挺好玩的,就先讲讲马赛克的实现吧. 放大马赛克图片可以看到,可以看到一个个单色的小正方形.所以马赛克其实也就是把某一点的色值填充了它一定范围内的一个正方形,这样 ...

  6. Javascript:看 Javascript 规范,学 this 引用,你会懂的。

    目录 背景this待分析程序先看一个语言规范方法调用备注 背景返回目录 Javascript 的 this 是我的心病,多数情况下知道其运行结果,个别变态的场景下,就给不出解释了,昨天一次偶然的机遇让 ...

  7. mvc的验证

    mvc的验证锦上添点花(2) 上一篇文章我们演示了通过对jquery.validate.unobtrusive.js做点小修改,如何给MVC的验证添点花 主要还是修改了onError与onSucces ...

  8. 开启和禁用Wifi热点命令

    netsh wlan set hostednetwork mode=allow ssid=[无线网络名字] key=[密码] netsh wlan start hostednetwork --启用 禁 ...

  9. Elmah错误日志工具

    Elmah错误日志工具 Exception 对于异常的处理,以前基本就是跳转到一个自定义的错误页面,觉得这样不错挺友好的.同时还是需要记录下来这些异常,才能进一步的进行修改. 怎么去记录这些错误信息呢 ...

  10. Python:开发Sublime插件,方便PHP开发

    Python:开发Sublime插件,方便PHP开发 背景 最近在学习PHP,开发环境选择了Sublime2,开发过程发现执行PHP程序非常不方便,需要自己在浏览器中输入路径以进行调试,这点不如Dre ...