1 package org
.argeo
.slc
.log4j
;
3 import org
.apache
.log4j
.AppenderSkeleton
;
4 import org
.apache
.log4j
.Layout
;
5 import org
.apache
.log4j
.Logger
;
6 import org
.apache
.log4j
.PatternLayout
;
7 import org
.apache
.log4j
.spi
.LoggingEvent
;
8 import org
.argeo
.slc
.core
.execution
.ExecutionThread
;
9 import org
.argeo
.slc
.process
.SlcExecutionStep
;
10 import org
.springframework
.beans
.factory
.DisposableBean
;
11 import org
.springframework
.beans
.factory
.InitializingBean
;
13 /** Not meant to be used directly in standard log4j config */
14 public class SlcExecutionAppender
extends AppenderSkeleton
implements
15 InitializingBean
, DisposableBean
{
17 private Layout layout
= null;
18 private String pattern
= "%m - %c%n";
20 public void afterPropertiesSet() {
24 setLayout(new PatternLayout(pattern
));
25 Logger
.getRootLogger().addAppender(this);
29 protected void append(LoggingEvent event
) {
30 if (!(Thread
.currentThread() instanceof ExecutionThread
))
33 ExecutionThread executionThread
= (ExecutionThread
) Thread
35 executionThread
.dispatchAddStep(new SlcExecutionStep(layout
39 public void destroy() throws Exception
{
40 Logger
.getRootLogger().removeAppender(this);
46 public boolean requiresLayout() {
50 public void setLayout(Layout layout
) {
54 public void setPattern(String pattern
) {
55 this.pattern
= pattern
;