Apache日志行包含“…”

我们为Apache日志分析了一个自定义日志行格式。

CustomLog“| / usr / sbin / rotatelogs -l /mnt/var/log/apache2/access-%Y%m%d%H%M%S.log 900”“%a%{%s} t \”% r \ “”

然而,由于某些原因,一些日志行被神奇地缩短为“…”,但是这怎么可能呢? 发现这种情况发生的最短长度为317个字符,最长的一行超过2000个字符。

“GET /exposure?sg=&ap=0x0&fv=WIN%2010,0,22,87&si=IH95VDUAVLJ0&pt=Lage%20hjemmelaget%20sengegavl%20-%20Forum%20-%20Diskusjon.no&iv=0&sd=1024×600&ct=680&tz=-120&eu= HTTP%3A // www.diskusjon.no / index.php的%3Fshowtopic%3D1011139&升… AS3&一个= NO%20-%20180×500%20Pretail%20CPC&WD = 1024×483&RF = HTTP%3A // www.google.no /search%3Fhl %3Dno%26source%3Dhp%26q%3Dsengegavl + lage%26meta%3D%26aq%3D2%26aqi%3Dg10%26aql%3D%26oq%3Dsengega%26gs_rfai%3D&ui = 3INYF5QAZL10&ws = 0x417&ad = 180×500&sa = HTTP / 1.1“

看到任何 这些 问题 。

一般GET URI的长度不能超过255个字符,如果需要发送更多的信息,请使用POST。 使用更长的URI会导致各种破坏,包括日志中的省略号,代理问题,以及极端情况下的错误。

你怎么知道Apache截断的URL? 你在用户会话中看到这些吗? 更简单的答案可能是某人向其他人发送了一个太长的URL,然后用省略号进行渲染,用户使用省略号剪切并粘贴URL。 。 。

但是,是的,我和Chris在这个问题上:真正的问题是你的URL太长了,而某些东西(可能不是Apache)正在截断它们。 正确的解决办法是pipe理你的软件,以支持较短的URL,不会乞求奇怪的截断问题。