【Java】SpringBoot接入阿里云日志服务Logback Appender

1、项目中引入依赖:

<dependency>
    <groupId>com.google.protobuf</groupId>
    <artifactId>protobuf-java</artifactId>
    <version>2.5.0</version>
</dependency>
<dependency>
    <groupId>com.aliyun.openservices</groupId>
    <artifactId>aliyun-log-logback-appender</artifactId>
    <version>0.1.18</version>
</dependency>

2、application.yml中日志文件配置如下:

logging:
  config: classpath:logback-spring.xml

3、logback-spring.xml中日志输出配置如下:

<configuration scan="true" scanPeriod="60 seconds">

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>logs/lws-server-1.log</file>
        <encoder>
            <pattern>
                [ %-5level] [%date{yyyy-MM-dd HH:mm:ss}] %logger{96} [%line] - %msg%n
            </pattern>
            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
        </encoder>

        <!-- 设置为按照索引的方式滚动,定义文件名称的时候使用%i作为占位符,滚动后会会用角标替换 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <fileNamePattern>logs/social-server-%i.log</fileNamePattern>
            <minIndex>1</minIndex>
            <maxIndex>10</maxIndex>
        </rollingPolicy>
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <maxFileSize>50MB</maxFileSize>
        </triggeringPolicy>
    </appender>
    <!-- Console output -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- encoder defaults to ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
        <encoder>
            <pattern>
                [ %-5level] [%date{yyyy-MM-dd HH:mm:ss}] %logger{96} [%line] - %msg%n
            </pattern>
            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
        </encoder>
    </appender>

    <!--阿里云日志服务配置 测试环境-->
    <!--为了防止进程退出时,内存中的数据丢失,请加上此选项-->
    <shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>
    <appender name="ALIYUN_DEV" class="com.aliyun.openservices.log.logback.LoghubAppender">
        <!--必选项-->
        <!-- 账号及网络配置 -->
        <endpoint>cn-beijing-intranet.log.aliyuncs.com</endpoint>
        <accessKeyId>xxx</accessKeyId>
        <accessKeySecret>xxx</accessKeySecret>

        <!-- sls 项目配置 -->
        <project>lws-log-dev</project>
        <logStore>lws-logstore</logStore>
        <!--必选项 (end)-->

        <!-- 可选项 -->
        <topic>lws-log</topic>

        <!-- 可选项 详见 '参数说明'-->
        <totalSizeInBytes>104857600</totalSizeInBytes>
        <maxBlockMs>0</maxBlockMs>
        <ioThreadCount>8</ioThreadCount>
        <batchSizeThresholdInBytes>524288</batchSizeThresholdInBytes>
        <batchCountThreshold>4096</batchCountThreshold>
        <lingerMs>2000</lingerMs>
        <retries>10</retries>
        <baseRetryBackoffMs>100</baseRetryBackoffMs>
        <maxRetryBackoffMs>50000</maxRetryBackoffMs>

        <!-- 可选项 通过配置 encoder 的 pattern 自定义 log 的格式 -->
        <encoder>
            <pattern>%d %-5level [%thread] %logger{0}: %msg</pattern>
        </encoder>

        <!-- 可选项 设置 time 字段呈现的格式 -->
        <timeFormat>yyyy-MM-dd'T'HH:mmZ</timeFormat>
        <!-- 可选项 设置 time 字段呈现的时区 -->
        <timeZone>Asia/Shanghai</timeZone>
    </appender>

    <!--阿里云日志服务配置 正式环境-->
    <appender name="ALIYUN_PRO" class="com.aliyun.openservices.log.logback.LoghubAppender">
        <!--必选项-->
        <!-- 账号及网络配置 -->
        <endpoint>cn-beijing-intranet.log.aliyuncs.com</endpoint>
        <accessKeyId>xxx</accessKeyId>
        <accessKeySecret>xxx</accessKeySecret>

        <!-- sls 项目配置 -->
        <project>lws-log</project>
        <logStore>lws-logstore</logStore>
        <!--必选项 (end)-->

        <!-- 可选项 -->
        <topic>lws-log</topic>

        <!-- 可选项 详见 '参数说明'-->
        <totalSizeInBytes>104857600</totalSizeInBytes>
        <maxBlockMs>0</maxBlockMs>
        <ioThreadCount>8</ioThreadCount>
        <batchSizeThresholdInBytes>524288</batchSizeThresholdInBytes>
        <batchCountThreshold>4096</batchCountThreshold>
        <lingerMs>2000</lingerMs>
        <retries>10</retries>
        <baseRetryBackoffMs>100</baseRetryBackoffMs>
        <maxRetryBackoffMs>50000</maxRetryBackoffMs>

        <!-- 可选项 通过配置 encoder 的 pattern 自定义 log 的格式 -->
        <encoder>
            <pattern>%d %-5level [%thread] %logger{0}: %msg</pattern>
        </encoder>

        <!-- 可选项 设置 time 字段呈现的格式 -->
        <timeFormat>yyyy-MM-dd'T'HH:mmZ</timeFormat>
        <!-- 可选项 设置 time 字段呈现的时区 -->
        <timeZone>Asia/Shanghai</timeZone>
    </appender>

    <root level="INFO">
        <appender-ref ref="FILE" />
        <appender-ref ref="STDOUT" />

        <springProfile name="test">
            <appender-ref ref="ALIYUN_DEV" />
        </springProfile>
        <springProfile name="prod">
            <appender-ref ref="ALIYUN_PRO" />
        </springProfile>
    </root>

    <springProfile name="dev">
        <logger name="com.lws.test" level="DEBUG" />
    </springProfile>

    <springProfile name="test">
        <logger name="com.lws.test" level="DEBUG" />
    </springProfile>

    <springProfile name="prod">
        <logger name="com.lws.test" level="DEBUG" />
    </springProfile>

