011-项目中用到的日志
来源:互联网 发布:淘宝客机器人破解版 编辑:程序博客网 时间:2024/05/20 12:46
1. LogManager.java
import java.io.PrintWriter;
import java.io.StringWriter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.joran.JoranConfigurator;
import ch.qos.logback.core.joran.spi.JoranException;
import ch.qos.logback.core.util.StatusPrinter;
public class LogManager {
// 初始化日志配置
public static boolean init() {
LoggerContext lc = (LoggerContext)LoggerFactory.getILoggerFactory();
JoranConfigurator configurator = new JoranConfigurator();
configurator.setContext(lc);
lc.reset();
try {
configurator.doConfigure("config/logback-test.xml");
} catch (JoranException e) {
e.printStackTrace();
StatusPrinter.printInCaseOfErrorsOrWarnings(lc);
return false;
}
return true;
}
private static Logger logger;
public static Logger getLogger(Class<?> clazz) {
return (logger = LoggerFactory.getLogger(clazz));
}
public static void printStackTrace(Exception e) {
if(logger != null ) {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
e.printStackTrace(pw);
logger.error(sw.toString());
}
}
}
2. logback-test.xml
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss:SSS} [%thread] %-2level %logger{64}%msg%n</pattern>
</encoder>
<target>System.out</target>
</appender>
<appender name="info-all" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>${user.dir}/log/info.log</file>
<append>true</append>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss:SSS} [%thread] %-2level %logger{64}%msg%n</pattern>
</encoder>
<prudent>true</prudent>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${user.dir}/log/info.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxHistory>1</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<appender name="warn-all" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>${user.dir}/log/warn.log</file>
<append>true</append>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss:SSS} [%thread] %-2level %logger{64}%msg%n</pattern>
</encoder>
<prudent>true</prudent>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${user.dir}/log/warn.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxHistory>1</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<appender name="error-all" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>${user.dir}/log/error.log</file>
<append>true</append>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss:SSS} [%thread] %-2level %logger{64}%msg%n</pattern>
</encoder>
<prudent>true</prudent>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${user.dir}/log/error.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxHistory>1</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<root level="info">
<appender-ref ref="STDOUT" />
<appender-ref ref="info-all" />
<appender-ref ref="warn-all" />
<appender-ref ref="error-all" />
</root>
</configuration>
- 011-项目中用到的日志
- 项目中用到的
- 项目中用到的开源库
- 项目中用到的工具
- 项目中用到的css
- 项目中用log4j记录日志到指定目录
- 项目管理中用到的图释
- 项目中用到的一个树控件
- AppFuse中用到的开源项目
- js一个项目中用到的脚本
- wap项目中用到的分页技术
- 项目中用到的一些开源
- 项目中用到的ajax(jsp)
- 项目中用到的ajax(php)
- 项目中用到的SQL语句
- 项目过程中用到的工具
- 项目中用到的BAPI合集
- 项目中用到的logback列子
- Glide与CircleImageView加载圆形图片的问题
- S5PV210 时钟
- hibernate的hql查询语句总结
- 简单拓扑排序
- VUE安装及项目初始化
- 011-项目中用到的日志
- 循环链表入口(调试)
- Hololens API解析Input-InteractionManager
- HTML和CSS的精髓在此。其它的大全细节,查书就好
- extjs4.2 在textareafield中的光标位置动态插入内容
- JMeter Web测试快速入门教程
- 网站开发之数据表开发库——Datatables
- ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
- 抽象类和接口的修饰符