博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Logging in Java
阅读量:4515 次
发布时间:2019-06-08

本文共 4288 字,大约阅读时间需要 14 分钟。

Common logging:

Log4j1仅仅作为一个实际的日志框架,commons-logging作为门面,统一各种日志框架的混乱格局

基本的commons logging

  • Dependency:
commons-logging
commons-logging
1.2

基本输出规则: console输出。

  • 基本的使用方法:
package com.test;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;/** * Created by ygshen on 7/23/16. */public class mainclass {   // Logger factory 会查询logging的实现来定义具体的Log方式,如果没有定义诸如log4j的log 实现 那么   //logging使用的是默认的console 输出    private static Log logger= LogFactory.getLog(mainclass.class);    public static void main(String[] args){        logger.info("test information");        logger.error("test error message");    }}

 

应用实现Log4J1:

common logging 可以提供其它高级logging的基础支持。比如log4j

Logging4J+common-logging 使用方法:

  • Dependency:
commons-logging
commons-logging
1.2
log4j
log4j
1.2.17

 

  • 自定义commons-logging.properties, log4j.properties配置文件

commons-logging.properties

org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger

 Log4J.properties: 这个配置文件 主要是用来配置Appender的即输出目标,主要包括 consoleAppender, FileAppender

#定义成默认的Console输出 log4j.rootLogger=debug,stdout### 输出到控制台 ###log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.out## 输出INFO级别以上的日志log4j.appender.stdout.Threshold=INFOlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

 

# Define the root logger with appender filelog=/home/ygshen/WorkSpace/logslog4j.rootLogger =info,file### 输出到日志文件 ###log4j.appender.file = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.file.File = ${log}/log.outlog4j.appender.file.Append = true# Define the layout for file appenderlog4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.layout.conversionPattern=%m%n

 

  • 这里代码里所使用到的Log 以及 LogFactory都是commons-logging自身的类

 

单独使用Log4J1

也可以不借助commons-logging 而单独使用log4j

  • Dependency 同上
  • log4j.properties同上
  • Java代码
    package com.test;// 单独使用 Log4Jimport org.apache.log4j.Logger;/** * Created by ygshen on 7/23/16. */public class mainclass {    // 获取logger的方式与使用commons logging 不同    private static Logger logger= Logger.getLogger(mainclass.class);    public static void main(String[] args){        logger.info("Test pure log4j logging");    }}

Logback

使用logback+slf4j的方式同一开始介绍的commons-logging + log4j1 方式基本相同,这里commons-log=slf4j充当门面。而logback和log4j1的角色相同充当具体Logr的实现

1. Dependency

ch.qos.logback
logback-classic
1.1.7
ch.qos.logback
logback-core
1.1.7
org.slf4j
slf4j-api
1.7.21

2.  配置文件: 这里配置文件只能是*.xml. 首先找的是logback.groovy 没有的话找logback-test.xml 还没有找logback.xml

这里配置一个logback.xml做为例子,实际工作中可能考虑到不同环境的logback文件 后续会讨论到

${LOG_DIR}/${LOG_FILE_NAME}
${LOG_DIR}/${LOG_FILE_NAME}.%d{yyyy-MM-dd}.%i
100MB
10
%date [%-5thread] %-5level [%-10logger] %-10msg%n

 3. 代码部分

package com.test;import org.slf4j.Logger;import org.slf4j.LoggerFactory;/** * Created by ygshen on 7/23/16. */public class mainclass {   // 这里所使用到的Logger 和LoggerFactory都是slf4j的类充当loggback的门面    private static Logger logger = LoggerFactory.getLogger(mainclass.class);    public static void main(String[] args){        logger.info("This is logger test for slf4j and logback");    }}

 

最后分析以下: http://www.cnblogs.com/ygshen/p/4498210.html

 

转载于:https://www.cnblogs.com/ygshen/p/5699170.html

你可能感兴趣的文章
centos 安装tmux
查看>>
OpenLayers使用symbolizers样式特征
查看>>
C# MD5 加密算法
查看>>
The Startup Manager FAQ
查看>>
CSS布局设计
查看>>
Lua1.0 代码分析 table.c
查看>>
描述yeild作用
查看>>
wifi万能钥匙自媒体平台开放注册(付注册流程)
查看>>
ovs ovn 学习资料
查看>>
C# string 转 bool
查看>>
iOS视频边下载边播放
查看>>
数据分列将数字转换成文本格式
查看>>
java基础语法
查看>>
把e.printStackTrace的堆栈信息打印在log.error()中
查看>>
Highsoft.Highcharts 5.0.6439.38401 key
查看>>
Kids and Prizes(SGU 495)
查看>>
如何完成dedecms外部数据库调用|跨数据库数据调用
查看>>
二维码扫描ZXing简化
查看>>
Linux Bootloader_转载
查看>>
Bootstrap 3.0正式版发布!
查看>>