1
votes

I am not interested in printing logs to console, only to file. my current Log4j2.xml configuration doesn't support this unless I am configuring 'level=" OFF"' but then it doesn't write to both, file and console. how do I configure the logger to write only to file?

already tried to comment out the tag and to comment out the "appenderRef" tag inside the "Logger" tag

the log4j2.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<Configuration>
    <Appenders>
        <RollingFile name="vertx_file" append="true"
            fileName="/var/log/vertx.log"
            filePattern="/var/log/vertx/$${date:yyyy-MM}/vertx-%d{MM-dd-yyyy}-%i.log.gz">
            <PatternLayout pattern="%d{ISO8601} %-5p %c:%L - %m%n" />
            <Policies>
                <OnStartupTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="5MB" />
                <TimeBasedTriggeringPolicy />
            </Policies>
        </RollingFile>
        <Console name="STDOUT" target="SYSTEM_OUT">
            <!-- <LogStashJSONLayout/> -->
            <PatternLayout pattern="%d{ISO8601} %-5p %c:%L - %m%n" />
        </Console>
    </Appenders>

    <Loggers>
        <Logger name="com.service.vertex" level="OFF" >
            <!-- <AppenderRef ref="vertx_rollingFile" /> -->
            <!-- <AppenderRef ref="vertx_socket" /> -->
            <!-- <AppenderRef ref="STDOUT" /> -->
            <AppenderRef ref="vertx_file" />
        </Logger>


        <Logger name="org.mongodb.driver" level="OFF">
            <AppenderRef ref="vertx_rollingFile" />
            <AppenderRef ref="vertx_socket" />
            <AppenderRef ref="STDOUT" />
            <AppenderRef ref="vertx_file" />
        </Logger>


        <Root level="INFO">
            <AppenderRef ref="vertx_socket" />  
                    <!--<AppenderRef ref="STDOUT" />-->
            <AppenderRef ref="vertx_file" /> 
        </Root> 
    </Loggers>
</Configuration>

the log:

Apr 03, 2019 2:02:35 PM com.service.vertex.dao.UsersCollection
INFO: {"response_code":551,"description":"INVALIDATE SESSION ERROR: null","log_origin":"system","id":"ERROR (57) 14:02:35:050","time":"2019-04-03 14:02:35:050","host_name":"pc","server_port":"444","level":"ERROR","verticle":"admin","remote_address":"172.15.333.21"}

still printing to console

1

1 Answers

0
votes

Comment the below in the config and try

 <Console name="STDOUT" target="SYSTEM_OUT">
            <!-- <LogStashJSONLayout/> -->
            <PatternLayout pattern="%d{ISO8601} %-5p %c:%L - %m%n" />
        </Console>

and the appenders

<AppenderRef ref="STDOUT" />