Lines 39-44
Link Here
|
39 |
import org.apache.log4j.or.RendererMap; |
39 |
import org.apache.log4j.or.RendererMap; |
40 |
import org.apache.log4j.or.ObjectRenderer; |
40 |
import org.apache.log4j.or.ObjectRenderer; |
41 |
import org.apache.log4j.helpers.LogLog; |
41 |
import org.apache.log4j.helpers.LogLog; |
|
|
42 |
import org.apache.log4j.helpers.ShutdownEventListener; |
42 |
import org.apache.log4j.spi.ThrowableRendererSupport; |
43 |
import org.apache.log4j.spi.ThrowableRendererSupport; |
43 |
import org.apache.log4j.spi.ThrowableRenderer; |
44 |
import org.apache.log4j.spi.ThrowableRenderer; |
44 |
|
45 |
|
Lines 67-72
Link Here
|
67 |
|
68 |
|
68 |
private LoggerFactory defaultFactory; |
69 |
private LoggerFactory defaultFactory; |
69 |
private Vector listeners; |
70 |
private Vector listeners; |
|
|
71 |
private Vector shutdownListeners; |
70 |
|
72 |
|
71 |
Hashtable ht; |
73 |
Hashtable ht; |
72 |
Logger root; |
74 |
Logger root; |
Lines 90-95
Link Here
|
90 |
Hierarchy(Logger root) { |
92 |
Hierarchy(Logger root) { |
91 |
ht = new Hashtable(); |
93 |
ht = new Hashtable(); |
92 |
listeners = new Vector(1); |
94 |
listeners = new Vector(1); |
|
|
95 |
shutdownListeners = new Vector(1); |
93 |
this.root = root; |
96 |
this.root = root; |
94 |
// Enable all level levels by default. |
97 |
// Enable all level levels by default. |
95 |
setThreshold(Level.ALL); |
98 |
setThreshold(Level.ALL); |
Lines 115-120
Link Here
|
115 |
} |
118 |
} |
116 |
} |
119 |
} |
117 |
|
120 |
|
|
|
121 |
public |
122 |
void addShutdownEventListener(ShutdownEventListener listener) { |
123 |
if(shutdownListeners.contains(listener)) { |
124 |
LogLog.warn("Ignoring attempt to add an existent listener."); |
125 |
} else { |
126 |
shutdownListeners.addElement(listener); |
127 |
} |
128 |
} |
129 |
|
118 |
/** |
130 |
/** |
119 |
This call will clear all logger definitions from the internal |
131 |
This call will clear all logger definitions from the internal |
120 |
hashtable. Invoking this method will irrevocably mess up the |
132 |
hashtable. Invoking this method will irrevocably mess up the |
Lines 475-480
Link Here
|
475 |
c.removeAllAppenders(); |
487 |
c.removeAllAppenders(); |
476 |
} |
488 |
} |
477 |
} |
489 |
} |
|
|
490 |
|
491 |
Enumeration listeners = shutdownListeners.elements(); |
492 |
while (listeners.hasMoreElements()) { |
493 |
ShutdownEventListener listener = (ShutdownEventListener)listeners.nextElement(); |
494 |
listener.shutdown(); |
495 |
} |
478 |
} |
496 |
} |
479 |
|
497 |
|
480 |
|
498 |
|