1 package org.apache.commons.jcs3;
2
3 import java.io.StringWriter;
4 import java.util.logging.Handler;
5 import java.util.logging.Level;
6 import java.util.logging.LogRecord;
7 import java.util.logging.Logger;
8
9 import org.apache.commons.jcs3.log.LogManager;
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 public class TestLogConfigurationUtil
32 {
33
34
35
36
37
38
39 public static void configureLogger( final StringWriter stringWriter, final String loggerName )
40 {
41 LogManager.setLogSystem("jul");
42 java.util.logging.LogManager.getLogManager().reset();
43 final Logger rootLogger = java.util.logging.LogManager.getLogManager().getLogger("");
44
45 rootLogger.addHandler(new MockLogHandler(stringWriter));
46 rootLogger.setLevel(Level.FINE);
47 }
48
49 private static class MockLogHandler extends Handler
50 {
51 private final StringWriter writer;
52
53 public MockLogHandler(final StringWriter writer)
54 {
55 this.writer = writer;
56 }
57
58 @Override
59 public void publish(final LogRecord record)
60 {
61 final StringBuilder sb = new StringBuilder();
62 sb.append(record.getMillis())
63 .append(" - ")
64 .append(record.getSourceClassName())
65 .append("#")
66 .append(record.getSourceMethodName())
67 .append(" - ")
68 .append(record.getMessage())
69 .append('\n');
70 writer.append(sb.toString());
71 }
72
73 @Override
74 public void flush()
75 {
76 writer.flush();
77 }
78
79 @Override
80 public void close() throws SecurityException
81 {
82 }
83 }
84 }