Revision: 4709
Updated Code
at January 17, 2008 03:41 by narkisr
Updated Code
import com.alphacsp.common.log.Log; import org.apache.log4j.Category; import org.apache.log4j.FileAppender; import org.apache.log4j.AppenderSkeleton; import java.lang.reflect.Field; import java.util.Enumeration; public class FileAppenderManipulation { public void setAppenderFilenameForLogger(Log log, String filename, String appenderName) { try { Category category = getCategory(log); final FileAppender fileAppender = (FileAppender) locateAppender(category, appenderName); fileAppender.setFile(filename); fileAppender.activateOptions(); } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } private AppenderSkeleton locateAppender(Category category, String name) { do { final Enumeration appenders = category.getAllAppenders(); while (appenders.hasMoreElements()) { AppenderSkeleton appenderSkeleton = (AppenderSkeleton) appenders.nextElement(); if (appenderSkeleton.getName().equals(name)) { return appenderSkeleton; } } } while ((category = category.getParent()) != null); throw new RuntimeException("The requested appender dosn't exists!"); } private Category getCategory(Log log) throws NoSuchFieldException, IllegalAccessException { Field field = log.getClass().getDeclaredField("category"); field.setAccessible(true); Category category = (Category) field.get(log); return category; } }
Revision: 4708
Updated Code
at January 17, 2008 03:00 by narkisr
Updated Code
public static void setAppenderForLogger(Log log, String filename) { try { Field field = log.getClass().getDeclaredField("category"); field.setAccessible(true); Category category = (Category) field.get(log); FileAppender fileAppender = (FileAppender) category.getAppender("AppenderName"); fileAppender.setFile(filename); fileAppender.activateOptions(); } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } }
Revision: 4707
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at January 17, 2008 02:59 by narkisr
Initial Code
public static void setAppenderForLogger(Log log, String filename) { try { Field field = log.getClass().getDeclaredField("category"); field.setAccessible(true); Category category = (Category) field.get(log); FileAppender fileAppender = (FileAppender) category.getAppender("F2"); fileAppender.setFile(filename); fileAppender.activateOptions(); } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } }
Initial URL
Initial Description
Initial Title
Setting file appender log path on runtime
Initial Tags
java
Initial Language
Java