You need to enable JavaScript to run this app.
文档中心
日志服务

日志服务

复制全文
下载 pdf
数据采集
使用 Logback Appender 上传日志
复制全文
下载 pdf
使用 Logback Appender 上传日志
本文介绍如何通过日志服务 Logback Appender 上传日志到日志服务。​
背景信息​
Logback 是由 Log4j 创始人所设计的一款开源日志组件。借助 Logback,您只需通过一个配置文件即可实现如下功能,无需修改应用的代码。​
  • 控制日志信息输送的目的端。​
  • 包括控制台、文件、GUI 组件、套接口服务器、NT 的事件记录器、UNIX Syslog 守护进程等。​
  • 控制每一条日志信息的输出格式。​
  • 定义每一条日志信息的级别,更加细致地控制日志的生成过程。​
火山引擎日志服务 TLS Logback Appender 是一个基于 Logback 框架的 Appender,用于将日志上传到火山引擎日志服务中。上传的日志样式如下:​
​
level: ERROR​
location: com.volcengine.service.tls.logback.example.LogbackAppenderExample.main(LogbackAppenderExample.java:18)​
message: this is an error log​
throwable: java.lang.RuntimeException: xxx​
thread: main​
time: 2023-10-24T12:00+0000​
log: 2023-10-24 12:00:00,000 ERROR [main] com.volcengine.service.tls.logback.example.LogbackAppenderExample: this is an error log​
__source__: 192.168.1.100​
__path__: sys.log​
​
​
字段​
说明​
level​
日志级别。​
location​
日志打印语句的代码位置。​
message​
日志内容。​
throwable​
日志异常信息。​
只有记录了异常信息,日志中才会展示该字段。​
thread​
线程名称。​
time​
日志打印时间。​
支持通过 timeFormat 参数或 timeZone 参数配置 time 字段所呈现的格式和时区。​
log​
自定义日志格式。​
只有设置了 encoder,日志中才会展示该字段。​
__source__​
日志来源。​
您可在配置文件中指定日志来源。​
__path__​
日志数据源路径。​
您可在配置文件中指定日志数据源路径。​
​
功能优势​
  • 日志不落盘:产生的日志通过网络发给服务端。​
  • 零代码改造成本:只需通过 XML 文件简单配置即可上报日志到日志服务。​
  • 高性能:基于日志服务 Java SDK Producer,具有异步发送、高性能、失败重试等特性,适用于高并发场景。​
使用说明​
1 在 Maven 工程中添加依赖​
参考如下示例,在 Maven 工程中添加依赖。​
​
<dependency>​
<groupId>com.volcengine</groupId>​
<artifactId>ve-tls-logback-appender</artifactId>​
<version>1.0.2</version>​
</dependency>​
​
2 修改配置文件​
参考如下示例在 logback.xml 文件中定义日志服务 Logback Appender,即在文件中绑定 com.volcengine.service.tls.logback.LogbackAppender 类。​
如下示例代码注册了两个 Logback Appender,一个用于将日志输出到控制台,另一个用于将日志上报到日志服务。详细代码,请参考logback-example.xml。​
示例代码中详细标注了日志服务 Logback Appender 必填和选填参数。其中,关于 TLS Java Producer 的自定义配置,请参考 LOG Java Producer。​
​
<configuration>​
<!--为了防止进程退出时,内存中的数据丢失,请加上此选项-->​
<shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>​
​
<!-- 配置日志输出目的地为TLS日志服务的appender -->​
<appender name="TLSLogbackAppender" class="com.volcengine.service.tls.logback.LogbackAppender">​
<!-- 必选项:TLS日志服务基本配置 -->​
<endpoint></endpoint>​
<region></region>​
<accessKeyId></accessKeyId>​
<accessKeySecret></accessKeySecret>​
<!-- 必选项:TLS日志项目/主题配置 -->​
<projectID></projectID>​
<topicID></topicID>​
<!-- 可选项:日志数据源配置 -->​
<source></source>​
<filename></filename>​
​
<!-- 可选项:TLS Java Producer自定义配置 -->​
<totalSizeInBytes>104857600</totalSizeInBytes>​
<maxThreadCount>50</maxThreadCount>​
<maxBlockMs>60000</maxBlockMs>​
<maxBatchSizeBytes>524288</maxBatchSizeBytes>​
<maxBatchCount>4096</maxBatchCount>​
<lingerMs>2000</lingerMs>​
<retryCount>2</retryCount>​
<maxReservedAttempts>3</maxReservedAttempts>​
​
<!-- 可选项:通过配置encoder pattern自定义日志格式 -->​
<encoder>​
<pattern>%d %-5level [%thread] %logger{0}: %msg</pattern>​
</encoder>​
​
<!-- 可选项:设置时间格式 -->​
<timeFormat>yyyy-MM-dd'T'HH:mmZ</timeFormat>​
<!-- 可选项:设置时区 -->​
<timeZone>Asia/Shanghai</timeZone>​
​
<!-- 可选项:配置LevelFilter -->​
<filter class="ch.qos.logback.classic.filter.LevelFilter">​
<level>INFO</level>​
<onMatch>ACCEPT</onMatch>​
<onMismatch>DENY</onMismatch>​
</filter>​
<!-- 可选项:配置mdcFields -->​
<mdcFields>THREAD_ID,MDC_KEY</mdcFields>​
</appender>​
​
<!-- 配置日志输出目的地为Stdout的appender -->​
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">​
<encoder>​
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg %X{THREAD_ID} %n</pattern>​
</encoder>​
</appender>​
​
<!-- 可用来获取StatusManager中的状态 -->​
<statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener"/>​
<!-- 解决debug模式下循环发送的问题 -->​
<logger name="org.apache.http.impl.conn.Wire" level="WARN" />​
​
<root>​
<level value="DEBUG"/>​
<appender-ref ref="TLSLogbackAppender"/>​
<appender-ref ref="STDOUT"/>​
</root>​
</configuration>​
​
说明​
  • 请您加上 DelayingShutdownHook 标签,以防止进程退出时日志服务 Logback Appender 缓存在内存中的少量数据丢失。​
  • 日志服务 Logback Appender 在运行过程中产生的异常会被捕获并放入 Logback 的 BasicStatusManager 类中,您可以通过配置 OnConsoleStatusListener 或其他方式查看出错信息。更多信息,请参考 Logback-acess。​
3 使用原有 Logback 日志输出代码上报日志​
LogbackAppenderExample 中的示例代码展示了通过 Logback 输出日志的基本配置。 当您实例化 Logger 对象后,通过 trace/debug/info/warn/error 方法即可将日志输出到您在 logback.xml 文件中所配置的目的端。​
说明​
如果您修改了 logback.xml 配置文件,您无需再修改系统中原有的日志输出相关的代码。​
​
package com.volcengine.service.tls.logback.example;​
​
import org.slf4j.Logger;​
import org.slf4j.LoggerFactory;​
import org.slf4j.MDC;​
​
public class LogbackAppenderExample {​
private static final Logger LOGGER = LoggerFactory.getLogger(LogbackAppenderExample.class);​
​
public static void main(String[] args) {​
MDC.put("MDC_KEY","MDC_VALUE");​
MDC.put("THREAD_ID", String.valueOf(Thread.currentThread().getId()));​
​
LOGGER.trace("This is a trace log.");​
LOGGER.debug("This is a debug log.");​
LOGGER.info("This is a info log.");​
LOGGER.warn("This is a warn log.");​
LOGGER.error("This is an error log.");​
}​
}​
​
​
最近更新时间:2025.09.11 10:17:27
这个页面对您有帮助吗?
有用
有用
无用
无用