- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我的项目中使用了 log4cxx 来进行日志记录。但是,最近我注意到一些两个不同的日志行相互混合。我不确定是什么问题。例如,我期待像下面这样的日志行,
Printing the test line one
Printing the test line two
Printing the test line three
但是,日志是这样写的,
Printing the test Printing the test line two
line one
Printing the test line one
注意:我在我的应用程序中使用了多线程和多进程。
如果有人为此提供正确的解决方案,那就太好了。
提前致谢。
我已经在 log4cxx 中尝试使用 setBufferSize 和 setImmediateFlush 选项。但是,不起作用。
最佳答案
I have used the multi-thread and multi-process with my application.
这就是问题所在。显然 log4cxx 不是线程安全的,至少不是您当前使用的设施。然后发生的是一个线程开始写入日志消息,被另一个线程中断,另一个线程再次开始写入消息,将其放在已经启动但尚未完成的第一个线程中。
你可以解决问题e。 G。通过为每个线程设置单独的日志文件。不确定 log4cxx 原生支持的程度(我不太熟悉它),不过像线程本地 FileAppender
这样的东西可能会成功。
否则,您需要以某种方式保护 log4cxx 写入文件的点免受竞争条件的影响。请评价NDC首先,乍一看,这可能符合您的需求,但我没有深入挖掘......如果 native 不支持,您可能会用一些自定义的线程包装非线程安全的 FileAppender
您自己的安全 Appender 类。
如果你想从多个进程写入一个文件,你也需要在不同的进程之间进行同步。对 的支持完全取决于操作系统,但并不是所有的都为您提供适当的支持。
如果记录到数据库是一个选项,ODBCFileAppender
看起来也很有趣。我会假设(但你需要自己验证)每条日志消息都会产生它自己的 SQL 查询,因此写入同步将留给 DBMS。这不仅适用于线程,也适用于进程。
最后:您可以编写自己的日志服务器,接受来自不同线程的连接(例如管道或套接字)。它会缓冲每个连接的传入日志消息,并将它们一个接一个地写入文件。这在不同线程中也是安全的,类似于数据库解决方案。
关于c++ - 两个日志行与 c++ 中的 log4Cxx 混合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57690952/
我知道您不应该将打印与 printf,cout 和 wprintf,wcout 混合使用,但是很难找到一个好的答案,为什么以及是否可以绕过它。问题是我使用了一个用 printf 打印的外部库,而我自己
我有以下问题: class A: animal = 'gerbil' def __init__(self): self.result = self.calculate_
我在屏幕上渲染了一堆形状(多边形),我没有使用深度测试。 我只是希望这些形状在绘制在空白区域时使用自己的颜色,并且在绘制到任何非空区域时使用红色像素,即在我的情况下绘制在另一个多边形上。 这里的问题实
我正在尝试在我的 Groovy/Grails 应用程序中混入一个类,我正在使用 the syntax defined in the docs ,但我不断收到错误消息。 我有一个如下所示的域类: cla
我已经找到了 5349574673 个关于 Alpha 混合的页面,但我仍然无法获得想要的结果。我正在尝试使用 opengl 使 gif/png 文件正确显示(具有透明度/半透明度)。 这是我的初始化
我正在尝试记录以下代码,但我似乎无法让 JSDoc 记录该类,甚至无法引用它的存在。 // SomeMixin.js export default superclass => class SomeMi
我有一个类型家族,我想使用 mixin 以模块化方式“丰富”它们。例如: trait Family { self => trait Dog { def dogname:String
我在 Storyboard中有 Collection View 。我在 Storyboard中有一部分单元格,还有我以编程方式创建的部分单元格。我应该在 sizeForItemAtIndexPath
我有一个字节数组,我想更改它的访问方式。这是数组: char bytes[100]; 我想要另一个数组来改变原始数组的访问方式。如果我们可以将引用放在数组中,它看起来像这样: char& bytes_
我需要从 c 文件调用 cpp 方法。我为此编写了这个界面.. cpp文件 extern "C" void C_Test(int p){ Class::CPP_Test(p); } c文件
我的网站有两份 CSS 表,一份是主 CSS,一份是移动 CSS。问题是在移动设备(iPhone、Android)上查看时,两个样式表会混淆。例如,在 iPhone 上查看网站时,会应用主样式表中的某
维护人员的说明:此问题涉及已过时的 bokeh.charts API,该 API 已于多年前删除。有关使用现代 Bokeh 创建各种条形图的信息,请参阅: https://docs.bokeh.org
在下图中,蓝色圆圈仅用于调试目的。我的目标是蓝色圆圈后面的每一层都应该是透明的。我只想保持蓝色圆圈外面的可见。 这是用 swift 编写的代码: let croissantView = UIV
我不是 SQL 专家。我正在使用 SQL Server 2005,我正在尝试弄清楚如何构造一个查询,以便它可以满足多种要求。我有两个表定义如下: Classroom - ID - Departme
原创: 我之前问过这个问题,但我最初的例子有点不完整,我想我现在可以更具体地说明我的问题。 对于上下文,我在旧的 Apple mac 计算机上使用 openGL 3.3 并尝试渲染四边形的重叠层。每个
是否可以将内联(类似 json)映射与同一对象的常规映射定义混合使用? 考虑以下示例: person: {age: 32, weight: 82} name: foo 生成的人应具有给定的年龄、体
假设我有一个 Parent 类,它有四个字段 A、B、C 和 D,这样 C 和 D 可以选择传递或使用默认实现进行初始化: open class Parent(val a: A, val b: B,
我正在使用 symphony (1.4) 框架在 PHP 中开发一个 Web 应用程序。该代码使用 SVN 进行版本控制。在此网络应用程序中,我们所有客户共享一个共同的基础,以及一些专门为每个客户创建
我想使用两个小部件(一次一个)作为我的应用程序的基础/背景,上面有一个 QML UI 和一个无边框窗口。它应该看起来像这样: 基于 OpenGL 的扫描组件 通过窗口句柄操作的 3D 可视化组件 多个
我们有一个混合的 AngularJS/Angular 8 应用程序,并且我们不断遇到来自不同版本框架的组件之间的变化检测非常慢的问题。到目前为止,我们只在 Angular 组件中使用 AngularJ
我是一名优秀的程序员,十分优秀!