config

配置

档案

配置

文件摘要

配置文件

描述

一个配置文件包含了系统中的应用程序的配置参数值。该erl命令行参数-config Name告诉系统的系统配置文件中使用的数据Name.config

配置文件中的配置参数值会覆盖应用程序资源文件中app(4)的值(请参阅。配置文件中的值可以被命令行标志覆盖(请参阅erts:erl(1)

通过调用application:get_env/1,2...

文件语法

配置文件将被调用Name.config,在哪里Name任何名字。

档案.config包含一个Erlang术语,并具有以下语法:

[{Application1, [{Par11, Val11}, ...]}, ... {ApplicationN, [{ParN1, ValN1}, ...]}].

Application = atom()

应用程序名称。

Par = atom()

配置参数的名称。

Val = term()

配置参数的值。

sys.config

在嵌入式模式下启动Erlang时,假定使用的正是一个系统配置文件,名为sys.config此文件位于$ROOT/releases/Vsn,在哪里$ROOT是Erlang/OTP根安装目录和Vsn是发行版。

发布处理依赖于这个假设。安装新版本时,sys.config用于更新应用程序配置。

这意味着指定另一个.config文件,或更多.config文件,导致应用程序配置更新不一致。但是,有一个语法用于sys.config它允许指出另一个.config档案:

[{Application, [{Par, Val}]} | File].

File = string()另一个名字.config档案。延拓.config可以省略。建议使用绝对路径。相对路径相对于模拟器的当前工作目录。

当遍历sys.config并且遇到一个文件名,它的内容被读取并与结果合并。当应用程序配置元组时{Application, Env},则与目前为止的结果合并。合并意味着添加了新的参数,并且覆盖了现有的参数值。

例子:

sys.config: [{myapp,[{par1,val1},{par2,val2}]}, "/home/user/myconfig"]. myconfig.config: [{myapp,[{par2,val3},{par3,val4}]}].

这将产生以下环境myapp*

[{par1,val1},{par2,val3},{par3,val4}]

如果指定的文件sys.config不存在或错误,则行为向后兼容。启动运行系统将失败。安装新的发行版本不会失败,但会返回一条错误消息,并忽略错误的文件。