logging - 使用酒厂管理日志文件
问题描述
背景
使用 distillery 启动 OTP 应用程序,我注意到所有日志都转到./var/log/
文件夹中的 2 个不同文件:
- erlang.log.1
- run_erl.log
问题
我这里有问题:
- 我不知道
run_erl.log
应该记录什么 - 我想将默认日志路径从更改
./var/log/erlang.log.1
为./log/myapp.log
研究
我已经检查了这个讨论以获取一些提示,但根据它我必须更改:logger
额外应用程序的配置。
这个搜索让我看到了下面的代码片段,它使用:logger_file_backend
https://snippets.aktagon.com/snippets/773-logging-to-a-file-with-elixir
但是我想我在这里追逐一只野鹅。我不认为我的问题的解决方案在于添加更多依赖项,而是在于更改:logger
应用程序的一些配置。
我只是不知道在哪里,也不知道如何。
我该怎么做?
解决方案
你是bin/your_app start
用来启动你的应用程序吗?在这种情况下,RUNNER_LOG_DIR
您可能正在寻找一个变量来自定义日志输出目录。
我做了一个小的研究,并注意到“如何配置 run_erl 的路径(对于 erlang.log.X,run_erl.log 文件) ”这个问题与你的类似。RUNNER_LOG_DIR
在讨论中提到。
distillery
,反过来,RUNNER_LOG_DIR
作为可配置的环境变量列出。然后在此处启动您的应用程序时使用它。
我不知道
run_erl.log
应该记录什么。
根据官方 Erlang文档,run_erl.log
用于记录run_erl
程序本身的进度和警告。run_erl
是启动应用程序的程序。
我想将默认日志路径从 更改
./var/log/erlang.log.1
为./log/myapp.log
。
根据我的发现,应该可以更改日志文件的位置,但我还没有看到是否也可以更改文件的名称(erlang.log.1 -> myapp.log
),如果这也是您要问的。如果您真的需要更改文件的名称,我会考虑符号链接myapp.log
和erlang.log.1
.
推荐阅读
- regex - 在 VSCode 正则表达式搜索中匹配文件的开头
- ios - 当前视图控制器内的子视图上未调用滑动手势
- flutter - Flutter 如何在 redux 中更新 store
- java - jax-rs:如果它不是正确的类型,如何验证 pathparam 并返回错误请求?
- typescript - 如何使用选择选项过滤对象
- java - vtd-xml 的编码问题
- sql - PostgreSQL 中使用 REFERENCES 时可以省略 FOREIGN KEY 吗?
- java - 如何根据来自另一个主题的响应从 Kafka 主题中读取消息
- excel - 查找一组特定单元格中最后一个非零单元格的列索引
- ios - 如何在 Swift 的子视图中访问 UITextfield?