Dart如何更改服务器记录器的日期格式

时间:2014-08-19 21:26:24

标签: logging dart

我今天使用默认值在我的服务器端代码中实现了日志记录,但输出字符串的日期部分具有月份应该是的分钟。记录到日志文件的内容是:

2014.49.19 13:49:54.079 fireimager_server.WebSocketServer   [INFO]: [CLIENT] CAMERA CAMERAREADY
2014.49.19 13:49:54.081 fireimager_server.WebSocketServer   [INFO]: [CLIENT] RESET Finished
2014.50.19 13:50:05.447 fireimager_server.WebSocketServer   [INFO]: [CLIENT] DOOR OPEN

似乎日期时间格式字符串(无论如何)可能如下所示:

"yyyy.mm.dd HH:mm:ss.SSS"

而不是

"yyyy.MM.dd HH:mm:ss.SSS"

一些代码

import 'package:logging/logging.dart';
import 'package:logging_handlers/server_logging_handlers.dart';

// in main

Logger.root.onRecord.listen(new SyncFileLoggingHandler("/data/airbornescience/logs/server.log"));

// in Class MicroServer
static final _logger = new Logger("fireimager_server.MicroServer");

如何将我自己的日期时间提供给记录器,还是可以通过其他方式修复?

1 个答案:

答案 0 :(得分:2)

您可以将StringTransformer传递给SyncFileLoggingHandler构造函数:

var trans = new StringTransformer(timestampFormat: "yyyy.MM.dd HH:mm:ss.SSS");

Logger.root.onRecord.listen(new SyncFileLoggingHandler(
'/data/airbornescience/logs/server.log', transformer: trans));

编辑:它似乎是logging_handlers包的已知错误;还有待审核的pull request (#8)