Linux

Apache 對標準輸出的訪問日誌

  • May 11, 2011

有沒有辦法攔截 Apache(1 或 2)訪問日誌到 stdout ,而無需

  • 修改配置文件
  • 重新啟動服務

目前我的 apache 配置文件指定“CustomLog /dev/null common” 系統是 Debian Etch。

在此先感謝 serverfault 社區!

編輯:這個想法是做“strace -p”對程序所做的事情。我希望 apache2ctl 或其他東西具有“轉儲目前訪問”功能:D

如果您正在尋找特定問題的解決方案,您可能需要更詳細地解釋您的要求和限制。但就目前而言,簡單地說:

你能截獲去往的數據嗎/dev/null

沒有。

你能告訴 Apache 在其他地方登錄而不修改它的配置文件或重新啟動服務嗎?

沒有。


更新:

我沒有想到使用strace. 但實際上,您可以使用它來檢查write()呼叫。

strace -ewrite -s1000 -p<PID>

儘管跟踪流程,但您會遇到一些困難。我認為 strace 的分叉檢測不一定會對您有所幫助。這意味著您將不斷地到處尋找處理給定請求的程序。

至於Apache中的這樣一個特性。這太可怕了,根本不存在。我認為你是一個邊​​緣案例;)

臨時更改配置文件並重新載入它們怎麼樣?您要求重新配置 apache,簡單明了。如果您擔心可用性,則有一個 Apache“重新載入”功能將使用新配置而不會丟棄活動連接。

編輯:這是我見過的最瘋狂的事情:fdmess

這是一個小型實用程序,用於重定向正在執行的程序的文件描述符並更普遍地調整它們。它通過將 ptrace 附加到現有程序並強制它執行一些系統呼叫來工作。這樣,您可以強制程序放棄特權,將文件描述符重定向到文件或 tcp/ip 連接,將描述符連接到使用 unix 套接字的另一個正在執行的程序的描述符,或者將文件描述符設置為等於另一個正在執行的程序的描述符(使用 unix 文件描述符傳遞)。由於程式碼掛鉤依賴於架構,目前僅支持 linux-x86 和 linux-x86_64 架構。歡迎使用其他架構的更新檔。

引用自:https://serverfault.com/questions/71667