您好我是编程概念的新手,我倾向于使用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和Java Doc。谢谢!
答案 0 :(得分:30)
要将日志输出重定向到文件,您需要使用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用法的更多信息:
http://www.mkyong.com/logging/log4j-log4j-properties-examples/
答案 1 :(得分:7)
默认情况下,Log4j
会记录到标准输出,这意味着您应该能够在Eclipse的控制台视图中看到日志消息。要登录文件,您需要在类路径的FileAppender
文件中明确使用log4j.properties
。
在类路径中创建以下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
注意: 以上在当前工作目录中创建 example.log (即Eclipse的项目目录) )以便相同的 log4j.properties 可以在不覆盖彼此日志的情况下使用不同的项目。
<强> 参考 强> :
Apache log4j 1.2 - Short introduction to log4j
答案 2 :(得分:7)
您已从Here复制此示例代码,对吧?
现在,你可以看到他们定义的property
文件,你做过同样的事吗?
如果没有,那么在项目中使用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
路径
答案 3 :(得分:0)
如果您没有使用任何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