Apache 對標準輸出的訪問日誌
有沒有辦法攔截 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 架構。歡迎使用其他架構的更新檔。