简体   繁体   中英

Log4j Unexpected Extra Logs

My log output is filled with UNEXPECTED EXTRA information I should not be seeing. I just added Log4j to a Java project at my company and this is happening.

FIle: log4j.properties

log4j.rootCategory=info,console

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.out
log4j.appender.console.immediateFlush=true
log4j.appender.console.encoding=UTF-8
#log4j.appender.console.threshold=info

log4j.appender.console.layout=org.apache.log4j.PatternLayout
# log4j.appender.console.layout.conversionPattern=%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} %p %m%n
log4j.appender.console.layout.conversionPattern=%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} %p %m%n

File: Main.java


import java.io.File;
import java.util.Properties;

import org.apache.directory.api.ldap.model.entry.Entry;
import org.apache.directory.api.ldap.model.exception.LdapException;
import org.apache.directory.api.ldap.model.message.SearchRequest;
import org.apache.directory.api.ldap.model.message.SearchResultDone;
import org.apache.directory.api.ldap.model.message.SearchResultEntry;
import org.apache.directory.api.ldap.model.message.SearchResultReference;
import org.apache.directory.api.ldap.model.name.Dn;
import org.apache.directory.api.ldap.model.schema.*;
import org.apache.directory.api.ldap.model.schema.registries.AttributeTypeRegistry;
import org.apache.directory.server.core.DefaultDirectoryService;
import org.apache.directory.server.core.api.DirectoryService;
import org.apache.directory.server.core.api.InstanceLayout;
import org.apache.directory.server.core.api.filtering.EntryFilteringCursor;
import org.apache.directory.server.core.api.interceptor.Interceptor;
import org.apache.directory.server.core.api.interceptor.context.*;
import org.apache.directory.server.core.api.schema.SchemaPartition;
import org.apache.directory.server.core.authn.AuthenticationInterceptor;
import org.apache.directory.server.core.authn.Authenticator;
import org.apache.directory.server.core.shared.DefaultDnFactory;
import org.apache.directory.server.ldap.LdapServer;
import org.apache.directory.server.ldap.LdapSession;
import org.apache.directory.server.ldap.handlers.extended.StartTlsHandler;
import org.apache.directory.server.ldap.handlers.LdapRequestHandler;
import org.apache.directory.server.ldap.handlers.LdapResponseHandler;
import org.apache.directory.server.ldap.handlers.request.SearchRequestHandler;
import org.apache.directory.server.protocol.shared.transport.TcpTransport;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

public class Main {
        public final static Logger logger = Logger.getLogger(Main.class);

