use of org.spf4j.io.AppendableLimiterWithOverflow in project spf4j by zolyfarkas.
the class Slf4jMessageFormatterTest method testFormatter2.
@Test
public void testFormatter2() throws IOException {
ConfigurableAppenderSupplier appSupp = new ConfigurableAppenderSupplier();
LOG.debug("ConfAppenderSupp = {}", appSupp);
StringBuilder sb = new StringBuilder();
final long currentTimeMillis = System.currentTimeMillis();
Slf4jMessageFormatter.format(sb, "bla bla {}", appSupp, new java.sql.Date(currentTimeMillis));
Assert.assertEquals("bla bla " + DateTimeFormats.DT_FORMAT.format(Instant.now()), sb.toString());
sb.setLength(0);
Method method = new Method("c1", "m1");
int written = Slf4jMessageFormatter.format(sb, "bla bla {}", appSupp, method);
Assert.assertEquals("bla bla {\"declaringClass\":\"c1\",\"name\":\"m1\"}", sb.toString());
Assert.assertEquals(1, written);
sb.setLength(0);
written = Slf4jMessageFormatter.format(1, sb, "bla bla {}", appSupp, "ifff", method);
Assert.assertEquals("bla bla {\"declaringClass\":\"c1\",\"name\":\"m1\"}", sb.toString());
Assert.assertEquals(2, written);
sb.setLength(0);
written = Slf4jMessageFormatter.format(sb, "bla bla {}", appSupp, method, "yohooo");
LOG.debug("formatted message: {}", sb);
Assert.assertEquals(1, written);
sb.setLength(0);
written = Slf4jMessageFormatter.format(sb, "bla bla {}", appSupp);
LOG.debug("formatted message: {}", sb);
Assert.assertEquals(0, written);
sb.setLength(0);
EscapeJsonStringAppendableWrapper escaper = new EscapeJsonStringAppendableWrapper(sb);
Slf4jMessageFormatter.format(escaper, "bla bla {} {}", appSupp, "\n\u2013\u0010", new int[] { 1, 2, 3 });
LOG.debug("formatted message: {}", sb);
Assert.assertEquals("bla bla \\n–\\u0010 [1, 2, 3]", sb.toString());
appSupp.replace(CoreTextMediaType.TEXT_PLAIN, String.class, (final ObjectAppender<? super String> input) -> new ObjectAppender<String>() {
@Override
public void append(final String object, final Appendable appendTo) throws IOException {
try (AppendableLimiterWithOverflow limiter = new AppendableLimiterWithOverflow(90, File.createTempFile("string", ".overflow"), "...@", StandardCharsets.UTF_8, appendTo)) {
limiter.append(object);
}
}
});
sb.setLength(0);
Slf4jMessageFormatter.format(sb, "bla bla {}", appSupp, "012345678901234567890123456789012345678901234567" + "89012345678901234567890123456789012345678901234567890123456789");
LOG.debug("formatted message: {}", sb);
Assert.assertThat(sb.toString(), Matchers.containsString("...@"));
}
Aggregations