All Projects → greenpau → caddy-trace

greenpau / caddy-trace

Licence: Apache-2.0 License
Request Debugging Middleware Plugin for Caddy v2

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to caddy-trace

Bugsnag Android
Bugsnag crash monitoring and reporting tool for Android apps
Stars: ✭ 990 (+3860%)
Mutual labels:  debugging, debug, debugging-tool
docker-pudb
Debug Python code within a Docker container remotely from your terminal using pudb
Stars: ✭ 18 (-28%)
Mutual labels:  debugging, debug, debugging-tool
Bugsnag Node
[DEPRECATED] Please upgrade to our Universal JS notifier "@bugsnag/js" • https://github.com/bugsnag/bugsnag-js
Stars: ✭ 48 (+92%)
Mutual labels:  debugging, debug, debugging-tool
Cocoadebug
iOS Debugging Tool 🚀
Stars: ✭ 3,769 (+14976%)
Mutual labels:  debugging, debug, debugging-tool
bugsnag-vue
[DEPRECATED] This package now lives within the monorepo for our Universal JS notifier "@bugsnag/js" • https://github.com/bugsnag/bugsnag-js
Stars: ✭ 26 (+4%)
Mutual labels:  debugging, debug, debugging-tool
Xcglogger
A debug log framework for use in Swift projects. Allows you to log details to the console (and optionally a file), just like you would have with NSLog() or print(), but with additional information, such as the date, function name, filename and line number.
Stars: ✭ 3,710 (+14740%)
Mutual labels:  debugging, debug, debugging-tool
Icecream
🍦 Never use print() to debug again.
Stars: ✭ 5,601 (+22304%)
Mutual labels:  debugging, debug, debugging-tool
Gdb Frontend
☕ GDBFrontend is an easy, flexible and extensionable gui debugger.
Stars: ✭ 2,104 (+8316%)
Mutual labels:  debugging, debug, debugging-tool
bugsnag-java
Bugsnag error reporting for Java.
Stars: ✭ 51 (+104%)
Mutual labels:  debugging, debug, debugging-tool
Icecream Cpp
🍦 Never use cout/printf to debug again
Stars: ✭ 225 (+800%)
Mutual labels:  debugging, debug, debugging-tool
Tensorwatch
Debugging, monitoring and visualization for Python Machine Learning and Data Science
Stars: ✭ 3,191 (+12664%)
Mutual labels:  debugging, debug, debugging-tool
pydbg
Python implementation of the Rust `dbg` macro
Stars: ✭ 85 (+240%)
Mutual labels:  debugging, debug, debugging-tool
Debugo
一个可能有点用的 iOS 调试工具~
Stars: ✭ 258 (+932%)
Mutual labels:  debugging, debug, debugging-tool
Bugsnag Laravel
Bugsnag notifier for the Laravel PHP framework. Monitor and report Laravel errors.
Stars: ✭ 746 (+2884%)
Mutual labels:  debugging, debug, debugging-tool
Bugsnag Ruby
Bugsnag error monitoring & reporting software for rails, sinatra, rack and ruby
Stars: ✭ 211 (+744%)
Mutual labels:  debugging, debug, debugging-tool
dwarf import
This loads DWARF info from an open binary and propagates function names, arguments, and type info
Stars: ✭ 18 (-28%)
Mutual labels:  debugging, debug, debugging-tool
ducky
Chrome extension to overlay a (super adorable) rubber duck, as a virtual companion during rubber duck debugging.
Stars: ✭ 80 (+220%)
Mutual labels:  debugging, debug, debugging-tool
caddygit
Git module for Caddy v2
Stars: ✭ 67 (+168%)
Mutual labels:  caddy, caddy-plugin
react-native-debug-console
A network and console debug component and modal for react native purely in JavaScript
Stars: ✭ 17 (-32%)
Mutual labels:  debugging, debug
madbomber
Backtrace-on-throw C++ exception logger
Stars: ✭ 17 (-32%)
Mutual labels:  debugging, debugging-tool

caddy-trace

Request Debugging Middleware Plugin for Caddy v2.

Table of Contents

Overview

The plugin is a middleware which displays the content of the request it handles. It helps troubleshooting web requests by exposing headers (e.g. cookies), URL parameters, etc.

For background, the idea for the creation of plugin came during a development of another plugin which rewrites headers of web requests. There was a need to compare "before and after" content of the request.

The trace directive gets inserted prior to the plugin which modifies a request and immediately after it. The log with the content of the request show up twice and it is easy to compare the two.

Getting Started

Add trace handler to enable this plugin.

The disabled=yes argument disables the operation of the plugin.

The tag argument injects the value in the log output. This way, one can have multiple handlers and there is a way to deferentiate between them.

The response_debug argument instructs the plugin to buffer responses and log response related metadata, i.e. status codes, length, etc.

The uri_filter directive instructs the plugin to intercepts only the requests with the URI matching the regular expression in the filter.

When a request arrives for /version, the plugin will be triggered two (2) times. The first handler is disables. The two (2) other handlers will trigger with different tags. The respond handler is terminal and it means the handler with marvel tag will not trigger.

When a request arrives for /whoami, the plugin will be triggered three (2) times because respond /version will not terminate the handling of the plugin. Notably, the plugin will output response metadata due to the presence of response_debug argument.

{
  http_port     9080
  https_port    9443
}

localhost:9080 {
  route {
    trace disabled=yes
    trace disabled=no tag="foo"
    trace disabled=no tag="bar"
    respond /version "1.0.0" 200
    trace tag="marvel" response_debug=yes
    trace tag="custom" response_debug=yes uri_filter="^/whoami$"
    respond /whoami 200 {
      body "greenpau"
    }
  }
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].