gpt4 book ai didi

java - 无法记录到 jsf Web 应用程序中的文件

转载 作者:行者123 更新时间:2023-12-02 00:34:42 28 4
gpt4 key购买 nike

我正在使用 websphere 服务器和 JSF 2.0

在我的托管 bean 中,我声明了以下内容:

private final static Logger LOGGER = Logger.getLogger(ABC.class .getName());

以下代码位于 bean 的构造函数中。

try {
FileHandler handler = new FileHandler("logging.txt");
LOGGER.addHandler(handler);
StringWriter sw = new StringWriter();
e.printStackTrace(new PrintWriter(sw));
String stacktrace = sw.toString();
LOGGER.log(Level.SEVERE, stacktrace);
} catch (Exception logException) {
System.err.println("Logging error");
}

代码将所有日志写入控制台,但不写入文件。日志文件 logging.txt 也未创建。

文件应该自己创建还是路径错误。帮帮我

最佳答案

从您的代码中:

FileHandler handler = new FileHandler("logging.txt");

这将在应用程序服务器的默认工作目录中创建一个 logging.txt 文件。您可以按如下方式确定默认工作目录的确切路径:

System.out.println(new File(".").getAbsolutePath());

logging.txt 文件应位于该文件夹中。

但是,这不是最好的主意。当您无法从应用程序内部控制默认工作目录时,使用相对路径是一个坏主意。您应该使用绝对路径。即,以 / 开头:

FileHandler handler = new FileHandler("/path/to/logging.txt");

在 Windows 中,这将保存在与当前工作目录所在的同一磁盘中。否则,当您也想更改磁盘时,您还需要添加 C: 或其他内容作为前缀。

请注意,此问题与 JSF 没有任何关系。对于任何其他 Java API/框架,您都会遇到完全相同的问题。

关于java - 无法记录到 jsf Web 应用程序中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8141791/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com