Files
XTLS_Xray-docs-next/docs/en/config/log.md
T

60 lines
2.5 KiB
Markdown

# Log Configuration
Log configuration controls how Xray outputs logs.
Xray has two types of logs: access logs and error logs. You can configure the output method for each type independently.
## LogObject
`LogObject` corresponds to the `log` entry in the configuration file.
```json
{
"log": {
"access": "file_path",
"error": "file_path",
"loglevel": "warning",
"dnsLog": false,
"maskAddress": ""
}
}
```
> `access`: string
The file path for the access log. Its value must be a valid file path, such as `"/var/log/Xray/access.log"` (Linux) or `"C:\\Temp\\Xray\\_access.log"` (Windows). When this item is unspecified or empty, logs are output to stdout.
- Special value `none`: disables the access log.
> `error`: string
The file path for the error log. Its value must be a valid file path, such as `"/var/log/Xray/error.log"` (Linux) or `"C:\\Temp\\Xray\\_error.log"` (Windows). When this item is unspecified or empty, logs are output to stdout.
- Special value `none`: disables the error log.
> `loglevel`: "debug" | "info" | "warning" | "error" | "none"
The level of the error log, indicating the information that needs to be recorded.
The default value is `"warning"`.
- `"debug"`: Output information used for debugging. Includes all `"info"` content.
- `"info"`: Runtime status information, etc., which does not affect normal usage. Includes all `"warning"` content.
- `"warning"`: Information output when issues occur that do not affect normal operation but may impact user experience. Includes all `"error"` content.
- `"error"`: Xray encountered a problem where it cannot operate normally and requires immediate resolution.
- `"none"`: Do not record any content.
> `dnsLog`: bool
Whether to enable DNS query logs, for example: `DOH//doh.server got answer: domain.com -> [ip1, ip2] 2.333ms`
> `maskAddress`: "quarter" | "half" | "full"
IP address mask. When enabled, it automatically replaces IP addresses appearing in the log to protect privacy when sharing logs. The default is empty (disabled).
Currently, the available levels are `quarter`, `half`, and `full`. The masking formats correspond as follows:
- ipv4 `1.2.*.*` `1.*.*.*` `[Masked IPv4]`
- ipv6 `1234:5678::/32` `1234::/16` `[Masked IPv6]`
For more specific requirements, you can use a custom format such as `/16+/32`. The format defines the number of bits to keep unmasked; the first number is for IPv4 and the second for IPv6. Note that the IPv4 value must be divisible by 8. Using /32 (IPv4) or /128 (IPv6) means no masking, while /0 will display as `[Masked IPv4/IPv6]`.