配置文件¶
EFB 使用全局配置文件来管理所有启用的组件。它位于当前配置档案的目录下的 config.yaml
。
语法¶
配置文件使用 YAML 语法。如果您不熟悉该语法,请查阅相关文档及教程。
主端的信道 ID 位于
master_channel
下从端的 ID 位于
slave_channels
下,且必须为一个列表,即使您可能仅使用一个信道。需要启用的中间件的 ID 应列于
middlewares
下。它应当为一个列表,即使只有一个中间件被启用。不过如果您不打算使用中间件,请忽略该部分。
实例 ID¶
若要同时运行多个帐户,您可以为组件指定一个实例 ID。实例 ID 的值可以自行定义,但必须由字母、数字和下划线构成,正则表达式表示为 [a-zA-Z0-9_]+
。当实例 ID 未定义时,该信道将在「默认(default
)」实例中运行,且不具有实例 ID。
若要指定某一实例的实例 ID,需将 #
和实例 ID 追加到组件 ID 的后面。例如:从端 bar.dummy
运行 ID 为 alice
的实例时,该实例应写作 bar.dummy#alice
。由于实例之间相互隔离,如果该信道需要进行进一步配置,这些配置应该在同名目录中进行(如:EFB_DATA_PATH/profiles/PROFILE/bar.dummy#alice
)。
请避免添加具有相同组件 ID 和实例 ID 的两个示例,因为这可能会导致未定义的结果。
例如,要启用如下组件:
- 主端
演示主端 (
foo.demo_master
)
- 从端
演示从端 (
foo.demo_slave
)虚拟从端 (
bar.dummy
)虚拟从端 (
bar.dummy
) 运行于alt
实例
- 中间件
消息存档 (
foo.msg_archiver
)空中间件 (
foo.null
)
config.yaml
中应存在以下内容:
master_channel: foo.demo_master
slave_channels:
- foo.demo_slave
- bar.dummy
- bar.dummy#alt
middlewares:
- foo.msg_archiver
- foo.null
详细的日志控制¶
如果您在处理和控制由框架及组件生成的日志上有特殊需要,可以在 logging
一节下使用 Python 的配置字典格式来配置日志设置。
日志控制设置的示例:
logging:
version: 1
disable_existing_loggers: false
formatters:
standard:
format: '%(asctime)s [%(levelname)s] %(name)s: %(message)s'
handlers:
default:
level: INFO
formatter: standard
class: logging.StreamHandler
stream: ext://sys.stdout
loggers:
'':
handlers: [default,]
level: INFO
propagate: true
AliceIRCChannel:
handlers: [default, ]
level: WARN
propagate: false