DeferredLogs Class — spring-boot Architecture
Architecture documentation for the DeferredLogs class in DeferredLogs.java from the spring-boot codebase.
Entity Profile
Relationship Graph
Source Code
core/spring-boot/src/main/java/org/springframework/boot/logging/DeferredLogs.java lines 36–95
public class DeferredLogs implements DeferredLogFactory {
private final Lines lines = new Lines();
private final List<DeferredLog> loggers = new ArrayList<>();
/**
* Create a new {@link DeferredLog} for the given destination.
* @param destination the ultimate log destination
* @return a deferred log instance that will switch to the destination when
* appropriate.
*/
@Override
public Log getLog(Class<?> destination) {
return getLog(() -> LogFactory.getLog(destination));
}
/**
* Create a new {@link DeferredLog} for the given destination.
* @param destination the ultimate log destination
* @return a deferred log instance that will switch to the destination when
* appropriate.
*/
@Override
public Log getLog(Log destination) {
return getLog(() -> destination);
}
/**
* Create a new {@link DeferredLog} for the given destination.
* @param destination the ultimate log destination
* @return a deferred log instance that will switch to the destination when
* appropriate.
*/
@Override
public Log getLog(Supplier<Log> destination) {
synchronized (this.lines) {
DeferredLog logger = new DeferredLog(destination, this.lines);
this.loggers.add(logger);
return logger;
}
}
/**
* Switch over all deferred logs to their supplied destination.
*/
public void switchOverAll() {
synchronized (this.lines) {
for (Line line : this.lines) {
line.getLevel().log(line.getDestination(), line.getMessage(), line.getThrowable());
}
for (DeferredLog logger : this.loggers) {
logger.switchOver();
}
this.lines.clear();
}
}
}
Domain
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free