我有一个在R中记录一些信息的应用程序。我正在logging
为此使用库。我的问题是timestamp
没有毫秒数,而且我也无法始终获得良好的日志顺序。在日志文件中,R将日志按正确的顺序放置,但是我使用logstash
并es
具有历史记录和进行监视。因为时间戳记的日志顺序不正确,所以我想添加毫秒数。
我尝试使用strptime
和%OS(n)
,但似乎无法正常工作。如果添加%OS
,我NA
什至可以得到简单的结果:
strptime(Sys.time(), "%H:%M:%OS")
我已经看到有更多这样的帖子,但是没有答案,所以我也将其发布在这里。
我不得不说我在Linux Ubuntu 14.04下使用R 3.2.0。怎么解决呢?怎么有毫秒timestamp
?
确定,使用后strftime
,我得到的是毫秒,但似乎总是0。
我有一个日志格式化程序:
logFormatter <- function(record) {
sprintf('Application(%s) %s [%s] [] %s - %s', format(as.hexmode(Sys.getpid()), width = 8), record$levelname, strftime(record$timestamp, "%Y-%m-%dT%H:%M:%OS3"), record$logger, record$msg)
}
我添加了记录器:
addHandler(writeToFile, logger = "MyLogger", file = "/var/log/Application/logs.log", level = 'INFO', formatter = logFormatter)
我这样登录:
loginfo("some info X", logger = MyLogger)
但是输出似乎总是在第二个开始时:
Application(000018f3) INFO [2015-09-21T11:45:56.000] [] some info 1
Application(000018f3) INFO [2015-09-21T11:45:58.000] [] some info 2
Application(000018f3) INFO [2015-09-21T11:45:58.000] [] some info 3
Application(000018f3) INFO [2015-09-21T11:45:58.000] [] some info 4
Application(000018f3) INFO [2015-09-21T11:45:59.000] [] some info 5
要获取毫秒信息,通常设置
options(digits.secs = 3)
例如,这将给
> strptime(Sys.time(), format = "%Y-%m-%d %H:%M:%OS")
#[1] "2015-09-21 11:52:09.787 CEST"
也许这对您有帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句