119 trantor::AsyncFileLogger asyncFileLogger_;
121 bool useLocalTime_{
true};
122 bool showMicroseconds_{
true};
123 bool useCustomTimeFormat_{
false};
124 std::string timeFormat_;
125 static bool useRealIp_;
126 std::regex exemptRegex_;
127 bool regexFlag_{
false};
129 using LogFunction = std::function<void(trantor::LogStream &,
130 const drogon::HttpRequestPtr &,
131 const drogon::HttpResponsePtr &)>;
132 std::vector<LogFunction> logFunctions_;
133 void logging(trantor::LogStream &stream,
134 const drogon::HttpRequestPtr &req,
135 const drogon::HttpResponsePtr &resp);
136 void createLogFunctions(std::string format);
137 LogFunction newLogFunction(
const std::string &placeholder);
138 std::map<std::string, LogFunction> logFunctionMap_;
140 static void outputReqPath(trantor::LogStream &,
141 const drogon::HttpRequestPtr &,
142 const drogon::HttpResponsePtr &);
144 static void outputReqQuery(trantor::LogStream &,
145 const drogon::HttpRequestPtr &,
146 const drogon::HttpResponsePtr &);
148 static void outputReqURL(trantor::LogStream &,
149 const drogon::HttpRequestPtr &,
150 const drogon::HttpResponsePtr &);
152 static void outputVersion(trantor::LogStream &,
153 const drogon::HttpRequestPtr &,
154 const drogon::HttpResponsePtr &);
156 static void outputReqLine(trantor::LogStream &,
157 const drogon::HttpRequestPtr &,
158 const drogon::HttpResponsePtr &);
160 void outputDate(trantor::LogStream &,
161 const drogon::HttpRequestPtr &,
162 const drogon::HttpResponsePtr &)
const;
164 void outputReqDate(trantor::LogStream &,
165 const drogon::HttpRequestPtr &,
166 const drogon::HttpResponsePtr &)
const;
168 static void outputRemoteAddr(trantor::LogStream &,
169 const drogon::HttpRequestPtr &,
170 const drogon::HttpResponsePtr &);
172 static void outputLocalAddr(trantor::LogStream &,
173 const drogon::HttpRequestPtr &,
174 const drogon::HttpResponsePtr &);
176 static void outputReqLength(trantor::LogStream &,
177 const drogon::HttpRequestPtr &,
178 const drogon::HttpResponsePtr &);
180 static void outputRespLength(trantor::LogStream &,
181 const drogon::HttpRequestPtr &,
182 const drogon::HttpResponsePtr &);
184 static void outputMethod(trantor::LogStream &,
185 const drogon::HttpRequestPtr &,
186 const drogon::HttpResponsePtr &);
188 static void outputThreadNumber(trantor::LogStream &,
189 const drogon::HttpRequestPtr &,
190 const drogon::HttpResponsePtr &);
192 static void outputReqHeader(trantor::LogStream &stream,
193 const drogon::HttpRequestPtr &req,
194 const std::string &headerName);
196 static void outputReqCookie(trantor::LogStream &stream,
197 const drogon::HttpRequestPtr &req,
198 const std::string &cookie);
200 static void outputRespHeader(trantor::LogStream &stream,
201 const drogon::HttpResponsePtr &resp,
202 const std::string &headerName);
204 static void outputStatusString(trantor::LogStream &,
205 const drogon::HttpRequestPtr &,
206 const drogon::HttpResponsePtr &);
208 static void outputStatusCode(trantor::LogStream &,
209 const drogon::HttpRequestPtr &,
210 const drogon::HttpResponsePtr &);
212 static void outputProcessingTime(trantor::LogStream &,
213 const drogon::HttpRequestPtr &,
214 const drogon::HttpResponsePtr &);
216 static void outputRespContentType(trantor::LogStream &,
217 const drogon::HttpRequestPtr &,
218 const drogon::HttpResponsePtr &);