{
  "schema_version": 2,
  "id": "operate/rs/clusters/logging/diagnostic-logging",
  "title": "Diagnostic logging",
  "url": "https://redis.io/docs/latest/operate/rs/8.0/clusters/logging/diagnostic-logging/",
  "summary": "Diagnostic logs can help troubleshoot Redis Software.",
  "content": "\nThe diagnostic logging service collects detailed system logs, which you can use to troubleshoot Redis Software.\n\n## View diagnostic logs\n\nDiagnostic logs are collected at scheduled intervals and saved in the `/var/opt/redislabs/log/diagnostics/` directory. Each diagnostic log file is overwritten with the new data at the scheduled collection interval.\n\n## View log collector settings\n\nTo view the current log collection schedule and parameters for each log collector, use the REST API to [get the diagnostic logging service configuration](https://redis.io/docs/latest/operate/rs/references/rest-api/requests/diagnostics#get-diagnostics).\n\n```sh\nGET /v1/diagnostics\n```\n\nExample response:\n\n```json\n{\n    \"bdb_client_list_target\": {\n        \"cron_expression\": \"*/10 * * * *\"\n    },\n    \"bdb_info_target\": {\n        \"cron_expression\": \"*/10 * * * *\"\n    },\n    \"bdb_target\": {\n        \"cron_expression\": \"*/10 * * * *\"\n    },\n    \"command_stats_target\": {\n        \"cron_expression\": \"*/30 * * * *\"\n    },\n    \"network_stats_target\": {\n        \"cron_expression\": \"*/30 * * * *\"\n    },\n    \"persistent_files_target\": {\n        \"cron_expression\": \"*/10 * * * *\"\n    },\n    \"rladmin_status_target\": {\n        \"cron_expression\": \"*/10 * * * *\"\n    },\n    \"shard_info_target\": {\n        \"cron_expression\": \"*/10 * * * *\"\n    },\n    \"shard_latency_histogram_target\": {\n        \"cron_expression\": \"*/10 * * * *\"\n    },\n    \"shard_latency_target\": {\n        \"cron_expression\": \"*/10 * * * *\"\n    },\n    \"shard_target\": {\n        \"cron_expression\": \"*/10 * * * *\"\n    },\n    \"slowlog_target\": {\n        \"cron_expression\": \"*/10 * * * *\",\n        \"max_entries\": 100\n    },\n    \"socket_files_target\": {\n        \"cron_expression\": \"*/10 * * * *\"\n    }\n}\n```\n\n## Change log collector settings\n\nTo change how often a log is collected, set the `cron_expression` when you [update the diagnostic logging service configuration](https://redis.io/docs/latest/operate/rs/references/rest-api/requests/diagnostics#put-diagnostics) with the REST API.\n\n```sh\nPUT /v1/diagnostics\n{\n  \"\u003clog_collector\u003e_target\": {\n    \"cron_expression\": \"*/5 * * * *\"\n  }\n}\n```\n\n- Replace `\u003clog_collector\u003e` with the name of the log collector you want to turn off.\n\n- Use standard [cron syntax](https://en.wikipedia.org/wiki/Cron) to set the collection interval in the `cron_expression`.\n\nFor the slowlog collector only, you can also set `max_entries` to change the maximum number of slow log entries to collect:\n\n```sh\nPUT /v1/diagnostics\n{\n  \"slowlog_target\": {\n    \"cron_expression\": \"*/5 * * * *\",\n    \"max_entries\": 200\n  }\n}\n```\n\n## Turn off log collectors\n\nTo turn off a log collector, set its `cron_expression` to an empty string when you [update the diagnostic logging service configuration](https://redis.io/docs/latest/operate/rs/references/rest-api/requests/diagnostics#put-diagnostics) with the REST API.\n\n```sh\nPUT /v1/diagnostics\n{\n  \"\u003clog_collector\u003e_target\": {\n    \"cron_expression\": \"\"\n  }\n}\n```\n\nReplace `\u003clog_collector\u003e` with the name of the log collector you want to turn off.\n\n## Log collectors\n\nEach log collector runs independently and writes a separate log file. The following table describes the log collectors.\n\nDefault `cron_expression` values:\n\n- `*/10 * * * *`: Logs are collected every 10 minutes.\n\n- `*/30 * * * *`: Logs are collected every 30 minutes.\n\n| Log collector | Description |\n|---------------|-------------|\n| bdb | Logs database metadata similar to [`GET /bdbs`](https://redis.io/docs/latest/operate/rs/references/rest-api/requests/bdbs). Each entry is in JSON format.\u003cbr /\u003eDefault settings:\u003cbr /\u003e\"cron_expression\": \"*/10 * * * *\" |\n| bdb_client_list | Logs database client lists, with a separate file for each database. Each entry is in JSON format.\u003cbr /\u003eDefault settings:\u003cbr /\u003e\"cron_expression\": \"*/10 * * * *\" |\n| bdb_info | Logs the result of running [`INFO ALL`](https://redis.io/docs/latest/commands/info) on a database, excluding `commandstats`, with a separate file for each database. Each entry is in JSON format.\u003cbr /\u003eDefault settings:\u003cbr /\u003e\"cron_expression\": \"*/10 * * * *\" |\n| command_stats | Logs [`INFO commandstats`](https://redis.io/docs/latest/commands/info) for each database, with a separate file for each database. Each entry is in JSON format.\u003cbr /\u003eDefault settings:\u003cbr /\u003e\"cron_expression\": \"*/30 * * * *\" |\n| network_stats | Logs the node's network statistics.\u003cbr /\u003eDefault settings:\u003cbr /\u003e\"cron_expression\": \"*/30 * * * *\" |\n| persistent_files | Lists persistent files from `/var/opt/redislabs/persist/redis`\u003cbr /\u003eDefault settings:\u003cbr /\u003e\"cron_expression\": \"*/10 * * * *\" |\n| rladmin_status | Logs data about nodes, databases, endpoints, and shards from [`rladmin status`](https://redis.io/docs/latest/operate/rs/references/cli-utilities/rladmin/status). Each entry is in JSON format.\u003cbr /\u003eDefault settings:\u003cbr /\u003e\"cron_expression\": \"*/10 * * * *\" |\n| shard | Logs shard status similar to [`GET /shards`](https://redis.io/docs/latest/operate/rs/references/rest-api/requests/shards). Each entry is in JSON format.\u003cbr /\u003eDefault settings:\u003cbr /\u003e\"cron_expression\": \"*/10 * * * *\" |\n| shard_info | Logs the result of running [INFO ALL](https://redis.io/docs/latest/commands/info) on a shard, with a separate file for each shard. Each entry is in JSON format.\u003cbr /\u003eDefault settings:\u003cbr /\u003e\"cron_expression\": \"*/10 * * * *\" |\n| shard_latency | Logs the result of running [`latency latest`](https://redis.io/docs/latest/commands/latency-latest) on a shard, with a separate file for each shard.\u003cbr /\u003eDefault settings:\u003cbr /\u003e\"cron_expression\": \"*/10 * * * *\" |\n| \u003cspan class=\"break-all\"\u003e`shard_latency_histogram`\u003c/span\u003e | Logs the result of running [`latency histogram`](https://redis.io/docs/latest/commands/latency-histogram) on a shard, with a separate file for each shard.\u003cbr /\u003eDefault settings:\u003cbr /\u003e\"cron_expression\": \"*/10 * * * *\" |\n| slowlog | Logs slow commands from the databases using [`SLOWLOG GET`](https://redis.io/docs/latest/commands/slowlog-get), with a separate file for each database. Each entry is in JSON format. The log is sanitized, only the commands are visible.\u003cbr /\u003eDefault settings:\u003cbr /\u003e\"cron_expression\": \"*/10 * * * *\",\u003cbr /\u003e\"max_entries\": 100 |\n| socket_files | Lists socket files used by Redis Software.\u003cbr /\u003eDefault settings:\u003cbr /\u003e\"cron_expression\": \"*/10 * * * *\" |\n",
  "tags": ["docs","operate","rs"],
  "last_updated": "2026-08-24T11:13:03-07:00"
}
