logback极简开箱使用
引入依赖:
<!-- Logback 日志依赖 --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.12</version> </dependency>
在src/main/resources下创建logback.xml:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- 控制台输出 --> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- 文件输出(需要时取消注释) --> <!-- <appender name="FILE" class="ch.qos.logback.core.FileAppender"> <file>app.log</file> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> --> <root level="INFO"> <appender-ref ref="CONSOLE" /> <!-- <appender-ref ref="FILE" /> --> </root> </configuration>
模式说明
-
%d{yyyy-MM-dd HH:mm:ss.SSS}- 完整时间戳 -
%d{MM-dd HH:mm:ss}- 简化的时间戳(不显示年份) -
[%thread]- 线程名 -
%-5level- 日志级别(左对齐,固定5字符) -
%logger{36}- logger名称,最多36字符(平衡可读性和空间) -
%msg%n- 日志消息和换行
java中愉快的使用:
import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class SimpleFlinkJob { private static final Logger logger = LoggerFactory.getLogger(SimpleFlinkJob.class); public static void main(String[] args) throws Exception { logger.info("Flink 作业启动"); // Flink 作业配置 StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); env.fromElements(1, 2, 3, 4, 5) .map(value -> { logger.debug("处理数据: {}", value); return value * 2; }) .print(); logger.info("开始执行作业"); env.execute("Simple Flink Job"); } }

浙公网安备 33010602011771号