    public static void main(String[] args) throws Exception {

        File log4jPropertiesFile = new File("log4j.properties");
            if (log4jPropertiesFile.canRead()) {
                    PropertyConfigurator.configure(log4jPropertiesFile.getAbsolutePath());
                } else {
                    System.out.println("ERROR: Can't read log4j properties file.");
                    Properties log4jProps = new Properties();
                    log4jProps.put("log4j.rootLogger", "OFF");
                    PropertyConfigurator.configure(log4jProps);
                }
                Main.logger.info("Logging started");

        DirectoryService directoryService = new DefaultDirectoryService(); // THIS LINE IS THE START OF THE PROBLEM
        Main.logger.info("Starting program...")

When this line executes:

DirectoryService directoryService = new DefaultDirectoryService();

I see a ton of output. Things like the following:


2021-04-09T13:26:04.658-0700 INFO Registered pre-bundled control factory: 1.3.6.1.4.1.18060.0.0.1
2021-04-09T13:26:04.659-0700 INFO Registered pre-bundled control factory: 2.16.840.1.113730.3.4.7
2021-04-09T13:26:04.659-0700 INFO Registered pre-bundled control factory: 2.16.840.1.113730.3.4.2
2021-04-09T13:26:04.659-0700 INFO Registered pre-bundled control factory: 2.16.840.1.113730.3.4.18
2021-04-09T13:26:04.660-0700 INFO Registered pre-bundled control factory: 1.2.840.113556.1.4.319
2021-04-09T13:26:04.660-0700 INFO Registered pre-bundled control factory: 2.16.840.1.113730.3.4.3
2021-04-09T13:26:04.660-0700 INFO Registered pre-bundled control factory: 1.3.6.1.4.1.4203.1.10.1
2021-04-09T13:26:04.661-0700 INFO Registered pre-bundled control factory: 1.3.6.1.4.1.18060.0.0.1
2021-04-09T13:26:04.661-0700 INFO Registered pre-bundled control factory: 2.16.840.1.113730.3.4.7
2021-04-09T13:26:04.661-0700 INFO Registered pre-bundled control factory: 2.16.840.1.113730.3.4.2
2021-04-09T13:26:04.661-0700 INFO Registered pre-bundled control factory: 2.16.840.1.113730.3.4.18
2021-04-09T13:26:04.661-0700 INFO Registered pre-bundled control factory: 1.2.840.113556.1.4.319
2021-04-09T13:26:04.661-0700 INFO Registered pre-bundled control factory: 2.16.840.1.113730.3.4.3
2021-04-09T13:26:04.661-0700 INFO Registered pre-bundled control factory: 1.3.6.1.4.1.4203.1.10.1
2021-04-09T13:26:04.661-0700 INFO Registered pre-bundled control factory: 1.3.6.1.4.1.42.2.27.8.5.1
2021-04-09T13:26:04.662-0700 INFO Registered pre-bundled control factory: 2.16.840.1.113730.3.4.9
2021-04-09T13:26:04.662-0700 INFO Registered pre-bundled control factory: 2.16.840.1.113730.3.4.10
2021-04-09T13:26:04.662-0700 INFO Registered pre-bundled control factory: 1.3.6.1.4.1.4203.1.9.1.3
2021-04-09T13:26:04.663-0700 INFO Registered pre-bundled control factory: 1.3.6.1.4.1.4203.1.9.1.4
2021-04-09T13:26:04.663-0700 INFO Registered pre-bundled control factory: 1.3.6.1.4.1.4203.1.9.1.1
2021-04-09T13:26:04.663-0700 INFO Registered pre-bundled control factory: 1.3.6.1.4.1.4203.1.9.1.2
2021-04-09T13:26:04.663-0700 INFO Registered pre-bundled control factory: 1.2.840.113556.1.4.473
2021-04-09T13:26:04.664-0700 INFO Registered pre-bundled control factory: 1.2.840.113556.1.4.474
2021-04-09T13:26:04.664-0700 INFO Registered pre-bundled control factory: 1.2.840.113556.1.4.841
2021-04-09T13:26:04.665-0700 INFO Registered pre-bundled control factory: 1.2.840.113556.1.4.417
2021-04-09T13:26:04.665-0700 INFO Registered pre-bundled control factory: 1.2.840.113556.1.4.1413
2021-04-09T13:26:04.666-0700 INFO Registered pre-bundled control factory: 1.2.840.113556.1.4.528
2021-04-09T13:26:04.667-0700 INFO Registered pre-bundled extended operation factory: 1.3.6.1.1.8
2021-04-09T13:26:04.668-0700 INFO Registered pre-bundled extended operation factory: 1.3.6.1.4.1.18060.0.1.8
2021-04-09T13:26:04.669-0700 INFO Registered pre-bundled extended operation factory: 1.3.6.1.4.1.18060.0.1.3
2021-04-09T13:26:04.669-0700 INFO Registered pre-bundled extended operation factory: 1.3.6.1.4.1.18060.0.1.6
2021-04-09T13:26:04.670-0700 INFO Registered pre-bundled extended operation factory: 1.3.6.1.4.1.18060.0.1.5
2021-04-09T13:26:04.671-0700 INFO Registered pre-bundled extended operation factory: 1.3.6.1.4.1.4203.1.11.1
2021-04-09T13:26:04.671-0700 INFO Registered pre-bundled extended operation factory: 1.3.6.1.4.1.4203.1.11.3
2021-04-09T13:26:04.672-0700 INFO Registered pre-bundled extended operation factory: 1.3.6.1.4.1.1466.20037
2021-04-09T13:26:04.812-0700 INFO No version information : assuming version: 1

These are not anything in my logs. As best I can tell I'm somehow picking up logging output from some of the Apache libraries via the DirectoryService object?

I don't understand how, and I want to disable that behavior so my logs stay clean. If I disable 'console' here I end up not seeing other expected output.

#log4j.rootCategory=info,console
log4j.rootCategory=info 

You shuold discover from which packages these logs are generated, so you can add "%c{10}" in the conversionPattern, to print the packages before the log messages. Then you can disable the logs for the specific packages or change the log level, eg

log4j.logger.com.foo.bar=ERROR

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM