标题: [文本处理] 【已完成】自制批处理日志方面的疑问 [打印本页]
作者: chouxia 时间: 2015-10-2 14:24 标题: 【已完成】自制批处理日志方面的疑问
本帖最后由 chouxia 于 2015-10-3 14:32 编辑
现在有N个批处理可能会同时运行,为了记录运行状态,我在每个批处理中用echo xxxx >>log.txt这样的方式将我需要的日志内容写入文件。
这样的方法优点是代码比较简单。缺点是echo写入的时候txt有一瞬间txt文件被锁定。
现在有一个问题,在txt被锁定的一瞬间,别的bat会写日志失败。
而echo我不知道是否有errorlevel。
所以来请教下,有什么靠谱的方法来实现日志写入嘛?
作者: CrLf 时间: 2015-10-2 18:33
wait…
这几天正好在折腾这个小工程,有空发上来
作者: cjiabing 时间: 2015-10-2 20:33
这么说分开log可能会好些
作者: CrLf 时间: 2015-10-3 06:43
试试用这个:http://www.bathome.net/viewthread.php?tid=37531
启用一个服务器,之后用本机任何一个进程都能通过该服务器端统一写入日志,因为 JavaScript 是通过事件轮询机制来实现单线程运行的,所以不会发生同时写入的情况。- @echo off
-
- start cmd /c "node.exe Bridge.js server 192.168.0.* >日志.log 2>&1"
- ::创建一个服务器端,默认监听端口为 8848,默认管理员 IP 为 127.0.0.1
- ::IP 为 192.168.0.* 的用户均可接入,但不能进行风险操作
-
- node.exe Bridge.js log Text FileName
- ::客户端命令服务器端记录一条日志,内容为 Text,保存在 FileName.log 中
复制代码
服务器只需启用一次
作者: chouxia 时间: 2015-10-3 13:21
楼上的 你解决了我全部脚本的日志问题。
我的所有服务器都可以写日志了。
但是还有一个问题。
如果我需要分别写几个日志怎么办?
作者: chouxia 时间: 2015-10-3 13:24
本帖最后由 chouxia 于 2015-10-3 13:27 编辑
CrLf
你看我的理解对不对
开机的时候执行start cmd /c "node.exe Bridge.js server 192.168.0.* >日志.log 2>&1"
就好。
这个“日志.log”可以不是我想写入内容的文件。
正式写入内容的时候我可以用node.exe Bridge.js log Text FileName来随意写。 FileName是可以随便换的?
如果是多个网段通讯呢?改成192.168.*.*?
作者: CrLf 时间: 2015-10-3 13:40
本帖最后由 CrLf 于 2015-10-3 13:43 编辑
回复 6# chouxia
server 端输出的只是运行时产生的关键信息回显(就是你给的例子中输出到日志.txt 的内容),仅用于观察服务器端的运行状态,真正的日志由客户端的 log 命令发布,默认保存在 Bridge_服务器端启动时间.log 中,当然你也可以用 log 命令的第二参数自定义文件名
多网段通讯可以写成:- node bridge.js server 192.168.*.*
复制代码
更精确一点可以这样:- node bridge.js server 192.168.1.* 192.168.2.*
复制代码
作者: chouxia 时间: 2015-10-3 14:03
回复 7# CrLf
客户端运行的时候不需要制定server端的ip吗?
看了你提供的帖子。发现没有客户端是否需要指定服务器ip的说明
作者: CrLf 时间: 2015-10-3 14:19
回复 8# chouxia
忘了说明,非本机的客户端要这样:- node bridge.js 192.168.0.100 log 日志内容 日志名[可选]
- ::连接 IP 为 192.168.0.100 的服务器,默认使用 8848 端口
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |