Skip to content

Commit

Permalink
LogbackAuditor now logs to an independent Appender and is not silence…
Browse files Browse the repository at this point in the history
…d by the level of main application logging
  • Loading branch information
ajs6f committed Feb 7, 2013
1 parent c195410 commit 9787aa9
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 6 deletions.
Expand Up @@ -2,30 +2,56 @@

import static org.fcrepo.modeshape.utils.EventType.getEventName;

import java.util.Iterator;

import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.jcr.RepositoryException;
import javax.jcr.observation.Event;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.Appender;

import com.google.common.eventbus.Subscribe;

/**
* A proof-of-concept Auditor implementation that uses Logback.
*
* @author Edwin Shin
* @author ajs6f
*/
public class LogbackAuditor implements Auditor {

Logger logger = LoggerFactory.getLogger(LogbackAuditor.class);
@Inject
private Appender<ILoggingEvent> appender;

Logger logger = (Logger) LoggerFactory.getLogger(LogbackAuditor.class);

@PostConstruct
public void setLoggerLevel() {
logger.setLevel(Level.ALL);
Iterator<Appender<ILoggingEvent>> i = logger.iteratorForAppenders();
while (i.hasNext())
logger.detachAppender(i.next().getName());
logger.addAppender(appender);
}

/**
*
*/
@Override
@Subscribe
public void recordEvent(Event e) throws RepositoryException {
logger.info(e.getUserID() + " " + getEventName(e.getType()) + " "
+ e.getPath());
}

public LogbackAuditor() {
}

@Inject
public LogbackAuditor(Appender<ILoggingEvent> appender) {
this.appender = appender;
}

}
Expand Up @@ -52,7 +52,7 @@ public void testEventAuditing() throws Exception {
root.addAppender(mockAppender);

EventBus eventBus = new EventBus("Test EventBus");
Auditor auditor = new LogbackAuditor();
Auditor auditor = new LogbackAuditor(mockAppender);
eventBus.register(auditor);
eventBus.post(mockEvent);

Expand Down

0 comments on commit 9787aa9

Please sign in to comment.