By default unFTP will output logs to STD OUT and it will output only Error and Warning messages.
➜ unftp
module: main
Jan 29 12:53:25.187 WARN FTPS not enabled
You can have unFTP log at INFO level with the -v
argument.
➜ unftp -v
module: main
Jan 29 12:54:17.129 INFO Starting unFTP server., sbe-type: filesystem, auth-type: anonymous, home: /var/folders/dt/tmsf_k596295mkh5md67vb840000gp/T/, http-address: 0.0.0.0:8080, ftp-address: 0.0.0.0:2121, libunftp-version: 0.18.3, version:
Jan 29 12:54:17.130 INFO Using passive port range 49152..65535
Jan 29 12:54:17.130 INFO Using passive host option 'FromConnection'
Jan 29 12:54:17.130 INFO Idle session timeout is set to 600 seconds
Jan 29 12:54:17.130 INFO Starting HTTP service., address: 0.0.0.0:8080
Jan 29 12:54:17.130 INFO Exposing unFTP service home., path: /
Jan 29 12:54:17.130 INFO Exposing Prometheus unFTP exporter endpoint., path: /metrics
Jan 29 12:54:17.149 INFO Exposing readiness endpoint., path: /ready
Jan 29 12:54:17.149 INFO Exposing liveness endpoint., path: /health
Jan 29 12:54:17.149 WARN FTPS not enabled
If you want DEBUG level then specify -vv
.
In a cloud environment it is useful to send logs to a central location for analysis. unFTP can send structured logging in JSON format to a Redis instance. With a tool like Logstash this can then be processed further.
unFTP will use the RPUSH command to append logs at the tail of a list.
Here is an example of configuring unFTP to send logs to a local Redis instance:
unftp -v \
--log-redis-host=localhost \
--log-redis-port=6379 \
--log-redis-key=logging
The format of the JSON messages look like this:
{
"@timestamp": ${timeRFC3339},
"@source_host": ${hostname},
"@message": ${message},
"@fields": {
"level": ${levelLowercase},
"application": ${appName}
... // logged field 1
... // logged field 2
...
}
}
Powered by Doctave