I'm able to programmatically set the logging level on the application with the following code, but is it also possible to do this on a package level, say com.somepackage.* where I want the level to be only ERROR rather than DEBUG or INFO on said package?
// Sets the logging level to INFO LoggerContext loggerContext = (LoggerContext)LoggerFactory.getILoggerFactory(); Logger rootLogger = loggerContext.getLogger(Logger.ROOT_LOGGER_NAME); rootLogger.setLevel(Level.INFO);
But I can't seem to find a way to set it on a package level...
When using log4j, the Logger. log(Priority p, Object message) method is available and can be used to log a message at a log level determined at runtime. We're using this fact and this tip to redirect stderr to a logger at a specific log level. slf4j doesn't have a generic log() method that I can find.
To change log levels as a root user, perform the following: To enable debug logging, run the following command: /subsystem=logging/root-logger=ROOT:change-root-log-level(level=DEBUG) To disable debug logging, run the following command: /subsystem=logging/root-logger=ROOT:change-root-log-level(level=INFO)
properties file will be defined as properties in the logback. xml file.
You should set the package name as logger-name
// Sets the package level to INFO LoggerContext loggerContext = (LoggerContext)LoggerFactory.getILoggerFactory(); Logger rootLogger = loggerContext.getLogger("com.somepackage"); rootLogger.setLevel(Level.INFO);
You should be able to get the package name more elegant, but this is basically it. This follows the tree like hierarchy for the Logger Context: Logger Context
You can do it by using logback..
Logger LOG = (Logger) org.slf4j.LoggerFactory.getLogger(ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME); LOG.setLevel(Level.WARN);
This solved my problem.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With