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
不存在或错误,则行为向后兼容。启动运行系统将失败。安装新的发行版本不会失败,但会返回一条错误消息,并忽略错误的文件。