Apache वर्चुअल होस्ट के लिए LogFormat को कैसे कस्टमाइज़ करें?


1

मुझे वास्तव में इसके साथ कुछ मदद की जरूरत है। मेरे सर्वर में कई वर्चुअल होस्ट हैं, प्रत्येक वर्चुअल होस्ट का एक्सेस लॉग है, मुझे सर्वर पर मौजूद प्रत्येक वर्चुअल होस्ट के लिए लॉगफ़ॉर्मैट को कस्टमाइज़ करने में सक्षम होना चाहिए। मैंने LogFormat को संशोधित किया है httpd.conf लेकिन यह वास्तव में केवल मास्टर एक्सेस लॉग को प्रभावित करता है न कि वर्चुअल होस्ट को।

यहाँ मेरा LogFormat है:

<IfModule log_config_module>
LogFormat "%v:%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{CF-Connecting-IP}i" combinedvhost
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{CF-Connecting-IP}i" combined
LogFormat "%h %l %u %t \"%r\" %>s %b %{CF-Connecting-IP}i" common

CustomLog "logs/access_log" combined
CustomLog logs/access_log combinedvhost

<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{CF-Connecting-IP}i" combinedio
</IfModule>

</IfModule>

<IfModule mod_log_config.c>
LogFormat "%v:%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{CF-Connecting-IP}i" combinedvhost
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{CF-Connecting-IP}i" combined
LogFormat "%h %l %u %t \"%r\" %>s %b %{CF-Connecting-IP}i" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

CustomLog logs/access_log common
CustomLog logs/access_log combined
CustomLog logs/access_log combinedvhost

</IfModule>

उपरोक्त LogFormat केवल मास्टर एक्सेस लॉग को प्रभावित करता है जो यहां स्थित है: /usr/local/apache/logs/access_log हालाँकि, यह उन सर्वरों पर किसी भी वर्चुअल होस्ट को प्रभावित नहीं करता है, जिनके पास उनके प्रवेश लॉग स्थित हैं: /home/username/access-logs/domain.com

मुझे यकीन नहीं है कि अगर मेरे पास LogFormat में कुछ गलत है या मैं कुछ याद कर रहा हूं। मैंने इस समस्या को हल करने के लिए कई घंटे बिताए हैं, लेकिन समाधान नहीं मिला। अगर कोई इस पर कुछ प्रकाश डाल सकता है तो मैं इसकी बहुत सराहना करूँगा। धन्यवाद।

जवाबों:


2

ट्रिक है कि आप अपने Apache config फाइल में प्रत्येक VirtualHost के अंदर CustomLog निर्देशों को जोड़ें। उदाहरण के लिए:

<VirtualHost *:80>
  ServerName www.site1.com
  DocumentRoot /var/www/www.site1.com/htdocs
  CustomLog /var/log/apache/www.site1.com-access.log combined
  ErrorLog /var/log/apache/www.site1.com-error.log
</VirtualHost>

<VirtualHost *:80>
  ServerName www.site2.com
  DocumentRoot /var/www/www.site2.com/htdocs
  CustomLog /var/log/apache/www.site2.com-access.log combined
  ErrorLog /var/log/apache/www.site2.com-error.log
</VirtualHost>

अधिक उपयोगी उदाहरण हैं यहाँ


क्या आप इस पर विस्तार कर सकते हैं (इसे कैसे करें)?
fixer1234

0

ट्रिक यह है कि आपके पास LogFormat और CustomLog दोनों एक ही VirtualHost पूल में होने चाहिए


<VirtualHost *:443>
    ServerName my.site.com
    LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b %D  " commonvhost
    ErrorLog "|/opt/mw/apache-2.4.25-instance1/bin/rotatelogs /apps/logs/my.site.com-443-error.%Y.%m.%d.log 86400"
    CustomLog "|/opt/mw/apache-2.4.25-instance1/bin/rotatelogs /apps/logs/my.site.com-443-access.%Y.%m.%d.log 86400" commonvhost
</VirtualHost>

<VirtualHost *:80>
    ServerName my.site.com
    LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b %D  " commonvhost
    ErrorLog "|/opt/mw/apache-2.4.25-instance1/bin/rotatelogs /apps/logs/my.site.com-80-error.%Y.%m.%d.log 86400"
    CustomLog "|/opt/mw/apache-2.4.25-instance1/bin/rotatelogs /apps/logs/my.site.com-80-access.%Y.%m.%d.log 86400" commonvhost
</VirtualHost>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.