【Java】Java日志框架Logback的简单例子
常用的日志框架
SLF4J
,全称Simple Logging Facade for Java
,即Java简单日志外观框架
,顾名思义,它并非具体的日志实现,而是日志外观框架java.util.logging
,是JDK自带的一个日志实现框架Logback
,一个流行的日志实现框架LOG4J
,一个流行的日志实现框架
java.util.logging
java.util.logging
,JDK自带的一个日志实现框架,我们并没有在项目中使用,但在个人练习中常使用来打印日志,来个最简单的例子。
import java.util.logging.Logger;
public class HowToUse {
public static void main(String[] args) {
Logger logger = Logger.getLogger("HowToUse"); // 默认级别info
/* 各打印级别 */
logger.severe("severe");
logger.warning("warning");
logger.info("info");
logger.config("config");
logger.fine("fine");
logger.finer("finer");
logger.finest("finest");
}
}
日志:
五月 29, 2017 7:44:40 上午 HowToUse main
严重: severe
五月 29, 2017 7:44:41 上午 HowToUse main
警告: warning
五月 29, 2017 7:44:41 上午 HowToUse main
信息: info
Logback
一款基于SLF4J
外观的日志实现,用POM.XML
引入Logback
你会发现依赖并引入SLF4J
。
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.11</version>
<scope>test</scope>
</dependency>
Logback
的配置中有几个比较重要,looger
、root
、appender
,结构图如下:
一个简单的配置文件:
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<property name="Application_Name" value="Logback-Exercies" /> <!-- 公用属性 -->
<contextName>${Application_Name}</contextName> <!-- 上下文名称 -->
<!-- 控制台输出 -->
<appender name="CONSOLE_OUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n
</pattern>
</encoder>
</appender>
<!-- 滚动日志文件输出 -->
<appender name="ROLLING_FILE_OUT"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>D:/logs/${Application_Name}.%d{yyyy-MM-dd}.log
</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n
</pattern>
</encoder>
</appender>
<!-- 专门为com.nicchagil包下定义的输出 -->
<appender name="SPECIFIED_FILE_OUT" class="ch.qos.logback.core.FileAppender">
<file>D:/logs/${Application_Name}_Specified.log</file>
<append>true</append>
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n
</pattern>
</encoder>
</appender>
<!-- 根logger的定义 -->
<root level="INFO">
<appender-ref ref="CONSOLE_OUT" />
<appender-ref ref="ROLLING_FILE_OUT" />
</root>
<!-- 为com.nicchagil包专属logger的定义 -->
<logger name="com.nicchagil" level="DEBUG">
<appender-ref ref="SPECIFIED_FILE_OUT" />
</logger>
</configuration>
声明Logger:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private final Logger logger = LoggerFactory.getLogger(MySimpleJob.class);
LOG4J
LOG4J
,一个流行的日志实现框架,很多公司在使用,这里不讨论。
如使用它,则引用:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
</dependency>
作者:Nick Huang 博客:http://www.cnblogs.com/nick-huang/
本博客为学习、笔记之用,以笔记形式记录学习的知识与感悟。学习过程中可能参考各种资料,如觉文中表述过分引用,请务必告知,以便迅速处理。如有错漏,不吝赐教。
如果本文对您有用,点赞或评论哦;如果您喜欢我的文章,请点击关注我哦~
本博客为学习、笔记之用,以笔记形式记录学习的知识与感悟。学习过程中可能参考各种资料,如觉文中表述过分引用,请务必告知,以便迅速处理。如有错漏,不吝赐教。
如果本文对您有用,点赞或评论哦;如果您喜欢我的文章,请点击关注我哦~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
2016-05-29 【Java】斐波那契数列(Fibonacci Sequence、兔子数列)的3种计算方法(递归实现、递归值缓存实现、循环实现、尾递归实现)