logging - 如何设置 Caddyfile 日志格式?
问题描述
我使用 caddy 2 作为我的代理。我尝试设置我的球童日志格式。
localhost:80 {
reverse_proxy example:80
log {
output net logstash:5140
format single_field common_log
}
}
在版本 1 上有预定义格式 https://caddyserver.com/v1/docs/log (来自旧版本) common_log并结合
但是下面的这个配置不起作用。我认为,它已被弃用,就像他们的文档中所述。
localhost:80 {
reverse_proxy example:80
log {
output net logstash:5140
format single_field combined_log
}
}
但是,我想继续使用旧格式的日志而不是 json 格式。然后我尝试了多种格式,但在他们的网站上并没有真正记录,在社区论坛中也找不到。
然后我尝试了多种解决方案。但是,它不起作用。
localhost:80 {
reverse_proxy example:80
log {
output net logstash:5140
format single_field "{remote} - {user} [{when}] \"{method} {uri} {proto}\" {status} {size} \"{>Referer}\" \"{>User-Agent}\""
}
}
有人可以帮我吗?我所期望的是,格式看起来像这样。
"127.0.0.1 - - [10/Apr/2020:14:10:12 +0000] \"localhost\" \"GET / HTTP/1.1\" 200 236 \"-\" \"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0\""
和 common_log 给我输出
"10.0.0.2 - - [11/Apr/2020:08:50:01 +0000] \"GET / HTTP/1.1\" 200 236\n"
自定义输入
format single_field "{remote} - {user} [{when}] \"{method} {uri} {proto}\" {status} {size} \"{>Referer}\" \"{>User-Agent}\""
"45.143.220.111 - - [11/Apr/2020:09:00:20 +0000] \"127.0.0.1\" \"GET /vtigercrm/vtigerservice.php HTTP/1.1\" 444 0 \"-\" \"libwww-perl/6.43\""
"45.143.220.111 - - [11/Apr/2020:09:00:20 +0000] \"_\" \"\\x16\\x03\\x01\\x02\\x00\\x01\\x00\\x01\\xFC\\x03\\x03\\x97s\\xD21\\x91\\xF6\\x88;\\x05\\x9C\\xFEs\\x99\\xB4\\x06\\xB6\\xC07Jd.aLC\\x9AR\\xE6\\x07\\x09\\x98\\xD6\\x1F\\x00\\x00\\xAC\\xC00\\xC0,\\xC0(\\xC0$\\xC0\\x14\\xC0\" 400 157 \"-\" \"-\""
解决方案
自 2020/06/20 起,您无法使用官方分发的自定义日志格式。
但是,他们有一个名为format-encoder的模块可以做到这一点。
所以你只需要caddy
使用format-encoder构建。
然后将日志格式更改为formatted
,并附加一个template
字符串。
的template
内容参考了caddy 的结构化日志。
例如,使用以下配置:
log {
format formatted "{ts} {level} {request>headers>User-Agent}"
}
日志输出将如下所示:
1585597114.7687502 info ["curl/7.64.1"]
推荐阅读
- php - 输入字段被呈现为纯文本
- django - 通过查询值列表进行查询集过滤
- javascript - 这是使用承诺时打破“THEN 链”的好方法吗?
- visual-studio-code - VS Code - 获取和使用当前图标集
- reactjs - 如何从 onClick 传递引用以打开模式
- python - Sonnet 中的 LSTM 时间步长
- sql - 使用 PATINDEX 在 SQL Server 中使用多种格式查找文本中的时间
- ios - 使用相同的静态库在工作区中重复符号
- c - Windows spooler API GetPrinter() 没有返回正确填充的结构 PRINTER_INFO_6
- reactjs - 文件处理/上传时如何将值从反应传递到表达