如何在log4cpp日志中附加Windows用户名
How to append Windows Username in log4cpp log
下面是我当前的模式布局集:
%d{%m/%d/%Y %H:%M:%S,%l} [%t] %-5p %c %x %m%n
因此,它输出如下到日志文件;
06/13/2017 10:57:44,632 [3684] INFO MyLogCategory File: myclass.cpp Line: 59 My Logged Message
我想将当前的 Windows 用户名添加到追加器中,以便我将获得以下输出.. 但到目前为止没有运气。我不想为每条消息添加 Windows 用户名,而是 log4cpp 应该获取当前用户名并附加到它记录的每条消息中(我不知道 log4cpp 有这个支持。我找到了一个模式键"H"或"h",但它不起作用并抛出未知的转换说明符"H"。
06/13/2017 10:57:44,632 [3684][**WINDOWS USER NAME**] INFO MyLogCategory File: myclass.cpp Line: 59 My Logged Message
我能够使用 NDC(嵌套诊断上下文)将用户名附加到日志中。
#include "log4cppNDC.hh"
然后我推送了每个线程的上下文(是的,NDC 是特定于线程的,除非您设置它,否则它不会对所有线程可见)。就我而言,我推送了Windows当前用户名。然后用户名会自动添加到所有日志中,这些日志是在设置了 NDC 的线程下添加的。
CString sUserContext = "[" + GetCurrentUserName() + "]";
std::string userContextStr = CT2CA(sUserContext);
log4cpp::NDC::push(userContextStr);
相关文章:
- 是否有 Windows 用户空间函数来枚举连接的网络共享?
- Windows 后台服务(系统配置文件)无法使用 C++ 访问 win 10 上的用户 appData 文件夹?
- 通过JNA发送用户定义的Windows消息
- 当PSO细粒度策略对使用AdsGetObject MSDN API的Windows操作系统生效时,如何获取用户密码到期日
- 在Windows中将用户输入屏蔽为星号
- 检查用户是否是 Windows 中本地计算机上的管理员C++
- 如何通过Windows API获取所有(未禁用)用户SID?
- 如何从 Windows 上的服务在未登录用户的桌面上启动应用程序
- 将Windows SYSTEMTIME转换为字符串或字符buf,C++与用户的"Region and Language"格式?
- 标准Windows 7用户如何能够删除C:Program Files下的文件
- 仅通过帐户名来获取Windows用户帐户SID
- 如何获得Windows用户帐户的用户权利和特权
- 如何添加基于时间的限制以阻止Windows用户登录
- Windows 用户模式调试器传输 Visual Studio 2012
- 使用netUserAdd功能创建Windows用户配置文件
- Visual Studio Online(调整用户权限-不是TFS用户,而是windows用户)
- 如何禁用Windows用户通过AdjustTokenPrivileges手动更改系统时间的功能
- 如何发现休眠是否适用于Windows用户(使用c++)
- 在哪里放置要与Windows用户的桌面设置一起漫游的用户数据文件?
- 如何将特定Windows用户路径替换为正在运行的用户