我正在使用 polipo(代理服务器)进行本地缓存。
有没有办法像 urlsnarf 或其他 Web 服务器日志文件一样记录通过 polipo 的所有访问?
logFile = "/tmp/access.log"
logLevel = ? # what should i fill to log all url?
如果可能的话,还获取缓存的文件位置
0xFF 的输出是这样的,它并不总是显示请求的 url:
Couldn't parse last-modified: Sat, 23 Feb 2013 16:25:16 +0100
Uncacheable object http://nekovm.org/_media/neko-2.0.0.tar.gz (2120)
Superseding object: http://nekovm.org/_media/neko-2.0.0.tar.gz (200 425539 -1 (none) -> 200 425539 -1 (none))
Unsupported Cache-Control directive post-check -- ignored.
Unsupported Cache-Control directive pre-check -- ignored.
Couldn't parse last-modified: Sat, 23 Feb 2013 16:25:16 +0100
Uncacheable object http://nekovm.org/_media/neko-2.0.0.tar.gz (2120)
Superseding object: http://nekovm.org/_media/neko-2.0.0.tar.gz (200 425539 -1 (none) -> 200 425539 -1 (none))
Vary header present (Accept-Encoding).
Vary header present (Accept-Encoding).
Vary header present (Accept-Encoding).
Superseding object: http://opalrb.org/opal-parser.js (206 709851 1363984598 (none) -> 206 709851 1363984598 (none))
Vary header present (Accept-Encoding).
Superseding object: http://opalrb.org/opal-parser.js (200 709851 1363984598 (none) -> 200 709851 1363984598 (none))
Vary header present (Accept-Encoding).
Superseding object: http://opalrb.org/opal-parser.js (200 709851 1363984598 (none) -> 200 709851 1363984598 (none))
Vary header present (Accept-Encoding).
Superseding object: http://opalrb.org/opal-parser.js (200 709851 1363984598 (none) -> 200 709851 1363984598 (none))
Vary header present (Accept-Encoding).
Superseding object: http://opalrb.org/opal-parser.js (200 709851 1363984598 (none) -> 200 709851 1363984598 (none))
Vary header present (Accept-Encoding).
Vary header present (Accept-Encoding).
Vary header present (Accept-Encoding).
Uncacheable object http://www.youtube.com/?hl=en&gl=US (2050)
答案1
要启用日志记录,手动的指出:
2.1.3 日志记录
当遇到困难时,Polipo 会打印一条友好的消息。这些消息的发送位置由配置变量控制日志档案和日志系统日志。如果 logSyslog 为 true,则错误消息将发送至 logFacility 给出的系统日志工具。如果设置了 logFile,则它是所有输出将累积的文件的名称。如果 logSyslog 为 false 并且 logFile 为空,则消息将转到进程的错误输出(通常是终端)。
如果 daemonise 为 false,则变量 logFile 默认为空,否则默认为“/var/log/polipo”。变量 logSyslog 默认为 false,logFacility 默认为“user”。
如果设置了 logFile,则变量 logFilePermissions 控制 Unix 权限,如果日志文件不存在,则使用该权限创建日志文件。默认为 0640。
日志记录量由变量 logLevel 控制。请参阅 Polipo 源中的文件“log.h”以了解 logLevel 的可能值。
保留有关用户浏览习惯的大量日志可能严重侵犯他们的隐私。如果设置了变量 scrapLogs,那么 Polipo 将从其日志中清除大部分(如果不是全部)私人信息。
接下来,log.h(来自这里)有以下级别:
#define L_ERROR 0x1
#define L_WARN 0x2
#define L_INFO 0x4
#define L_FORBIDDEN 0x8
#define L_UNCACHEABLE 0x10
#define L_SUPERSEDED 0x20
#define L_VARY 0x40
#define L_TUNNEL 0x80
#define LOGGING_DEFAULT (L_ERROR | L_WARN | L_INFO)
#define LOGGING_MAX 0xFF
因此,例如,如果您想查看文件中的所有日志消息,建议的配置是(在/etc/polipo/config
):
logFile=/var/log/polipo
logLevel=4
答案2
答案3
日志的位置由配置变量 logFile
和logSyslog
。如果 logSyslog 为 true,则错误消息将发送到系统日志由 logFacility 给出的设施。如果设置了 logFile,则它是文件名所有输出都会累积。如果 logSyslog 为 false 并且 logFile 为空,则消息将转到进程的错误输出(通常是终端)。变量 logFile 默认为空,如果守护进程是假的,否则/var/log/polipo
。变量 logSyslog 默认为 false,logFacility 默认为user
。记录量由变量控制logLevel
。请参阅 Polipo 源中的文件log.h
以了解可能的值日志级别。
解决了?