logging: Support turning off roll compression via Caddyfile (#4505)

This commit is contained in:
Francis Lavoie 2022-01-04 14:11:27 -05:00 committed by GitHub
parent e9dde23024
commit 249adc1c87
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 0 deletions

View file

@ -3,6 +3,7 @@
log { log {
output file /var/log/access.log { output file /var/log/access.log {
roll_size 1gb roll_size 1gb
roll_uncompressed
roll_keep 5 roll_keep 5
roll_keep_for 90d roll_keep_for 90d
} }
@ -20,6 +21,7 @@ log {
"writer": { "writer": {
"filename": "/var/log/access.log", "filename": "/var/log/access.log",
"output": "file", "output": "file",
"roll_gzip": false,
"roll_keep": 5, "roll_keep": 5,
"roll_keep_days": 90, "roll_keep_days": 90,
"roll_size_mb": 954 "roll_size_mb": 954

View file

@ -134,6 +134,7 @@ func (fw FileWriter) OpenWriter() (io.WriteCloser, error) {
// file <filename> { // file <filename> {
// roll_disabled // roll_disabled
// roll_size <size> // roll_size <size>
// roll_uncompressed
// roll_keep <num> // roll_keep <num>
// roll_keep_for <days> // roll_keep_for <days>
// } // }
@ -141,6 +142,9 @@ func (fw FileWriter) OpenWriter() (io.WriteCloser, error) {
// The roll_size value has megabyte resolution. // The roll_size value has megabyte resolution.
// Fractional values are rounded up to the next whole megabyte (MiB). // Fractional values are rounded up to the next whole megabyte (MiB).
// //
// By default, compression is enabled, but can be turned off by setting
// the roll_uncompressed option.
//
// The roll_keep_for duration has day resolution. // The roll_keep_for duration has day resolution.
// Fractional values are rounded up to the next whole number of days. // Fractional values are rounded up to the next whole number of days.
// //
@ -177,6 +181,13 @@ func (fw *FileWriter) UnmarshalCaddyfile(d *caddyfile.Dispenser) error {
} }
fw.RollSizeMB = int(math.Ceil(float64(size) / humanize.MiByte)) fw.RollSizeMB = int(math.Ceil(float64(size) / humanize.MiByte))
case "roll_uncompressed":
var f bool
fw.RollCompress = &f
if d.NextArg() {
return d.ArgErr()
}
case "roll_keep": case "roll_keep":
var keepStr string var keepStr string
if !d.AllArgs(&keepStr) { if !d.AllArgs(&keepStr) {