[英]Replacing ConsoleAppender to FileAppender in log4j
我使用ConsoleAppender在log4j logger上創建了一個Logger。 代碼如下,
public class AppLogger{
static {
ConsoleAppender ca = new ConsoleAppender(new PatternLayout(PatternLayout.TTCC_CONVERSION_PATTERN));
org.apache.log4j.Logger.getRootLogger().addAppender(ca);
}
public AppLogger(Class classname) {
logger = LoggerFactory.getLogger(classname);
}
public void debug(String message){
logger.debug(message);
}
...
...
}
我沒有使用log4j.properties文件,因為我不知道在哪里放它。 上面的代碼工作正常,並在控制台上正確記錄。 現在我想改變它以使用FileAppender。
我只是更新了靜態構造函數,如下所示,
FileAppender fa = new FileAppender();
fa.setFile("d:/log.txt");
fa.setLayout(new PatternLayout(PatternLayout.DEFAULT_CONVERSION_PATTERN));
org.apache.log4j.Logger.getRootLogger().addAppender(fa);
並增加fa
insted的的ca
。 但是現在我收到了這個錯誤,
log4j:ERROR沒有名為[null]的appender的輸出流或文件集。
我不確定我要錯過哪個屬性來定義File Appender。
您忘記激活選項:
FileAppender fa = new FileAppender();
fa.setFile("d:/log.txt");
fa.setLayout(new PatternLayout(PatternLayout.DEFAULT_CONVERSION_PATTERN));
fa.activateOptions(); \\ ← activate the options
org.apache.log4j.Logger.getRootLogger().addAppender(fa);
OptionHandler#activateOptions()
激活先前通過調用選項setter設置的選項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.