当我们在创建集群应用时,最头痛的时候就是出问题时,需要查看日志,但不清楚应该去哪台机子上看日志,针对此种情况,可以考虑把日志统一到专门的日志服务器上,这样只需要在日志服务器上进行查看,以下代码是作为一个例子,还不能看出日志的输出为哪台机子,以后发现再来更新此文章:
此文章希望做到抛砖引玉的作用,只是一个基本的日志应用,在此基础上可以延伸出以下几种应用方式:
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