下面列出了java.util.logging.Handler# getFormatter ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public static JsonFormatter getJsonFormatter() {
LogManager logManager = LogManager.getLogManager();
assertThat(logManager).isInstanceOf(org.jboss.logmanager.LogManager.class);
DelayedHandler delayedHandler = InitialConfigurator.DELAYED_HANDLER;
assertThat(Logger.getLogger("").getHandlers()).contains(delayedHandler);
assertThat(delayedHandler.getLevel()).isEqualTo(Level.ALL);
Handler handler = Arrays.stream(delayedHandler.getHandlers())
.filter(h -> (h instanceof ConsoleHandler))
.findFirst().orElse(null);
assertThat(handler).isNotNull();
assertThat(handler.getLevel()).isEqualTo(Level.WARNING);
Formatter formatter = handler.getFormatter();
assertThat(formatter).isInstanceOf(JsonFormatter.class);
return (JsonFormatter) formatter;
}
@Test
public void syslogOutputTest() {
Handler handler = getHandler(SyslogHandler.class);
assertThat(handler.getLevel()).isEqualTo(Level.WARNING);
Formatter formatter = handler.getFormatter();
assertThat(formatter).isInstanceOf(PatternFormatter.class);
PatternFormatter patternFormatter = (PatternFormatter) formatter;
assertThat(patternFormatter.getPattern()).isEqualTo("%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] (%t) %s%e%n");
SyslogHandler syslogHandler = (SyslogHandler) handler;
assertThat(syslogHandler.getPort()).isEqualTo(5140);
assertThat(syslogHandler.getAppName()).isEqualTo(getProcessName());
assertThat(syslogHandler.getHostname()).isEqualTo(getQualifiedHostName());
assertThat(syslogHandler.getFacility()).isEqualTo(SyslogHandler.Facility.USER_LEVEL);
assertThat(syslogHandler.getSyslogType()).isEqualTo(SyslogHandler.SyslogType.RFC5424);
assertThat(syslogHandler.getProtocol()).isEqualTo(SyslogHandler.Protocol.TCP);
assertThat(syslogHandler.isUseCountingFraming()).isEqualTo(false);
assertThat(syslogHandler.isTruncate()).isEqualTo(true);
assertThat(syslogHandler.isBlockOnReconnect()).isEqualTo(false);
}
@Test
public void periodicRotatingConfigurationTest() {
Handler handler = getHandler(PeriodicRotatingFileHandler.class);
assertThat(handler.getLevel()).isEqualTo(Level.INFO);
Formatter formatter = handler.getFormatter();
assertThat(formatter).isInstanceOf(PatternFormatter.class);
PatternFormatter patternFormatter = (PatternFormatter) formatter;
assertThat(patternFormatter.getPattern()).isEqualTo("%d{HH:mm:ss} %-5p [%c{2.}]] (%t) %s%e%n");
}
@Test
public void periodicSizeRotatingConfigurationTest() {
Handler handler = getHandler(PeriodicSizeRotatingFileHandler.class);
assertThat(handler.getLevel()).isEqualTo(Level.INFO);
Formatter formatter = handler.getFormatter();
assertThat(formatter).isInstanceOf(PatternFormatter.class);
PatternFormatter patternFormatter = (PatternFormatter) formatter;
assertThat(patternFormatter.getPattern()).isEqualTo("%d{HH:mm:ss} %-5p [%c{2.}]] (%t) %s%e%n");
PeriodicSizeRotatingFileHandler periodicSizeRotatingFileHandler = (PeriodicSizeRotatingFileHandler) handler;
assertThat(periodicSizeRotatingFileHandler.isRotateOnBoot()).isFalse();
}
@Test
public void sizeRotatingConfigurationTest() {
Handler handler = getHandler(SizeRotatingFileHandler.class);
assertThat(handler.getLevel()).isEqualTo(Level.INFO);
Formatter formatter = handler.getFormatter();
assertThat(formatter).isInstanceOf(PatternFormatter.class);
PatternFormatter patternFormatter = (PatternFormatter) formatter;
assertThat(patternFormatter.getPattern()).isEqualTo("%d{HH:mm:ss} %-5p [%c{2.}]] (%t) %s%e%n");
SizeRotatingFileHandler sizeRotatingFileHandler = (SizeRotatingFileHandler) handler;
assertThat(sizeRotatingFileHandler.isRotateOnBoot()).isTrue();
}
@Test
public void periodicSizeRotatingConfigurationTest() {
Handler handler = getHandler(PeriodicSizeRotatingFileHandler.class);
assertThat(handler.getLevel()).isEqualTo(Level.INFO);
Formatter formatter = handler.getFormatter();
assertThat(formatter).isInstanceOf(PatternFormatter.class);
PatternFormatter patternFormatter = (PatternFormatter) formatter;
assertThat(patternFormatter.getPattern()).isEqualTo("%d{HH:mm:ss} %-5p [%c{2.}]] (%t) %s%e%n");
PeriodicSizeRotatingFileHandler periodicSizeRotatingFileHandler = (PeriodicSizeRotatingFileHandler) handler;
assertThat(periodicSizeRotatingFileHandler.isRotateOnBoot()).isTrue();
}
@Test
public void consoleOutputTest() {
Handler handler = getHandler(ConsoleHandler.class);
assertThat(handler).isNotNull();
assertThat(handler.getLevel()).isEqualTo(Level.WARNING);
Formatter formatter = handler.getFormatter();
assertThat(formatter).isInstanceOf(PatternFormatter.class);
PatternFormatter patternFormatter = (PatternFormatter) formatter;
assertThat(patternFormatter.getPattern()).isEqualTo("%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] (%t) %s%e%n");
}
@Test
public void fileOutputTest() {
Handler handler = getHandler(FileHandler.class);
assertThat(handler.getLevel()).isEqualTo(Level.INFO);
Formatter formatter = handler.getFormatter();
assertThat(formatter).isInstanceOf(PatternFormatter.class);
PatternFormatter patternFormatter = (PatternFormatter) formatter;
assertThat(patternFormatter.getPattern()).isEqualTo("%d{HH:mm:ss} %-5p [%c{2.}]] (%t) %s%e%n");
}
private static void updateComponentId(String component) {
Logger rootLogger = Logger.getLogger("");
for (Handler handler : rootLogger.getHandlers()) {
Formatter formatter = handler.getFormatter();
if (formatter instanceof Twister2LogFormatter) {
((Twister2LogFormatter) formatter).setComponentName(component);
}
}
}
public static void overrideSimpleFormatterWithTerseOneForConsoleHandler(
Logger logger,
boolean debugMode) {
for (Handler handler : logger.getHandlers()) {
if (handler instanceof ConsoleHandler) {
final Formatter formatter;
formatter = handler.getFormatter();
if (formatter instanceof SimpleFormatter) {
final StdOutHandler stdOutHandler;
final Level originalLevel;
/*
* DGF - Nobody likes the SimpleFormatter; surely they wanted our terse formatter instead.
*/
originalLevel = handler.getLevel();
handler.setFormatter(new TerseFormatter());
handler.setLevel(Level.WARNING);
/*
* Furthermore, we all want DEBUG/INFO on stdout and WARN/ERROR on stderr
*/
stdOutHandler = new StdOutHandler();
stdOutHandler.setFormatter(new TerseFormatter());
stdOutHandler.setFilter(new MaxLevelFilter(Level.INFO));
stdOutHandler.setLevel(originalLevel);
logger.addHandler(stdOutHandler);
if (debugMode) {
if (originalLevel.intValue() > Level.FINE.intValue()) {
stdOutHandler.setLevel(Level.FINE);
}
}
}
}
}
}