81180692182771c93bd8b0922e794d639b3696a6
[lttng-ust-java-tests.git] / src / org / lttng / ust / agent / integration / log4j / Log4jEnabledEventsTest.java
1 package org.lttng.ust.agent.integration.log4j;
2
3 import static org.junit.Assume.assumeTrue;
4
5 import java.io.IOException;
6 import java.util.List;
7
8 import org.apache.log4j.Appender;
9 import org.apache.log4j.Level;
10 import org.apache.log4j.Logger;
11 import org.junit.After;
12 import org.junit.AfterClass;
13 import org.junit.Before;
14 import org.junit.BeforeClass;
15 import org.lttng.ust.agent.integration.common.EnabledEventsTest;
16 import org.lttng.ust.agent.log4j.LttngLogAppender;
17 import org.lttng.ust.agent.utils.LttngSessionControl;
18 import org.lttng.ust.agent.utils.LttngSessionControl.Domain;
19
20 public class Log4jEnabledEventsTest extends EnabledEventsTest {
21
22 private static final Domain DOMAIN = Domain.LOG4J;
23
24 private Logger loggerA;
25 private Logger loggerB;
26 private Logger loggerC;
27 private Logger loggerD;
28
29 @BeforeClass
30 public static void julClassSetup() {
31 /* Skip tests if we can't find the JNI library or lttng-tools */
32 try {
33 LttngLogAppender testHandler = new LttngLogAppender();
34 testHandler.close();
35 } catch (SecurityException | IOException e) {
36 assumeTrue(false);
37 }
38
39 boolean ret1 = LttngSessionControl.setupSession(null, DOMAIN);
40 boolean ret2 = LttngSessionControl.stopSession(null);
41 /* "lttng view" also tests that Babeltrace is installed and working */
42 List<String> contents = LttngSessionControl.viewSession(null);
43 boolean ret3 = LttngSessionControl.destroySession(null);
44 assumeTrue(ret1 && ret2 && ret3);
45 assumeTrue(contents.isEmpty());
46 }
47
48 @AfterClass
49 public static void julClassCleanup() {
50 LttngSessionControl.deleteAllTracee();
51 }
52
53 @Before
54 public void julSetup() throws SecurityException, IOException {
55 // TODO Wipe all existing LTTng sessions?
56
57 loggerA = Logger.getLogger(EVENT_NAME_A);
58 loggerB = Logger.getLogger(EVENT_NAME_B);
59 loggerC = Logger.getLogger(EVENT_NAME_C);
60 loggerD = Logger.getLogger(EVENT_NAME_D);
61
62 loggerA.setLevel(Level.ALL);
63 loggerB.setLevel(Level.ALL);
64 loggerC.setLevel(Level.ALL);
65 loggerD.setLevel(Level.ALL);
66
67 handlerA = new LttngLogAppender();
68 handlerB = new LttngLogAppender();
69 handlerC = new LttngLogAppender();
70
71 loggerA.addAppender((Appender) handlerA);
72 loggerB.addAppender((Appender) handlerB);
73 loggerC.addAppender((Appender) handlerC);
74 }
75
76 @After
77 public void julTeardown() {
78 loggerA.removeAppender((Appender) handlerA);
79 loggerB.removeAppender((Appender) handlerB);
80 loggerC.removeAppender((Appender) handlerC);
81
82 loggerA = null;
83 loggerB = null;
84 loggerC = null;
85 loggerD = null;
86 }
87
88 @Override
89 protected Domain getDomain() {
90 return DOMAIN;
91 }
92
93 @Override
94 protected void sendEventsToLoggers() {
95 send10Events(loggerA);
96 send10Events(loggerB);
97 send10Events(loggerC);
98 send10Events(loggerD);
99 }
100
101 static void send10Events(Logger logger) {
102 // Levels/priorities are DEBUG, ERROR, FATAL, INFO, TRACE, WARN
103 logger.debug("Debug message. Lost among so many.");
104 logger.debug("Debug message with a throwable", new IOException());
105 logger.error("Error messsage. This might be bad.");
106 logger.error("Error message with a throwable", new IOException());
107 logger.fatal("A fatal message. You are already dead.");
108 logger.info("A info message. Lol, who cares.");
109 logger.trace("A trace message. No, no *that* trace");
110 logger.warn("A warn message. Yellow underline.");
111 logger.log(Level.DEBUG, "A debug message using .log()");
112 logger.log(Level.ERROR, "A error message using .log()");
113 }
114 }
This page took 0.032535 seconds and 3 git commands to generate.