org.neo4j.internal.diagnostics.DiagnosticsManager Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of neo4j-diagnostics Show documentation
Show all versions of neo4j-diagnostics Show documentation
Diagnostics registration and logging.
The newest version!
/*
* Copyright (c) "Neo4j"
* Neo4j Sweden AB [https://neo4j.com]
*
* This file is part of Neo4j.
*
* Neo4j is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
package org.neo4j.internal.diagnostics;
import static org.apache.commons.lang3.StringUtils.EMPTY;
import static org.apache.commons.lang3.StringUtils.center;
import org.neo4j.logging.InternalLog;
/**
* Manager that dumps information from independent available {@link DiagnosticsProvider}s.
* Each independent diagnostics provider will be logged as table with caption and body, where caption will contain provider name
* and body - information provided by diagnostic provider.
*/
public final class DiagnosticsManager {
private static final int CAPTION_WIDTH = 80;
private static final String NAME_START = "[ ";
private static final String NAME_END = " ]";
private DiagnosticsManager() {}
public static void dump(
Class enumProvider, InternalLog errorLog, DiagnosticsLogger diagnosticsLog) {
for (E provider : enumProvider.getEnumConstants()) {
dump(provider, errorLog, diagnosticsLog);
}
}
public static void dump(DiagnosticsProvider provider, InternalLog errorLog, DiagnosticsLogger diagnosticsLog) {
try {
header(diagnosticsLog, provider.getDiagnosticsName());
provider.dump(diagnosticsLog);
diagnosticsLog.log(EMPTY);
} catch (Exception cause) {
errorLog.error("Failure while logging diagnostics for " + provider, cause);
}
}
public static void section(DiagnosticsLogger diagnosticsLog, String sectionName) {
diagnosticsLog.log("*".repeat(CAPTION_WIDTH));
diagnosticsLog.log(center(title(sectionName), CAPTION_WIDTH));
diagnosticsLog.log("*".repeat(CAPTION_WIDTH));
}
private static void header(DiagnosticsLogger diagnosticsLog, String caption) {
diagnosticsLog.log("-".repeat(CAPTION_WIDTH));
diagnosticsLog.log(center(title(caption), CAPTION_WIDTH));
diagnosticsLog.log("-".repeat(CAPTION_WIDTH));
}
private static String title(String name) {
return NAME_START + name + NAME_END;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy