我的日志文件在哪里?
我无法找到我的物理日志文件。我正在使用java.util.logging类。我有一个包含下面的代码一个简单的沙箱类:我的日志文件在哪里?
package test;
import java.util.logging.Level;
import java.util.logging.Logger;
public class TestLogging {
public static void main(String[] args) {
@SuppressWarnings("unused")
TestLogging test = new TestLogging();
}
public TestLogging() {
System.out.println(getClass().getClassLoader().getResource("logging.properties"));
Logger logger = Logger.getLogger("test");
logger.logp(Level.CONFIG, "myClass", "myMethod", "Monday");
logger.logp(Level.FINE, "myClass", "myMethod", "Tuesday");
logger.logp(Level.FINER, "myClass", "myMethod", "Wednesday");
logger.logp(Level.FINEST, "myClass", "myMethod", "Thursday");
logger.logp(Level.INFO, "myClass", "myMethod", "Friday");
logger.logp(Level.SEVERE, "myClass", "myMethod", "Saturday");
logger.logp(Level.WARNING, "myClass", "myMethod", "Sunday");
}
}
我logging.properties文件(再次,剥离的评论)是:
handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler
.level= ALL
java.util.logging.FileHandler.pattern = %h/java%u.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter
java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
x.y.level = SEVERE
x.y.z.level = WARNING
org.sscce.level = WARNING
org.sscce.baz3.level = INFO
logging.properties文件,是在用户类路径此类的运行配置中的条目。
当我执行类,我得到这个在控制台上:
file:/C:/Program%20Files/Java/jdk1.6.0_18/jre/lib/logging.properties
28-Feb-2012 2:05:55 PM myClass myMethod
INFO: Friday
28-Feb-2012 2:05:56 PM myClass myMethod
SEVERE: Saturday
28-Feb-2012 2:05:56 PM myClass myMethod
WARNING: Sunday
我问控制台上的日志记录级别是INFO,这一切我都在控制台上,使得部分似乎是加工。但是,当我在H,这是C找我的身体的java日志:\ Documents和Settings [我的Windows ID],没有遵循模式javaX.log其中X是一个整数的文件。
我在做什么错?该程序没有看到logging.properties文件?还是以某种方式设置值以防止写入任何物理日志?
我需要调试一些这方面的帮助,因为我看不出什么明显的错误。任何接受者?
要找到您的日志文件,您需要知道%h
代表您的user.home
变量中的值。
要得到的是,执行:System.out.println("%h: " + System.getProperty("user.home"));
你必须设置该属性文件你是一个System.property使用为好。 下面是做这件事,否则,使用默认的,是不是,你可能认为它是。
java -Djava.util.logging.config.file=mylogging.properties
你也可以做到这一点编程开始使用日志类之前。
也
paths with spaces + Java == pain and suffering
并始终使用/
作为路径分隔符,Java将做正确的事情,即使是在Windows上。
I'我时不时碰到了一个有嵌入空间的路径问题,但这已经有一段时间了。我想这可能是。我可以证明通过将logging.properties复制到没有嵌入空间的地方,如C:\,然后再次尝试。我没有意识到我必须将java -D参数添加到应用程序参数中。我也会尝试。你能提醒我一些事吗?如果我想在Windows中指定属性文件的完整路径,我可以使用C:\ myDir \ logging.properties,还是必须加倍反斜杠并将整个内容放在引号中才能确定? – 2012-02-28 19:54:26
总是用'/'在Java中的路径分隔符,即使在Windows中,它的工作原理吧。 '''''''''''''''''为了安全起见''将所有东西都包裹在'''中'' – 2012-02-28 19:58:12
无所谓!我将logging.properties复制到C:\,并在VM参数中完全像这样写入参数:-Djava.util.logging.config.file = C:\ logging.properties。该代码现在完美工作,我有一个日志,显示本周的所有7天确切的位置。谢谢Jarrod!现在我知道我需要做什么才能按照我的想法进行工作。 – 2012-02-28 19:58:13
您实现与空间'路径+ Java的==疼痛和suffering'! – 2012-02-28 19:34:46
可能的重复[如何使用属性文件设置java日志记录? (java.util.logging)](http://stackoverflow.com/questions/960099/how-to-set-up-java-logging-using-a-properties-file-java-util-logging) – 2012-02-28 19:43:17