精华内容
下载资源
问答
  • Tomcat日志catalina.out过大解决方案--使用logback的资源包,包括jar包,和使用文档,具体使用请参考我的同名博客。
  • 因为公司之前管理服务器的人的离职, 我们需要接手服务器,但是发现每次服务器的磁盘都被撑爆了,查其原因是因为日志太大, 这不是分割日志的最终原因,最终原因是:像tomcat中我们用于输出的catalina.out 文件太大....

           因为公司之前管理服务器的人的离职, 我们需要接手服务器,但是发现每次服务器的磁盘都被撑爆了,查其原因是因为日志太大, 这不是分割日志的最终原因,最终原因是:像tomcat中我们用于输出的catalina.out 文件太大.不利于我们后续产品上线 出现问题,进行快速的定位, 从几个G的日志里进行操作是一件很痛苦的事情,所以我决定对tomcat进行日志分割;

          首先说到日志系统,我们自己的程序里有一套日志系统,  tomcat自带的有一套日志系统, 像我的系统里的日志是logback, 我们把logback.xml进行配置, 系统就会根据你的配置, 进行日志的管理, 我把我现在正在用的logback.xml 代码贴上来,仅供参考;

         logback.xml:

        <configuration>
      <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>../logs/logback.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
          <fileNamePattern>../logs/logback.%i.log.zip</fileNamePattern>
          <minIndex>1</minIndex>
          <maxIndex>60</maxIndex>
        </rollingPolicy>


        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
          <maxFileSize>10MB</maxFileSize>
        </triggeringPolicy>
        <encoder>
          <pattern>%date{YYYY-MM-dd HH:mm:ss} %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
        </encoder>
      </appender>


      <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
          <pattern>%date{YYYY-MM-dd HH:mm:ss} %level %logger{10} [%file:%line] %msg%n</pattern>
        </encoder>
      </appender>


      <root level="INFO">
        <appender-ref ref="FILE" />
        <appender-ref ref="STDOUT" />
      </root>


      <logger name="***" level="DEBUG" additivity="true"></logger>
      <!-- <logger name="org.hibernate" level="DEBUG" additivity="false"> <appender-ref ref="STDOUT" /> </logger> -->
    </configuration>

    上面的意思是:对于整个项目我们采用标准的输出格式(STDOUT), 如果日志过多,也就是俗称滚动日志(RollingFileAppender),我们会进行压缩分割, 每天产生的日志大于等于10M就进行压缩(SizeBasedTriggeringPolicy), 而且这个压缩的日志最多存60个.

    上面的截图是保存在tomcat下面的,压缩文件显示不是10M但是解压出来是10M;

    除了系统上使用的日志系统,tomcat自己还有自己的日志系统;

    但是我们分割日志,需要做的就是要把catalina.out进行每天分割;

    我们需要先安装cronolog-1.6.2.tar; 地址:链接: https://pan.baidu.com/s/1dE20WQd 密码: 3vjf

    安装步骤是:

     ./configure
        make
        make install

    我们进入tomcat-->bin  找到catalina.sh

    vi catalina.sh

    找到org.apache.catalina.startup.Bootstrap “$@” start  \ >> “$CATALINA_BASE”/logs/catalina.out 2>&1 & 

    修改为: org.apache.catalina.startup.Bootstrap “$@” start 2>&1 \ 
    | /usr/local/sbin/cronolog “$CATALINA_BASE”/logs/catalina.%Y-%m-%d.out >> /dev/null & 

    重启tomcat即可.

    最后贴图,我们现在分割后的:



    上面说完后,下面还需要说一下logback应该注意的点:

       我们可以通过设置logback.xml配置文件进行控制日志,他也会生成日志文件供我们看日志的信息,但是像我们常用的Excepiton.printStackTrace();就不会打印在logback.log文件中,引用别人的话: " e.printStackTrace();通常我们都会去这样找到出错的信息,而打印的出错的信息栈,因为会输出到std.err中,所以在我们自己定义的日志文件中是不能够找到的,为了解决这个问题,可以通过如下代码解决:"

    代码如下:  这个是个工具类

      public class LogException {
       
    public static String getStack(Throwable t) {
    StringWriter sw = null;
    PrintWriter pw = null;
    try {
    sw = new StringWriter();
    pw = new PrintWriter(sw);
    t.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.printStackTrace()栈信息是不会输出到logback.log中经过上面工具类的转化才可以打印出来.


    展开全文
  • 我仍然面临着使用tomcat8配置Logback的问题 . 我想我错过了一点 .在我的pom.xml中: org.slf4j slf4j-api 1.7.2 org.slf4j jcl-over-slf4j 1.7.2 ch.qos.logback logback-classic 1.1.7 ch.qos.logback logback-core...

    我仍然面临着使用tomcat8配置Logback的问题 . 我想我错过了一点 .

    在我的pom.xml中:

    org.slf4jslf4j-api1.7.2org.slf4jjcl-over-slf4j1.7.2ch.qos.logbacklogback-classic1.1.7ch.qos.logbacklogback-core1.1.7

    我在server.xml文件中添加了valve:

    directory="logs"

    prefix="localhost_access_log"

    suffix=".txt"

    pattern="%h %l %u %t "%r" %s %b" />

    在logback.xml中

    global.log 文件>

    真追加>

    UTF-8 字符集>

    %d {HH:mm:ss.SSS}%-5level {%thread} [%logger {40}]:%msg%n pattern>

    编码器>

    $/logs/archive/global.log-%d - %i.log.zip fileNamePattern>

    $ maxHistory>

    真 cleanHistoryOnStart>

    rollingPolicy>

    附加器>

    Logger >

    配置>

    然后在我的logback-access.xml中:

    $ /logs/localhost-access.log FILE>

    真追加>

    UTF-8 字符集>

    共同图案>

    编码器>

    $/日志/存档/本地主机 - 访问 - %d - %i.log.zip fileNamePattern>

    $ maxHistory>

    20MB maxFileSize为>

    timeBasedFileNamingAndTriggeringPolicy>

    rollingPolicy>

    附加器>

    这是错误:org.apache.jasper.servlet.TldScanner.scanJars至少有一个JAR被扫描用于尚未包含TLD的TLD . 为此 Logger 启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表 . 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间 .

    谢谢你的帮助,Swaye

    展开全文
  • 由于最近在测试环境找问题的时候总是很难定位,但是本地却没有出现...幸好看到了logback这个东东对Tomcat支持很棒,所以就折腾了一下。。 首先需要去logback官网 :https://logback.qos.ch/ 下载对应版本的lo...

    由于最近在测试环境找问题的时候总是很难定位,但是本地却没有出现任何意外,所以为了修改日志数出级别煞费苦心。幸好看到了logback这个东东对Tomcat支持很棒,所以就折腾了一下。。

     

    首先需要去logback官网 : https://logback.qos.ch/

    下载对应版本的logback,然后把logback-core-1.2.3.jar和 logback-access-1.2.3.jar 放入Tomcat的lib目录中,然后在tomcat server配置文件的host节点中添加一条

            <Valve className="ch.qos.logback.access.tomcat.LogbackValve"/>

    删除conf中commons-logging.properties配置文件,添加一个logback-access.xml 的配置文件

     

    然后将如下配置复制到该文件中(摘自官网)

    <configuration>
      <!-- always a good activate OnConsoleStatusListener -->
      <statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" />  
    
      <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
          <pattern>%h %l %u %user %date "%r" %s %b</pattern>
        </encoder>
      </appender>
    
      <appender-ref ref="STDOUT" />
    </configuration>

    然后启动Tomcat,会输出

     

    这样的日志,说明你的logback与Tomcat已经完美的整合到一起

     

    另: logback增加了一个叫 Viewing status messages 的组件,看着满高大上的样子,顺手就集成进来了。。集成方式非常简单,只需要在根web.xml中加入

    <servlet>
        <servlet-name>AccessViewStatusMessages</servlet-name>
        <servlet-class>ch.qos.logback.access.ViewStatusMessagesServlet</servlet-class>
      </servlet>
    
      <servlet-mapping>
        <servlet-name>AccessViewStatusMessages</servlet-name>
        <url-pattern>/lbAccessStatus</url-pattern>
      </servlet-mapping>

    该servlet,即可。Tomcat启动之后访问

    http://localhost:{port}/lbAccessStatus 即可出现对应的状态信息

    转载于:https://my.oschina.net/u/2488220/blog/1600902

    展开全文
  • 修改端口),然后将同一个应用部署到多个tomcat实例下,logback配置文件中配置不同的目录作为日志输出地,但是在多个tomcat实例同时运行时,logback配置不起作用,即日志并没有输出到每个tomcat实例对应webapp目录下...

    问题描述:

    之前在测试环境(一台Linux主机)部署了多个tomcat实例(使用cp命令,修改端口),然后将同一个应用部署到多个tomcat实例下,logback配置文件中配置不同的目录作为日志输出地,但是在多个tomcat实例同时运行时,logback配置不起作用,即日志并没有输出到每个tomcat实例对应webapp目录下应用中logback.xml中配置的日志输出目录,而是都输出到了各tomcat实例的logs/catalina.out中,导致catalina.out文件过大,不利于日志查看

     

     后来同时说他在本地还原测试环境,测试时发现日志全输出到第一个启动的tomcat实例中对应的应用配置的logback.xml中配置的日志输出目录中,至于是不是多tomcat实例下logback读取的都是内存中的同一个还有待求证。

     

    解决:

    项目中使用了spring MVC框架,加上logback的spring扩展就OK了,具体如下:

    1、下载logback的spring扩展包 logback-ext-spring-0.1.1.jar,放入classpath中,注意,如果jre是1.6及以下的,必须使用0.1.1版本的扩展,0.1.2版本及以上的扩展包使用了jdk7编译;

    2、在web.xml中加入监听

    1. <context-param>  
    2.          <param-name>logbackConfigLocation</param-name>  
    3.          <param-value>classpath:logback.xml</param-value>  
    4. </context-param>  
    5. <listener>  
    6.          <listener-class>ch.qos.logback.ext.spring.web.LogbackConfigListener</listener-class>  
    7. </listener>

    该监听器最好放置在spring的监听器前。

    展开全文
  • 使用logback-access模块替换tomcat自带的access日志
  • Tomcat日志catalina.out过大,老生常谈的问题,这里就不再赘述了,新的地方在于使用了logback。这个在博客上面比较少,搜索出来的解决方案一般都是使用log4j或者编写脚本定时执行,让我一开始以为logback实现不了,...
  • logback日志保存到tomcat服务器

    千次阅读 2018-07-17 17:56:38
    1:新建一个logback.xml在根目录下 Caption2:在xml中配置如下            
  • springboot部署tomcat logback日志不输出

    千次阅读 2019-08-30 17:37:30
    springboot使用logback日志,部署到tomcat不生效问题解决 在STS工具里进行springboot项目开发,配制了logback文件,取名为logback-admin.xml 利用STS启动程序时,可以正常的输出日志到文件里。 部署到tomcat下,...
  • spring-boot tomcat logback日志

    千次阅读 2018-06-27 10:56:52
     Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。...
  • Tomcat SLF4J Logbacktomcat的替代产品,它允许所有内部日志记录全部使用我们喜欢的slf4j / logback库。 注意 从logback 1.1.7开始,不再需要在server.xml中包含${catalina.home}来进行logback访问。 我们还重新...
  • 在使用springboot配置logback日志框架。我直接用 springboot 的内置tomcat,此时的logback配置起了作用。并且能正确的生成日志。但是,把项目打包发布到外置tomcat中的时候,并没有读取配置。(此时单项目,我见了...
  • 最近在做架构迁移工作,将原有springmvc项目调整至springboot架构上,迁移完后,发现用springboot以jar包形式启动正常,用tomcat去启动时日志乱码,但是项目部署至Linux环境启动也正常,以下是日志乱码代码: ...
  • Logback 基础日志管理(日志按天切分/定时清理) Logback详细说明可以参考这篇文章: logback的使用和logback.xml详解. 本模块我们通过一段模板来说明Logback配置如何使用 <!--通用配置--> <configuration ...
  • 今天在将自己编写一个小功能的SpringBoot 项目部署至Tomcat 中,日志是采用logback。 项目在eclipse 中正常输出相关日志信息但是在Tomcat 中,日志没有正常输出,今天将遇到的情况总计,以备后续参考。 现将我解决...
  • 但是日志文件没有打印,查看tomcat中的日志,发现如下错误 项目架构是之前公司大佬制定的,pom文件也是人家写的,定好了用logback那我也不能随意改动,没有办法,只能硬着头皮上了。 思路: 在公司又找了一台...
  • springboot使用logback日志,部署到tomcat不生效问题解决
  • springboot,war包部署到Tomcatlogback 日志 不按日滚动,只生成了一个单文件。 logback-spring.xml,如下: ``` <include resource="org/springframework/boot/logging/logback/base.xml"/> ...
  • web应用配置的logback,为什么在tomcat下没日志文件出现  无比郁闷的时候到了,spring web 配置了logback.xml 文件,放在tomcat下面,应用日志一直不出现,配置了jetty 插件, org.eclipse.jetty jetty-...
  • springboot中的logback日志指定在外置tomcat的logs目录下 解决方法: 在application.yml中设置: logging: config: classpath:logback-spring.xml path:http://www.yayihouse.com/yayishuwu/chapter/2210 ...
  • Where to put the logback.xml file in Tomcat when we want to have it configurable?And how to make it accessible for the Java application(s) running inside?解决方案You typically want to have logback.xml...
  • 鉴于在调试logback和log4j的文件切割一直无法成功,随性用shell写个脚本用来切割tomcat下的日志文件(大家如果有在logback或log4j使用文件切割成功的话,可以留下使用方式,先谢谢了) 1:废话少说,直接贴上脚本: #...
  • idea下使用tomcat,中文日志乱码,如下图所示: 如果直接startup.bat通过启动的话,中文日志乱码的可以参考下这篇文章:https://blog.csdn.net/u011781521/article/details/116332248 二、解决方法 由于我...
  • tomcat 日志log4j,slf4j,logback冲突

    千次阅读 2018-06-20 09:17:26
    问题描述: &nbsp; &nbsp;... 启动tomcat,发现tomcat无法启动,catalina.out有如下错误日志: INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log Closing Sp...
  • Tomcat日志配置清理

    2021-08-08 07:11:36
    今天看了下tomcat日志,发现已经有8g多了... 仔细想想大概有2年多没有处理过日志了。因为博客线上也没出过啥问题,所以压根就没怎么看过日志。毕竟不是运维 ... 这方面确实没咋注意,服务器还是有很多需要搞清楚的 ...
  • logback.xml <root level="INFO"> <appender-ref ref="STDOUT"/> </root> application.yml logging: level: root: WARN org.springframework: INFO com.chinadaas.platform: DEBUG ...
  • 关于Tomcat设置log为logback的配置

    千次阅读 2016-10-10 10:44:00
    1、替换bin目录下的tomcat-juli.jar; 2、为运行时添加参数: -Djuli-logback.configurationFile= 3、配置conf/logback.xml文件及conf/logback-acces.xml文件; 4、修改conf/server.xml中的Value节点(通常在...
  • java日志管理(slf4j+logbacktomcat

    千次阅读 2017-07-12 12:01:51
    slf4j只是一个日志抽象层,独立于其他所有的日志类库,需要配合其他的日志类库使用,例如logback,具体的日志级别输出、记录位置、日志格式通过具体的日志类库来实现; slf4j能整合其他的日志类库,使得不同的日志...
  • 在进行web开发时,需要进行日志的打印和记录,Logback就是Java常用的一个日志输出工具。首先在maven中引入该项目依赖 <dependency> <groupId>ch.qos.logback</groupId> <artifactId>...
  • 常用处理java的日志组件有:slf4j、log4j、logback、common-logging等。其中log4j是使用得最多的日志组件。 LogBack是基于Log4j基础上大量改良的一种日志框架,但是它不能单独使用,推荐配合日志框架SLF4J来使用。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,953
精华内容 3,981
关键字:

tomcat日志与logback日志

友情链接: wavelet2013.zip