2016-10-04 2 views
1

これは私が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のウェブサイトのガイドから、私は他の問題をデバッグできるように、ローカルでファイルを書き込むことができる必要があります。

ありがとうございました!

+0

こんにちは、すべてのエラーメッセージや警告があるかどうかを確認するために「のsyslog-ngの-Fevd」を実行してみてください。私の推測では、ファイルに適切なsyslogメッセージを書き込んでいないので、いくつかのランダムな文字列だけがsyslog-ngによってログメッセージとして認識されず、無視されます。その場合、フラグ(無解析)オプションをソースに追加します。 –

+0

これ以外のすべての.confを削除しました。それは私はいくつかの構文エラーがあるようです。他のすべてのconfファイルは、私のcmdにメッセージを溺れさせていました。私はこれらのエラーを見ることができませんでした。ロバートに感謝する。 –

+0

あなたは大歓迎です!私はそれがうまくいってうれしいです。 –

答えて

0

はこれを試してみてください:

最初のsyslog-ngのサーバの起動時に、それは、ログを取得するためのソースファイルをチェックするため、最初はすべての(/書き込み/ execの読み込み)権限を持つ空のtest1.logファイルを作成します。そのファイルにテキストを追加すると、syslog-ngのがログとして扱います後

..

関連する問題