【问题标题】:A simple log file format一种简单的日志文件格式
【发布时间】:2010-05-11 11:48:40
【问题描述】:

我不确定是否有人问过,但我找不到类似的东西。

我的程序使用一个简单的 .txt 文件来记录日志,它只是创建/打开一个文件并附加行。

一段时间后,我开始记录很多活动,因此文件变得太大而难以阅读。我知道,这不是写的方式,但我只需要一个可读的文件。

所以我想也许有一个简单的日志文件文件格式和一个软件来查看它,或者如果你对这个问题有任何其他建议?

提前感谢您的帮助。

更新:

它是访问 97 应用程序。我正在记录一些活动,如表单加载、SELECT/INSERT/UPDATE 到 MS SQL Server ... 日志文件并不大,我只是写了操作的持续时间,所以我需要一个简单的方法来做到这一点。

日志文件是在用户的机器上创建的。它用于监控记录某些活动的持续时间。

有没有办法查看用现有工具突出显示的那种简单日志文件?

简单地说,我想:

1) 将 smth like "'CurrentTime' 'ActivityName' 'Duration in milliseconds' "(可能是一些附加信息,如查询字符串)写入文件。 p>

2) 使用工具打开它并查看它突出显示或以某种方式更具可读性。

回答:我找到了一个很好的工具来做我想做的所有事情。检查我的答案。

LogExpert

【问题讨论】:

  • 您能否提供更多关于您的日志记录和记录量等的详细信息?谢谢。
  • 以及您使用的是什么语言...这是 Java、C、shell 脚本吗?

标签: sql-server ms-access logging


【解决方案1】:

三个W:

何时、何地、何地。

用于查看类似 multitail 的内容(“tail on steroids”)http://www.vanheusden.com/multitail/

或者对于纯 ms windows 试试 mtail http://ophilipp.free.fr/op_tail.htm

为了让您的文件保持可读性,您可能希望在当前日志文件的文件大小超过特定限制时启动新文件。示例:

  • activity0.log (1 mb)
  • activity1.log (1 mb)
  • activity2.log (1 mb)
  • activity3.log (1 mb)
  • activity4.log(205 字节)

【讨论】:

  • 嗯..有用的建议。谢谢:)
  • 但是有没有办法让应用程序可以理解它?
  • 什么是“可以理解的应用程序”?使用 multitail,您可以通过各种方式过滤或突出显示条目。
  • @thephpdeveloper 感谢您的清理工作。为什么要删除多尾引用?没用吗?
  • @zaf - 我认为我们同时提交了更改,因此导致删除。加回来了!
【解决方案2】:

处理从应用程序记录到纯文本文件的相当标准的方法是:

  • 将日志分成不同的程序功能区。
  • 每天/每周轮换日志(即按大小或日期拆分日志)
    • 所以当前日志是“mylog.log”或其他什么,昨天的日志是“mylog.log.1”或“mylog.ddmmyyyy.log”

这使活动日志的大小保持可管理。然后你可以设置过期规则,以便定期丢弃旧日志。

此外,最好为您的应用程序设置不同的日志级别(信息/警告/错误/致命),这样您的日志记录就不会超出必要的范围。

【讨论】:

  • 谢谢。是的,有严重性是对的,但我使用我的日志文件进行监控,我记录了一些活动持续时间,而不是错误。
【解决方案3】:

首先,检查您是否只记录有用的内容。

如果一切有用,请确保它可以通过 grep 等工具轻松解析,这样您就可以找到所需的信息。确保您的日志条目类型、日期/时间都符合布局。

自己构建一些脚本来为您提取信息。 或者,对不同类型的条目使用单独的日志文件。

【讨论】:

  • 我试图找到一个现有的工具。
【解决方案4】:

基本上,您最好只根据严重性拆分日志。您很少需要阅读整个系统的所有日志。例如apache允许配置错误日志和访问日志,很明显他们有什么信息。

如果您使用的是 linux 系统,则 grep 是您在日志中搜索特定条目的最佳工具。

【讨论】:

  • 日志文件正在用户的装有 WinXp 的计算机上创建
【解决方案5】:

查看流行的日志文件,例如 Unix 上的 /var/log/syslog 以获得想法:

MMM DD HH:MM:SS hostname process[pid]: message

我的系统日志中的示例:

May 11 12:58:39 raphaelm anacron[1086]: Normal exit (1 job run)

但为了给您完美的答案,我们需要更多关于您正在记录什么、多少以及您希望如何阅读日志的信息。

【讨论】:

  • 但是如果我以 txt 格式保存文件,它不会被突出显示或类似它以使日志文件更具可读性。我已经编辑了我的问题。
  • 名称的结尾(.txt 或 .log 或其他)与内容无关。也许你想给我们一个你当前日志文件的例子?
  • 我可以用任何方式写日志文件。我需要的是某种可以被程序理解的文件格式,它将向我显示突出显示的日志文件或以某种方式更具可读性。
  • 您想编写这样的程序来突出显示还是正在寻找现有的程序?在第二种情况下,例如 CSV (=> Excel) 是什么?我知道,它不是真正的 突出显示,但它是可搜索的、基于列的并且很受欢迎。并且:结合日志轮换或拆分为多个文件……
  • 我想到了一个现有的日志文件工具。在我的情况下可以使用 Excel,但这不是一种简单快捷的方法。简单地说,我想将“11/05/10 14:32:00 ”(可能是一些附加信息,如查询字符串)写入文件,用工具打开它,然后查看它突出显示或以某种方式更具可读性。
【解决方案6】:

如果只有日志文件的大小是问题,我建议使用 logrotate 或类似的东西。 logrotate 监视日志文件,并且根据您的配置方式,在给定时间之后或当日志文件超过给定大小时,它将日志文件移动到存档目录并可选择压缩它。然后原始日志文件被截断。例如,您可以将其配置为每 24 小时或文件大小超过 500kb 时归档日志文件。

【讨论】:

  • 不,主要问题是它不可读。我希望找到一个 GUI 来查看它,但感谢您的回答。不知道 logrotate。
【解决方案7】:

如果这是一个程序,您可能会调查 apache 日志库 (http://logging.apache.org/) 开箱即用,它们会为您提供开箱即用的体面日志格式。它们也是可定制的,因此您可以简化解析工作。

如果这是一个脚本,请查看其他一些答案。

【讨论】:

  • 我在 Java 中使用过 Log4j,但在旧的 MS Access 97 中对日志记录没有任何帮助。
【解决方案8】:

LogExpert

我在这里找到了。过滤器比 mtail 更好。有一个突出显示的选项,只需添加一个字符串,该应用程序很好且可读。您可以根据需要自定义列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    • 2016-05-02
    • 1970-01-01
    相关资源
    最近更新 更多