[英]Logging to a non blocking named pipe?
我有一個問題,我無法在stackoverflow或網絡上的任何地方找到幫助。
我有一個程序(芹菜分布式任務隊列),我有多個實例(工人),每個實例都有一個日志文件(celery_worker1.log,celery_worker2.log)。
重要的錯誤存儲在數據庫中,但我喜歡在運行新操作時不時地拖尾這些日志以確保一切正常(loglevel更低)。
我的問題:這些日志占用了大量磁盤空間。 我想做什么:能夠只在我需要時“觀察”日志(tail -f),而不需要占用大量空間。
我的想法到現在為止:
有沒有辦法有一個非阻塞的命名管道,它會在尾部時拋出stdout,並在沒有時拋出/ dev / null?
或者這種管道有技術難題嗎? 如果有,他們是什么?
謝謝您的回答!
您可以嘗試共享內存設備man:shm_overview或者其中一些。 您需要將它們組織為循環緩沖區,以便它們存儲日志的最后N kb,每當您使用閱讀器讀取它們時,它都會將所有內容輸出到您的控制台。 busybox的syslog / logread訴訟采用了這種方法(參見logread.c )。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.