java logback_「Java」 - logback & 简介

一、简介

日志框架用来记录程序的运行信息,对于成熟的Java应用,日志是必不可少的。在开发和调试阶段,日志可以更快的定位问题;而在应用的运维过程中,日志系统可以记录大部分的异常信息,通常企业可以通过日志信息对系统运行状态进行实时监控预警。

SLF4J(The Simple Logging Facade for Java)和logback是Gülcü创立的开源日志项目,其创立主要是为了提供更高性能的实现,并支持异步logger,Filter等实用特性。

SLF4j提供简单统一的日志记录接口,使用logback实现可以无缝部署应用(与log4j区别)。

A、依赖

1.7.12

org.slf4j

slf4j-api

${slf4j.version}

org.slf4j

jcl-over-slf4j

${slf4j.version}

org.slf4j

log4j-over-slf4j

${slf4j.version}

ch.qos.logback

logback-core

1.1.2

ch.qos.logback

logback-classic

1.1.2

B、配置文件加载顺序logback.groovy

logback-test.xml

logback.xml

使用logback.configurationFile环境变量指定配置文件url

使用默认BasicConfigurator

C、appendersConsoleAppender - class="ch.qos.logback.core.ConsoleAppender"

FileAppender - class="ch.qos.logback.core.FileAppender"

RollingFileAppender - class="ch.qos.logback.core.rolling.RollingFileAppender"

D、最基本配置

[%d{HH:mm:ss.SSS}] [%logger{36} > %thread:%line] [%-5level] - %msg%n

E、基本使用

private final static Logger logger = LoggerFactory.getLogger(logbackTest.class);

logger.trace("Hello World trace");

logger.debug("Hello World debug");

logger.info - 最佳的logger 来源和相关信息。("Hello World info");

logger.warn("Hello World warn");

logger.error("Hello World error");

二、配置实例

logs/error.logs

logs/error.logs.%d{yyyy-MM-dd}.gz

true

100

[%d{HH:mm:ss.SSS}] [%logger{36} > %thread] [%-5level] - %msg%n

ERROR

UTF-8

[%d{HH:mm:ss.SSS}] [%logger{36} > %thread] [%-5level] - %msg%n

DEBUG

logs/YYMall.logs

logs/YYMall.logs.%d{yyyy-MM-dd}.gz

true

100

[%d{HH:mm:ss.SSS}] [%logger{36} > %thread] [%-5level] - %msg%n

三、关于日志

A、优秀的日志可以帮助开发、运维、测试人员解决很多问题了解线上系统的运行状态

快速准确定位线上问题

发现系统瓶颈

预警系统潜在风险

挖掘产品最大价值

B、日志记录内容请求入口和出口

外部服务调用和返回

资源消耗操作(读写文件等)

程序异常(数据库无法连接)

后台操作(定期执行删除的线程)

启动、关闭、配置加载

C、测试日志

通过日志,可以快速得知测试是否成功。测试执行的环境

测试执行前的初始状态

测试的详细步骤

测试和系统的交互信息

测试期望的返回结果

测试实际的返回结果

D、补充调用第三方服务,需记录入参和返回值记录调用时长

记录成功、失败次数

ERROR级别发生了严重的错误,必须马上处理。这种级别的错误是任何系统都无法容忍的。比如:空指针异常,数据库不可用,关键路径的用例无法继续执行

WARN还会继续执行后面的流程,但应该引起重视

INFO记录一些对于线上出问题后有帮助的信息,比如调用第三方接口的时候的传入参数和对方的返回

四、总结

A、开发阶段函数标志信息

所有的参数

关键分支选择

所有的返回值

try...catch中的异常信息以及参数信息(ERROR级别)

B、生产阶段关闭DEBUG、TRACE日志

info酌情保留,WARN和ERROR保留

%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n

DEBUG

class="ch.qos.logback.core.rolling.RollingFileAppender">

log/info.%d{yyyy-MM-dd}.log

${maxHistoryDay}

%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n

ACCEPT

DENY

INFO

class="ch.qos.logback.core.rolling.RollingFileAppender">

log/error.%d{yyyy-MM-dd}.log

${maxHistoryDay}

%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n

WARN

class="ch.qos.logback.core.rolling.RollingFileAppender">

log/dubbo.info.%d{yyyy-MM-dd}.log

${maxHistoryDay}

%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n

ACCEPT

DENY

INFO

参考:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值