java - 日志记录框架注意事项

标签 java c++ performance logging frameworks

我正在设计一个用于日志记录的服务器。此应用程序的业务逻辑是用多种语言编写的(目前为 C++ 和 Java,但其他语言可能会在稍后阶段添加到组合中。

我正在考虑使它成为一个具有定义良好接口(interface)的独立服务器,以确保我以后不需要将其移植到其他语言。对于可扩展性,主应用程序能够在负载均衡器支持的多台机器上运行多个实例。

设计的一个重要考虑因素(除了像日志级别这样的常见问题)是性能和对多个日志目标(平面文件、控制台、DB(?) 等)的支持。

如何确保记录器不会影响应用程序的性能?使用套接字进行通信有意义吗?有一个更好的方法吗?

最佳答案

是否需要共享所有日志?我会使用最适合逻辑的每个阶段的任何日志记录机制(log4j 或 java 中的 java 日志记录,我想我对 C++ 的日志记录库的了解不足以提出建议。)

在大多数情况下,日志只能用于调试和应用外解析。我不建议将日志记录集成为业务逻辑的一部分。如果您确实需要日志中的数据,最好直接进行通信,而不是吐出日志让另一个应用程序吞噬它。

如果您确实需要它,您可以使用一个外部(优先级非常低的)应用程序来获取日志并将它们发送回中央日志服务器。

关于java - 日志记录框架注意事项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7338113/

相关文章:

c++ - 使用 OpenCV C++ 进行楼梯检测的线拟合

java - 在 Java : loop variable vs enhanced for statement 中迭代数组的最快方法

java - em.createNativeQuery() 返回空指针异常,无法加入 CMTTransaction

java - 如何在 JPA 中对集合属性进行动态排序?

java - 使用 Java 套接字处理无法访问的 UDP 端口

c++ - 结构中的结构数组,C++ 代码

c++ - 注册表中的 Internet 设置 - 如何代理自动登录?

python - 寻找更好的方法来计算矩阵

performance - VMWare 服务器 : Virtual Hard Drive Type

java - 编译 Java 类时禁用编译时依赖性检查