这手册页措辞含糊:
-f file Log the specified file.
手册页中有一个例子,没有进一步的解释:
logger -p local0.notice -t HOSTIDM -f /dev/idmc
POSIX没有帮助:
记录器实用程序以未指定的方式和格式保存一条消息,其中包含用户提供的字符串操作数。预计这些消息稍后将由执行系统管理任务的人员进行评估。
我希望它记录:
- 到文件
- 某物关于文件
- 或者其他的东西从文件
但是,如果我执行以下操作:
$ echo "contents" > testfile
$ logger -f ./testfile "test message"
$ cat testfile
contents
$ tail /var/log/messages
Aug 4 10:00:00 hostname logger: test message
我未收到与“testfile”或其内容相关的任何信息,其内容也没有发生任何变化。如果testfile
在发出命令之前不存在,logger
我会收到以下错误消息:
记录器:./testfile:没有此文件或目录。
该怎么logger -f
办呢?
答案1
这GNU 文档更清楚一些,并为进一步测试提供了提示:
-f file
--file=file
记录指定文件的内容。如果 file 为 '-',则假定为标准输入。
事实证明,指定消息会覆盖文件的指定。
因此这是可行的:
logger -f testfile
并将文件内容记录到日志文件中。如果文件包含多行,则每行都将成为日志中的单独条目。