Provided by: trafficserver-dev_9.2.1+ds-1build1_amd64 bug

NAME

       TSDebug - traffic Server Debugging APIs

SYNOPSIS

          #include <ts/ts.h>

       void TSStatus(const char *format, ...)

       void TSNote(const char *format, ...)

       void TSWarning(const char *format, ...)

       void TSError(const char *format, ...)

       void TSFatal(const char *format, ...)

       void TSAlert(const char *format, ...)

       void TSEmergency(const char *format, ...)

       void TSDebug(const char *tag, const char *format, ...)

       int TSIsDebugTagSet(const char *tag)

       void TSDebugSpecific(int debug_flag, const char *tag, const char *format, ...)

       void TSHttpTxnDebugSet(TSHttpTxn txnp, int on)

       void TSHttpSsnDebugSet(TSHttpSsn ssn, int on)

       int TSHttpTxnDebugGet(TSHttpTxn txnp)

       int TSHttpSsnDebugGet(TSHttpSsn ssn)

       const char *TSHttpServerStateNameLookup(TSServerState state)

       const char *TSHttpHookNameLookup(TSHttpHookID hook)

       const char *TSHttpEventNameLookup(TSEvent event)

       TSAssert(...)

       TSReleaseAssert(...)

DIAGS.LOG

       The  following methods print to diags.log with expected reactions as a coordinated outcome
       of Traffic Server, Traffic Manager, AuTest, CI, and your log monitoring  service/dashboard
       (e.g. Splunk)

        ┌──────────────┬─────────────────────────────┬────────────────┬───────────┬────────────┐
        │API           │ Purpose                     │ TrafficManager │ AuTest+CI │ LogMonitor │
        ├──────────────┼─────────────────────────────┼────────────────┼───────────┼────────────┤
        │TSStatus()    │ basic                       │                │           │            │
        │              │ information                 │                │           │            │
        ├──────────────┼─────────────────────────────┼────────────────┼───────────┼────────────┤
        │TSNote()      │ significant                 │                │           │            │
        │              │ information                 │                │           │            │
        ├──────────────┼─────────────────────────────┼────────────────┼───────────┼────────────┤
        │TSWarning()   │ concerning                  │                │           │ track      │
        │              │ information                 │                │           │            │
        └──────────────┴─────────────────────────────┴────────────────┴───────────┴────────────┘

        │TSError()     │ operational                 │                │ FAIL      │ review     │
        │              │ failure                     │                │           │            │
        ├──────────────┼─────────────────────────────┼────────────────┼───────────┼────────────┤
        │TSFatal()     │ recoverable                 │ restart        │ FAIL      │ review     │
        │              │ crash                       │                │           │            │
        ├──────────────┼─────────────────────────────┼────────────────┼───────────┼────────────┤
        │TSAlert()     │ significant                 │ restart        │ FAIL      │ ALERT      │
        │              │ crash                       │                │           │            │
        ├──────────────┼─────────────────────────────┼────────────────┼───────────┼────────────┤
        │TSEmergency() │ unrecoverable,misconfigured │ EXIT           │ FAIL      │ ALERT      │
        └──────────────┴─────────────────────────────┴────────────────┴───────────┴────────────┘

       NOTE:
          TSFatal(), TSAlert(), and TSEmergency() can be called within TSPluginInit(), such  that
          Traffic Server can be shutdown promptly when the plugin fails to initialize properly.

TRAFFICSERVER.OUT

       TSDebug() logs the debug message only if the given debug tag is enabled.  It writes output
       to the Traffic Server debug log through stderr.

       TSIsDebugTagSet() returns non-zero if the given debug tag is enabled.

       In debug mode,  TSAssert  Traffic  Server  to  prints  the  file  name,  line  number  and
       expression,  and  then  aborts.  In  release  mode,  the expression is not removed but the
       effects of printing an error message and aborting are.  TSReleaseAssert  prints  an  error
       message and aborts in both release and debug mode.

       TSDebugSpecific() emits a debug line even if the debug tag is turned off, as long as debug
       flag  is  enabled.  This  can   be   used   in   conjunction   with   TSHttpTxnDebugSet(),
       TSHttpSsnDebugSet(),  TSHttpTxnDebugGet()  and  TSHttpSsnDebugGet() to enable debugging on
       specific session and transaction objects.

       TSHttpServerStateNameLookup(), TSHttpHookNameLookup() and TSHttpEventNameLookup() converts
       the  respective internal state to a string representation. This can be useful in debugging
       (TSDebug()), logging and other types notifications.

EXAMPLES

       This example uses TSDebugSpecific() to log a message when a  specific  debugging  flag  is
       enabled:

          #include <ts/ts.h>

          // Produce information about a hook receiving an event
          TSDebug(PLUGIN_NAME, "Entering hook=%s, event=%s",
                  TSHttpHookNameLookup(hook), TSHttpEventNameLookup(event));

          // Emit debug message if "tag" is enabled or the txn debug
          // flag is set.
          TSDebugSpecifc(TSHttpTxnDebugGet(txn), "tag" ,
                  "Hello World from transaction %p", txn);

SEE ALSO

       TSAPI(3ts), printf(3)

COPYRIGHT

       2023, dev@trafficserver.apache.org