问题标签 [log4cxx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 类内的对象变为 NULL
我已经构建了 LOG4CXX 库和 DLL 并尝试在我的应用程序中使用它
在我的主要中,我正在初始化 Log 类对象并调用 Debug 方法将调试消息记录到文件中。
我面临的问题是在if(oLogger != NULL
),它总是将 oLogger 作为 NULL 返回。
任何人都可以提供任何帮助。
java - 与库一起使用的不同记录器
我的问题涉及库类(在库中使用的类)的日志记录,我们目前正在使用log4cxx
,但log4j
库实现了相同的概念。
假设我有一个具有多个实体 A、B 和 C 的进程。它们每个都使用许多不同的类和函数,在代码中清楚地分开。
A、B 和 C 使用许多库类、函数、对象、资源,有时甚至是全局变量(遗留代码,我对此无能为力......) - 让我们全部调用它们foo
记录 A、B 和 C 原来是一个性能问题,当我们将日志级别设置为调试时,日志被炸毁。查看我们的系统后,我们得出以下结论:
- 我们希望一次只能更改一个类的调试级别(或所有类,使用 root)
- 当各种
foo
打印要记录时,我们需要查看哪个实体调用它,A、B 或 C。 - 由于有很多
foo
我们希望能够为每个单独更改调试级别foo
- A
foo
应该被视为一个公共库,它不能直接依赖于 A、B 或 C。 - A、B 和 C 可能使用相同的实例
foo
(例如,我们的资源处理类的相同实例被使用 A、B 和 C),在日志中我们想查看使用了哪个类foo
。 - A可以使用B(或C),但我们不必在日志中看到它......
这是我们迄今为止提出的 -
A、B 和 C 将有单独的记录器。全局变量(与我们所有的日志记录助手和包装器一起保存在不同的库中)将始终保持当前的日志报告。每次实体开始处理其逻辑时,它都会将全局变量设置为适当的记录器。当 afoo
想要向日志报告时,它会通过全局变量进行报告并将其名称(和上下文)添加到日志消息中。
问题是,感觉必须有一些东西已经这样做了,解决方案感觉不干净,持有这样的全局变量......
我们在这里做错了吗?有没有更好的解决方案?
objective-c - Log4xx 作为 Cocoa 框架?
我们目前在 OS X 上使用 log4xx,.dylib
并且经常遇到应用程序无法加载库、路径错误、每个框架中有多个库的运行时问题。
是否有使用log4xx作为OS X 框架的现有项目?
log4xx 中的当前 Xcode 项目只是构建 dylib,所以想知道是否有任何特殊原因,或者如果在 OS X 上使用 log4xx 作为框架会破坏什么?
log4cxx - 如何在 log4cxx 的配置文件中为文件 appender 提供环境变量路径
我在开发和生产中有不同的日志位置,它们也可能是不同的平台,所以我想使用环境变量配置日志一次。
可能的位置:C:/logs/ T:/logs/ /var/logs/
在这个问题中,他们只需要那个,但它适用于 Java 并且正在使用 Java 系统属性,显然在 C++ 中不可用。
那么,有没有办法在 log4cxx 配置文件中使用环境变量?
c++ - Log4cxx 在没有关键部分的情况下使用很慢
我正在对 log4cxx 进行性能测试。当我直接调用 LOG4CXX_XXXXX 时,以下代码大约需要 10 秒才能完成记录所有内容。但是当我用 boost::lockguard (我认为这是一个关键部分)来结束调用时,大约需要 5 秒。有人可以解释为什么会这样,而不是相反。
我正在使用以下配置。使用/不使用 org.apache.log4j.AsyncAppender 运行没有区别
c++ - 取消为我的图书馆定义参考 log4cxx
我开始使用 Qt 和 log4cxx 来创建跟踪。
我创建了一个日志类,每次我想要一个日志时都会调用它,并将它放入我的项目的静态工具库中。我在构建它时没有收到任何错误,但是当我使用 lib 时,我会为每个宏调用得到:
/home/workspace/testEnvoi/mainwindow.cpp:110: 错误: 未定义引用`log4cxx::helpers::MessageBuffer::MessageBuffer()'
/home/workspace/testEnvoi/mainwindow.cpp:110:错误:未定义对“log4cxx::Level::getFatal()”的引用
等等。它看起来像一个链接错误,但我在构建我的库时没有任何链接错误,我的应用程序可以识别宏。因此,如果有人可以帮助我理解为什么会这样做以及可能的解决方案,我将不胜感激。
我的日志类如下:
。H:
.cpp:
还有我的应用程序中的一个问题,例如:
c++ - 局部静态指针变量不是线程安全的?
在我的服务器模块中,有时 log4cxx 库会导致它崩溃。
这是因为 ...
静态 LevelPtr 返回空指针。
我测试了以下代码。
这真的是线程不安全的,但我很好奇为什么 get_p() 返回空指针而不是另一个分配的地址。
这是因为在执行 new() 操作时该值设置为 0?
c++ - Log4cxx 日志记录语句挂起
我们有一个独立的 VC++ 应用程序,我们使用 log4cxx0.10.0 版本添加了日志记录。应用程序将启动一个线程(对于一些耗时的操作),如果它花费的时间超过阈值时间,那么主线程将使用 TerminateThread 方法终止线程。子线程函数也有一些日志打印。Log4CXX 配置了 1 MB 大小的滚动文件附加程序,5 个备份副本。日志在大多数情况下都可以正常工作。但是在某些情况下,主线程日志记录函数调用在杀死子线程后挂起,因此整个应用程序处于挂起状态。应用程序的后续实例也挂起。我们获取了应用程序的完整故障转储,并使用 WinDbg 进行了分析。
这是应用程序的调用堆栈
以及后续应用程序挂起以锁定实例的文件和调用堆栈,如下所示
我们检查了函数“决定”,它与锁定无关。它只是返回一些常量值。我读过 LOG4CXX 是线程安全的。这个问题并不经常发生,因此我们没有以一致方式重现的步骤。
当我们杀死子线程时有什么需要解决的吗?
c++ - log4cxx 使用每日日志设置日志文件
我将 log4cxx 用于我的 c++ 项目,并使用属性进行日志配置,这是我的情况,我想用每日日志文件记录我的项目,例如
有什么办法可以达到吗?
c++ - Building log4cxx with unixodbc
I have been trying to build log4cxx with unixodbc (I can connect to the database using console), but when trying to build log4cxx --with-ODBC, the ./configure always results in configure: error: unixODBC not found !
I have tried setting my LD_LIBRARY_PATH to where unixODBC is. Any hints?
Thanks.