On 6/05/2013 9:56 p.m., Martin Sperl wrote:
Hi! I need to be logging slightly different access-log pattern to the same logfile (logging different headers depending on host accessed). Looks essentially like this access_log daemon:/logfile LOGPATTERN_1 ACL_SELECTOR_1 access_log daemon:/logfile LOGPATTERN_2 ACL_SELECTOR_2 access_log daemon:/logfile LOGPATTERN_OTHER all This config produces 3 different "logfile-daemon" processes that all log to the same logfile. Is there a means to get only one of those "logfile-daemon(s)" for a single file and retain the capability to log different headers? Is there a "risk" (line corruption where 2 different lines from different daemons get "merged into a single line,.) running these daemons in parallel?
The file daemon helper bundled with Squid cannot do this safely AFAIK, it was written to be the sole writer to each log file. You will need to either patch it to append to the file and perform locking+write+unlock. Or write a different helper which can receive log lines containing both your headers on all requests and filter them into the file. The purpose of log daemons is to offload all this filtering and management from Squid after all.
Alternatively, it would be much easier to use a UDP, syslog, or TCP outputs to send two streams of log line packets to one logging backend.
Alternatively, using a database backend instead of file. The DB log daemon helper in 3.3+ can do what you want.
Amos