v10.0-69.0
Logging
Logging has been rebuilt from the ground up. There has been modifications to the logging configuration, names, and formats.
To continue using the old logging system see the legacy logging option.
Configuration
The old logging configuration will continue to work. Imagizer will convert your logging configuration automatically.
Old Config Example
{
"logging": {
"enable": false,
"appLogLevel": "info",
"cloudWatch": {
"enable": false,
"key": "",
"region": "us-east-1",
"secret": ""
},
"dataDog": {
"enable": false,
"key": "",
"namespace": "imagizer",
"tags": [
]
},
"syslogFacility": "local7",
"syslogPort": 514,
"syslogServer": ""
}
}
New Config Example
{
"logging": {
"enable": false,
"appLogLevel": "info",
"cloudWatch": {
"enable": false,
"key": "",
"region": "us-east-1",
"secret": ""
},
"dataDog": {
"enable": false,
"key": "",
"namespace": "imagizer",
"tags": [
]
},
"legacy": false,
"services": [
"imagizer_access",
"imagizer_access_err",
"imagizer_app",
"imagizer_system"
],
"syslog": {
"enable": false,
"facility": "local7",
"port": 514,
"protocol": "udp",
"server": ""
},
"trustedProxies": [
]
}
}
legacy
Rather than forcing users to modify their logging strategies, we have added a legacy option. With the legacy
property enabled, there will be no changes to the log output.
Services
The new services
property contains a list of log services. The default list includes web access, application, and system logs. A full list can be found here.
syslog
The syslogServer
, syslogPort
, and syslogFacility
properties have been moved into a new syslog
object. Imagizer will continue to recognize the old properties and remap accordingly. A new syslog protocol
property has been added and will allow switching between UDP and TCP.
trustedProxies
A new trustedProxies
property has been added. The property will allow for a list of IP addresses or IP ranges of trusted proxies. The access logs will use the X-Forwarded-For
header to determine the client IP address only from a trusted proxy.
Example: Behind an AWS load balancer
{
"trustedProxies": [
"0.0.0.0/0"
]
}
Log Names
We renamed our access logs.
- nginx_access => imagizer_access
- nginx_access_err => imagizer_access_err
Log Formats
All logs now use UTC Timestamps.
imagizer_access
We are now using an extended combined log format for the access log. This format is slightly different from our previous nonstandard format.
Nginx Format
$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for" $host $request_time $upstream_http_x_original_filesize $upstream_http_x_original_resolution $upstream_http_x_origin_fetch_time $upstream_http_x_original_response_code
Examples
Old
192.168.0.1 - - [10/Apr/2019:18:17:29 +0000] "GET /image.jpg HTTP/1.1" 45782 200 "-" "Mozilla/5.0 User Agent" - 45782 0.150 3.91.3.127 2019-04-10T18:17:29+00:00 "-" "-" "-" "500x434" "78" "200"
New
192.168.0.1 - - [10/Apr/2019:18:17:29 +0000] "GET /image.jpg HTTP/1.1" 200 45782 "-" "Mozilla/5.0 User Agent" "-" 3.91.3.127 0.001 45782 500x434 316 200
imagizer_app
The timestamp is now RFC3339. All brackets and the fourth column has been removed.
Examples
Old
[Apr 10 18:19:00] [INFO] [/image.jpg] [] imagizer Timer (get_image_info): 7.191
New
2019-04-10T18:09:35.428467+00:00 INFO /image.jpg imagizer Timer (get_image_info): 7.191