X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=srcjar_unused%2Forg%2Fapache%2Flog4j%2FTTCCLayout.java;fp=srcjar_unused%2Forg%2Fapache%2Flog4j%2FTTCCLayout.java;h=3b0e98f967369d2fc01f56bea571073bde97001f;hb=ec8f3cedf60fb1feed6d34de6b49f6bfa78b9dd8;hp=0000000000000000000000000000000000000000;hpb=056dad85a910551cc95e44d451a61f6b8c4dd35d;p=jalview.git diff --git a/srcjar_unused/org/apache/log4j/TTCCLayout.java b/srcjar_unused/org/apache/log4j/TTCCLayout.java new file mode 100644 index 0000000..3b0e98f --- /dev/null +++ b/srcjar_unused/org/apache/log4j/TTCCLayout.java @@ -0,0 +1,217 @@ +/* + * 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. + */ + +// Contributors: Christopher Williams +// Mathias Bogaert + +package org.apache.log4j; + +import org.apache.log4j.helpers.DateLayout; +import org.apache.log4j.spi.LoggingEvent; + +/** + TTCC layout format consists of time, thread, category and nested + diagnostic context information, hence the name. + +
Each of the four fields can be individually enabled or
+ disabled. The time format depends on the DateFormat
+ used.
+
+
Here is an example TTCCLayout output with the + {@link org.apache.log4j.helpers.RelativeTimeDateFormat}. + +
+176 [main] INFO org.apache.log4j.examples.Sort - Populating an array of 2 elements in reverse order. +225 [main] INFO org.apache.log4j.examples.SortAlgo - Entered the sort method. +262 [main] DEBUG org.apache.log4j.examples.SortAlgo.OUTER i=1 - Outer loop. +276 [main] DEBUG org.apache.log4j.examples.SortAlgo.SWAP i=1 j=0 - Swapping intArray[0] = 1 and intArray[1] = 0 +290 [main] DEBUG org.apache.log4j.examples.SortAlgo.OUTER i=0 - Outer loop. +304 [main] INFO org.apache.log4j.examples.SortAlgo.DUMP - Dump of interger array: +317 [main] INFO org.apache.log4j.examples.SortAlgo.DUMP - Element [0] = 0 +331 [main] INFO org.apache.log4j.examples.SortAlgo.DUMP - Element [1] = 1 +343 [main] INFO org.apache.log4j.examples.Sort - The next log statement should be an error message. +346 [main] ERROR org.apache.log4j.examples.SortAlgo.DUMP - Tried to dump an uninitialized array. + at org.apache.log4j.examples.SortAlgo.dump(SortAlgo.java:58) + at org.apache.log4j.examples.Sort.main(Sort.java:64) +467 [main] INFO org.apache.log4j.examples.Sort - Exiting main method. ++ +
The first field is the number of milliseconds elapsed since the + start of the program. The second field is the thread outputting the + log statement. The third field is the level, the fourth field is + the category to which the statement belongs. + +
The fifth field (just before the '-') is the nested diagnostic + context. Note the nested diagnostic context may be empty as in the + first two statements. The text after the '-' is the message of the + statement. + +
WARNING Do not use the same TTCCLayout instance from + within different appenders. The TTCCLayout is not thread safe when + used in his way. However, it is perfectly safe to use a TTCCLayout + instance from just one appender. + +
{@link PatternLayout} offers a much more flexible alternative.
+
+ @author Ceki Gülcü
+ @author Heinz Richter
+
+*/
+public class TTCCLayout extends DateLayout {
+
+ // Internal representation of options
+ private boolean threadPrinting = true;
+ private boolean categoryPrefixing = true;
+ private boolean contextPrinting = true;
+
+
+ protected final StringBuffer buf = new StringBuffer(256);
+
+
+ /**
+ Instantiate a TTCCLayout object with {@link
+ org.apache.log4j.helpers.RelativeTimeDateFormat} as the date
+ formatter in the local time zone.
+
+ @since 0.7.5 */
+ public TTCCLayout() {
+ this.setDateFormat(RELATIVE_TIME_DATE_FORMAT, null);
+ }
+
+
+ /**
+ Instantiate a TTCCLayout object using the local time zone. The
+ DateFormat used will depend on the dateFormatType
.
+
+
This constructor just calls the {@link + DateLayout#setDateFormat} method. + + */ + public TTCCLayout(String dateFormatType) { + this.setDateFormat(dateFormatType); + } + + + /** + The ThreadPrinting option specifies whether the name of the + current thread is part of log output or not. This is true by default. + */ + public + void setThreadPrinting(boolean threadPrinting) { + this.threadPrinting = threadPrinting; + } + + /** + Returns value of the ThreadPrinting option. + */ + public + boolean getThreadPrinting() { + return threadPrinting; + } + + /** + The CategoryPrefixing option specifies whether {@link Category} + name is part of log output or not. This is true by default. + */ + public + void setCategoryPrefixing(boolean categoryPrefixing) { + this.categoryPrefixing = categoryPrefixing; + } + + /** + Returns value of the CategoryPrefixing option. + */ + public + boolean getCategoryPrefixing() { + return categoryPrefixing; + } + + /** + The ContextPrinting option specifies log output will include + the nested context information belonging to the current thread. + This is true by default. + */ + public + void setContextPrinting(boolean contextPrinting) { + this.contextPrinting = contextPrinting; + } + + /** + Returns value of the ContextPrinting option. + */ + public + boolean getContextPrinting() { + return contextPrinting; + } + + /** + In addition to the level of the statement and message, the + returned byte array includes time, thread, category and {@link NDC} + information. + +
Time, thread, category and diagnostic context are printed
+ depending on options.
+
+ @param event The event to format
+
+ */
+ public
+ String format(LoggingEvent event) {
+
+ // Reset buf
+ buf.setLength(0);
+
+ dateFormat(buf, event);
+
+ if(this.threadPrinting) {
+ buf.append('[');
+ buf.append(event.getThreadName());
+ buf.append("] ");
+ }
+ buf.append(event.getLevel().toString());
+ buf.append(' ');
+
+ if(this.categoryPrefixing) {
+ buf.append(event.getLoggerName());
+ buf.append(' ');
+ }
+
+ if(this.contextPrinting) {
+ String ndc = event.getNDC();
+
+ if(ndc != null) {
+ buf.append(ndc);
+ buf.append(' ');
+ }
+ }
+ buf.append("- ");
+ buf.append(event.getRenderedMessage());
+ buf.append(LINE_SEP);
+ return buf.toString();
+ }
+
+ /**
+ The TTCCLayout does not handle the throwable contained within
+ {@link LoggingEvent LoggingEvents}. Thus, it returns
+ true
.
+
+ @since version 0.8.4 */
+ public
+ boolean ignoresThrowable() {
+ return true;
+ }
+}