下面列出了怎么用org.apache.logging.log4j.core.appender.AbstractManager的API类实例代码及写法,或者点击链接到github查看源代码。
@SuppressWarnings("resource") // actualJmsManager and jndiManager are managed by the JmsAppender
@Override
public JmsAppender build() {
JmsManager actualJmsManager = jmsManager;
JmsManagerConfiguration configuration = null;
if (actualJmsManager == null) {
final Properties jndiProperties = JndiManager.createProperties(factoryName, providerUrl, urlPkgPrefixes,
securityPrincipalName, securityCredentials, null);
configuration = new JmsManagerConfiguration(jndiProperties, factoryBindingName, destinationBindingName,
userName, password, false, reconnectIntervalMillis);
actualJmsManager = AbstractManager.getManager(getName(), JmsManager.FACTORY, configuration);
}
if (actualJmsManager == null) {
// JmsManagerFactory has already logged an ERROR.
return null;
}
if (getLayout() == null) {
LOGGER.error("No layout provided for JmsAppender");
return null;
}
try {
return new JmsAppender(getName(), getFilter(), getLayout(), isIgnoreExceptions(), getPropertyArray(), actualJmsManager);
} catch (final JMSException e) {
// Never happens since the ctor no longer actually throws a JMSException.
throw new IllegalStateException(e);
}
}
/**
* Implementations should define their own getManager method and call this method from that to create or get
* existing managers.
*
* @param name The manager name, which should include any configuration details that one might want to be able to
* reconfigure at runtime, such as database name, username, (hashed) password, etc.
* @param data The concrete instance of {@link AbstractFactoryData} appropriate for the given manager.
* @param factory A factory instance for creating the appropriate manager.
* @param <M> The concrete manager type.
* @param <T> The concrete {@link AbstractFactoryData} type.
* @return a new or existing manager of the specified type and name.
*/
protected static <M extends AbstractDatabaseManager, T extends AbstractFactoryData> M getManager(
final String name, final T data, final ManagerFactory<M, T> factory
) {
return AbstractManager.getManager(name, factory, data);
}