SPM module for request logging filters for the Perfect framework for server-side Swift

Perfect HTTP Request Logging 简体中文

Get Involed with Perfect!

Star Perfect On Github Stack Overflow Follow Perfect on Twitter Join the Perfect Slack

Swift 3.0 Platforms OS X | Linux License Apache PerfectlySoft Twitter Slack Status

Swift Package Manager (SPM) module which provides HTTP request logging filters for use with the Perfect framework for server-side Swift.

Example Log Output

[INFO] [62f940aa-f204-43ed-9934-166896eda21c] [servername/WuAyNIIU-1] 2016-10-07 21:49:04 +0000 "GET /one HTTP/1.1" from - 200 64B in 0.000436007976531982s
[INFO] [ec6a9ca5-00b1-4656-9e4c-ddecae8dde02] [servername/WuAyNIIU-2] 2016-10-07 21:49:06 +0000 "GET /two HTTP/1.1" from - 200 64B in 0.000207006931304932s


Add the following dependency to the Package.swift file:

.Package(url: "", majorVersion: 0)

For each file you wish to directly reference the logging, import the module:

import PerfectRequestLogger

Add to main.swift after instantiating your server:

// Instantiate a logger
let myLogger = RequestLogger()

// Add the filters
// Request filter at high priority to be executed first
server.setRequestFilters([(myLogger, .high)])
// Response filter at low priority to be executed last
server.setResponseFilters([(myLogger, .low)])

These request & response filters add the required hooks to mark the beginning and the completion of the HTTP request and response.

Setting a custom Logfile location

The default logfile location is /var/log/perfectLog.log. To set a custom logfile location, set the RequestLogFile.location property:

RequestLogFile.location = "/var/log/myLog.log"

Further Information

For more information on the Perfect project, please visit


  • Swift Tools 4.0.0
View More Packages from this Author


Last updated: Tue Nov 08 2022 22:40:54 GMT-0500 (GMT-05:00)