在Jython中用时间戳和计数器编写一个简单的记录器

时间:2012-04-26 18:06:19

标签: logging timestamp jython sikuli

我正在尝试在Jython中编写一个简单的记录器,我似乎无法在线找到任何有用的示例。

我已经检查了http://www.jython.org/docs/library/logging.html,但代码似乎对我不起作用。

我只想要一个简单的循环,每隔30秒将一个带有时间戳的字符串和一条消息(日志编号/计数)记录到日志文件中。我在Windows中使用Sikuli执行此操作。

日志消息示例:

2012-04-26 13:25:51 message number 75

任何人都可以帮助我。

提前致谢,

马尔

PS - 我之前从未使用过Jython。

2 个答案:

答案 0 :(得分:5)

对于这么简单的事情,你可以编写简单的例程:

import time

LOG_CNT = 0

def log(msg):
    global LOG_CNT
    LOG_CNT += 1
    dts = time.strftime('%Y-%m-%d %H:%M:%S')
    f = open('log.txt', 'a')
    f.write('%s: msg# %d: %s\n' % (dts, LOG_CNT, msg))
    f.close()


def test():
    log('zorro')
    time.sleep(5)
    log('bubu')


test()

答案 1 :(得分:2)

@MichałNiklas的回答要好得多,但另一种方法是使用记录到stdout的python print语句。

def log(msg):
    global LOG_CNT
    LOG_CNT += 1
    dts = time.strftime('%Y-%m-%d %H:%M:%S')
    print dts + "msg#" + LOG_CNT + msg

如果从命令行运行Sikuli,可以将其传送到文件。

sikli-ide.exe myProject.sikuli> stdoutfile.txt

Sikuli也会记录内部消息,所以这是一个比创建自己的日志文件更加丑陋的解决方案,但是在编写/调试sikuli脚本时可能会派上用场。