发表于: 2020-02-18 22:49:38

1 1216


今天完成的事情:

* 使用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


返回列表 返回列表
评论

    分享到