在 Erlang 中,属性位于 *.config 文件中,通常(但不一定)在项目的根目录中。例如:
- Chicago Boss 有 boss.config
- RabbitMQ 有 rabbitmq.config
- Zotonic 对不同的站点有不同的配置存储在 priv/sitename/config 中
你可以通过运行提供配置文件
erl -config myconfig
警告:该文件应命名为“myconfig.config”并且您应该省略扩展名。
配置文件的结构应该是这样的:
[{Application1, [{Par11,Val11},...]},
...,
{ApplicationN, [{ParN1,ValN1},...]}].
例如:
[{kernel, [
{my_key, "value"}
]}].
比在 erlang shell 中,你可以输入:
application:get_env(kernel, my_key).
{ok,"value"}
我使用内核应用程序,因为它总是被加载并且 application:get_env/2 返回 undefined,如果应用程序没有加载。您应该将所有配置放在您自己的应用程序中,并确保在调用 get_env/2 之前加载它。
此外,配置是分层的,您可以将默认设置放在 *.app 文件中,用户通常不必修改。您可以在配置文件中覆盖它们,最后,您可以在命令行中提供键值对(它们将覆盖配置文件中的内容)。
您可以在此处阅读有关配置的更多信息:
http://www.erlang.org/doc/design_principles/applications.html#id74398
您还可以使用 cmets 使配置文件更加用户友好,例如:
https://github.com/ChicagoBoss/ChicagoBoss/blob/master/skel/boss.config