Ubuntuでログを実行するための簡単なプロジェクトを書いてあります。これはexampleです。EDITLogBack Syslogが機能しないjava
ApplicationStarter
package com.javacodegeeks.examples.logbacksyslogexample;
import com.javacodegeeks.examples.logbacksyslogexample.message.IMessageTransmitter;
import com.javacodegeeks.examples.logbacksyslogexample.message.kiwi.KiwiMessageTransmitterImpl;
import com.javacodegeeks.examples.logbacksyslogexample.message.rsyslog.RsyslogMessageTransmitterImpl;
public class ApplicationStarter {
/**
* Main method
*/
public static void main(final String[] args) {
final IMessageTransmitter kiwiMessageTransmitter = new KiwiMessageTransmitterImpl();
kiwiMessageTransmitter.send("I am learning to send message to Syslog server");
final IMessageTransmitter rsyslogMessageTransmitter = new RsyslogMessageTransmitterImpl();
rsyslogMessageTransmitter.send("Logback can easily send message to Syslog server");
}
}
KiwiMessageTransmitterImpl
package com.javacodegeeks.examples.logbacksyslogexample.message.kiwi;
import com.javacodegeeks.examples.logbacksyslogexample.message.IMessageTransmitter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class KiwiMessageTransmitterImpl implements IMessageTransmitter {
private static final Logger LOGGER = LoggerFactory.getLogger(KiwiMessageTransmitterImpl.class);
@Override
public void send(final String message) {
LOGGER.info("Hello! My message is : {}", message);
}
}
RsyslogMessageTransmitterImpl
package com.javacodegeeks.examples.logbacksyslogexample.message.rsyslog;
import com.javacodegeeks.examples.logbacksyslogexample.message.IMessageTransmitter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class RsyslogMessageTransmitterImpl implements IMessageTransmitter {
private static final Logger LOGGER = LoggerFactory.getLogger(RsyslogMessageTransmitterImpl.class);
@Override
public void send(final String message) {
LOGGER.info("Hello! My message is : {}", message);
}
}
IMessageTransmitter
package com.javacodegeeks.examples.logbacksyslogexample.message;
public interface IMessageTransmitter {
void send(final String message);
}
私は自分のプロジェクトを実行すると、私は同じことを得ます! Javaの メッセージはsyslog
に送信されていません!
ここではlogback.xmlです。私はresourcesフォルダに入れます。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="KIWI" class="ch.qos.logback.classic.net.SyslogAppender">
<syslogHost>localhost</syslogHost>
<facility>LOCAL0</facility>
<suffixPattern>%thread: %-5level %logger{36} - %msg%n</suffixPattern>
</appender>
<appender name="RSYSLOG" class="ch.qos.logback.classic.net.SyslogAppender">
<!-- Ubuntu Server host name -->
<syslogHost>centol</syslogHost>
<facility>LOCAL1</facility>
<suffixPattern>%thread: %-5level %logger{36} - %msg%n</suffixPattern>
</appender>
<logger name="com.javacodegeeks.examples.logbacksyslogexample.message.kiwi" level="INFO">
<appender-ref ref="KIWI" />
</logger>
<logger name="com.javacodegeeks.examples.logbacksyslogexample.message.rsyslog" level="INFO">
<appender-ref ref="RSYSLOG" />
</logger>
</configuration>
このコマンドを使用してsyslog
を調べます。 syslog
の出力が正しく見えました。残念ながら、メッセージはまだsyslog
で受信していないNetbeans(JAVA)から送信します。
は、それが理由syslogHost施設のある
Jun 6 23:37:26 xxx whoopsie[1040]: [23:37:26] online
Jun 6 23:37:26 xxx avahi-daemon[1023]: Registering new address record for 2001:e68:4424:afab:c31f:c843:2351:c58 on wlp6s0.*.
Jun 6 23:37:28 xxx dhclient[19397]: XMT: Solicit on wlp6s0, interval 4340ms.
Jun 6 23:37:32 xxx dhclient[19397]: XMT: Solicit on wlp6s0, interval 9080ms.
Jun 6 23:37:41 xxx dhclient[19397]: XMT: Solicit on wlp6s0, interval 17540ms.
Jun 6 23:37:59 xxx dhclient[19397]: XMT: Solicit on wlp6s0, interval 34190ms.
Jun 6 23:38:09 xxx NetworkManager[1013]: <warn> [1496763489.9447] dhcp6 (wlp6s0): request timed out
Jun 6 23:38:09 xxx NetworkManager[1013]: <info> [1496763489.9448] dhcp6 (wlp6s0): state changed unknown -> timeout
Jun 6 23:38:09 xxx NetworkManager[1013]: <info> [1496763489.9456] dhcp6 (wlp6s0): canceled DHCP transaction, DHCP client pid 19397
Jun 6 23:38:09 xxx NetworkManager[1013]: <info> [1496763489.9456] dhcp6 (wlp6s0): state changed timeout -> done
[email protected]:/$
わからない(出力の小さい部分)cat /var/log/syslog
を試してみてください。
この記事では、 'logback.xml'で' ch.qos.logback.classic.net.SyslogAppender'を設定する必要があることを説明しています。あなたはそれをしましたか? –
@HuguesMoreau何か考えですか? – Tony
いいえ、私は答えをアップアップしました。 –