Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging Syslog和Cloud Foundry/Bluemix_Logging_Cloud Foundry_Ibm Cloud_Syslog - Fatal编程技术网

Logging Syslog和Cloud Foundry/Bluemix

Logging Syslog和Cloud Foundry/Bluemix,logging,cloud-foundry,ibm-cloud,syslog,Logging,Cloud Foundry,Ibm Cloud,Syslog,我一直在研究为SysLog定义一个用户服务。基本上,实现第三方日志记录服务(Papertrail)。设置起来很简单 cf cups纸质文件-lsyslog://papertail_url:port 它似乎工作正常,但我并没有真正详细地查看日志是否正常“排水”。和。。我的公司不允许我们与第三方存储日志。所以我编写了自己的SysLog服务器,并设置了一个指向我的服务器的用户服务 日志开始流动,但很快,我在套接字上的读取就会阻塞很长时间。。然后会有更多的数据进来。。但在这两者之间,它丢失了很多数据。请

我一直在研究为SysLog定义一个用户服务。基本上,实现第三方日志记录服务(Papertrail)。设置起来很简单

cf cups纸质文件-lsyslog://papertail_url:port

它似乎工作正常,但我并没有真正详细地查看日志是否正常“排水”。和。。我的公司不允许我们与第三方存储日志。所以我编写了自己的SysLog服务器,并设置了一个指向我的服务器的用户服务

日志开始流动,但很快,我在套接字上的读取就会阻塞很长时间。。然后会有更多的数据进来。。但在这两者之间,它丢失了很多数据。请记住,我做日志记录的Web应用程序也很简单,只会生成一些消息和故意错误的堆栈跟踪

但问题是,日志的流量不够频繁,一旦出现,就会丢失大量数据

所以,我再次建立了书面记录,看看这是不是我的密码。。。或者不是。但是相同的。即使流向书面记录也不能100%起作用。你会收到一些日志消息。。漫长的等待。。然后再来一些。还有更多的人被错过了

这里的CloudFoundry Loggregator服务似乎不太正常。有没有人经历过像我这样的问题?这是BlueMix的

注意:我确实读到过,在短时间内创建许多日志消息时,您将错过消息。。但事实并非如此。我还检查了我的Bluemix日志,看看是否有任何关于系统日志失败的消息。。但是我找不到


提前感谢…

其他人也报告了同样的问题。为了解决这个问题,Loggregator做了很多更改。这项工作正在积极进行中


您能否打开一个包含此信息的应用程序,IBM将不断更新您的信息?

其他人也报告了相同的问题。为了解决这个问题,Loggregator做了很多更改。这项工作正在积极进行中


您能否打开一个包含此信息的应用程序,IBM将不断更新您的信息?

其他人也报告了相同的问题。为了解决这个问题,Loggregator做了很多更改。这项工作正在积极进行中


您能否打开一个包含此信息的应用程序,IBM将不断更新您的信息?

其他人也报告了相同的问题。为了解决这个问题,Loggregator做了很多更改。这项工作正在积极进行中


您能否打开一个包含此信息的应用程序,IBM将不断更新您的信息?

这是IBM正在调查的一个已知问题。不幸的是,目前没有任何解决办法。

这是IBM正在调查的已知问题。不幸的是,目前没有任何解决办法。

这是IBM正在调查的已知问题。不幸的是,目前没有任何解决办法。

这是IBM正在调查的已知问题。不幸的是,目前没有任何解决办法。

我通过使用winston和winston papertrail模块手动登录到papertrail解决了这个问题

编辑以根据请求共享我的代码

我的代码实现非常基本,可以手动实现,我将进一步增强它。基本上,我将winston和winston papertrail两个模块都包含在my package.json的依赖项中,然后创建了以下日志帮助文件:

var winston = require('winston');

//
// Requiring `winston-papertrail` will expose
// `winston.transports.Papertrail`
//
require('winston-papertrail').Papertrail;

var winstonPapertrail, logger;

module.exports = {
    init: function (hostname) {
        return init(hostname);
    },
    info: function (logText){
        return log(logText,"info");
    },
    error: function (logText){
        return log(logText,"error");
    },
    log: function(logText){
        return log(logText,"debug")
    }
}

