]> git.ipfire.org Git - thirdparty/squid.git/blob - src/adaptation/icap/icap_log.cc
merge from trunk
[thirdparty/squid.git] / src / adaptation / icap / icap_log.cc
1 #include "squid.h"
2 #include "AccessLogEntry.h"
3 #include "acl/FilledChecklist.h"
4 #include "globals.h"
5 #include "HttpReply.h"
6 #include "icap_log.h"
7 #include "log/CustomLog.h"
8 #include "log/File.h"
9 #include "log/Formats.h"
10 #include "SquidConfig.h"
11
12 int IcapLogfileStatus = LOG_DISABLE;
13
14 void
15 icapLogOpen()
16 {
17 CustomLog *log;
18
19 for (log = Config.Log.icaplogs; log; log = log->next) {
20 if (log->type == Log::Format::CLF_NONE)
21 continue;
22
23 log->logfile = logfileOpen(log->filename, log->bufferSize, log->fatal);
24
25 IcapLogfileStatus = LOG_ENABLE;
26 }
27 }
28
29 void
30 icapLogClose()
31 {
32 CustomLog *log;
33
34 for (log = Config.Log.icaplogs; log; log = log->next) {
35 if (log->logfile) {
36 logfileClose(log->logfile);
37 log->logfile = NULL;
38 }
39 }
40 }
41
42 void
43 icapLogRotate()
44 {
45 for (CustomLog* log = Config.Log.icaplogs; log; log = log->next) {
46 if (log->logfile) {
47 logfileRotate(log->logfile);
48 }
49 }
50 }
51
52 void icapLogLog(AccessLogEntry::Pointer &al)
53 {
54 if (IcapLogfileStatus == LOG_ENABLE) {
55 ACLFilledChecklist checklist(NULL, al->adapted_request, NULL);
56 if (al->reply) {
57 checklist.reply = al->reply;
58 HTTPMSGLOCK(checklist.reply);
59 }
60 accessLogLogTo(Config.Log.icaplogs, al, &checklist);
61 }
62 }