You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by ca...@apache.org on 2005/10/19 18:42:31 UTC
svn commit: r326604 -
/logging/log4j/trunk/src/java/org/apache/log4j/ConsoleAppender.java
Author: carnold
Date: Wed Oct 19 09:42:27 2005
New Revision: 326604
URL: http://svn.apache.org/viewcvs?rev=326604&view=rev
Log:
Bug 37122: Console redirction in 1.2.12 causes infinite loop in JBoss
Modified:
logging/log4j/trunk/src/java/org/apache/log4j/ConsoleAppender.java
Modified: logging/log4j/trunk/src/java/org/apache/log4j/ConsoleAppender.java
URL: http://svn.apache.org/viewcvs/logging/log4j/trunk/src/java/org/apache/log4j/ConsoleAppender.java?rev=326604&r1=326603&r2=326604&view=diff
==============================================================================
--- logging/log4j/trunk/src/java/org/apache/log4j/ConsoleAppender.java (original)
+++ logging/log4j/trunk/src/java/org/apache/log4j/ConsoleAppender.java Wed Oct 19 09:42:27 2005
@@ -33,6 +33,13 @@
protected String target = SYSTEM_OUT;
/**
+ * Determines if the appender honors reassignments of System.out
+ * or System.err made after configuration.
+ */
+ private boolean honorReassignment = false;
+
+
+ /**
* Constructs an unconfigured appender.
*/
public ConsoleAppender() {
@@ -87,14 +94,45 @@
return target;
}
+ /**
+ * Sets whether the appender honors reassignments of System.out
+ * or System.err made after configuration.
+ * @param newValue if true, appender will use value of System.out or
+ * System.err in force at the time when logging events are appended.
+ * @since 1.2.13
+ */
+ public final void setHonorReassignment(final boolean newValue) {
+ honorReassignment = newValue;
+ }
+
+ /**
+ * Gets whether the appender honors reassignments of System.out
+ * or System.err made after configuration.
+ * @return true if appender will use value of System.out or
+ * System.err in force at the time when logging events are appended.
+ * @since 1.2.13
+ */
+ public final boolean getHonorReassignment() {
+ return honorReassignment;
+ }
+
+
/**
* Prepares the appender for use.
*/
public void activateOptions() {
- if (target.equals(SYSTEM_ERR)) {
- setWriter(createWriter(new SystemErrStream()));
+ if (honorReassignment) {
+ if (target.equals(SYSTEM_ERR)) {
+ setWriter(createWriter(new SystemErrStream()));
+ } else {
+ setWriter(createWriter(new SystemOutStream()));
+ }
} else {
- setWriter(createWriter(new SystemOutStream()));
+ if (target.equals(SYSTEM_ERR)) {
+ setWriter(createWriter(System.err));
+ } else {
+ setWriter(createWriter(System.out));
+ }
}
super.activateOptions();
@@ -106,7 +144,9 @@
protected
final
void closeWriter() {
- super.closeWriter();
+ if (honorReassignment) {
+ super.closeWriter();
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org