在我的项目中找到日志文件的位置?

时间:2013-12-12 09:35:13

标签: java logging configuration log4j

我已经创建了示例log4j类来测试配置。我编写了以下Log4J属性文件:

log4j.rootLogger = INFO, FILE, CONSOLE
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=X:\\logs\Log4jExample.log
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.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

我的示例程序是:

public class Log4jExample 
{

    static Logger log = Logger.getLogger(Log4jExample.class.getName());

    public static void main(String[] args) throws IOException {
        try {
            FileInputStream fstream = new FileInputStream("D:\\textfile.txt");
            // use DataInputStream to read binary NOT text         
            // DataInputStream in = new DataInputStream(fstream);
            BufferedReader br = new BufferedReader(new InputStreamReader(fstream));

            String strLine;
            while ((strLine = br.readLine()) != null) {
                System.out.println (strLine);
            }
            in.close();
        } catch (FileNotFoundException fe) {
            log.error("File Not Found",fe);
            log.warn("This is a warning message");
            log.trace("This message will not be logged since log level is set as DEBUG");      
        } catch (IOException e) {
            log.error("IOEXception occured:", e);
        }
    }
}

我在控制台中收到了预期的输出,但我无法找到生成的日志文件。我已将其路径设置为X:\\logs。但是没有创建这样的日志文件。

请帮忙。

4 个答案:

答案 0 :(得分:1)

您的路径在某些地方有双反斜杠,在其他地方有单反斜杠。你能用全单(或全双)反斜杠再试一次吗? 另一个尝试是首先登录到本地驱动器(C :),以查看问题是否与映射的网络驱动器有关。

(顺便说一下,问题是标记为log4j2,但你使用的是log4j-1.x)

答案 1 :(得分:0)

我的配置中没有任何错误 但是在你的初衷中,试试这个:

static final Logger LOGGER = LoggerFactory.getLogger(MyClass.class)

答案 2 :(得分:0)

X:\\logs\test.log更改为X://logs/test.log路径 通常人们倾向于给出相对路径,如log/MutationPipeline.log

答案 3 :(得分:0)

X:映射网络驱动器?我记得在某些时候在Windows上从Java写入映射的网络驱动器时遇到了麻烦。这可能是由此问题引起的:Windows file share: why sometimes newly created files aren't visible for some period of time?

您是否可以尝试使用C:/temp之类的本地驱动器来验证您是否可以在那里看到日志文件?那会缩小它......