log4j2 RedisAppender

How to implement log4j2 redis appender

1.Download a RedisAppender Class

2.log4j2.xml

<Configuration>
    <Appenders>
<Console name="Console" target="SYSTEM_OUT">
            <PatternLayout
                    pattern="%style{%d{ISO8601}}{black} %highlight{%-5level }[%style{%t}{bright,blue}] %style{%C{1.}}{bright,yellow}: %msg%n%throwable" />
        </Console>
<Async name="AsyncAppenderRedis" bufferSize="80">
            <AppenderRef ref="REDIS"/>
        </Async>
<RedisAppender name="REDIS"
                       key="log4j2-messages"
                       host="redis_ip"
                       port="redis_port">
            <PatternLayout pattern="%level %msg"/>
            <RedisConnectionPoolConfig testWhileIdle="true"
                                       minEvictableIdleTimeMillis="60000"
                                       timeBetweenEvictionRunsMillis="30000"
                                       numTestsPerEvictionRun="-1"/>
            <RedisThrottlerConfig bufferSize="500"
                                  batchSize="100"
                                  flushPeriodMillis="1000"
                                  maxEventCountPerSecond="100"
                                  maxByteCountPerSecond="4194304"/>
        </RedisAppender>
</Appenders>

    <Loggers>
        <!-- LOG everything at INFO level -->
        <Root level="info">
            <AppenderRef ref="AsyncAppenderRedis" />
            <AppenderRef ref="Console" />
        </Root>

        <!-- LOG "myapp" at TRACE level -->
        <Logger name="myapp" level="trace"></Logger>
    </Loggers>

</Configuration>

ทุกครั้งที่ใน App เรามีการใช้คำสั่งเช่น logger.info(“message”); ข้อมูลจะถูกส่งไปเก็บที่ Redis โดยจะใช้คำสั่ง rpush เก็บเป็น Queue เราสามารถลอง rpop ตาม key ที่ระบุใน log4j2.xml ในตัวอย่างคือ log4j2-messages

Ref : https://github.com/vy/log4j2-redis-appender

Related posts:

This entry was posted in spring boot. Bookmark the permalink.