Linux stdout 在哪里写入日志以及分配给它多少内存
Linux stdout where writes the log and how much memory assigned to it
我正在使用 ConsoleAppender
登录我的 Java 应用程序。
ConsoleAppender
写入 System.out
,在 Linux 的情况下为 stdout
。
有人可以帮助我了解 stdout
日志去哪里以及分配给它的内存是多少。
我需要知道这一点,因为我到 stdout
的所有日志都没有被 filebeat 选择放入弹性搜索索引。
Can someone help me understanding where does stdout logs go
通常 stdout
只是进入您的 shell 的缓冲区,通常不会 buffered/recorded 进入任何文件。我说 通常 因为我确信有一些特殊的系统和 Linux 发行版可以以不同的方式处理事情。
对于其余部分,我假设您使用 "common Linux desktop or server distribution."
但是,您可以做的是重定向 stdout
到一个文件。
我假设您启动的应用程序与此类似:
java -jar myapp.jar
您的应用程序输出到 stdout
,这样您就可以在终端中看到输出。
在 Linux(我会说大多数 Unix 系统)上,您可以简单地将 stdout
(和可选的 stderr
)重定向到这样的文件:
java -jar myapp.jar > output.txt
然后应在您的系统上创建一个名为 output.txt
的文件。
如果你仍然需要 "real time user feedback" 你可以简单地做一些像
tail -f output.txt
连续打印output.txt
的内容到stdout
。
how much is the memory assigned to it.
您的 output.txt
文件会一直增长,直到 运行 磁盘空间不足 space。您可以使用您的发行版日志轮换系统来限制文件的大小。 FreeBSD 使用 newlogsys(8)。我确信您选择的 Linux 发行版已经配备了一个类似的系统。
我正在使用 ConsoleAppender
登录我的 Java 应用程序。
ConsoleAppender
写入 System.out
,在 Linux 的情况下为 stdout
。
有人可以帮助我了解 stdout
日志去哪里以及分配给它的内存是多少。
我需要知道这一点,因为我到 stdout
的所有日志都没有被 filebeat 选择放入弹性搜索索引。
Can someone help me understanding where does stdout logs go
通常 stdout
只是进入您的 shell 的缓冲区,通常不会 buffered/recorded 进入任何文件。我说 通常 因为我确信有一些特殊的系统和 Linux 发行版可以以不同的方式处理事情。
对于其余部分,我假设您使用 "common Linux desktop or server distribution."
但是,您可以做的是重定向 stdout
到一个文件。
我假设您启动的应用程序与此类似:
java -jar myapp.jar
您的应用程序输出到 stdout
,这样您就可以在终端中看到输出。
在 Linux(我会说大多数 Unix 系统)上,您可以简单地将 stdout
(和可选的 stderr
)重定向到这样的文件:
java -jar myapp.jar > output.txt
然后应在您的系统上创建一个名为 output.txt
的文件。
如果你仍然需要 "real time user feedback" 你可以简单地做一些像
tail -f output.txt
连续打印output.txt
的内容到stdout
。
how much is the memory assigned to it.
您的 output.txt
文件会一直增长,直到 运行 磁盘空间不足 space。您可以使用您的发行版日志轮换系统来限制文件的大小。 FreeBSD 使用 newlogsys(8)。我确信您选择的 Linux 发行版已经配备了一个类似的系统。