📄 jbpmlogfactory.java
字号:
package org.jbpm.util.log;
import java.util.*;
import org.apache.commons.logging.*;
public class JbpmLogFactory extends LogFactory {
static {
System.setProperty( "org.apache.commons.logging.LogFactory", "org.jbpm.util.log.JbpmLogFactory" );
LogFactory.newFactory( "org.jbpm.util.log.JbpmLogFactory", JbpmLogFactory.class.getClassLoader() );
LogFactory logFactory = LogFactory.getFactory();
logFactory.setAttribute( "org.apache.commons.logging.Log", "org.jbpm.util.log.JbpmLog" );
}
private Map logs = null;
private Map attributes = null;
public JbpmLogFactory() {
logs = new HashMap();
attributes = new HashMap();
}
public static void initJbpmLogging( Properties logProperties ) {
String defaultLogLevel = logProperties.getProperty( "jbpm.log.default" );
if ( defaultLogLevel != null ) {
setDefaultLevel( Level.getInstance(defaultLogLevel) );
} else {
setDefaultLevel( Level.INFO );
}
Iterator iter = logProperties.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
String key = (String)entry.getKey();
String value = (String)entry.getValue();
if ( key.startsWith( "jbpm.log.package." ) ) {
setLevel( key.substring(17), Level.getInstance( value ) );
}
}
}
public static void setDefaultLevel( Level defaultLevel ) {
LogFactory logFactory = LogFactory.getFactory();
logFactory.setAttribute( "default.level", defaultLevel );
}
public static void setLevel( String packageName, Level level ) {
LogFactory logFactory = LogFactory.getFactory();
logFactory.setAttribute( "level." + packageName , level );
}
public Map getLogs() {
return logs;
}
public Log getInstance(Class clazz) throws LogConfigurationException {
return getInstance( clazz.getName() );
}
public Log getInstance(String name) throws LogConfigurationException {
JbpmLog log = (JbpmLog) logs.get( name );
if ( log == null ) {
log = new JbpmLog( name );
logs.put( name, log );
// setting the log-level
boolean matchFound = false;
Iterator iter = attributes.keySet().iterator();
while ( ( iter.hasNext() )
&& ( ! matchFound ) ){
String key = (String) iter.next();
if ( key.startsWith( "level." ) ) {
String packageName = key.substring( 6 );
if ( name.startsWith( packageName ) ) {
log.setLevel( (Level) attributes.get( key ) );
matchFound = true;
}
}
}
if ( !matchFound ) {
log.setLevel( (Level) attributes.get( "default.level" ) );
}
}
return log;
}
public void release() {
logs = null;
attributes = null;
}
public String[] getAttributeNames() {
return (String[]) attributes.keySet().toArray( new String[ attributes.size() ] );
}
public Object getAttribute(String key) {
return attributes.get( key );
}
public void removeAttribute(String key) {
attributes.remove(key);
}
public void setAttribute(String key, Object value) {
attributes.put( key, value );
if ( key.startsWith( "level." ) ) {
String packageName = key.substring( 6 );
Iterator iter = logs.values().iterator();
while (iter.hasNext()) {
JbpmLog log = (JbpmLog) iter.next();
if ( log.getName().startsWith( packageName ) ) {
log.setLevel( (Level) attributes.get( key ) );
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -