【库 log4ahk:v1&v2】autohotkey log日志库,支持终端、文件、多线程

功能

  1. 作为log日志库
  2. 方便调试
  3. 6种级别 trace>debug>info>warn>error>critical
  4. 可选输出到控制台、编辑器输出窗口、文件

下载链接

kazhafeizhale/ahk_log: ahk_log (github.com)

例子

V1  输出到控制台 文件 debug级别

#include <log>
log.is_out_file := true
log.level := log.level_debug
s1 := "100"
s2 := 100
s3 := "autohotkey"
s4 := {key : "nice"}
log.debug("debug")
log.trace("trace")
log.info(s1, s2, s3, s4) ;多个参数通过 "," 连接
log.warn(s1, s2, s3, s4)
log.err(s1, s2, s3, s4)
log.critical(s1, s2, s3, s4)
return

V1 输出到编辑器  文件  trace级别

#include <log>
log.is_out_file := true
log.is_use_editor := true
log.level := log.level_trace
s1 := "100"
s2 := 100
s3 := "autohotkey"
s4 := {key : "nice"}
log.debug("debug")
log.trace("trace")
log.info(s1, s2, s3, s4) ;多个参数通过 "," 连接
log.warn(s1, s2, s3, s4)
log.err(s1, s2, s3, s4)
log.critical(s1, s2, s3, s4)
return

V1 只输出到编辑器  trace 级别

#include <log>
log.is_use_editor := true
s1 := "100"
s2 := 100
s3 := "autohotkey"
s4 := {key : "nice"}
log.debug("debug")
log.trace("trace")
log.info(s1, s2, s3, s4) ;多个参数通过 "," 连接
log.warn(s1, s2, s3, s4)
log.err(s1, s2, s3, s4)
log.critical(s1, s2, s3, s4)
return

V2 输出到控制台  trace级别

;打开输出到文件
logger.is_out_file := true 

;需要输出到编辑器终端时
;logger.is_use_editor := true

logger.level := logger.level_trace
logger.debug("debug")
logger.trace("trace")

s1 := "100"
s2 := 100
s3 := "autohotkey"
s4 := map("key", "nice")
obj := {key : "value"}
logger.info(obj)
;多个参数通过 "," 连接
;info warn critical err
logger.info(s1, s2, s3, s4)
logger.warn(s1, s2, s3, s4)
logger.err(s1, s2, s3, s4)
logger.critical(s1, s2, s3, s4)
loop(100)
    logger.info(A_index)
logger.info(Log('10'))

#include <log>

效果:

【库  log4ahk:v1&amp;v2】autohotkey log日志库,支持终端、文件、多线程

说明

1、把lib文件放到解释器目录,作为标准库使用

脚本任意位置   #include <log> 

2、默认输出到终端

3、默认不输出到文件

4、支持六种级别log,见例子

给TA捐赠
共{{data.count}}人
人已捐赠
其他教程

让无标题窗口,可以随意的拖动

2021-7-24 6:56:52

其他

群晖共享文件夹映射到电脑桌面 2021年7月25日 星期日 多云转晴

2021-7-25 13:21:06

14 条回复 A文章作者 M管理员
  1. 僵尸牌木乃伊

    输出中文的时候经常乱码,此图为测试,循环比较多,有时候加五六条就随机出现乱码

    • ahker

      第一条log-100ms-1s内可能会出现,延迟1s可以临时解决

  2. 岁月如歌AHK1

    问题笔记:
    1、在scite中按F5运行调用#include 的脚本,跳出来的ConEmu控制台无内容。
    解决:在scite中用”快速运行”(ctrl+shift+f5)替代”运行”(F5)来执行脚本。
    原因:默认的F5运行,命令行为 “ahk路径/autohotkey.exe” /ErrorStdOut “脚本路径/jiaoben.ahk”。
    /ErrorStdOut 参数会接手本次运行脚本的自身控制台,导致ConEmu控制台无法捕捉脚本控制台。
    而“快速运行”则无此/ErrorStdOut 参数,不会影响ConEmu控制台的捕捉。
    2、使用log4ahk后,ConEmu控制台可能会替代系统的cmd.exe,影响cmd.exe的使用。
    解决:打开ConEmu》设置》集成》默认终端》将”强制使用conemu作为默认终端”前面的勾选取消》保存设置。

    • 岁月如歌AHK1

      3、conemu控制台出现中文乱码:
      调试方案:
      用:iconcp:=DllCall(“GetConsoleCP”,”Int”)
      iconoutcp:=DllCall(“GetConsoleOutputCP”,”Int”)
      MsgBox,% “iconcp:” iconcp “`niconoutcp” iconoutcp
      ;获取当前控制台的输入和输出字符编码的代码,一般是936(简体中文)或96001(UTF-8)
      用:dllCall(“SetConsoleOutputCP”, “UInt”, 936 ) ;一般中文用936,否则96001
      dllCall(“SetConsoleCP”, “UInt”, 936 ) ;一般中文用936,否则96001
      ;设置当前控制台的输入和输出字符编码的代码,一般是936(简体中文)或96001(UTF-8)
      进行调试。

    • 僵尸牌木乃伊

      不行 需要启动一次,然后延时,后面正常
      之前我就改过cmder的编码
      现在用系统的,也挺好

    • 岁月如歌AHK1

      你这个显示部分乱码,说明终端本身的编码没问题。问题应该发生在,字符串变量和字符串的传值过程过程。

    • ahker

      conemu 自己的问题,你把cmder文件夹删掉就知道了

    • ahker

      设置: log.is_use_cmder := false 可以避免这个问题

  3. AHK中文社区

    trace级别和debug级别具体什么差别

  4. 薛定谔的猫

    可能需要动态设置日志级别,如果是为了不同颜色,应用时直接设置trace就好了

个人中心
购物车
优惠劵
有新私信 私信列表
搜索