我今天使用默认值在我的服务器端代码中实现了日志记录,但输出字符串的日期部分具有月份应该是的分钟。记录到日志文件的内容是:
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");
如何将我自己的日期时间提供给记录器,还是可以通过其他方式修复?
答案 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)。