/*
* myLib - https://github.com/taktod/myLib
* Copyright (c) 2014 ttProject. All rights reserved.
*
* Licensed under The MIT license.
*/
package com.ttProject.log4j;
import org.apache.log4j.AppenderSkeleton;
import org.apache.log4j.NDC;
import org.apache.log4j.spi.LoggingEvent;
/**
* log appender for ndc injection.
* this appender works like hook.
* this appender should be put first.
* @author taktod
*/
public class NDCInjectAppender extends AppenderSkeleton {
/**
* {@inheritDoc}
*/
@Override
public void close() {
}
/**
* {@inheritDoc}
*/
@Override
public boolean requiresLayout() {
return false;
}
/**
* {@inheritDoc}
*/
@Override
protected void append(LoggingEvent event) {
// if the data size is changed, re-initialize.
if(NDC.getDepth() != AllThreadNDCInjection.data.size()) {
NDC.clear();
for(String item : AllThreadNDCInjection.data) {
NDC.push(item);
}
}
}
}