function init(program){
    winstonPapertrail = new winston.transports.Papertrail({
        host: <replacethiswithyourhostname> e.g.:'logsX.papertrailapp.com',
        port: <replacethiswithyourport>,
        program: program,
        handleExceptions: true
    });
    winstonPapertrail.on('error', function(err) {
        // Handle, report, or silently ignore connection errors and failures
    });

    logger = new winston.Logger({
        transports: [winstonPapertrail]
    });

    log(hostname+" starting","info");
}

function log(logText,level){
    if(level=="info"){
        console.info(logText);
        logger.info(logText);
    }else if(level=="error"){
        console.error(logText);
        logger.error(logText);
    }else if(level=="debug"){
        console.log(logText);
        logger.debug(logText);
    }
}
var winston=require('winston');
//
//要求“温斯顿书面记录”会暴露
//“温斯顿,运输公司,文书记录`
//
要求(“温斯顿书面记录”)。书面记录;
var winstonPapertrail,记录器;
module.exports={
初始化:函数(主机名){
返回init(主机名);
},
信息:功能(日志文本){
返回日志(日志文本,“信息”);
},
错误:函数(logText){
返回日志(日志文本,“错误”);
},
日志:函数(logText){
返回日志(日志文本,“调试”)
}
}
函数初始化(程序){
winston Papertrail=新的winston.transports.Papertrail({
主持人:例如:“logsX.papertrailap.com”,
端口:,
节目:节目,,
handleExceptions:true
});
winstonPapertrail.on('error',函数(err){
//处理、报告或静默忽略连接错误和故障
});
记录器=新的winston.logger({
运输:[温斯顿文书记录]
});
日志(主机名+开始”,“信息”);
}
功能日志(日志文本,级别){
如果(级别=“信息”){
控制台信息(日志文本);
logger.info(logText);
}否则如果(级别=“错误”){
控制台错误(日志文本);
logger.error(logText);
}else if(级别=“调试”){
console.log(logText);
logger.debug(logText);
}
}
然后,我将其保存为一个javascript文件,并将其导入主appand,然后可以通过首先使用exposed.init()方法,然后使用.log、.info、.error等在外部和内部进行日志记录

我确信这不是一个非常优雅的解决方案,但它目前正在发挥作用(例如,我可以在外部记录所有消息,而不会丢失任何消息)


James。

我通过使用winston和winston papertrail模块手动登录到papertrail解决了这个问题

编辑以根据请求共享我的代码

我的代码实现非常基本,可以手动实现,我将进一步增强它。基本上,我将winston和winston papertrail两个模块都包含在my package.json的依赖项中,然后创建了以下日志帮助文件:

var winston = require('winston');

//
// Requiring `winston-papertrail` will expose
// `winston.transports.Papertrail`
//
require('winston-papertrail').Papertrail;

var winstonPapertrail, logger;

module.exports = {
    init: function (hostname) {
        return init(hostname);
    },
    info: function (logText){
        return log(logText,"info");
    },
    error: function (logText){
        return log(logText,"error");
    },
    log: function(logText){
        return log(logText,"debug")
    }
}

function init(program){
    winstonPapertrail = new winston.transports.Papertrail({
        host: <replacethiswithyourhostname> e.g.:'logsX.papertrailapp.com',
        port: <replacethiswithyourport>,
        program: program,
        handleExceptions: true
    });
    winstonPapertrail.on('error', function(err) {
        // Handle, report, or silently ignore connection errors and failures
    });

    logger = new winston.Logger({
        transports: [winstonPapertrail]
    });

    log(hostname+" starting","info");
}

function log(logText,level){
    if(level=="info"){
        console.info(logText);
        logger.info(logText);
    }else if(level=="error"){
        console.error(logText);
        logger.error(logText);
    }else if(level=="debug"){
        console.log(logText);
        logger.debug(logText);
    }
}
var winston=require('winston');
//
//要求“温斯顿书面记录”会暴露
//“温斯顿,运输公司,文书记录`
//
要求(“温斯顿书面记录”)。书面记录;
var winstonPapertrail,记录器;
module.exports={
初始化:函数(主机名){
返回init(主机名);
},
信息:功能(日志文本){
返回日志(日志文本,“信息”);
},
错误:函数(logText){
返回日志(l