Java 我的日志文件在哪里?
我找不到我的物理日志文件。我正在使用java.util.logging类。我有一个普通的沙盒类,包含以下代码:Java 我的日志文件在哪里?,java,java.util.logging,Java,Java.util.logging,我找不到我的物理日志文件。我正在使用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 tes
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文件(同样没有注释)是:
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中查找物理java日志时,即C:\Documents and Settings[my 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
您还可以在开始使用日志类之前以编程方式执行此操作
也
始终使用/
作为路径分隔符,Java将做正确的事情,即使在Windows上也是如此。您意识到路径带有空格+Java==痛苦
!可能的重复我的头撞到了一个路径上嵌入空间的问题时有发生,但已经有一段时间了。我想可能就是这样。我可以通过将logging.properties复制到没有嵌入空间的地方来证明这一点,如C:\并重试。我没有意识到我还必须将java-D参数添加到应用程序参数中。我也要试试。你能提醒我一件事吗?如果我想在Windows中指定属性文件的完整路径,我可以使用C:\myDir\logging.properties,还是必须将反斜杠加倍,并将整个内容放在引号中才能确定?在Java中始终使用路径分隔符/
,即使在Windows中,它也可以解决这个问题。用“
只是为了安全。没关系!我将logging.properties复制到C:\并在VM参数中编写了与此完全相同的参数:-Djava.util.logging.config.file=C:\logging.properties。代码现在运行得很好,我有一个日志,显示了一周中所有7天的确切位置。谢谢你,杰罗德!现在我知道我需要做什么才能让这一切按我所希望的方式进行。总是使用引号,总是使用正斜杠。好的,我会的,贾罗德。再次感谢!
java -Djava.util.logging.config.file=mylogging.properties
paths with spaces + Java == pain and suffering