Log4jで複数Javaアプリから同一ログファイルに書き込むことができるか?

業務で同一ファイルに対して複数のバッチプログラムからメッセージを出力する要件が出そうなので、実験してみた。
以下のサンプルコードで、無事に複数Javaアプリからファイルへの書き込みができた。

サンプルコード

import org.apache.log4j.Logger;

public class LogClient {

    public static final Logger logger = Logger.getLogger(LogClient.class);
    private String name;

    public static void main(String[] args) {

        String name = args[0];
        LogClient client = new LogClient(name);

        client.execute();

    }

    public LogClient(String name) {
        this.name = name;
    }

    public void execute() {
        logger.info("プログラムを開始します");

        for (int i = 0; i < 20; i++) {
            logger.info(String.format("<%s> 値=%d", name, i));
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        logger.info("プログラムを終了します");
    }
}

起動用バッチファイル

@set BASE=.
@set CLASSPATH=.\bin
@set CLASSPATH=%CLASSPATH%;.\lib\log4j-1.2.13.jar
java LogClient %1

ログ出力結果

2010-03-16 09:23:49,812  INFO [main] LogClient - プログラムを開始します
2010-03-16 09:23:49,812  INFO [main] LogClient -  値=0
2010-03-16 09:23:50,312  INFO [main] LogClient -  値=1
2010-03-16 09:23:50,812  INFO [main] LogClient -  値=2
2010-03-16 09:23:51,062  INFO [main] LogClient - プログラムを開始します
2010-03-16 09:23:51,062  INFO [main] LogClient -  値=0
2010-03-16 09:23:51,312  INFO [main] LogClient -  値=3
2010-03-16 09:23:51,562  INFO [main] LogClient -  値=1
2010-03-16 09:23:51,812  INFO [main] LogClient -  値=4
2010-03-16 09:23:52,062  INFO [main] LogClient -  値=2
2010-03-16 09:23:52,312  INFO [main] LogClient -  値=5
2010-03-16 09:23:52,562  INFO [main] LogClient -  値=3
2010-03-16 09:23:52,812  INFO [main] LogClient -  値=6
2010-03-16 09:23:53,062  INFO [main] LogClient -  値=4
2010-03-16 09:23:53,312  INFO [main] LogClient -  値=7
2010-03-16 09:23:53,562  INFO [main] LogClient -  値=5
2010-03-16 09:23:53,812  INFO [main] LogClient -  値=8
2010-03-16 09:23:54,062  INFO [main] LogClient -  値=6
2010-03-16 09:23:54,312  INFO [main] LogClient -  値=9
2010-03-16 09:23:54,562  INFO [main] LogClient -  値=7
2010-03-16 09:23:54,812  INFO [main] LogClient -  値=10
2010-03-16 09:23:55,062  INFO [main] LogClient -  値=8
2010-03-16 09:23:55,312  INFO [main] LogClient -  値=11
2010-03-16 09:23:55,562  INFO [main] LogClient -  値=9
2010-03-16 09:23:55,812  INFO [main] LogClient -  値=12
2010-03-16 09:23:56,062  INFO [main] LogClient -  値=10
2010-03-16 09:23:56,312  INFO [main] LogClient -  値=13
2010-03-16 09:23:56,562  INFO [main] LogClient -  値=11
2010-03-16 09:23:56,812  INFO [main] LogClient -  値=14
2010-03-16 09:23:57,062  INFO [main] LogClient -  値=12
2010-03-16 09:23:57,312  INFO [main] LogClient -  値=15
2010-03-16 09:23:57,562  INFO [main] LogClient -  値=13
2010-03-16 09:23:57,828  INFO [main] LogClient -  値=16
2010-03-16 09:23:58,062  INFO [main] LogClient -  値=14
2010-03-16 09:23:58,328  INFO [main] LogClient -  値=17
2010-03-16 09:23:58,562  INFO [main] LogClient -  値=15
2010-03-16 09:23:58,828  INFO [main] LogClient -  値=18
2010-03-16 09:23:59,062  INFO [main] LogClient -  値=16
2010-03-16 09:23:59,328  INFO [main] LogClient -  値=19
2010-03-16 09:23:59,562  INFO [main] LogClient -  値=17
2010-03-16 09:23:59,828  INFO [main] LogClient - プログラムを終了します
2010-03-16 09:24:00,062  INFO [main] LogClient -  値=18
2010-03-16 09:24:00,562  INFO [main] LogClient -  値=19
2010-03-16 09:24:01,062  INFO [main] LogClient - プログラムを終了します