#include <userver/server/handlers/dynamic_debug_log.hpp>
Handler for forcing specific lines logging. Feature also known as dynamic debug logging.
The component has no service configuration except the common handler options.
GET
request shows information about available locations and forced loggings. PUT
adds forced logging for a particular location. DELETE
request removes forced logging from a location.
For the GET
requests this handler returns a list of all the known logging locations tab separated from a on/off value of logging:
In the above sample 1
means that logging was enabled via this handler and that logger would write logs even if the logger level tells not to do that. 0
means that the log will be written down only if the logger level tells to do that.
PUT
request enables logging for the location specified in a location=
argument in URL. PUT
request should have a location=
argument in URL with a location from the GET
request or with a location without line number, to enable logging for the whole file.
DELETE
request removes the forced logging from location. Location should be specified in the location=
argument in URL.
Definition at line 63 of file dynamic_debug_log.hpp.
Public Member Functions | |
DynamicDebugLog (const components::ComponentConfig &config, const components::ComponentContext &component_context) | |
std::string | HandleRequestThrow (const http::HttpRequest &request, request::RequestContext &) const override |
Public Member Functions inherited from server::handlers::HttpHandlerBase | |
HttpHandlerBase (const components::ComponentConfig &config, const components::ComponentContext &component_context, bool is_monitor=false) | |
void | HandleRequest (request::RequestBase &request, request::RequestContext &context) const override |
void | ReportMalformedRequest (request::RequestBase &request) const final |
virtual const std::string & | HandlerName () const |
const std::vector< http::HttpMethod > & | GetAllowedMethods () const |
virtual logging::Level | GetLogLevelForResponseStatus (http::HttpStatus status) const |
virtual FormattedErrorData | GetFormattedExternalErrorBody (const CustomHandlerException &exc) const |
std::string | GetResponseDataForLoggingChecked (const http::HttpRequest &request, request::RequestContext &context, const std::string &response_data) const |
void | HandleCustomHandlerException (const http::HttpRequest &request, const CustomHandlerException &ex) const |
void | HandleUnknownException (const http::HttpRequest &request, const std::exception &ex) const |
void | LogUnknownException (const std::exception &ex) const |
Helper function to log an unknown exception. | |
const std::optional< logging::Level > & | GetLogLevel () const |
Returns the default log level for the handler. | |
Public Member Functions inherited from server::handlers::HandlerBase | |
HandlerBase (const components::ComponentConfig &config, const components::ComponentContext &component_context, bool is_monitor=false) | |
bool | IsMonitor () const |
Returns whether this is a monitoring handler. | |
const HandlerConfig & | GetConfig () const |
Returns handler config. | |
Public Member Functions inherited from components::LoggableComponentBase | |
LoggableComponentBase (const ComponentConfig &, const ComponentContext &) | |
LoggableComponentBase (LoggableComponentBase &&)=delete | |
LoggableComponentBase (const LoggableComponentBase &)=delete | |
~LoggableComponentBase () override=default | |
ComponentHealth | GetComponentHealth () const override |
void | OnLoadingCancelled () override |
void | OnAllComponentsLoaded () override |
void | OnAllComponentsAreStopping () override |
Static Public Member Functions | |
static yaml_config::Schema | GetStaticConfigSchema () |
Static Public Member Functions inherited from server::handlers::HttpHandlerBase | |
static yaml_config::Schema | GetStaticConfigSchema () |
Static Public Member Functions inherited from server::handlers::HandlerBase | |
static yaml_config::Schema | GetStaticConfigSchema () |
Static Public Member Functions inherited from components::LoggableComponentBase | |
static yaml_config::Schema | GetStaticConfigSchema () |
Static Public Attributes | |
static constexpr std::string_view | kName = "handler-dynamic-debug-log" |
The default name of server::handlers::DynamicDebugLog. | |
Additional Inherited Members | |
Protected Types inherited from server::handlers::HandlerBase | |
using | HandlerErrorCode = handlers::HandlerErrorCode |
using | InternalMessage = handlers::InternalMessage |
using | ExternalBody = handlers::ExternalBody |
using | ClientError = handlers::ClientError |
using | InternalServerError = handlers::InternalServerError |
Protected Member Functions inherited from server::handlers::HttpHandlerBase | |
void | ThrowUnsupportedHttpMethod (const http::HttpRequest &request) const |
virtual void | OnRequestCompleteThrow (const http::HttpRequest &, request::RequestContext &) const |
virtual void | HandleStreamRequest (const server::http::HttpRequest &, server::request::RequestContext &, server::http::ResponseBodyStream &) const |
virtual bool | IsStreamed () const |
virtual bool | IsMethodStatisticIncluded () const |
virtual bool | NeedCheckAuth () const |
virtual std::string | GetRequestBodyForLogging (const http::HttpRequest &request, request::RequestContext &context, const std::string &request_body) const |
Override it if you need a custom request body logging. | |
virtual std::string | GetResponseDataForLogging (const http::HttpRequest &request, request::RequestContext &context, const std::string &response_data) const |
Override it if you need a custom response data logging. | |
virtual void | ParseRequestData (const http::HttpRequest &, request::RequestContext &) const |
virtual std::string | GetMetaType (const http::HttpRequest &) const |
|
overridevirtual |
The core method for HTTP request handling. request
arg contains HTTP headers, full body, etc. The method should return response body.
false
. Reimplemented from server::handlers::HttpHandlerBase.