我正在使用默认java.util.Logging
API将信息打印到我的日志中。
Logger.getLogger(Datastore.class.getName());
logger.info("Registering ");
其中 Datastore 是类的名称。但我无法找到日志的存储位置。我在 Windows 7 机器上运行,上面的程序是 servlet 的一部分。我为这个看似愚蠢的问题道歉,但有时这种微不足道的事情会极大地阻碍进展。
您可以向 Logger 添加一个处理程序,以指定日志的位置。
Handler handler = new FileHandler("DataStore.log");
Logger logger = Logger.getLogger(Datastore.class.getName());
logger.addHandler(handler);
logger.info("Registering ");
记录器仅创建日志对象,但实际显示它的是处理程序。处理程序可以是从Handler定义的任何子类。如果您使用 FileHandler,您应该阅读FileHandler的 Java API 。
默认情况下,java.util.logging.Logger
发送输出到控制台并且不打印到文件中。您必须向java.util.logging.Handler
Logger 添加一个。下面是创建 HTML 处理程序的片段,TEXTFILE。希望这可以帮助。
package logging;
import java.io.IOException;
import java.util.logging.FileHandler;
import java.util.logging.Formatter;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;
public class MyLogger {
static private FileHandler fileTxt;
static private SimpleFormatter formatterTxt;
static private FileHandler fileHTML;
static private Formatter formatterHTML;
static public void setup() throws IOException {
// Create Logger
Logger logger = Logger.getLogger("");
logger.setLevel(Level.INFO);
fileTxt = new FileHandler("Logging.txt");
fileHTML = new FileHandler("Logging.html");
// Create txt Formatter
formatterTxt = new SimpleFormatter();
fileTxt.setFormatter(formatterTxt);
logger.addHandler(fileTxt);
// Create HTML Formatter
formatterHTML = new MyHtmlFormatter();
fileHTML.setFormatter(formatterHTML);
logger.addHandler(fileHTML);
}
}
如需进一步参考,请阅读本文。
检查 log4j 配置文件,该文件将包含更新日志位置的路径。检查此以供参考。
如果您没有 log4j 配置文件(假设 Logger 来自 log4j),事情会变得非常安静。
对于初学者,请尝试在 classes 目录的根目录中添加属性文件,例如:
# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=DEBUG, A1
# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender
# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
来自这里