有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

项目间的java Log4j共享

作为Java桌面应用程序项目的一部分,我实现了Log4J日志记录,它运行良好

现在我有另一个项目,希望两个项目共享同一个日志文件。这两个项目在我的应用程序中捆绑在一起,因此它们共享日志文件是有意义的。这怎么可能

目前我的情况如下:

LoggerClass:

package com.application.logging;

import org.apache.log4j.Logger;

public class LoggingSample {
    private static Logger logger = Logger.getLogger("Visualx");

    public static Logger getLogger() {

        return logger;
    }

    public static void setLogger(Logger logger) {
        LoggingSample.logger = logger;
    }
}

Log4j。属性文件:

# Log levels
log4j.rootLogger=INFO,CONSOLE,R
# Appender Configuration
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
# Pattern to output the caller's file name and line number
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
# Rolling File Appender
log4j.appender.R=org.apache.log4j.RollingFileAppender
# Path and file name to store the log file
log4j.appender.R.File=${user.home}/log/testlog.log
log4j.appender.R.MaxFileSize=200KB
# Number of backup files
log4j.appender.R.MaxBackupIndex=2
# Layout for Rolling File Appender
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d - %c - %p - %m%n

共 (1) 个答案

  1. # 1 楼答案

    即使这在技术上是可能的(我对此表示怀疑,因为两个进程需要同时打开一个文件),这通常也不是最佳做法

    最好写入单独的文件,并确保实际的日志语句有意义,例如,使用允许在所有日志文件中跟踪事件的引用

    如果您真的需要合并/捆绑在一起,我建议您在操作系统级别(cronjob,…)实现这一点