接續昨天的內容,如果預設的四種LogFormat都不符合需求的話,
也可以自行新增新的LogFormat,
例如,我希望能在access_log中,能夠一眼看出client IP以及IHS會將request轉到哪個目的地,
我就新增一行LogFormat
LogFormat "%h to %{WAS}e %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" " test
參數 %{WAS}e 會將request被轉送到的WebSphere Server+Port印出來
172.17.0.1 to 172.17.0.2:9080 - - [11/Oct/2022:17:12:42 +0000] "GET /Iron30/DemoServlet?action=testConn HTTP/1.1" 200 26 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36"
如此一來,access_log鐘就能一目了然Client IP是172.17.0.1 ,而request被送到了172.17.0.2:9080
如果還想在access_log多紀錄一點其他東西的話,
可以參考Apache的文件:https://publib.boulder.ibm.com/httpserv/manual70/mod/mod_log_config.html#formats
裡面的Log Format大部分都可以套用在IBM HTTP Server,
可以看看有沒有符合自己需要的內容
另外再補充,IHS中附有rotatelogs,
可以在httpd.conf中,設定access_log分割log的規則,
把
CustomLog logs/access_log test
改成
CustomLog "|/opt/IBM/HTTPServer/bin/rotatelogs -l /opt/IBM/HTTPServer/logs/access_log.%Y.%m.%d 86400" test
設定log檔名為access_log.[年].[月].[日],並每86400秒(一天)轉寫一個新的log檔
其他用法可參考:
https://httpd.apache.org/docs/2.2/programs/rotatelogs.html