使用log4net,我已经看到了使用称为NDC的每个线程堆栈的上下文标签的可能性.
通过指定%x或%ndc格式参数,在此堆栈上推送的标签将显示在PatternLayout中.
用法如下:
ILog log = log4net.LogManager.GetLogger(...) ;
//pattern layout format: "[%ndc] - %message%newline"
log.Info("message 1");
using(log4net.NDC.Push("context")
{
using(log4net.NDC.Push("inner_context")
{
log.Info("message 2");
}
log.Info("message 3");
}
log.Info("message 4");
Run Code Online (Sandbox Code Playgroud)
输出类似于:
null - message 1
context inner_context - message 2
context - message 3
null - message 4
Run Code Online (Sandbox Code Playgroud)
在使用log4net的编程经验中,您何时发现此功能有用?
我刚刚安装了Webmin并创建了一个看起来正确的区域,因为Check BIND返回
在BIND配置文件/etc/named.conf或引用的区域文件中未发现任何错误.
问题是,在数小时后,我的域仍然无法解析,但不是立即返回UNKNOWN SERVER,它会在返回UNKNOWN SERVER消息之前延迟大约30秒.
阅读webmin上的教程,我发现需要点击"Apply Zone",然后出现错误:
NDC命令失败:rndc:既未找到/etc/rndc.conf也未找到/etc/rndc.key
所以阅读错误发现"rndc-confgen"并使用"rndc-confgen -a"创建了密钥文件,但它仍然失败:
NDC命令失败:rndc:connect failed:127.0.0.1#953:连接被拒绝
所以我想这是一个服务,但不知道如何启动它...尝试"rndc-confgen> /etc/rndc.conf"但现在我收到此错误:
NDC命令失败:警告:密钥文件(/etc/rndc.key)存在,但使用默认配置文件(/etc/rndc.conf)rndc:connect failed:127.0.0.1#953:连接被拒绝
所以我想我仍然需要启动服务但不知道如何做到这一点......我有一个Fedora 14虚拟服务器,有这些命令可用rndc和rndc-confgen.
我已经使用 Express 构建了一个 Node JS REST 服务。落在此服务上的每个请求都有诸如“X-org-ReqId”和“X-org-Tid”之类的标头,我需要登录在执行此请求期间写入的所有日志行。基本上,我需要在每个日志行中记录一些上下文信息,以帮助我通过多个服务进行事务/请求跟踪。
我正在使用像这样初始化的 winston 记录器:
var winston = require('winston');
var appLogger = new(winston.Logger)({
transports: [
new(winston.transports.Console)({
level: 'info', //TODO: Should be changed to Error in prod
colorize: true
}),
new(winston.transports.DailyRotateFile)({
filename: '/var/log/org/my-service.log',
datePattern: '.yyyy-MM-dd',
tailable: true,
// handleExceptions: true,
json: true,
logstash: true
})
],
exitOnError: false
});
appLogger.on('error', function(err) {
console.error("Logger in error", err);
});
module.exports.logger = function() {
return appLogger;
};
Run Code Online (Sandbox Code Playgroud)
在我想使用它的个别课程中,我喜欢这样:
var logger = require('../config/logger').logger();
myObject.on("error", function (err) {
logger.error("Error connecting bucket=" …Run Code Online (Sandbox Code Playgroud) 我的 android 目标是使用静态 IP 通过以太网连接。我可以使用 ADB 连接它,但无法 ping 任何服务器。请告诉我如何配置 DNS 设置以便可以 ping 任何服务器。
简单来说,Log4j SyslogAppender是否支持MDC和NDC,因为输出是结构化数据,即使用协议的结构化数据功能?
此外,对于可以放入MDC并成功附加到日志中的内容是否有任何限制?
我正在尝试为log4j生成支持MDC的纯文本文件找到日志查看器.我看过像Chainsaw,LogSaw,Otros这样的一些人,但他们似乎只支持NDC.
谁能指出我正确的方向?