Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Log4j2在Console works find上打印,但未创建日志文件_Java_Spring_Jersey_Log4j2 - Fatal编程技术网

Java Log4j2在Console works find上打印,但未创建日志文件

Java Log4j2在Console works find上打印,但未创建日志文件,java,spring,jersey,log4j2,Java,Spring,Jersey,Log4j2,我使用的是Spring+球衣,但没有Spring战靴。当我设置Log4j2时,消息会打印在控制台上,但不会创建日志文件 配置XML: 它是一个Maven项目,在我的pom.xml中,相关的库如下所示。我没有给出该项目中使用的所有其他库 org.springframework 弹簧网 ${org.springframework.version} 公用记录 公用记录 org.springframework 春季方面 ${org.springframework.version} org.spri

我使用的是Spring+球衣,但没有Spring战靴。当我设置Log4j2时,消息会打印在控制台上,但不会创建日志文件

配置XML:


它是一个Maven项目,在我的pom.xml中,相关的库如下所示。我没有给出该项目中使用的所有其他库


org.springframework
弹簧网
${org.springframework.version}
公用记录
公用记录
org.springframework
春季方面
${org.springframework.version}
org.springframework.data
spring数据jpa
1.11.0.1发布
org.apache.logging.log4j
log4j型芯
${log4j.version}
org.apache.logging.log4j
log4jcl
${log4j.version}
org.apache.logging.log4j
log4j-slf4j-impl
${log4j.version}
我在本地Tomcat上运行下面的代码

@Path("log/")
public class LogTestServelt extends BaseServlet {

    private final Logger logger = LogManager.getLogger(this.getClass());

    @GET
    @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_XML })
    public void testLog() {
        logger.debug("This is a debug message");
        logger.info("This is an info message");
        logger.warn("This is a warn message");
        logger.error("This is an error message");
    }
}
当我尝试向该端点发送请求时,控制台上打印的消息是正常的,但没有创建日志文件


有人能告诉我吗?谢谢

我遇到了同样的问题

实际上,我的文件一直在创建中,但我找不到它


根据给定的配置,它将在安装IDE(即Eclipse/STS/Netbeans等)的位置创建。尝试在该目录中查找。我相信您可以在那里找到它。

您可以在tomcat webapp目录中找到配置文件中的路径名
“logfile.log”
是一个相对路径名

由于您已为日志文件指定了相对路径名,因此将相对于正在运行的Tomcat进程的工作目录创建该文件。工作目录的位置将取决于Tomcat的启动方式

(我们无法确定日志文件将位于何处。它可能位于IDE的工作区中。它可能位于Tomcat安装树中。它可能位于其他地方。甚至可能Tomcat进程无法写入Tomcat的工作目录……并且无法创建日志文件。)

解决方案:

  • 使用特定于操作系统的工具搜索日志文件。例如,在Linux上,
    find
  • 在log4j2配置文件中为日志文件指定绝对路径名

您希望在哪里创建日志文件?为什么?@SotiriosDelimanolis在log4j2配置文件中,我让错误消息打印到控制台以及日志文件中。我没有指定任何文件路径(只设置文件名),如果我没有错,日志文件应该在这个项目的根目录下创建。这只是一个简单的例子,在实际项目中,我想将不同级别的信息打印到不同的日志文件中。不是项目的根目录,不是。它将在Tomcat进程的当前工作目录中创建。您可以使用描述的解决方案找到它。@SotiriosDelimanolis,但我的计算机中根本没有名为“logfile.log”(我指定的日志文件名)的文件。我无法重现您的问题。该文件在当前工作目录中创建得很好,带有您的配置。