小东吖 之 java 日志记录

1.为什么要使用第三方jar包?
在官方提供的功能之余,想拓展项目功能,可以借助引用第三方jar包来完成
2.如何引用第三方jar包
1.获取jar包(明确jar包与版本,获取其jar包)
2.jar包引入至项目中
外部链接
内部链接
自定义library
步骤:

 1.项目 -> build path -> Configure build path
 2.library -> Add External Jars | Add Jars | Add Library
Add External Jars : 通过绝对路径索引到所需jar包 添加并应用
Add Jars : 将所需jar包复制到jar包文件夹中 直接将所需jar包添加
Add Library : user library -> new -> Add Jars -> 工作环境下查找 

3.使用log4j的优势
1.拥有6种不同级别的信息打印方式
debug info warn error fatal
2.可以选择多种打印输出源(eg: console | file)
3.打印时可以丰富打印信息
4.配置日志文件
有1.x 2.x 两个版本

先设置1.x版本的配置文件

// 设置 root logger的级别 和 log者(名字可以自定义)
log4j.rootlogger = info , out
// 设置appender输出源 (控制台 目的地)
log4j.appender.out = org.apache.log4j.ConsoleAppender
// 设置layout 布局 格式
// 灵活的格局
// PatternLayout 灵活布局
// SimpleLayout 简单表格布局 
// TTCCLayout 
log4j.appender.out.layout = org.apache.log4j.PatternLayout
// 设定特定Logger的自身优先级()_
log4j.appender.out.Threshold = error
// 是否立即打印
log4j.apaender.out.ImmediateFlush = true
// 输出流target (out流 | err流)
log4j.appender.out.Target = System.out
// 格式化输出layout(ConversionPattern)
log4j.appender.out.conversionPattern = [%d{yyyy-MM-dd HH:mm:ss:SSS} [%p]]
格式化语句
时间: %d{yyyy-MM-dd HH:mm:ss:SSSS}
级别: %p
线程: %t
信息产生的详细位置: %l
打印信息: %m
换行: %n
所属类: %c
耗时: %r
注: 非转义字符原样输出

实现代码:

log4j 1.x 具体使用
 * 1. 导入log4j依赖包
 * 2. 创建log4j对象
 * 3. 使用对象方法
 * 
 * 所需配置文件: log4j.properties
 * 注意: 配置文件具有编码问题; 配置文件需要存放在工程目录src下
 */
import org.apache.log4j.Logger;

public class Log4j03 {
    private static final Logger LOG = Logger.getLogger(Log4j03.class);

    public static void main(String[] args) {
        LOG.fatal("log4j 1.x fatal level message.");
        LOG.error("log4j 1.x error level message.");
   }
}

结果:

[2018-01-02 19:01:12:307] [FATAL] [main] [lesson.ls03.Log4j03.main(Log4j03.java:17)]- log4j 1.x fatal level message.
[2018-01-02 19:01:12:310] [ERROR] [main] [lesson.ls03.Log4j03.main(Log4j03.java:18)]- log4j 1.x error level message.

2.x 版本配置文件

xml文件 基本语法
 1.xml中以标签作为"盒子"存储数据
 2.xml中所有标签必须闭合
 3.xml中无任何预定义标签(系统标签),只有自定义标签
 4.xml中一个文件只能拥有一个跟标签
 5.xml中标签可以拥有属性和值
标签只能被<>包裹,以字母开头,可以结合合法字符,
在xml中
先写配置文件跟标签Configuration
<!-- 设置配置文件跟标签: Configuration -->
<Configuration>
     <!-- 设置输出源们 -->
      <Appenders>
           <!-- 设置控制台输出 -->
           <!-- name属性:appender的名字(自定义) -->
           <!-- target属性: 采用的target(out流 | err流) -->
           <Console name="Console" target="System_out"> 
               <!-- 设置输出信息的格式 -->
               <PatternLayout pattern="[%d{HH:ss:SSSS}][%-5level] [%t] [%l]%msg%n" />
           </Console>

           <!-- 设置文件输出 -->
           <file name = "Normal" fileName = "$[LOG_HOME]/log4j.log " append = "true">
           <PatternLayout pattern="[%d{yyyy-MM-dd HH:ss:SSSS}][%-5level] [%t] [%l]%msg%n" />
           </file>

      </Appenders>
      <!-- 设置打印者: 采用默认root logger -->
      <loggers>
      <Root level = "info">
         <!-- 为logger引用 appender  -->
         <AppenderRef ref="Console" />
         <AppenderRef ref="Normal" />
      </Root>
    </loggers>
</Configuration>

实现代码:

/*
 * log4j 2.x 具体使用
 * 1. 导入log4j依赖包
 * 2. 创建log4j对象
 * 3. 使用对象方法
 * 
 * log4j2 配置文件
 * 1. 采用 json | xml 格式文件运行进行配置
 * 2. 存在四种配置文件命名(优先级从左至右依次降低)
 * log4j2-test.json(jsn) > log4j2-test.xml > log4j2.json(jsn) > log4j2.xml
 * 3. 配置文件存放在项目根目录src下
 */
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;

public class Log4j04 {
    // getLogger() 参数
    // 默认为 当前类.class
    // 设置后 作为 当前Logger名
    private static final Logger LOG = LogManager.getLogger();
    public static void main(String[] args) {
        LOG.fatal("log4j2 fatal level ");
        LOG.error("log4j2 error level ");
  }
}

结果:

[19:55:0238][FATAL] [main] [lesson.ls04.Log4j04.main(Log4j04.java:23)]log4j2 fatal level 
[19:55:0246][ERROR] [main] [lesson.ls04.Log4j04.main(Log4j04.java:24)]log4j2 error level 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值