Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.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 为什么我的log4j消息没有出现在日志文件中?_Java_Spring_Log4j - Fatal编程技术网

Java 为什么我的log4j消息没有出现在日志文件中?

Java 为什么我的log4j消息没有出现在日志文件中?,java,spring,log4j,Java,Spring,Log4j,我已经创建了log4j.properties文件并将其放在/src/main/resources/下,该文件的内容是: log4j.rootLogger = DEBUG, FILE log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.File=log.out # Set the immediate flush to true (default) log4j.appender.FILE.ImmediateFlu

我已经创建了log4j.properties文件并将其放在/src/main/resources/下,该文件的内容是:

log4j.rootLogger = DEBUG, FILE
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=log.out
# Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true

# Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug

# Set the append to false, overwrite
log4j.appender.FILE.Append=false

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
我想在文件log.out中查看日志,但在使用命令运行应用程序时:

java -jar myapp.jar -Dlog4j.debug
未创建该文件

正如评论中所要求的,这是我如何在代码中使用它:

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

private static final Logger LOG = LogManager.getLogger(MyClass.class);
后来:

LOG.debug("some message");

LOG.error("some other msg", error);

请参阅以下实施:

log4j.properties

在`

src/main/resources

`

除此之外,我还在类中导入了记录器


你好您能用日志行显示您的代码吗?@Mara我已将其添加到原始问题中,感谢您的建议log4j.properties文件中指定的日志文件在哪里?@navenkulkarni我没有创建它,我以为它会在应用程序运行期间自动创建?我必须手动创建它吗?如果是的话-在哪里?我昨天刚刚做过。谢谢你,你能告诉我logger.debug和logger.error是否能正常工作吗?如果没有,我们应该如何修改它,使其包含所有必要的日志条目?在log4j.properties中,您可以从INFO更改为DEBUG。在从logger.info更改为logger.debugh的代码中,我可以同时使用DEBUG、ERROR和info吗?TRACE是日志记录的最低级别,如果您在log4j中指定,它将打印所有日志,包括TRACE toFATAL。但在生产中,我建议您使用错误日志,因为文件填充速度非常快,因此应用程序运行缓慢的可能性也更大,因为它必须始终写入日志文件。有关更多信息,请参阅下面的链接
# Root logger option
log4j.rootLogger=INFO, stdout, file

# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# Redirect log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
#outputs to Tomcat home
log4j.appender.file.File=D:/demo/logs/myapp/myapp.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
package org.nbk.demo;
import org.apache.log4j.Logger;
public class ServerStartup {
    private static final Logger logger = Logger.getLogger(ServerStartup.class);
    public void onApplicationEvent() {
            logger.info("Information Messages");
    }
}