java - 如何将 BufferedReader 写入 slf4j 记录器
问题描述
我有一个 BufferReader,我需要将其转储到 slf4j 记录器中。
BufferedReader stdError = new BufferedReader(new InputStreamReader(process.getErrorStream()));
我想将 stdError 转储到 slf4j 记录器中。有没有我可以用来实现这一目标的库?
解决方案
Loggers
不是java.io
I/O 流,也不是为了装饰它们而设计的。
Loggers
旨在在某些附加程序中写入特定记录。process.getErrorStream()
因此,如果您需要记录process.getErrorStream()
由Logger.error(readLine)
.
真的很容易写:
Process p = ...;
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String readLine = null;
while ((readLine = reader.readLine())!=null){
logger.error(readLine);
}
增量记录(逐行)很重要,因为如果您仅在最后使用单个大日志条目执行该任务,并且 JVM 在到达“大”日志条目处理之前崩溃,您将不会记录任何内容。
推荐阅读
- chisel - 如何将 sbus 主机添加到火箭芯片外围设备
- laravel - Laravel 控制器
- python - 如何使用 python sumpy plot implicit 在同一个图中绘制不同的隐式方程
- replaykit - 使用 iOS replaykit 广播上传扩展时的图像残留问题
- c++ - 使用 Microsoft Visual Studio 2015 Community 和 Allegro5 Nuget 包无法解析的外部符号
- postgresql - postgres 数据库的备份给出 ssl 错误
- mysql - 找出每个 SQL 中的百分比
- r - R:如何从一个非常大的表格中快速选择两列中的常用词或相同数字?
- python - 保存到磁盘时 Numpy 数组大小不同(与 nbytes 相比)
- java - 错误 MSB6006:“java”退出,代码为 1 Proguard Xamarin