发表于: 2020-02-18 22:49:38
1 1217
今天完成的事情:
* 使用log4j存储日志
* 了解IDEA调试方法
* IDEA打包和maven打包
log4j
组件:
* 优先级 :ERROR,WARN,INFO,DEBUG,
* 输出地址:控制台或文件
* 输出格式:显示内容
配置文件(也可以不使用,在代码中配置)
rootLogger:
log4j.rootLogger = [level],appendername,...
appender 输出方式:
org.apache.log4j.ConsoleAppender (控制台)
org.apache.log4j.DailyRollingFileAppender (每天一个文件)
org.apache.log4j.FileAppender (文件)
org.apache.log4j.RollingFileAppender (文件达到一定大小产生新文件)
org.apache.log4j.WriterAppender (以流格式发送到任意地方)
layout 日志信息格式:
org.apache.log4j.PatternLayout (灵活指定布局模式)
org.apache.log4j.HTMLLayout (HTML表格形式)
org.apache.log4j.SimpleLayout (包含日志信息级别和信息字符串)
org.apache.log4j.TTTCCLayout (包含日志产生时间,线程,类别)
使用log4j
* 获取日志记录器:getLogger()
* 读取配置文件:
BasicConfigurator.configure (): 自动快速地使用缺省Log4j环境。
PropertyConfigurator.configure ( String configFilename) :读取使用Java的特性文件编写的配置文件。
DOMConfigurator.configure ( String filename ) :读取XML形式的配置文件。
* 插入记录信息
日志级别
每个Logger都被了一个日志级别(log level),用来控制日志信息的输出。日志级别从高到低分为:
A:off 最高等级,用于关闭所有日志记录。
B:fatal 指出每个严重的错误事件将会导致应用程序的退出。
C:error 指出虽然发生错误事件,但仍然不影响系统的继续运行。
D:warm 表明会出现潜在的错误情形。
E:info 一般和在粗粒度级别上,强调应用程序的运行全程。
F:debug 一般用于细粒度级别上,对调试应用程序非常有帮助。
G:all 最低等级,用于打开所有日志记录。
配置:
### 设置###
log4j.rootLogger = debug,stdout,D,E
### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
### 输出DEBUG 级别以上的日志到=E://logs/error.log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = /Users/banday/IdeaProjects/logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### 输出ERROR 级别以上的日志到=E://logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =/Users/banday/IdeaProjects/logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
DEMO
package com.mucfc;
import org.apache.log4j.Logger;
public class Test {
private static Logger logger = Logger.getLogger(Test.class);
public static void main(String[] args) {
// System.out.println("This is println message.");
// 记录debug级别的信息
logger.debug("This is debug message.");
// 记录info级别的信息
logger.info("This is info message.");
// 记录error级别的信息
logger.error("This is error message.");
}
}
IDEA调试
debug:小甲虫
程序打断点
控制台:单步运行,取消断点,编辑断点,进入/退出方法体,查看内存对象
IDEA打包
1 file->project structure->artifacts->jar->from module with dependences->main class
->derectory for META-INF->include in project build
2 build->artifacts build->build
MAVEN打包
maven install
明天计划的事情:
* 测试DB
* 服务器运行
* 回顾任务
遇到的问题:
Imaven打包后,运行出现
Error: Invalid or corrupt jarfile TestRunnerTest.class
但是还是出现
图片突然传不上来了。。
以解决
添加maven依赖,使用了maven-assembly-plugin插件打包
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<archive>
<manifest>
<mainClass>TestRunner</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
mvn package assembly:single 命令打包
收获:
被一些问题耽误了好多时间0-0
评论