当我们在创建集群应用时,最头痛的时候就是出问题时,需要查看日志,但不清楚应该去哪台机子上看日志,针对此种情况,可以考虑把日志统一到专门的日志服务器上,这样只需要在日志服务器上进行查看,以下代码是作为一个例子,还不能看出日志的输出为哪台机子,以后发现再来更新此文章:

此文章希望做到抛砖引玉的作用,只是一个基本的日志应用,在此基础上可以延伸出以下几种应用方式:

1、话单文件:在服务器对某些类做专门的记录,并记录到专门的话单文件中;

2、调试日志:在服务器设置最低级别,收集到所有日志打印,并打印到某个临时文件中,但要注意文件的大小控制,防止日志过大;

3、关键日志:保存一些历史关键日志,以方便日后进行查询及跟踪。

 

Log4j Client的例子代码

import org.apache.log4j.Logger;  

  

import com.easier.util.StatUtils;  

  

public class Main {  

    public static void main(String[] args) throws InterruptedException {  

        Logger log = Logger.getLogger(Main.class);  

        int i = 0;  

        new StatUtils().start();  

        while (true) {  

            log.trace("trace : test");  

            log.debug("debug : test");  

            log.info("info : test");  

            log.error("error : test");  

            i++;  

            Thread.sleep(1000);  

        }  

    }  

}  

  

 


Client的配置文件

log4j.rootLogger=debug,socket  

  

log4j.appender.socket=org.apache.log4j.net.SocketAppender  

log4j.appender.socket.RemoteHost=127.0.0.1  

log4j.appender.socket.Port=4560  

log4j.appender.socket.ReconnectionDelay=1000  

log4j.appender.socket.LocationInfo=true  

log4j.appender.socket.layout=org.apache.log4j.PatternLayout  

log4j.appender.socket.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c - %m%n 

  

 


服务器的启动命令很简单:

java -cp .\bin;.\log4j-1.2.16.jar org.apache.log4j.net.SocketServer 4560 ./log4jserver.properties ./logs  

  


服务器配置文件


log4j.rootCategory=debug, console  

log4j.appender.console=org.apache.log4j.ConsoleAppender  

log4j.appender.console.layout=org.apache.log4j.PatternLayout  

log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c - %m  -%l -%L -%M -%F      %n