配置文件

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