2014-06-19 40 views
0

stream create --name TailTest --definition "tail --name=/Users/name/Documents/SpringXD/PoC/input/Try.txt --outputType=text/plain --lines=1 |file --name=output --dir=/Users/name/Documents/SpringXD/PoC/output --mode=APPEND" --deploy與尾源SpringXD流讀取所有文件只是最後N行

在這裏我看到,我是否會--lines = 1或2或0,只要有一個線連連,而不是在Try.txt中輸入附加行並保存,它讀取整個Try.txt並將其轉儲到輸出文件中。再次,當我添加一行到Try.txt時,它會讀取整個文件內容而不是最後一行,並將其附加到輸出中以前內容的末尾,任何想法在這裏可能會出錯,爲什麼尾部不會只讀最後1(或指定n)行我輸入輸入文件中每行的末尾輸入?

回答

1

聽起來好像你在替換文件,當你說「它被保存」時。

尾隨一個現有文件,是的,它期望一個換行符來終止一條新消息。

我只是跑的測試,它工作正常...

xd:>stream create --name foo --definition "tail --lines=1 --name=/Users/foo/Documents/foo.txt | log" --deploy 

日誌文件的最後一行,

23:15:58,925 INFO SimpleAsyncTaskExecutor-1 sink.foo - sdsd 

然後

$ echo foo >> ~/Documents/foo.txt 

(追加FOO \ n到文件)

結果

23:17:07,744 INFO SimpleAsyncTaskExecutor-1 sink.foo - foo 

lines = 1僅適用於現有文件;如果用新文件替換文件,則使用整個文件 - 這就像日誌旋轉一樣。

+0

謝謝。現在可以正常工作。在Mac中,如果我在文件中添加行並在行末打回車然後保存該文件,它似乎無助於尾流。當我使用echo來寫尾部流消耗的文件時,它可以正常工作。我猜在MAC中的ENTER鍵似乎並沒有在導致這個問題的末尾產生換行符。 – user3754631

相關問題