【问题标题】:Dart How do I change the date format for the server loggerDart 如何更改服务器记录器的日期格式
【发布时间】:2014-08-19 21:26:23
【问题描述】:

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

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");

我如何向记录器提供我自己的日期时间,或者可以通过其他方式解决这个问题?

【问题讨论】:

  • 谢谢,效果很好!

标签: logging dart


【解决方案1】:

您可以将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) 将修复它。

【讨论】:

  • 我认为这可能是一个 Dart 错误,
猜你喜欢
  • 2019-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-06
  • 1970-01-01
  • 2017-06-25
相关资源
最近更新 更多