Search in sources :

Example 1 with ConfigurableAppenderSupplier

use of org.spf4j.io.ConfigurableAppenderSupplier 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("...@"));
}
Also used : Method(org.spf4j.base.avro.Method) IOException(java.io.IOException) AppendableLimiterWithOverflow(org.spf4j.io.AppendableLimiterWithOverflow) ConfigurableAppenderSupplier(org.spf4j.io.ConfigurableAppenderSupplier) ObjectAppender(org.spf4j.io.ObjectAppender) Test(org.junit.Test)

Aggregations

IOException (java.io.IOException)1 Test (org.junit.Test)1 Method (org.spf4j.base.avro.Method)1 AppendableLimiterWithOverflow (org.spf4j.io.AppendableLimiterWithOverflow)1 ConfigurableAppenderSupplier (org.spf4j.io.ConfigurableAppenderSupplier)1 ObjectAppender (org.spf4j.io.ObjectAppender)1