---
title: Logging System
description: This doc explains how to use the logging feature of LibreChat, which saves error and debug logs in the `/api/logs` folder. You can use these logs to troubleshoot issues, monitor your server, and report bugs. You can also disable debug logs if you want to save space.
---

### General

LibreChat has central logging built into its backend (api).

- With the **docker** install, log files are saved in `/logs`

<FileTree>
  <FileTree.Folder name="librechat" defaultOpen>
    <FileTree.Folder name="logs" defaultOpen>
      <FileTree.File name="debug-2024-01-01.log" active/>
      <FileTree.File name="error-2024-01-01.log" active/>
      <FileTree.File name="meiliSync-2024-01-01.log" active/>
    </FileTree.Folder>
  </FileTree.Folder>
</FileTree>

- With the **npm** install, log files are saved in `/api/logs`

<FileTree>
  <FileTree.Folder name="librechat" defaultOpen>
      <FileTree.Folder name="api" defaultOpen>
        <FileTree.Folder name="logs" defaultOpen>
        <FileTree.File name="debug-2024-01-01.log" active/>
        <FileTree.File name="error-2024-01-01.log" active/>
        <FileTree.File name="meiliSync-2024-01-01.log" active/>
        </FileTree.Folder>
      </FileTree.Folder>  
  </FileTree.Folder>
</FileTree>

Error logs are saved by default. Debug logs are enabled by default but can be turned off if not desired.

This allows you to monitor your server through external tools that inspect log files, such as **[the ELK stack](https://aws.amazon.com/what-is/elk-stack/)**.

Debug logs are essential for developer work and fixing issues. If you encounter any problems running LibreChat, reproduce as close as possible, and **[report the issue](https://github.com/danny-avila/LibreChat/issues)** with your logs found in `./api/logs/debug-%DATE%.log`. 

Errors logs are also saved in the same location: `./api/logs/error-%DATE%.log`. If you have meilisearch configured, there is a separate log file for this as well.

<Callout type="note" title="Note:">
Note: Logs are rotated on a 14-day basis, so you will generate one error log file, one debug log file, and one meiliSync log file per 14 days.
Errors will also be present in debug log files as well, but provide stack traces and more detail in the error log files.
</Callout>

### Setup

- Toggle debug logs with the following environment variable. By default, even if you never set this variable, debug logs will be generated, but you have the option to disable them by setting it to `FALSE`.

<OptionTable
  options={[
    ['DEBUG_LOGGING', 'boolean', 'Keep debug logs active.','DEBUG_LOGGING=true'],
  ]}
/>

> Note: it's recommended to disable debug logs in a production environment.

- For verbose server output in the console/terminal, you can set the following to `TRUE`:

<OptionTable
  options={[
    ['DEBUG_CONSOLE', 'boolean', 'Enable verbose console/stdout logs in the same format as file debug logs.', 'DEBUG_CONSOLE=false'],
  ]}
/>

This is not recommended however, as the outputs can be quite verbose. It's disabled by default and should be enabled sparingly.

- When handling console logs in cloud deployments (such as GCP or AWS), enabling this will dump the logs with a UTC timestamp and format them as JSON.

<OptionTable
  options={[
    ['CONSOLE_JSON', 'boolean', 'Enable verbose JSON console/stdout logs suitable for cloud deployments like GCP/AWS.', 'CONSOLE_JSON=false'],
  ]}
/>
