Skip to content

Commit

Permalink
Merge pull request #31 from lainedfles/basic_logging
Browse files Browse the repository at this point in the history
Add basic logging documentation
  • Loading branch information
tjbck authored Mar 31, 2024
2 parents b55cbf4 + 5efe3d5 commit a33743e
Showing 1 changed file with 58 additions and 0 deletions.
58 changes: 58 additions & 0 deletions docs/getting-started/logging.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Logging

## Browser Client Logging ##

Client logging generally occurs via [JavaScript](https://developer.mozilla.org/en-US/docs/Web/API/console/log_static) `console.log()` and can be accessed using the built-in browser-specific developer tools:
* Blink
* [Chrome/Chromium](https://developer.chrome.com/docs/devtools/)
* [Edge](https://learn.microsoft.com/en-us/microsoft-edge/devtools-guide-chromium/overview)
* Gecko
* [Firefox](https://firefox-source-docs.mozilla.org/devtools-user/)
* WebKit
* [Safari](https://developer.apple.com/safari/tools/)

## Application Server/Backend Logging ##

Logging is an ongoing work-in-progress but some level of control is available using environment variables. [Python Logging](https://docs.python.org/3/howto/logging.html) `log()` and `print()` statements send information to the console. The default level is `INFO`.

### Logging Levels ###

The following [logging levels](https://docs.python.org/3/howto/logging.html#logging-levels) values are supported:

| Level | Numeric value |
| ---------- | ------------- |
| `CRITICAL` | 50 |
| `ERROR` | 40 |
| `WARNING` | 30 |
| `INFO` | 20 |
| `DEBUG` | 10 |
| `NOTSET` | 0 |

### Global ###

The default global log level of `INFO` can be overridden with the `GLOBAL_LOG_LEVEL` environment variable. When set, this executes a [basicConfig](https://docs.python.org/3/library/logging.html#logging.basicConfig) statement with the `force` argument set to *True* within `config.py`. This results in reconfiguration of all attached loggers:
> _If this keyword argument is specified as true, any existing handlers attached to the root logger are removed and closed, before carrying out the configuration as specified by the other arguments._
In addition to all Open-WebUI `log()` statements, this also affects any imported Python modules that use the Python Logging module `basicConfig` mechanism including [urllib](https://docs.python.org/3/library/urllib.html).

For example, set `DEBUG` logging level as a Docker parameter:
```
--env GLOBAL_LOG_LEVEL="DEBUG"
```

### App/Backend ###

Some level of granularity is possible using any of the following combination of variables. Note that `basicConfig` `force` isn't presently used so these statements may only affect Open-WebUI logging and not 3rd party modules.

| Environment Variable | App/Backend |
| -------------------- | ----------------------------------------------------------------- |
| `AUDIO_LOG_LEVEL` | Audio transcription, etc. |
| `CONFIG_LOG_LEVEL` | Configuration handling |
| `DB_LOG_LEVEL` | Internal Peewee Database |
| `IMAGES_LOG_LEVEL` | AUTOMATIC1111 stable diffusion image generation |
| `LITELLM_LOG_LEVEL` | LiteLLM proxy |
| `MAIN_LOG_LEVEL` | Main (root) execution |
| `MODELS_LOG_LEVEL` | LLM model interaction, authentication, etc. |
| `OLLAMA_LOG_LEVEL` | Ollama backend interaction |
| `OPENAI_LOG_LEVEL` | OpenAI interaction |
| `RAG_LOG_LEVEL` | Retrieval-Augmented Generation using Chroma/Sentence-Transformers |

0 comments on commit a33743e

Please sign in to comment.