Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PHPLIB-1243: Document add/remove logger functions #1191

Merged
merged 2 commits into from
Nov 9, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions docs/includes/apiargs-function-add_logger-param.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
arg_name: param
name: $logger
type: Psr\\Log\\LoggerInterface
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For "reasons", we can't use a URL here. I tried:

`Psr\Log\LoggerInterface <https://www.php-fig.org/psr/psr-3/#3-psrlogloggerinterface>`__

Giza complains about a leading backtick character. Text roles (e.g. :php:) work, but we don't have one for the PSR website.

I was able to specify a URL when also using multi-line string syntax (e.g. type: |), but that appends a trailing " or" to the output. I expect there's something in the build system that supports multiple types on separate lines -- which we've never used since we typically write "array|object".

Anyway, the PSR website is linked from the main doc page so this isn't a huge problem.

description: |
A logger to register.

If the logger is already registered, the method will have no effect.
interface: phpmethod
operation: ~
optional: false
...
11 changes: 11 additions & 0 deletions docs/includes/apiargs-function-remove_logger-param.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
arg_name: param
name: $logger
type: Psr\\Log\\LoggerInterface
description: |
A logger to unregister.

If the logger is not registered, the method will have no effect.
interface: phpmethod
operation: ~
optional: false
...
59 changes: 59 additions & 0 deletions docs/reference/function/add_logger.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
=====================
MongoDB\\add_logger()
=====================

.. versionadded:: 1.17

.. default-domain:: mongodb

.. contents:: On this page
:local:
:backlinks: none
:depth: 1
:class: singlecol

Definition
----------

.. phpmethod:: MongoDB\\add_logger()

Registers a PSR logger to receive log messages from the driver.

.. code-block:: php

function add_logger(Psr\Log\LoggerInterface $logger): void

This method has the following parameters:

.. include:: /includes/apiargs/function-add_logger-param.rst

Behavior
--------

This function allows the application to register one or more
`Psr\\Log\\LoggerInterface <https://www.php-fig.org/psr/psr-3/#3-psrlogloggerinterface>`__
objects to receive log messages from libmongoc and the driver. Each registered
logger will receive messages for *all* clients.

Messages originating from the extension will have their log level translated to
an equivalent `PSR log level <https://www.php-fig.org/psr/psr-3/#5-psrlogloglevel>`__.
For performance reasons, trace-level messages from the extension are *not*
forwarded to PSR loggers. The extension's
:php:`mongodb.debug <manual/en/mongodb.configuration.php#ini.mongodb.debug>` INI
configuration must be used to collect trace-level logs.

Log messages also include a domain string that identifies the driver component
that emitted the log message. This value is provided to the PSR logger via the
{{domain}} key of the context array.

Errors/Exceptions
-----------------

.. include:: /includes/extracts/error-invalidargumentexception.rst

See Also
--------

- :phpmethod:`MongoDB\\remove_logger()`
- `PSR-3: Logger Interface <https://www.php-fig.org/psr/psr-3/>`__
- `libmongoc: Logging <https://mongoc.org/libmongoc/current/logging.html>`__
40 changes: 40 additions & 0 deletions docs/reference/function/remove_logger.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
========================
MongoDB\\remove_logger()
========================

.. versionadded:: 1.17

.. default-domain:: mongodb

.. contents:: On this page
:local:
:backlinks: none
:depth: 1
:class: singlecol

Definition
----------

.. phpmethod:: MongoDB\\remove_logger()

Unregisters a PSR logger to no longer receive log messages from the driver.

.. code-block:: php

function remove_logger(Psr\Log\LoggerInterface $logger): void

This method has the following parameters:

.. include:: /includes/apiargs/function-remove_logger-param.rst

Errors/Exceptions
-----------------

.. include:: /includes/extracts/error-invalidargumentexception.rst

See Also
--------

- :phpmethod:`MongoDB\\add_logger()`
- `PSR-3: Logger Interface <https://www.php-fig.org/psr/psr-3/>`__
- `libmongoc: Logging <https://mongoc.org/libmongoc/current/logging.html>`__
2 changes: 2 additions & 0 deletions docs/reference/functions.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,6 @@ Functions
.. toctree::
:titlesonly:

/reference/function/add_logger
/reference/function/remove_logger
/reference/function/with_transaction