これは私がStackOverflowの最初の質問ですので、誤っていくつかのルールを壊してしまった場合は私を許してください。Syslog-ngがローカルで読み書きに失敗する
私がしようとしているのは、プログラムに単純なログを書き込み、そのログをsyslog-ngに読み込ませてから別のファイルに書き込ませることです。
この入力ログファイルは、乱数を含むファイルです。
ここに、私のsyslog-ng.confファイルの内容を示します。
source s_file
{
file("/home/vagrant/test1.log" follow-freq(1) flags(no_parse));
};
destination d_file
{
file("/home/vagrant/poc.db");
};
log
{
source(s_file);
destination(d_file);
}
ここに乱数を生成するプログラムのソースがあります。
import java.util.*;
import java.io.*;
public class loggerSpam{
PrintWriter out;
public loggerSpam() {
try {
out = new PrintWriter(new FileWriter("test1.log"));
} catch (Exception e) {
System.out.println("Caught");
}finally {
System.out.println("Constructor");
}
}
public void spam() {
Random rand = new Random();
try {
for (int i = 0; i < 10; i++) {
int num = rand.nextInt(10);
String msg = Integer.toString(num) + "\n";
System.out.print(msg);
out.write(msg);
}
out.close();
} catch (Exception e) {
System.out.println(e.toString());
}
}
public static void main(String args[]){
//Create spammer object
loggerSpam testObj = new loggerSpam();
//spam test.log
testObj.spam();
}
}
私の理解では、その後のsyslog-ngのサービスを再起動し、私がする必要があるすべては私のプログラムを実行されるとsyslog-ngのは、検出することができるはず/ Iは、/ etcに自分の設定ファイルを置く場合は、その/はsyslog-ngのです生成されたログファイルがあることを確認します。ログファイルが生成されると、syslogはログを読み込んで目的のファイルpoc.dbに書き込みます。
しかし、私の問題は、syslog-ngがtest1.logを読んでいないことと、poc.dbを生成していることです。誰かがこれがなぜなのか説明できますか?私は何を変えることができますか? syslog-ngのウェブサイトのガイドから、私は他の問題をデバッグできるように、ローカルでファイルを書き込むことができる必要があります。
ありがとうございました!
こんにちは、すべてのエラーメッセージや警告があるかどうかを確認するために「のsyslog-ngの-Fevd」を実行してみてください。私の推測では、ファイルに適切なsyslogメッセージを書き込んでいないので、いくつかのランダムな文字列だけがsyslog-ngによってログメッセージとして認識されず、無視されます。その場合、フラグ(無解析)オプションをソースに追加します。 –
これ以外のすべての.confを削除しました。それは私はいくつかの構文エラーがあるようです。他のすべてのconfファイルは、私のcmdにメッセージを溺れさせていました。私はこれらのエラーを見ることができませんでした。ロバートに感謝する。 –
あなたは大歓迎です!私はそれがうまくいってうれしいです。 –