@Override public void performRuntime(final OperationContext context, final ModelNode operation, final ModelNode model, final LogContextConfiguration logContextConfiguration) throws OperationFailedException { final String name = context.getCurrentAddressValue(); HandlerConfiguration configuration = logContextConfiguration.getHandlerConfiguration(name); if (configuration == null) { configuration = logContextConfiguration.addHandlerConfiguration(null, DelayedHandler.class.getName(), name); } else { if (!(configuration.getInstance() instanceof DelayedHandler)) { throw LoggingLogger.ROOT_LOGGER.invalidType(DelayedHandler.class, configuration.getInstance().getClass()); } } ENABLED.setPropertyValue(context, model, configuration); final ModelNode filter = FILTER_SPEC.resolveModelAttribute(context, model); if (filter.isDefined()) { configuration.setFilter(filter.asString()); } configuration.setLevel(LEVEL.resolvePropertyValue(context, model)); configuration.setFormatterName(NAMED_FORMATTER.resolveModelAttribute(context, model).asString()); }
@Override public void performRuntime(final OperationContext context, final HandlerConfiguration configuration, final String name, final ModelNode model) throws OperationFailedException { // Get the handler name final String handlerName = HANDLER_NAME.resolveModelAttribute(context, model).asString(); if (name.equals(handlerName)) { throw createOperationFailure(LoggingMessages.MESSAGES.cannotAddHandlerToSelf(configuration.getName())); } if (configuration.getHandlerNames().contains(handlerName)) { throw createOperationFailure(LoggingMessages.MESSAGES.handlerAlreadyDefined(handlerName)); } configuration.addHandlerName(handlerName); } };
@Override protected void updateModel(final HandlerConfiguration configuration, final ModelNode model) { setModelValue(model, configuration.getEncoding()); } });
/** * Enables the handler if it was previously disabled. * <p/> * If it was not previously disable, nothing happens. * * @param configuration the log context configuration. * @param handlerName the name of the handler to enable. */ private static void enableHandler(final LogContextConfiguration configuration, final String handlerName) { final HandlerConfiguration handlerConfiguration = configuration.getHandlerConfiguration(handlerName); try { handlerConfiguration.setPropertyValueString("enabled", "true"); return; } catch (IllegalArgumentException e) { // do nothing } final Map<String, String> disableHandlers = configuration.getLogContext().getAttachment(CommonAttributes.ROOT_LOGGER_NAME, DISABLED_HANDLERS_KEY); if (disableHandlers != null && disableHandlers.containsKey(handlerName)) { synchronized (HANDLER_LOCK) { final String filter = disableHandlers.get(handlerName); handlerConfiguration.setFilter(filter); disableHandlers.remove(handlerName); } } }
if (handler != null) { out.write(NEW_LINE); final String name = handler.getName(); final String prefix = "handler." + name + "."; final String className = handler.getClassName(); writeProperty(out, "handler.", name, className); final String moduleName = handler.getModuleName(); if (moduleName != null) { writeProperty(out, prefix, "module", moduleName); final String level = (writeExpressions ? handler.getLevelValueExpression().getValue() : handler.getLevel()); if (level != null) { writeProperty(out, prefix, "level", level); final String encoding = (writeExpressions ? handler.getEncodingValueExpression().getValue() : handler.getEncoding()); if (encoding != null) { writeProperty(out, prefix, "encoding", encoding); final String filter = (writeExpressions ? handler.getFilterValueExpression().getValue() : handler.getFilter()); if (filter != null) { writeProperty(out, prefix, "filter", filter); implicitFilters.add(handler.getFilter()); final String formatterName = (writeExpressions ? handler.getFormatterNameValueExpression().getValue() : handler.getFormatterName()); if (formatterName != null) { if (config.getFormatterNames().contains(handler.getFormatterName())) { writeProperty(out, prefix, "formatter", formatterName); implicitFormatters.add(handler.getFormatterName());
if (notEqual(filter, configuration.getFilterValueExpression())) { configuration.setFilter(filter); final String resolvedFilter = configuration.getFilterValueExpression().getResolvedValue(); if (resolvedFilter != null) { if (notEqual(levelName, configuration.getLevelValueExpression())) { configuration.setLevel(levelName == null ? "ALL" : levelName); } else { final ValueExpression<String> newValue = ValueExpression.STRING_RESOLVER.resolve(formatterName); if (notEqual(newValue, configuration.getFormatterNameValueExpression())) { if (configureFormatter(properties, newValue.getResolvedValue())) { configuration.setFormatterName(formatterName); if (notEqual(encoding, configuration.getEncodingValueExpression())) { configuration.setEncoding(encoding); } else { final ValueExpression<String> newValue = ValueExpression.STRING_RESOLVER.resolve(errorManagerName); if (notEqual(newValue, configuration.getErrorManagerNameValueExpression())) { if (configureErrorManager(properties, newValue.getResolvedValue())) { configuration.setErrorManagerName(errorManagerName); configuration.setPostConfigurationMethods(postConfigurationMethods); configureProperties(properties, configuration, getKey(HANDLER, handlerName)); return true;
configuration.setFilter(filter); final String resolvedFilter = configuration.getFilterValueExpression().getResolvedValue(); configuration.setLevel(levelName); printError("Formatter %s is not defined%n", formatterName); } else { configuration.setFormatterName(formatterName); configureFormatter(properties, configuration.getFormatterNameValueExpression().getResolvedValue()); configuration.setEncoding(encoding); printError("Error manager %s is not defined%n", errorManagerName); } else { configuration.setErrorManagerName(errorManagerName); configureErrorManager(properties, configuration.getErrorManagerNameValueExpression().getResolvedValue()); for (String name : handlerNames) { if (configureHandler(properties, name)) { configuration.addHandlerName(name); configuration.setPostConfigurationMethods(postConfigurationMethods); configureProperties(properties, configuration, getKey("handler", handlerName)); return true;
final boolean value = ((resolveValue ? ENABLED.resolveModelAttribute(context, model).asBoolean() : model.asBoolean())); if (value) { enableHandler(logContextConfiguration, configuration.getName()); } else { disableHandler(logContextConfiguration, configuration.getName()); configuration.setEncoding(resolvedValue); } else if (attribute.getName().equals(FORMATTER.getName())) { final String handlerName = configuration.getName(); configuration.setFormatterName(handlerName); final String handlerName = configuration.getName(); final ModelNode valueNode = (resolveValue ? NAMED_FORMATTER.resolveModelAttribute(context, model) : model); configuration.setFormatterName(resolvedValue); configuration.setFormatterName(handlerName); configuration.setFilter(resolvedValue); } else if (attribute.getName().equals(LEVEL.getName())) { final String resolvedValue = (resolveValue ? LEVEL.resolvePropertyValue(context, model) : LEVEL.resolver().resolveValue(context, model)); configuration.setLevel(resolvedValue); } else if (attribute.getName().equals(SUBHANDLERS.getName())) { final Collection<String> resolvedValue = (resolveValue ? SUBHANDLERS.resolvePropertyValue(context, model) : SUBHANDLERS.resolver().resolveValue(context, model)); if (resolvedValue.contains(configuration.getName())) { throw createOperationFailure(LoggingLogger.ROOT_LOGGER.cannotAddHandlerToSelf(configuration.getName()));
final boolean resolvedValue = ENABLED.resolveModelAttribute(context, model).asBoolean(); final boolean currentValue; if (configuration.hasProperty(ENABLED.getPropertyName())) { currentValue = Boolean.parseBoolean(configuration.getPropertyValueString(ENABLED.getPropertyName())); } else { currentValue = isDisabledHandler(logContextConfiguration.getLogContext(), configuration.getName()); final String currentValue = configuration.getEncoding(); result = (resolvedValue == null ? currentValue == null : resolvedValue.equals(currentValue)); } else if (attribute.getName().equals(FORMATTER.getName())) { result = true; } else { final String formatterName = configuration.getName(); if (formatterName.equals(configuration.getFormatterNameValueExpression().getResolvedValue())) { final FormatterConfiguration fmtConfig; if (logContextConfiguration.getFormatterNames().contains(formatterName)) { final String currentValue = configuration.getFormatterName(); result = resolvedValue.equals(currentValue); } else { final ModelNode valueNode = FILTER_SPEC.resolveModelAttribute(context, model); final String resolvedValue = (valueNode.isDefined() ? valueNode.asString() : null); final String currentValue = configuration.getFilter(); result = (resolvedValue == null ? currentValue == null : resolvedValue.equals(currentValue)); } else if (attribute.getName().equals(LEVEL.getName())) { final String resolvedValue = LEVEL.resolvePropertyValue(context, model);
final boolean value = ((resolveValue ? ENABLED.resolveModelAttribute(context, model).asBoolean() : model.asBoolean())); if (value) { enableHandler(logContextConfiguration, configuration.getName()); } else { disableHandler(logContextConfiguration, configuration.getName()); configuration.setEncoding(resolvedValue); } else if (attribute.getName().equals(FORMATTER.getName())) { final String formatterName = configuration.getName(); final FormatterConfiguration fmtConfig; if (logContextConfiguration.getFormatterNames().contains(formatterName)) { configuration.setFormatterName(formatterName); } else if (attribute.getName().equals(FILTER_SPEC.getName())) { final ModelNode valueNode = (resolveValue ? FILTER_SPEC.resolveModelAttribute(context, model) : model); final String resolvedValue = (valueNode.isDefined() ? valueNode.asString() : null); configuration.setFilter(resolvedValue); } else if (attribute.getName().equals(LEVEL.getName())) { final String resolvedValue = (resolveValue ? LEVEL.resolvePropertyValue(context, model) : LEVEL.resolver().resolveValue(context, model)); configuration.setLevel(resolvedValue); } else if (attribute.getName().equals(SUBHANDLERS.getName())) { final Collection<String> resolvedValue = (resolveValue ? SUBHANDLERS.resolvePropertyValue(context, model) : SUBHANDLERS.resolver().resolveValue(context, model)); if (resolvedValue.contains(configuration.getName())) { throw createOperationFailure(LoggingMessages.MESSAGES.cannotAddHandlerToSelf(configuration.getName())); configuration.setHandlerNames(resolvedValue); } else if (attribute.getName().equals(HANDLER_NAME.getName())) { final PojoConfiguration pojoConfiguration = logContextConfiguration.getPojoConfiguration(configuration.getName());
final boolean resolvedValue = ENABLED.resolveModelAttribute(context, model).asBoolean(); final boolean currentValue; if (configuration.hasProperty(ENABLED.getPropertyName())) { currentValue = Boolean.parseBoolean(configuration.getPropertyValueString(ENABLED.getPropertyName())); } else { currentValue = isDisabledHandler(logContextConfiguration.getLogContext(), configuration.getName()); final String currentValue = configuration.getEncoding(); result = (resolvedValue == null ? currentValue == null : resolvedValue.equals(currentValue)); } else if (attribute.getName().equals(FORMATTER.getName())) { final String formatterName = configuration.getName(); final FormatterConfiguration fmtConfig; if (logContextConfiguration.getFormatterNames().contains(formatterName)) { final ModelNode valueNode = FILTER_SPEC.resolveModelAttribute(context, model); final String resolvedValue = (valueNode.isDefined() ? valueNode.asString() : null); final String currentValue = configuration.getFilter(); result = (resolvedValue == null ? currentValue == null : resolvedValue.equals(currentValue)); } else if (attribute.getName().equals(LEVEL.getName())) { final String resolvedValue = LEVEL.resolvePropertyValue(context, model); final String currentValue = configuration.getLevel(); result = (resolvedValue == null ? currentValue == null : resolvedValue.equals(configuration.getLevel())); } else if (attribute.getName().equals(SUBHANDLERS.getName())) { final Collection<String> resolvedValue = SUBHANDLERS.resolvePropertyValue(context, model); final Collection<String> currentValue = configuration.getHandlerNames(); result = (resolvedValue == null ? currentValue == null : resolvedValue.containsAll(currentValue)); } else if (attribute.getName().equals(PROPERTIES.getName())) { for (Property property : PROPERTIES.resolveModelAttribute(context, model).asPropertyList()) {
@SuppressWarnings("deprecation") @Override protected boolean applyUpdate(final OperationContext context, final String attributeName, final String addressName, final ModelNode value, final LogContextConfiguration logContextConfiguration) throws OperationFailedException { // First get the handler configuration. final HandlerConfiguration configuration = logContextConfiguration.getHandlerConfiguration(addressName); if (configuration == null) { throw createOperationFailure(LoggingLogger.ROOT_LOGGER.handlerConfigurationNotFound(addressName)); } // Handle writing the attribute if (LEVEL.getName().equals(attributeName)) { configuration.setLevel(value.asString()); } else if (NAMED_FORMATTER.getName().equals(attributeName)) { if (value.isDefined()) { configuration.setFormatterName(value.asString()); } else { configuration.setFormatterName(null); } } else if (FILTER_SPEC.getName().equals(attributeName)) { if (value.isDefined()) { configuration.setFilter(value.asString()); } else { configuration.setFilter(null); } } return Logging.requiresReload(getAttributeDefinition(attributeName).getFlags()); }
final HandlerConfiguration handlerConfiguration = configuration.getHandlerConfiguration(handlerName); try { handlerConfiguration.setPropertyValueString("enabled", "false"); return; } catch (IllegalArgumentException e) { disableHandlers.put(handlerName, handlerConfiguration.getFilter()); handlerConfiguration.setFilter(CommonAttributes.DENY.getName());
@Override public void configure(InputStream inputStream) throws IOException { this.propertyConfigurator.configure(inputStream); LogContextConfiguration config = this.propertyConfigurator.getLogContextConfiguration(); config.getHandlerConfiguration("CONSOLE").setLevel("ALL"); LevelNode root = InitialLoggerManager.INSTANCE.getRoot(); apply(root, config); config.commit(); }
@Override protected void updateModel(final HandlerConfiguration configuration, final ModelNode model) { final ModelNode handlers = model.setEmptyList(); for (String s : configuration.getHandlerNames()) { handlers.add(s); } } });
@Override protected void updateModel(final HandlerConfiguration configuration, final ModelNode model) { setModelValue(model, configuration.getLevel()); } });
@Override protected void updateModel(final HandlerConfiguration configuration, final ModelNode model) { setModelValue(model, configuration.getFilter()); } });
final boolean value = ((resolveValue ? ENABLED.resolveModelAttribute(context, model).asBoolean() : model.asBoolean())); if (value) { enableHandler(logContextConfiguration, configuration.getName()); } else { disableHandler(logContextConfiguration, configuration.getName()); configuration.setEncoding(resolvedValue); } else if (attribute.getName().equals(FORMATTER.getName())) { final String handlerName = configuration.getName(); configuration.setFormatterName(handlerName); final String handlerName = configuration.getName(); final ModelNode valueNode = (resolveValue ? NAMED_FORMATTER.resolveModelAttribute(context, model) : model); configuration.setFormatterName(resolvedValue); configuration.setFormatterName(handlerName); configuration.setFilter(resolvedValue); } else if (attribute.getName().equals(LEVEL.getName())) { final String resolvedValue = (resolveValue ? LEVEL.resolvePropertyValue(context, model) : LEVEL.resolver().resolveValue(context, model)); configuration.setLevel(resolvedValue); } else if (attribute.getName().equals(SUBHANDLERS.getName())) { final Collection<String> resolvedValue = (resolveValue ? SUBHANDLERS.resolvePropertyValue(context, model) : SUBHANDLERS.resolver().resolveValue(context, model)); if (resolvedValue.contains(configuration.getName())) { throw createOperationFailure(LoggingLogger.ROOT_LOGGER.cannotAddHandlerToSelf(configuration.getName()));
final boolean resolvedValue = ENABLED.resolveModelAttribute(context, model).asBoolean(); final boolean currentValue; if (configuration.hasProperty(ENABLED.getPropertyName())) { currentValue = Boolean.parseBoolean(configuration.getPropertyValueString(ENABLED.getPropertyName())); } else { currentValue = isDisabledHandler(logContextConfiguration.getLogContext(), configuration.getName()); final String currentValue = configuration.getEncoding(); result = (resolvedValue == null ? currentValue == null : resolvedValue.equals(currentValue)); } else if (attribute.getName().equals(FORMATTER.getName())) { result = true; } else { final String formatterName = configuration.getName(); if (formatterName.equals(configuration.getFormatterNameValueExpression().getResolvedValue())) { final FormatterConfiguration fmtConfig; if (logContextConfiguration.getFormatterNames().contains(formatterName)) { final String currentValue = configuration.getFormatterName(); result = resolvedValue.equals(currentValue); } else { final ModelNode valueNode = FILTER_SPEC.resolveModelAttribute(context, model); final String resolvedValue = (valueNode.isDefined() ? valueNode.asString() : null); final String currentValue = configuration.getFilter(); result = (resolvedValue == null ? currentValue == null : resolvedValue.equals(currentValue)); } else if (attribute.getName().equals(LEVEL.getName())) { final String resolvedValue = LEVEL.resolvePropertyValue(context, model);
@SuppressWarnings("deprecation") @Override protected boolean applyUpdate(final OperationContext context, final String attributeName, final String addressName, final ModelNode value, final LogContextConfiguration logContextConfiguration) throws OperationFailedException { // First get the handler configuration. final HandlerConfiguration configuration = logContextConfiguration.getHandlerConfiguration(addressName); if (configuration == null) { throw createOperationFailure(LoggingLogger.ROOT_LOGGER.handlerConfigurationNotFound(addressName)); } // Handle writing the attribute if (LEVEL.getName().equals(attributeName)) { configuration.setLevel(value.asString()); } else if (NAMED_FORMATTER.getName().equals(attributeName)) { if (value.isDefined()) { configuration.setFormatterName(value.asString()); } else { configuration.setFormatterName(null); } } else if (FILTER_SPEC.getName().equals(attributeName)) { if (value.isDefined()) { configuration.setFilter(value.asString()); } else { configuration.setFilter(null); } } return Logging.requiresReload(getAttributeDefinition(attributeName).getFlags()); }