如何将log4j2生成的日志文件发送到AWS cloudwatch和S3存储桶

时间:2015-11-10 00:03:25

标签: amazon-s3 log4j2 java-ee-7 logfile amazon-cloudwatch

我有两个log4j2生成的日志文件。我正在使用FileAppender生成这些日志文件,现在我想将这些日志文件作为log4j2目标发送到AWS cloudwatch和S3存储桶。

我是log4j2和这个云API的新手。我搜索了很多但却找不到有用的东西。虽然我找到了这两个链接:

http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-configuration-cwl.htmlhttp://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/java-dg-logging.html

但我不确定它是如何工作的以及这是否是将日志文件发送到AWS cloudwatch和S3存储桶的唯一方法。我需要在log4j2.xml文件中执行哪些其他设置。

那么,如何将log4j2生成的日志文件发送到云API?我必须使用log4j2和J2EE。

这是我的log4j2.xml文件:

<Configuration monitorInterval="30" status="warn" name= "MyApp" packages="" xmlns="http://logging.apache.org/log4j/2.0/config">

<Properties>
    <Property name="filename-server1-all">${sys:catalina.home}/logs/server1-all.log</Property>
    <Property name="filename-server1-err">${sys:catalina.home}/logs/app.log</Property>
    <Property name="pattern_layout">%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n</Property>
</Properties>

<Appenders>
    <Console name="STDOUT" target="SYSTEM_OUT">
        <PatternLayout pattern="%-5p | %d{yyyy-MM-dd HH:mm:ss} | [%t] %C{2} (%F:%L) - %m%n"/>
    </Console>

    <File name="appender-server-1-all" fileName="${filename-server1-all}">
        <PatternLayout pattern="${pattern_layout}" />
    </File>

    <File name="appender-server1-err" fileName="${filename-server1-err}">
        <PatternLayout pattern="${pattern_layout}" />
    </File>
 </Appenders>

       <Loggers>
        <Root level="trace">
            <AppenderRef ref="STDOUT"/>
            <AppenderRef ref="appender-server-1-all" level="all"/>
            <AppenderRef ref="appender-server1-err" level="error"/>
        </Root>
    </Loggers>
   </Configuration>

0 个答案:

没有答案