ADOdb

Database Abstraction Layer for PHP

User Tools

Site Tools


v6:logging:logging_format

Logging Formats

The logging plugin produces output in 2 different formats, a classic text message and a JSON encoded string. The example shown below is for the same event but in the 2 different formats.


  1. The date and time. Note that if the monolog plugin is used then the time includes microseconds
  2. The logging tag
  3. The logging level
  4. The log message
  5. Additional tags if the monolog plugin is used

Plain Text Format

[2023-12-30T12:06:33.954984-07:00] ADODB.CRITICAL: Execution of statement failed: SELECT COUNT(*) FROM employee , / Error: 1146 Table 'employees.employee' doesn't exist [] []

JSON Format

[2023-12-30T12:09:44.054087-07:00] ADODB.CRITICAL: 
{
  "version":"1.0",
  "ADOdbVersion":"v5.23.0-dev  Unreleased",
  "level":"500",
  "shortMessage":"QUERY EXECUTION FAILURE",
  "sqlStatement":
  {
      "sql":"SELECT COUNT(*) FROM employex",
      "params":false
  },
  "errorCode":1146,
  "errorMessage":"Table 'employees.employex' doesn't exist",
  "metaErrorCode":-18,
  "metaErrorMessage":"no such table",
  "callStack":"",
  "host":"WINDOWS-11",
  "source":"cli",
  "driver":"mysqli",
  "php":"8.0.30",
  "os":"WINNT"
}

The Call Stack

If the $logBacktrace flag is set, then the “callStack” element of the JSON message contains an array of stack calls that identify the source and path of the error:

[{
  "class":"ADOConnection",
  "function":{
    "name":"_Execute",
    "args":["SELECT COUNT(*) FROM employeex"]
  },
  "file":"C:\/dev\/github\/ADOdb\/drivers\/adodb-mysqli.inc.php",
  "line":1089
},{
  "class":"ADODB_mysqli",
  "function":{
    "name":"execute",
    "args":["SELECT COUNT(*) FROM employeex"]
  },
  "file":"C:\/dev\/github\/ADOdb\/drivers\/adodb-mysqli.inc.php",
  "line":301
},{
  "class":"ADODB_mysqli",
  "function":{
    "name":"GetOne",
    "args":["SELECT COUNT(*) FROM employeex"]
  },
  "file":"C:\/dev\/tests\/monolog.php",
  "line":59
}]

Monolog Logging Tags

If the monolog plugin is used, then additional tags can be appended to the message as a JSON encoded array. These tags can be used in log management software for filtering purposes. In addition to any custom tags, the plugin can add a set of pre-defined system tags that describe the ADOdb installation using the setMessageTags() method. These tags can be added to both plain-text and JSON format messages.

{
  "host":"WINDOWS-11",
  "source":"cli",
  "driver":"mysqli",
  "php":"8.0.30",
  "os":"WINNT",
  "ADOdbVersion":"5.23.0-dev"
}

Any other custom tags are appended to the base as a simple key → value pair using the setMessageTag() method:

{
  "environment":"PRODUCTION"
}
v6/logging/logging_format.txt · Last modified: by 127.0.0.1