Использование Fuse 7 (Karaf версии 4.2.0.fuse-000237-redhat-1)
Попытка заставить SocketAppender работать.Наилучшим предположением было следующее, добавленное к org.ops4j.pax.logging.cfg
# ELK appender
log4j2.appender.elk.type = SocketAppender
log4j2.appender.elk.name = ELK
log4j2.appender.elk.remoteHost=10.0.0.2
log4j2.appender.elk.port=12202
log4j2.appender.elk.application=QA
log4j2.appender.elk.reconnectionDelay=0
log4j2.rootLogger.appenderRef.ELK.ref = ELK
Но это просто останавливает все журналы, даже консоль.
Я на самом деле пытаюсь получить logstash-Аппликатор gelf работает, но использование нестандартного аппендера в Fuse 7 / Karaf выглядит как полный беспорядок.(См. ссылка ).Я сомневаюсь, что это когда-нибудь сработает.
SocketAppender работал нормально с log4j в Fuse 6.
Основным отличием в настройке была эта строка, которая сейчас не применима к log4j2:
log4j.throwableRenderer=org.apache.log4j.OsgiThrowableRenderer
------------- РЕДАКТИРОВАТЬ:
# ELK appender
log4j2.appender.elk.type = Socket
log4j2.appender.elk.name = ELK
log4j2.appender.elk.layout.type = GelfLayout
log4j2.appender.elk.remoteHost=10.0.0.2
log4j2.appender.elk.port=12202
log4j2.appender.elk.application=QA
log4j2.appender.elk.reconnectionDelay=0
log4j2.rootLogger.appenderRef.ELK.ref = ELK
Это не убивает журналы по крайней мере.Также нашел GelfLayout, который мог бы заменить appst logstash-gelf, если бы он работал.
------------- РЕДАКТИРОВАТЬ 2 ---- Ответ Grzegorz:
Спасибо за ответ ... к сожалению, не работает до сих пор ... Я изменил строки следующим образом, как описано:
# ELK appender
log4j2.appender.socket.type = Socket
log4j2.appender.socket.name = Socket
log4j2.appender.socket.host=localhost
log4j2.appender.socket.port=12202
log4j2.appender.socket.protocol=TCP
log4j2.appender.socket.layout.type = JsonLayout
log4j2.rootLogger.appenderRef.Socket.ref = Socket
И запустите netcat
[root@ldkr03 etc]# nc -lk 12202
(not showing anything...)
log:log test
показывает 16:10:34.747 INFO [pipe-log:log test] test
, но ничего не показывает в окне nc -lk 12202
.
Кроме того, возможно, имеет значение, хотя он пишет в консоль просто отлично:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
------------- РЕДАКТИРОВАТЬ 3 ----
Переключено на:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</dependency>
Но все еще нет.