log4idemo1
1.0-SNAPSHOT
log4j
log4j
1.2.17
在resource目录下新建log4j.properties,加入以下配置:
设置###
log4j.rootLogger = debug,stdout,D,E,logstash
输出信息到控制抬
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 = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
输出DEBUG 级别以上的日志到=/Users/bee/Documents/elk/log4j/debug.log###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = /Users/bee/Documents/elk/log4j/debug.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
输出ERROR 级别以上的日志到=/Users/bee/Documents/elk/log4j/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =/Users/bee/Documents/elk/log4j/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
#输出日志到logstash
log4j.appender.logstash=org.apache.log4j.net.SocketAppender
log4j.appender.logstash.RemoteHost=127.0.0.1
log4j.appender.logstash.port=4560
log4j.appender.logstash.ReconnectionDelay=60000
log4j.appender.logstash.LocationInfo=true
配置文件中,把日志输出了四份:
第一份输出到控制台
第二份把DEBUG 级别以上的日志到文件
第三份把输出ERROR 级别以上的日志到文件
第四份输出到logstash
在java目录下添加Log4jTest.java,内容如下:
import org.apache.log4j.Logger;
/**
* Created by bee on 17/3/6.
*/
public class Log4jTest {
public static final Logger logger=Logger.getLogger(Log4jTest.class);
public static void main(String[] args) {
logger.debug(“This is a debug message!”);
logger.info(“This is info message!”);
logger.warn(“This is a warn message!”);
logger.error(“This is error message!”);
try{
System.out.println(5/0);
}catch(Exception e){
logger.error(e);
}
}
}
三、配置logstash
(logstash的安装和hello world教程请点这里http://blog.csdn.net/napoay/article/details/53276758)这里使用logstash2.3.3和Elasticsearch 2.3.3,首先启动Elasticsearch,然后在logstash-2.3.3/conf目录下新建配置文件log4j-es.conf,文件内容如下:
input {
log4j {
host => “127.0.0.1”
port => 4560
}
}
output {
stdout {
codec => rubydebug
}
elasticsearch{
hosts => [“localhost:9200”]
index => “log4j-%{+YYYY.MM.dd}”
document_type => “log4j_type”
}
}
配置文件中指定日志输出有2份,一份输出到console,一份输出到Elasticsearch。
启动logstash:
sudo ./bin/logstash -f conf/log4j-es.conf
如果你已经启动了Elasticsearch,IP和端口都是通畅的,配置文件无误,启动成功后的界面如下:
运行Log4jTest.java,在终端中可以看到以下输出:
在Elasticsearch中查看导入的日志: