Cassandra Appender-如何仅记录错误消息?

时间:2019-07-31 05:19:53

标签: cassandra log4j2

我在我的应用程序中使用Cassandra附加程序,控制台和文件附加程序。我只想在Cassandra表日志中存储ERROR条消息,而在控制台和文件中存储INFO条消息。

下面是log4j2.xml文件。

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

<Configuration status="INFO">
    <Properties>
        <Property name="LOG_PATTERN">%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n"</Property>
        <Property name="APP_LOG_ROOT">./log</Property>
        <Property name="MINLEVEL">INFO</Property>
        <Property name="FILEMAXSIZE">800MB</Property>
        <Property name="MAXFILES">5</Property>x
    </Properties>

    <Appenders>
        <Console name="console" target="SYSTEM_OUT" follow="true">
            <PatternLayout  pattern="${LOG_PATTERN}"/>
        </Console>

        <RollingFile name="ROLLING" fileName="${APP_LOG_ROOT}/abc.log"
                     filePattern="${APP_LOG_ROOT}/abc-%d{yyyy-MM-dd}-%i.log">
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <Policies>
                <SizeBasedTriggeringPolicy size="${FILEMAXSIZE}" />
            </Policies>
            <DefaultRolloverStrategy max="${MAXFILES}"/>
        </RollingFile>
         <Cassandra name="Cassandra" clusterName="TestCluster" keyspace="Employee" table="Logs" bufferSize="10"  username="tomcat" password="password">
            <SocketAddress host="IPaddress" port="9042"/>
            <ColumnMapping name="userid" pattern="%uuid{TIME}" type="java.util.UUID"/>
            <ColumnMapping name="logger" pattern="%logger"/>
            <ColumnMapping name="message" pattern="%message"/>
            <ColumnMapping name="level" pattern="%level"/>
             <ColumnMapping name="timestamp" literal="now()"/>
        </Cassandra>
    </Appenders>

    <Loggers>
        <Root level="${MINLEVEL}" additivity="false">
            <AppenderRef ref="ROLLING"/>
        </Root>
        <Logger name="abc.xyz" level="ERROR" additivity="false">
            <AppenderRef ref="Cassandra" />
            <AppenderRef ref="console" />
        </Logger>
    </Loggers>

在最后一个片段中,当我将级别更改为${MINLEVEL}时,即 INFO ,则它起作用了,但是ERROR不起作用。请帮忙!

1 个答案:

答案 0 :(得分:0)

问题在于可加性设置为false,这防止了将消息复制到rootabc.xyz记录器。如果将可加性设置为false,它将被发送到两个记录器。

blog entry中提供了更多信息。