3

我正在尝试在 Jython 中编写一个简单的记录器,但我似乎无法在网上找到任何工作示例。

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

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

日志消息示例:

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

谁能帮我吗。

提前致谢,

马旺

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

4

2 回答 2

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()
于 2012-04-27T08:38:29.120 回答
2

@Michał Niklas 的答案要好得多,但另一种方法是使用记录到标准输出的 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 脚本时。

于 2012-04-27T16:36:58.900 回答