#1785 add default log manager
This commit is contained in:
parent
48ec1cec66
commit
2d3c456293
1 changed files with 43 additions and 3 deletions
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess;
|
||||
|
||||
import java.security.AccessController;
|
||||
import java.security.PrivilegedAction;
|
||||
import java.util.logging.LogManager;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
|
@ -22,16 +24,54 @@ public class FessLogManager extends LogManager {
|
|||
|
||||
private static final String ORG_APACHE_LOGGING_LOG4J_JUL_LOG_MANAGER = "org.apache.logging.log4j.jul.LogManager";
|
||||
|
||||
private static final LogManager manager;
|
||||
|
||||
static {
|
||||
manager = AccessController.doPrivileged(new PrivilegedAction<LogManager>() {
|
||||
@Override
|
||||
public LogManager run() {
|
||||
LogManager mgr = null;
|
||||
String cname = null;
|
||||
try {
|
||||
cname = System.getProperty("java.util.logging.manager");
|
||||
if (cname != null) {
|
||||
try {
|
||||
Class<?> clz = ClassLoader.getSystemClassLoader().loadClass(cname);
|
||||
mgr = (LogManager) clz.newInstance();
|
||||
} catch (ClassNotFoundException ex) {
|
||||
Class<?> clz = Thread.currentThread().getContextClassLoader().loadClass(cname);
|
||||
mgr = (LogManager) clz.newInstance();
|
||||
}
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
System.err.println("Could not load Logmanager \"" + cname + "\"");
|
||||
ex.printStackTrace();
|
||||
}
|
||||
if (mgr == null) {
|
||||
mgr = new DefaultLogManager();
|
||||
}
|
||||
return mgr;
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static class DefaultLogManager extends LogManager {
|
||||
DefaultLogManager() {
|
||||
super();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Logger getLogger(final String name) {
|
||||
final LogManager logManager = getLogManager(ORG_APACHE_LOGGING_LOG4J_JUL_LOG_MANAGER);
|
||||
final LogManager logManager = createLogManager(ORG_APACHE_LOGGING_LOG4J_JUL_LOG_MANAGER);
|
||||
if (logManager != null) {
|
||||
return logManager.getLogger(name);
|
||||
}
|
||||
return LogManager.getLogManager().getLogger(name);
|
||||
return manager.getLogger(name);
|
||||
}
|
||||
|
||||
private LogManager getLogManager(final String cname) {
|
||||
private LogManager createLogManager(final String cname) {
|
||||
try {
|
||||
try {
|
||||
final Class<?> clz = ClassLoader.getSystemClassLoader().loadClass(cname);
|
||||
|
|
Loading…
Add table
Reference in a new issue