Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.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_Eclipse_Log4j - Fatal编程技术网

Java 什么是log4j';默认日志文件转储路径

Java 什么是log4j';默认日志文件转储路径,java,eclipse,log4j,Java,Eclipse,Log4j,您好,我是编程概念的新手,我倾向于用log4j解决一些问题。因此,我正在阅读Log4j教程,其中我发现了以下代码: package test; import org.apache.log4j.Logger; import java.io.*; import java.sql.SQLException; public class Log4jExample { /* Get actual class name to be printed on */ static Log

您好,我是编程概念的新手,我倾向于用log4j解决一些问题。因此,我正在阅读Log4j教程,其中我发现了以下代码:

package test;
import org.apache.log4j.Logger;
import java.io.*;
import java.sql.SQLException;


public class Log4jExample {

    /* Get actual class name to be printed on */
        static Logger log = Logger.getLogger(Log4jExample.class.getName());
        public static void main(String[] args)throws IOException,SQLException
        {
            log.debug("Hello this is an debug message");
            log.info("Hello this is an info message");
        }

}

但是在eclipse中运行这个之后,我无法找到生成的日志文件。有谁知道文件被转储到哪里了吗?还可以帮助我了解一些最好的网站,从那里我可以从头开始学习Log4j和javadoc。谢谢

默认情况下,
Log4j
将日志记录到标准输出,这意味着您应该能够在Eclipse的控制台视图上看到日志消息。要登录到文件,您需要通过在类路径的
log4j.properties
文件中定义
FileAppender
来显式使用它

在类路径中创建以下
log4j.properties
文件。这允许您将消息记录到文件和控制台中

log4j.rootLogger=debug, stdout, file

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=example.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%p %t %c - %m%n
注意:以上内容在您当前的工作目录(即Eclipse的项目目录)中创建了一个example.log,以便相同的log4j.properties可以与不同的项目一起工作,而不会覆盖彼此的日志

参考资料

要将日志输出重定向到文件,需要使用FileAppender并在log4j.properties/xml文件中定义其他文件详细信息。以下是相同的示例属性文件:

# Root logger option
log4j.rootLogger=INFO, file

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\loging.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
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
按照本教程了解有关log4j用法的更多信息:


您已经从中复制了此示例代码,对吗?
现在,正如你们看到的,他们定义了
属性
文件,你们做过同样的事情吗?
如果没有,那么在您的项目中添加以下代码以及log4j的属性文件

因此log4j.properties文件的内容如下:

# Define the root logger with appender file
log = /usr/home/log4j
log4j.rootLogger = DEBUG, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

根据您的要求进行更改,如
log
path

如果不使用任何log4j属性生成日志文件,则可以在IDE的控制台视图中查看日志信息。您可以在项目中定义log4j.properties,以便使用这些属性生成日志文件。下面列出了一个快速示例

# Global logging configuration
log4j.rootLogger=DEBUG, stdout, R

# SQL Map logging configuration...
log4j.logger.com.ibatis=INFO
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=INFO
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=INFO
log4j.logger.com.ibatis.SQLMap.engine.impl.SQL MapClientDelegate=INFO

log4j.logger.java.sql.Connection=INFO
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=INFO

log4j.logger.org.apache.http=ERROR

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=MyLog.log
log4j.appender.R.MaxFileSize=50000KB
log4j.appender.R.Encoding=UTF-8

# Keep one backup file
log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F\:%L) - %m%n

您是否已经尝试过标准输出?此答案可能会帮助您:如果您想在文件中创建日志,则必须定义日志文件的创建位置。ya以下警告将显示在标准输出中:log4j:WARN找不到记录器的附加器(test.Log4jExample)。log4j:警告请正确初始化log4j系统。log4j:有关详细信息,请参见警告。@这是因为类路径中没有log4j.properties。这不是一个错误,因为Log4j恢复为登录到控制台的默认值。更多信息请访问官方网站。由于我的日志信息没有显示在控制台上,您能告诉我它在哪里吗?我应该将我的.properties文件以及“/src”中的任何内容都放在您的类路径中。请注意,这会在您的当前目录(Eclipse的项目目录)中创建一个example.log因此,相同的log4j.properties可以在不过度写入日志的情况下用于diff项目。@Ravi,请使用“目录”或“CWD”一词来表示使用Ctrl+F搜索此页面的人;)这是唯一一个真正回答log4j默认记录在哪里的答案。如何在运行时从应用服务器(如Wildfly)指定日志变量?