</configuration>

附:官方文档 https://github.com/aliyun/aliyun-log-logback-appender/blob/master/README_CN.md

 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Spring Boot支持Logback作为其默认的日志框架,因此接入Logback很简单,无需添加额外的配置。你只需在项目的依赖管理中添加Logback的依赖即可。 例如,在Maven项目中,您可以在pom.xml中添加以下代码: ``` <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> </dependency> ``` 在您的应用程序中,您可以通过使用Logback的API(例如org.slf4j.Logger)记录日志。默认情况下,Spring Boot会使用默认的配置文件(logback-spring.xml),您可以在应用程序的资源目录中添加自己的配置文件以覆盖默认配置。 如果要对日志进行更深入的自定义,您可以通过在配置文件中配置appender,layout和logger等来设置日志记录。 ### 回答2: 要将Logback集成到Spring Boot中,需要执行以下步骤: 1.在pom.xml文件中,添加logback的依赖项。Spring Boot已经集成了Logback,所以只需要在<dependencies>标签中添加以下代码: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </dependency> ``` 2.在src/main/resources目录下,创建一个名为logback.xml的文件,该文件用于配置Logback日志输出规则。可以根据需要进行自定义配置,例如设置日志级别、输出格式等。 3.在Spring Boot启动类中,添加@EnableAutoConfiguration注解。这个注解会自动加载Spring Boot的自动配置类,其中包括Logback的配置。 4.在需要记录日志的类中,使用Logger对象来输出日志。可以通过使用@Autowired注解将Logger对象注入到类中,或者使用如下方式获取Logger对象: ```java private Logger logger = LoggerFactory.getLogger(YourClassName.class); ``` 通过以上步骤,就可以将Logback成功集成到Spring Boot中了。在应用程序运行时,Logback会根据logback.xml文件中的配置规则来记录日志。 ### 回答3: 要将logback接入Spring Boot应用程序,可以按照以下步骤进行操作: 1. 首先,在你的Spring Boot项目的依赖管理文件(通常是pom.xml或build.gradle)中添加logback的依赖项。例如,在pom.xml文件中添加以下依赖项: ```xml <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>${logback.version}</version> </dependency> ``` 2. 在Spring Boot配置文件(通常是application.properties或application.yml)中配置logback相关属性。例如,配置日志输出的目标文件路径、级别等。以下是一个application.properties文件的示例配置: ```properties # 配置日志输出目标文件 logging.file=/path/to/logfile.log # 配置日志级别 logging.level.root=INFO ``` 3. 配置logback日志输出格式和目标文件等。创建一个logback.xml配置文件,并在其中指定日志输出的格式、输出目标等。以下是一个简单的logback.xml配置示例: ```xml <configuration> <!-- 配置输出到文件 --> <appender name="FILE" class="ch.qos.logback.core.FileAppender"> <file>${logging.file}</file> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- 配置根日志记录器 --> <root level="${logging.level.root}"> <appender-ref ref="FILE" /> </root> </configuration> ``` 4. 在Spring Boot应用程序的启动类中,添加@EnableAutoConfiguration注解来自动配置logback。例如: ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class MyApp { public static void main(String[] args) { SpringApplication.run(MyApp.class, args); } } ``` 通过以上步骤,你就可以将logback成功接入Spring Boot应用程序,并以配置好的方式记录日志了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李维山

帮到你就行 不差钱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值