Skip to content

Python Logger#

You can use NeptuneHandler to track logs from the Python Logger.


NeptuneHandler#

A handler that sends the records created by the logger to Neptune.

Logs will be stored as a StringSeries field.

Parameters

Name Type Default       Description
run Run, optional None An existing run reference, as returned by neptune.init_run().
level int, optional logging.NOTSET Log level of the logs to be captured by the handler. Defaults to logging.NOTSET, which captures all logs that match the logger level.
path str, optional None Path to the StringSeries field used for captured logs. If None, tracked metadata will be stored under the monitoring namespace.

Examples

Create a logger:

import logging

logger = logging.getLogger("root_experiment")
logger.setLevel(logging.DEBUG)

Create a Neptune run:

import neptune

run = neptune.init_run()
If Neptune can't find your project name or API token

As a best practice, you should save your Neptune API token and project name as environment variables:

export NEPTUNE_API_TOKEN="h0dHBzOi8aHR0cHM6Lkc78ghs74kl0jv...Yh3Kb8"
export NEPTUNE_PROJECT="ml-team/classification"

Alternatively, you can pass the information when using a function that takes api_token and project as arguments:

run = neptune.init_run( # (1)!
    api_token="h0dHBzOi8aHR0cHM6Lkc78ghs74kl0jv...Yh3Kb8",  # your token here
    project="ml-team/classification",  # your full project name here
)
  1. Also works for init_model(), init_model_version(), init_project(), and integrations that create Neptune runs underneath the hood, such as NeptuneLogger or NeptuneCallback.

  2. API token: In the bottom-left corner, expand the user menu and select Get my API token.

  3. Project name: You can copy the path from the project details ( Edit project details).

If you haven't registered, you can log anonymously to a public project:

api_token=neptune.ANONYMOUS_API_TOKEN
project="common/quickstarts"

Make sure not to publish sensitive data through your code!

Create a NeptuneHandler object to capture the logs:

from neptune.integrations.python_logger import NeptuneHandler

npt_handler = NeptuneHandler(run=run)
logger.addHandler(npt_handler)

# Log something to the logger
logger.debug("Starting data preparation")
logger.debug("Data preparation done")

See also

Logger reference in the Python documentation