1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# QuantumLog 配置文件示例
# 这个文件展示了所有可用的配置选项
# 全局配置
= "INFO" # 全局日志级别: TRACE, DEBUG, INFO, WARN, ERROR
= 1000 # 预初始化缓冲区大小
= true # 是否启用预初始化标准输出
= "Drop" # 背压策略: "Block" 或 "Drop"
# 上下文字段配置
[]
= true # 包含时间戳
= true # 包含日志级别
= true # 包含目标模块
= false # 包含文件和行号
= true # 包含进程ID
= false # 包含线程ID
= false # 包含MPI排名(需要MPI特性)
= false # 包含用户名
= true # 包含主机名
= true # 包含span信息
# 格式配置
[]
= "Json" # 格式类型: "Json" 或 "Text"
= "%Y-%m-%d %H:%M:%S%.3f" # 时间戳格式
= "{timestamp} [{level}] {target} - {message}" # 文本格式模板
= "fields" # JSON格式中字段的键名
# 标准输出配置
[]
= true # 是否启用标准输出
= "INFO" # 标准输出的日志级别
= true # 是否启用颜色
= true # 是否使用颜色
[]
= "Text" # 标准输出格式类型
= "%Y-%m-%d %H:%M:%S%.3f"
= "{timestamp} [{level}] {target} - {message}"
= "data"
# 文件输出配置
[]
= true # 是否启用文件输出
= "DEBUG" # 文件输出的日志级别
= "Json" # 输出类型: "Json" 或 "Text"
= "./logs" # 日志文件目录
= "quantum" # 文件名基础部分
= "log" # 文件扩展名
= "None" # 分离策略
= 8192 # 写入缓冲区大小
= 300 # 写入器缓存TTL(秒)
= 1024 # 写入器缓存容量
# 文件轮转配置
[]
= "Size" # 轮转策略: "Size" 或 "Time"
= 50 # 轮转的最大文件大小(MB)
= 5 # 轮转保留的最大文件数
= false # 是否压缩轮转的文件
# time_pattern = "%Y%m%d" # 时间轮转模式(当strategy为"Time"时使用)
# 数据库输出配置(需要database特性)
[]
= false # 是否启用数据库输出
= "WARN" # 数据库输出的日志级别
= "PostgreSQL" # 数据库类型: "PostgreSQL", "MySQL", "SQLite"
= "postgresql://user:password@localhost:5432/logs" # 数据库连接字符串
= "quantum_logs" # 日志表名
= 100 # 批处理大小
= 5 # 连接池大小
= 5000 # 连接超时(毫秒)
= true # 是否自动创建表
# 网络输出配置(如果支持)
# [network]
# enabled = false
# level = "ERROR"
# endpoint = "http://log-server:8080/logs"
# timeout_ms = 3000
# retry_attempts = 3
# format = { type = "json" }
# 高级配置示例
# 这些配置展示了更复杂的使用场景
# 多环境配置示例
# 可以根据环境变量或其他条件选择不同的配置
# 开发环境配置
# [dev]
# global_level = "DEBUG"
# [dev.stdout]
# enabled = true
# level = "DEBUG"
# format = { type = "text" }
# [dev.file]
# enabled = false
# 生产环境配置
# [prod]
# global_level = "INFO"
# [prod.stdout]
# enabled = false
# [prod.file]
# enabled = true
# level = "INFO"
# format = { type = "json" }
# [prod.database]
# enabled = true
# level = "WARN"
# 性能调优配置
# [performance]
# pre_init_buffer_size = 10000
# backpressure_strategy = "Drop"
# [performance.file]
# buffer_size = 65536
# writer_cache_capacity = 4096
# writer_cache_ttl_seconds = 600