tomcat分割日志以及与logback的区别和注意事项
来源:互联网 发布:php跳转代码 编辑:程序博客网 时间:2024/06/13 06:38
因为公司之前管理服务器的人的离职, 我们需要接手服务器,但是发现每次服务器的磁盘都被撑爆了,查其原因是因为日志太大, 这不是分割日志的最终原因,最终原因是:像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中经过上面工具类的转化才可以打印出来.
- tomcat分割日志以及与logback的区别和注意事项
- logback的日期和文件大小共同作用日志分割
- logback同时按照日期和大小分割日志
- Logback使用以及与log4j区别
- AsyncHttpClient和SyncHttpClient的区别以及注意事项
- logback-classis日志打印注意事项
- logback与Log4J的区别
- logback与Log4J的区别
- logback与Log4J的区别
- logback与Log4J的区别
- logback与Log4J的区别
- Logback与Log4J的区别
- 日志管理logback的使用和logback.xml详解
- logback日志组件的配置和使用
- cronolog分割tomcat的catalina.out日志
- cronolog分割tomcat的catalina.out日志
- cronolog分割tomcat的catalina.out日志
- logback+apache-tomcat-7.0.29+windows7的日志路径问题
- 【数据实时分析】流计算使用教程
- 进程间通讯—管道
- angular的弹出框
- 移动大脑-SpringMVc搭建RestFul后台服务(六)-微信支付(Android)
- 超级工程(2)想到的
- tomcat分割日志以及与logback的区别和注意事项
- 横向滚动
- Linux内核数据结构kfifo详解
- DrawerLayout侧滑栏简单使用
- jquery 的收集整理和记录--jquery查找元素
- 记录下苹果审核被拒原因
- System.InvalidOperationException: 超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。
- PHP PDO方式操作Sqlite实例
- Centos6.5安装配置VNC(linux的远程桌面)