X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=unused%2Fsrcjar_unused%2Forg%2Fapache%2Flog4j%2Fxml%2FXMLLayout.java;fp=unused%2Fsrcjar_unused%2Forg%2Fapache%2Flog4j%2Fxml%2FXMLLayout.java;h=2062a80013c4d7a4a4f2f931ba102bf2f8fc9b4d;hb=7e01e1b3e9c8abdf952e085dba51e9266f12b1ee;hp=0000000000000000000000000000000000000000;hpb=88635c3965bb2f1f45e53c2d5f66fed19b93012a;p=jalview.git diff --git a/unused/srcjar_unused/org/apache/log4j/xml/XMLLayout.java b/unused/srcjar_unused/org/apache/log4j/xml/XMLLayout.java new file mode 100644 index 0000000..2062a80 --- /dev/null +++ b/unused/srcjar_unused/org/apache/log4j/xml/XMLLayout.java @@ -0,0 +1,216 @@ +/* + * 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: Mathias Bogaert + +package org.apache.log4j.xml; + +import org.apache.log4j.Layout; +import org.apache.log4j.helpers.Transform; +import org.apache.log4j.spi.LocationInfo; +import org.apache.log4j.spi.LoggingEvent; + +import java.util.Set; +import java.util.Arrays; + +/** + * The output of the XMLLayout consists of a series of log4j:event + * elements as defined in the log4j.dtd. It does not output a + * complete well-formed XML file. The output is designed to be + * included as an external entity in a separate file to form + * a correct XML file. + * + *
For example, if abc
is the name of the file where
+ * the XMLLayout ouput goes, then a well-formed XML file would be:
+ *
+
+ <?xml version="1.0" ?> + + <!DOCTYPE log4j:eventSet PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd" [<!ENTITY data SYSTEM "abc">]> + + <log4j:eventSet version="1.2" xmlns:log4j="http://jakarta.apache.org/log4j/"> + &data; + </log4j:eventSet> ++ + *
This approach enforces the independence of the XMLLayout and the + * appender where it is embedded. + * + *
The version
attribute helps components to correctly
+ * intrepret output generated by XMLLayout. The value of this
+ * attribute should be "1.1" for output generated by log4j versions
+ * prior to log4j 1.2 (final release) and "1.2" for relase 1.2 and
+ * later.
+ *
+ * Appenders using this layout should have their encoding
+ * set to UTF-8 or UTF-16, otherwise events containing
+ * non ASCII characters could result in corrupted
+ * log files.
+ *
+ * @author Ceki Gülcü
+ * @since 0.9.0
+ * */
+public class XMLLayout extends Layout {
+
+ private final int DEFAULT_SIZE = 256;
+ private final int UPPER_LIMIT = 2048;
+
+ private StringBuffer buf = new StringBuffer(DEFAULT_SIZE);
+ private boolean locationInfo = false;
+ private boolean properties = false;
+
+ /**
+ * The LocationInfo option takes a boolean value. By default,
+ * it is set to false which means there will be no location
+ * information output by this layout. If the the option is set to
+ * true, then the file name and line number of the statement at the
+ * origin of the log statement will be output.
+ *
+ *
If you are embedding this layout within an {@link
+ * org.apache.log4j.net.SMTPAppender} then make sure to set the
+ * LocationInfo option of that appender as well.
+ * */
+ public void setLocationInfo(boolean flag) {
+ locationInfo = flag;
+ }
+
+ /**
+ Returns the current value of the LocationInfo option.
+ */
+ public boolean getLocationInfo() {
+ return locationInfo;
+ }
+
+ /**
+ * Sets whether MDC key-value pairs should be output, default false.
+ * @param flag new value.
+ * @since 1.2.15
+ */
+ public void setProperties(final boolean flag) {
+ properties = flag;
+ }
+
+ /**
+ * Gets whether MDC key-value pairs should be output.
+ * @return true if MDC key-value pairs are output.
+ * @since 1.2.15
+ */
+ public boolean getProperties() {
+ return properties;
+ }
+
+ /** No options to activate. */
+ public void activateOptions() {
+ }
+
+
+ /**
+ * Formats a {@link org.apache.log4j.spi.LoggingEvent} in conformance with the log4j.dtd.
+ * */
+ public String format(final LoggingEvent event) {
+
+ // Reset working buffer. If the buffer is too large, then we need a new
+ // one in order to avoid the penalty of creating a large array.
+ if(buf.capacity() > UPPER_LIMIT) {
+ buf = new StringBuffer(DEFAULT_SIZE);
+ } else {
+ buf.setLength(0);
+ }
+
+ // We yield to the \r\n heresy.
+
+ buf.append("false
.
+ */
+ public boolean ignoresThrowable() {
+ return false;
+ }
+}