public abstract class Log4jConfigurer
extends java.lang.Object
Only needed for non-default log4j initialization, for example with a custom config location or a refresh interval. By default, log4j will simply read its configuration from a "log4j.properties" or "log4j.xml" file in the root of the classpath.
For web environments, the analogous Log4jWebConfigurer class can be found
in the web package, reading in its configuration from context-params in
web.xml
. In a J2EE web application, log4j is usually set up
via Log4jConfigListener, delegating to Log4jWebConfigurer underneath.
Log4jWebConfigurer
,
Log4jConfigListener
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
CLASSPATH_URL_PREFIX
Pseudo URL prefix for loading from the class path: "classpath:"
|
static java.lang.String |
XML_FILE_EXTENSION
Extension that indicates a log4j XML config file: ".xml"
|
Constructor and Description |
---|
Log4jConfigurer() |
Modifier and Type | Method and Description |
---|---|
static void |
initLogging(java.lang.String location)
Initialize log4j from the given file location, with no config file refreshing.
|
static void |
initLogging(java.lang.String location,
long refreshInterval)
Initialize log4j from the given location, with the given refresh interval
for the config file.
|
static void |
setWorkingDirSystemProperty(java.lang.String key)
Set the specified system property to the current working directory.
|
static void |
shutdownLogging()
Shut down log4j, properly releasing all file locks.
|
public static final java.lang.String CLASSPATH_URL_PREFIX
public static final java.lang.String XML_FILE_EXTENSION
public static void initLogging(java.lang.String location) throws java.io.FileNotFoundException
location
- the location of the config file: either a "classpath:" location
(e.g. "classpath:myLog4j.properties"), an absolute file URL
(e.g. "file:C:/log4j.properties), or a plain absolute path in the file system
(e.g. "C:/log4j.properties")java.io.FileNotFoundException
- if the location specifies an invalid file pathpublic static void initLogging(java.lang.String location, long refreshInterval) throws java.io.FileNotFoundException
Log4j's watchdog thread will asynchronously check whether the timestamp of the config file has changed, using the given interval between checks. A refresh interval of 1000 milliseconds (one second), which allows to do on-demand log level changes with immediate effect, is not unfeasible.
WARNING: Log4j's watchdog thread does not terminate until VM shutdown; in particular, it does not terminate on LogManager shutdown. Therefore, it is recommended to not use config file refreshing in a production J2EE environment; the watchdog thread would not stop on application shutdown there.
location
- the location of the config file: either a "classpath:" location
(e.g. "classpath:myLog4j.properties"), an absolute file URL
(e.g. "file:C:/log4j.properties), or a plain absolute path in the file system
(e.g. "C:/log4j.properties")refreshInterval
- interval between config file refresh checks, in millisecondsjava.io.FileNotFoundException
- if the location specifies an invalid file pathpublic static void shutdownLogging()
This isn't strictly necessary, but recommended for shutting down log4j in a scenario where the host VM stays alive (for example, when shutting down an application in a J2EE environment).
public static void setWorkingDirSystemProperty(java.lang.String key)
This can be used e.g. for test environments, for applications that leverage Log4jWebConfigurer's "webAppRootKey" support in a web environment.
key
- system property key to use, as expected in Log4j configuration
(for example: "demo.root", used as "${demo.root}/WEB-INF/demo.log")Log4jWebConfigurer