0001
0025 @_exported import Log
0026 @_exported import HTTP
0027
0028 public struct LogMiddleware: MiddlewareType {
0029 private let log: Log
0030 private let level: Log.Level
0031
0032 public init(log: Log, level: Log.Level = .Info) {
0033 self.log = log
0034 self.level = level
0035 }
0036
0037 public func respond(request: Request, chain: ChainType) throws -> Response {
0038 let response = try chain.proceed(request)
0039 var message = "================================================================================\n"
0040 message += "Request:\n"
0041 message += "\(request)\n"
0042 message += "--------------------------------------------------------------------------------\n"
0043 message += "Response:\n"
0044 message += "\(response)\n"
0045 message += "================================================================================\n\n"
0046 log.log(level, item: message)
0047 return response
0048 }
0049 }
0050
0051 public struct DebugLogMiddleware: MiddlewareType {
0052 private let log: Log
0053 private let level: Log.Level
0054
0055 public init(log: Log, level: Log.Level = .Info) {
0056 self.log = log
0057 self.level = level
0058 }
0059
0060 public func respond(request: Request, chain: ChainType) throws -> Response {
0061 let response = try chain.proceed(request)
0062 var message = "================================================================================\n"
0063 message += "Request:\n"
0064 message += "\(request.debugDescription)\n"
0065 message += "--------------------------------------------------------------------------------\n"
0066 message += "Response:\n"
0067 message += "\(response.debugDescription)\n"
0068 message += "================================================================================\n\n"
0069 log.log(level, item: message)
0070 return response
0071 }
0072 }