使用Spring Boot记录AWS CloudWatch

时间:2018-09-06 08:21:14

标签: spring spring-boot logback

在Cloud Watch中存储多个Spring Boot应用程序日志的方法应该是什么?

示例spring-boot-下面是logback-spring.xml配置文件。

<?xml version="1.0" encoding="UTF-8"?>

<property name="LOGS" value="/logs/abc/" />

<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
    <layout class="ch.qos.logback.classic.PatternLayout">
        <Pattern> %black(%d{ISO8601}) %highlight(%-5level) [%blue(%t)] %yellow(%C{1.}): %msg%n%throwable </Pattern>
    </layout>
</appender>

<appender name="RollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOGS}/abc-log.log</file>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
    <Pattern>%d %p %C{1.} [%t] %m%n</Pattern> </encoder>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- rollover daily and when the file reaches 10 MegaBytes -->
        <fileNamePattern>${LOGS}/archived/abc-log-%d{yyyy-MM-dd}.%i.log
        </fileNamePattern>
        <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>5MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
        <maxHistory>2</maxHistory>
        <totalSizeCap>10MB</totalSizeCap>
    </rollingPolicy>
</appender>

<!-- LOG everything at INFO level -->
<root level="info">
    <appender-ref ref="RollingFile" />
    <appender-ref ref="Console" />
</root>

<logger name="com.abc" level="trace" additivity="false">
    <appender-ref ref="RollingFile" />
    <appender-ref ref="Console" />
</logger>

1 个答案:

答案 0 :(得分:0)

使用Cloudwatch日志代理,我能够实现相同的目标。

步骤1-创建awslogs.conf文件以指向日志位置。

[/logs/abcd/8080-abcd.log]
datetime_format = %Y-%m-%d %H:%M:%S
file = /logs/abcd/8080-abcd.log
buffer_duration = 5000
log_stream_name = {hostname}
initial_position = start_of_file
log_group_name = ABCD Group Name

[/logs/defg/8081-defg.log]
datetime_format = %Y-%m-%d %H:%M:%S
file = /logs/abcd/8081-defg.log
buffer_duration = 5000
log_stream_name = {hostname}
initial_position = start_of_file
log_group_name = DEFG Group Name

第2步-将云监视日志代理安装为ec2的UserData / Bootstrap脚本的一部分。

yum install wget -y
wget https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py
python ./awslogs-agent-setup.py --region $aws_region --non-interactive --configfile=/configlocation/awslogs.conf

第3步-需要ec2机器角色才能在CloudWatch中创建日志。