Merge branch 'master' of github.com:apache/logging-chainsaw
diff --git a/src/main/java/org/apache/log4j/chainsaw/components/tutorial/Generator.java b/src/main/java/org/apache/log4j/chainsaw/components/tutorial/Generator.java
index 8e3f4e5..64ea0de 100644
--- a/src/main/java/org/apache/log4j/chainsaw/components/tutorial/Generator.java
+++ b/src/main/java/org/apache/log4j/chainsaw/components/tutorial/Generator.java
@@ -18,6 +18,8 @@
package org.apache.log4j.chainsaw.components.tutorial;
import java.time.Instant;
+import java.util.Random;
+
import org.apache.log4j.chainsaw.logevents.ChainsawLoggingEvent;
import org.apache.log4j.chainsaw.logevents.ChainsawLoggingEventBuilder;
import org.apache.log4j.chainsaw.logevents.Level;
@@ -32,75 +34,67 @@
* @author Scott Deboy <sdeboy@apache.org>
*/
public class Generator extends ChainsawReceiverSkeleton implements Runnable {
- private static final String logger1 =
- "com.mycompany.mycomponentA";
- private static final String logger2 =
- "com.mycompany.mycomponentB";
- private static final String logger3 =
- "com.someothercompany.corecomponent";
- private final String baseString_;
- private Thread thread;
+ private static final String logger1 ="com.mycompany.mycomponentA";
+ private static final String logger2 = "com.mycompany.mycomponentB";
+ private static final String logger3 = "com.someothercompany.corecomponent";
+ private final String baseString;
+ private final RandomWordGenerator randomWordGenerator;
private boolean shutdown;
- private ChainsawLoggingEventBuilder m_builder;
+ private ChainsawLoggingEventBuilder builder;
public Generator(String name) {
setName(name);
- baseString_ = name;
- m_builder = new ChainsawLoggingEventBuilder();
+ baseString = name;
+ builder = new ChainsawLoggingEventBuilder();
+
+ randomWordGenerator = new RandomWordGenerator();
}
private ChainsawLoggingEvent createEvent(
Level level, String logger, String msg, Throwable t) {
- m_builder.clear();
- m_builder.setLogger( logger )
+ builder.clear();
+ builder.setLogger(logger)
.setTimestamp(Instant.now())
.setLevel(level)
.setMessage(msg)
.setLocationInfo(new LocationInfo("file", logger, "method", 123))
.setNDC("NDC Value");
- return m_builder.create();
+ return builder.create();
}
public void run() {
-// NDC.push(baseString_);
-// MDC.put("some string", "some value" + baseString_);
-
int i = 0;
while (!shutdown) {
append(createEvent(Level.TRACE, logger1, "tracemsg" + i++, null));
append(
createEvent(
- Level.DEBUG, logger1,
- "debugmsg " + i++
- + " g dg sdfa sadf sdf safd fsda asfd sdfa sdaf asfd asdf fasd fasd adfs fasd adfs fads afds afds afsd afsd afsd afsd afsd fasd asfd asfd afsd fasd afsd",
- null));
+ Level.DEBUG, logger1, "debugmsg " + i++ + randomWordGenerator.generateSentence(), null));
+
append(createEvent(Level.INFO, logger1, "infomsg " + i++, null));
append(createEvent(Level.WARN, logger1, "warnmsg " + i++, null));
append(createEvent(Level.ERROR, logger1, "errormsg " + i++, null));
- append(createEvent(Level.FATAL, logger1, "fatalmsg " + i++, new Exception("someexception-" + baseString_)));
+ append(createEvent(Level.FATAL, logger1, "fatalmsg " + i++, new Exception("someexception-" + baseString)));
append(createEvent(Level.TRACE, logger2, "tracemsg" + i++, null));
append(
createEvent(
Level.DEBUG, logger2,
- "debugmsg " + i++
- + " g dg sdfa sadf sdf safd fsda asfd sdfa sdaf asfd asdf fasd fasd adfs fasd adfs fads afds afds afsd afsd afsd afsd afsd fasd asfd asfd afsd fasd afsd",
+ "debugmsg " + i++ + randomWordGenerator.generateSentence(),
null));
append(createEvent(Level.INFO, logger2, "infomsg " + i++, null));
append(createEvent(Level.WARN, logger2, "warnmsg " + i++, null));
append(createEvent(Level.ERROR, logger2, "errormsg " + i++, null));
- append(createEvent(Level.FATAL, logger2, "fatalmsg " + i++, new Exception("someexception-" + baseString_)));
+ append(createEvent(Level.FATAL, logger2, "fatalmsg " + i++, new Exception("someexception-" + baseString)));
append(createEvent(Level.TRACE, logger3, "tracemsg" + i++, null));
append(
createEvent(
Level.DEBUG, logger3,
- "debugmsg " + i++
- + " g dg sdfa sadf sdf safd fsda asfd sdfa sdaf asfd asdf fasd fasd adfs fasd adfs fads afds afds afsd afsd afsd afsd afsd fasd asfd asfd afsd fasd afsd",
+ "debugmsg " + i++ + randomWordGenerator.generateSentence(),
null));
append(createEvent(Level.INFO, logger3, "infomsg " + i++, null));
append(createEvent(Level.WARN, logger3, "warnmsg " + i++, null));
append(createEvent(Level.ERROR, logger3, "errormsg " + i++, null));
- append(createEvent(Level.FATAL, logger3, "fatalmsg " + i++, new Exception("someexception-" + baseString_)));
+ append(createEvent(Level.FATAL, logger3, "fatalmsg " + i++, new Exception("someexception-" + baseString)));
try {
Thread.sleep(1000);
@@ -118,7 +112,7 @@
@Override
public void start() {
- thread = new Thread(this);
+ Thread thread = new Thread(this);
thread.setPriority(Thread.MIN_PRIORITY);
thread.start();
}
diff --git a/src/main/java/org/apache/log4j/chainsaw/components/tutorial/RandomWordGenerator.java b/src/main/java/org/apache/log4j/chainsaw/components/tutorial/RandomWordGenerator.java
new file mode 100644
index 0000000..cce3b20
--- /dev/null
+++ b/src/main/java/org/apache/log4j/chainsaw/components/tutorial/RandomWordGenerator.java
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.log4j.chainsaw.components.tutorial;
+
+import java.util.Random;
+
+public class RandomWordGenerator {
+ Random random = new Random();
+ private final String[] SYLLABLES = {
+ "can", "cen", "cin", "con", "cun",
+ "na", "ne", "ni", "no", "nu",
+ "ta", "te", "ti", "to", "tu",
+ "la", "le", "li", "lo", "lu",
+ "ma", "me", "mi", "mo", "mu",
+ "ra", "re", "ri", "ro", "ru",
+ "da", "de", "di", "do", "du",
+ "fa", "fe", "fi", "fo", "fu",
+ "sa", "se", "fi", "so", "su"
+ };
+
+ public String generateWord(int length) {
+ StringBuilder word = new StringBuilder(length);
+ for (int i = 0; i < length; i++) {
+ word.append(SYLLABLES[random.nextInt(SYLLABLES.length)]);
+ }
+ return word.toString();
+ }
+
+ public String generateSentence(int words) {
+ StringBuilder sentence = new StringBuilder(words);
+ for (int i = 0; i < words; i++) {
+ int randomSyllables = random.nextInt(6) + 2; // 2-7 syllabiles
+ sentence.append(generateWord(randomSyllables) + " ");
+ }
+ return sentence.toString().trim();
+ }
+
+ public String generateSentence() {
+ int words = random.nextInt(12) + 4;
+ return generateSentence(words);
+ }
+}
diff --git a/src/main/java/org/apache/log4j/chainsaw/components/tutorial/TutorialFrame.java b/src/main/java/org/apache/log4j/chainsaw/components/tutorial/TutorialFrame.java
index aa210bc..b9d6c86 100644
--- a/src/main/java/org/apache/log4j/chainsaw/components/tutorial/TutorialFrame.java
+++ b/src/main/java/org/apache/log4j/chainsaw/components/tutorial/TutorialFrame.java
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package org.apache.log4j.chainsaw.components.tutorial;
import org.apache.log4j.chainsaw.ChainsawConstants;