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; + } +}