package org.wildfly.swarm.logging.runtime;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.inject.Any;
import javax.inject.Inject;
import org.wildfly.swarm.bootstrap.logging.InitialLoggerManager;
import org.wildfly.swarm.bootstrap.logging.LevelNode;
import org.wildfly.swarm.config.logging.Level;
import org.wildfly.swarm.logging.LoggingFraction;
import org.wildfly.swarm.spi.api.Customizer;
import org.wildfly.swarm.spi.runtime.annotations.Post;
/**
* @author Bob McWhirter
*/
@Post
@ApplicationScoped
public class LoggingCustomizer implements Customizer {
@Inject
@Any
private LoggingFraction fraction;
@Override
public void customize() {
LevelNode root = InitialLoggerManager.INSTANCE.getRoot();
apply(root);
}
private void apply(LevelNode node) {
if (!node.getName().equals("")) {
this.fraction.logger(node.getName(), (l) -> {
l.level(Level.valueOf(node.getLevel().toString()));
});
}
for (LevelNode each : node.getChildren()) {
apply(each);
}
}
}