这是我的代码
package com.my;
import org.apache.log4j.spi.LoggerFactory;
import java.io.*;
import java.util.logging.*;
public class Log {
public static void main(String[] args) {
try{
FileHandler hand = new FileHandler("vk.log");
Logger log = Logger.getLogger("log_file");
log.addHandler(hand);
log.warning("Doing carefully!");
log.info("Doing something ...");
log.severe("Doing strictily ");
System.out.println(log.getName());
}
catch(IOException e){
System.out.println(e)
}
}
}
答案 0 :(得分:4)
如果您删除多余的log.getLogger("");
语句并修复导入,您的代码应该有用。
几条评论:
如果您有多个记录器,您可以选择性地打开和关闭它们。通常根据类或包名创建多个记录器; e.g。
Logger log = Logger.getLogger(this.getClass());
或
Logger log = Logger.getLogger(SomeClass.class);
您正在以编程方式实例化和关联处理程序。将日志记录配置放入XML或属性文件中是一个更好的主意,并使用其中一个配置程序加载它并连接日志记录处理程序。这允许您......或用户...在不修改代码的情况下调整日志记录。
您应该阅读解释上述内容的log4j introduction文档以及有关使用log4j的其他内容。
以上假设您尝试使用log4j
。您是否真的尝试使用java.util.logging
,有些细节并不完全正确。 (而且,IMO,使用log4j
或其中一个后代,会更好。
答案 1 :(得分:1)
您的代码或多或少都很好(检查导入),如果删除该行,则应该可以正常工作:
log.getLogger("");
您班级的工作实施将是:
import java.io.IOException;
import java.util.logging.FileHandler;
import java.util.logging.Logger;
public class test {
public static void main(String[] args) {
try {
FileHandler hand = new FileHandler("vk.log");
Logger log = Logger.getLogger("log_file");
log.addHandler(hand);
log.warning("Doing carefully!");
log.info("Doing something ...");
log.severe("Doing strictily ");
System.out.println(log.getName());
} catch (IOException e) {
// Handle error.
}
}
}
你能解释一下你的问题吗?
答案 2 :(得分:1)
以下是一些建议。