基本上 易语言的常见的调试信息 ,以最常见的易语言多线程脚本为例

1.易语言下的 调试输出()函数

优点:

(1)这个日志信息是最常用的 也是易语言内置的 不需要担心日志冲突速度也蛮快

缺点:

(1)因为易语言的反馈输出界面有显示上限 比如能显示100行 超出了100行就会自动抹去之前的内容 整个页面从新开始记录 这样我们稍微大一点的日志就无法查看完整 非常的忌讳这个情况

(2)这个方法无法把日志写到文件里面保存 对于查看日志更是问题大大的

(3)一旦易语言脚本编译完成 调试输出就是无效了

2.自己构建的综合日志文件 多线程和主线程的日志信息都悉数写入这个综合日志文件

.版本 2

'3 日志输出到综合日志文件

.如果真 (开启综合日志)

日志文件名 = 时间到文本 (当前时间, #日期部分) + “.txt”

日志文件路径 = 日志目录路径 + “\” + 日志文件名

线程_进入许可区 (许可证_综合日志文件操作)

.如果真 (zjl取反 (文件是否存在 (日志文件路径)))

写到文件 (日志文件路径, 到字节集 (“”))

.如果真结束

文件号 = 打开文件 (日志文件路径, #读写, )

移到文件尾 (文件号)

写文本行 (文件号, 要写入的日志内容)

关闭文件 (文件号)

线程_退出许可区 (许可证_综合日志文件操作)

这个掐头去尾的代码就是自己写的把所有线程的日志都写入到一个以当前日期命名的txt文件里面

优点:所有的日志都可以以文件的形式保存 并且每天的日志 都对应以当天日期命名的txt文件查找方便

缺点:

(1)因为使用了许可证 效率堪忧

(2)所有的线程都把日志写入一个文件 看起来非常杂乱 虽然我在日志里面增加了线程对应的线程序号来标识 但是查阅起来依然不太方便 当然 写一个把日志进行自动过滤归类的小函数也不难  不过这个方法可以作为一个备用手段

3.有的时候 所有线程和主线程的日志都写入一个日志文件显的杂乱不堪  就每个线程对应一个独立的日志文件 主线程也是对应1个独立日志文件

.版本 2

'4 日志输出到独立的线程日志文件 每个线程对应一个独立的日志文件 所以不用许可证了

.如果真 (开启独立线程日志 = 真)'如果开启了线程独立日志

独立线程日志前缀 = “线程日志_” + 时间到文本 (当前时间, #日期部分) + “_”'写入日志文件

日志文件名 = 独立线程日志前缀 + 到文本 (大漠多线程数组标识) + “.txt”

日志文件路径 = 日志目录路径 + “\” + 日志文件名

.如果真 (zjl取反 (文件是否存在 (日志文件路径)))

写到文件 (日志文件路径, 到字节集 (“”))

.如果真结束

文件号 = 打开文件 (日志文件路径, #读写, )

移到文件尾 (文件号)

写文本行 (文件号, 要写入的日志内容)

关闭文件 (文件号)

优点:一个线程对应1个日志文件 就不会出现日志冲突问题 所以就无需考虑许可证的使用 效率上可以

缺点:每个线程对应一个日志文件 看起来的确比所有线程日志都在一个日志文件要清晰许多 不过毕竟是分了多个文件 不过瑕不掩瑜 还是不错的

4 大漠老师推荐的以系统API(OutputDebugStringA) 输出 以debugview接收的日志(真是神的一逼)

.版本 2.DLL命令 OutputDebugStringA, ,"kernel32", "OutputDebugStringA", , 是windows下的api 负责输出调试信息

.参数 lpOutputString, 文本型, ,0.版本2.子程序 大漠日志_初始化, , , 这是大漠推荐的日志 使用系统api OutputDebugStringA实现 支持远程获取其他机器的实时日志的功能 使用debugview查看实时日志 非常强大 但是在调试模式下OutputDebugStringA实现发送的日志会被易语言拦截导致debugview无法接收到 只能脚本编译后才能正常工作是它的缺点

许可证_大漠日志操作 = 线程_创建许可证 ()

.子程序 大漠日志_输出, , , 这是大漠推荐的日志 使用系统api OutputDebugStringA实现 支持远程获取其他机器的实时日志的功能 使用debugview查看实时日志 非常强大 但是在调试模式下OutputDebugStringA实现发送的日志会被易语言拦截导致debugview无法接收到 只能脚本编译后才能正常工作是它的缺点

.参数 日志内容, 文本型

线程_进入许可区 (许可证_大漠日志操作)

OutputDebugStringA (日志内容)

线程_退出许可区 (许可证_大漠日志操作)

优点:

(1)这个日志支持远程获取其他机器上的实时日志  就这一个功能就让其他日志汗颜 具体的如何实现

注:双击之后 我发现 实际上出现了 等待窗口 但是会自动跳转到右下的任务区 自己看看那里的任务图标 能找到等待窗口

缺点:

(1)这个日志 如果是在调试版的情况下(就是没有编译为exe的时候) 是无法在debugview里面接收到日志的 这个是最大的问题  调试脚本代码的时候看不到日志 要你何用

(2)这个日志依然需要许可证来控制 避免日志冲突

(3)debugview虽然支持过滤来查看指定线程的日志 但是 一次只能过滤一个线程的 并且无法实时的对日志进行分门归类 还需要自己写函数来归类 比较麻烦

上述的日志都各有自己的优缺点 考虑了一下 依照我目前对这些日志的理解  我目前使用的日志思路如下

0 界面增加3个勾选来控制是否把日志输出到界面的超级编辑框里 是否把日志输出到综合日志文件里 是否把日志输出到独立的线程日志文件里面 不过一般默认是 把日志输出到超级编辑框 不输出到综合日志文件里 把日志输出到独立的线程日志文件

1.首先判断下 当前是否为调试版

2 为调试版 使用调试输出() 输出日志 然后 是否把日志输出到界面的超级编辑框里 是否把日志输出到综合日志文件里 是否把日志输出到独立的线程日志文件里 还是由界面的3个勾选来控制即可

3 不是调试版 就是已经编译为exe的  为了大漠日志的远程接收调试信息的功能 首先用大漠日志输出 然后 是否把日志输出到界面的超级编辑框里 是否把日志输出到综合日志文件里 是否把日志输出到独立的线程日志文件里 还是由界面的3个勾选来控制即可

.版本 2.支持库 iext2

.支持库 spec

.子程序 写入日志, , , 这个函数包含多个功能1.调试输出日志内容2.把日志写到界面的超级编辑框中 3日志写入一个指定的综合日志文件里 4日志根据线程序号不同分门别类的写到独立的线程日志文件里面5 当前日志是否写入到界面的超级编辑框

.参数 大漠多线程数组标识, 整数型, , 对应的线程id 为0表示主线程 其他从1开始是正常线程 监控线程的日志也写到对应的线程日志文件里面不过内容多个[监]

.参数 日志内容, 文本型, , 日志内容

.参数 警告等级, 整数型, 可空, 超级编辑框的文字颜色表示日志严重等级0 1 2 3分别对应 黑色 蓝色 橙色 红色的警告等级 默认为0

.参数 开启综合日志, 逻辑型, 可空, 是否把日志统一写入一个日志文件

.参数 开启独立线程日志, 逻辑型, 可空, 是否把日志写到对应的独立的线程日志文件里面

.参数 关闭编辑框日志记录, 逻辑型, 可空, 为真就不向超级编辑框里面写入日志了 默认为假自然是写入的

.局部变量 当前时间, 日期时间型

.局部变量 日志文件名, 文本型

.局部变量 文件号, 整数型

.局部变量 日志文件路径, 文本型

.局部变量 要写入的日志内容, 文本型

.局部变量 字体大小, 整数型

.局部变量 日志内容格式, 字符格式

.局部变量 独立线程日志前缀, 文本型'0 格式化要写入的日志内容 加上前缀等等

当前时间 = 取现行时间 ()

要写入的日志内容 = zjl时间格式化 (当前时间) + “-” + “[” + 到文本 (大漠多线程数组标识) + “]” + 日志内容' ====如果是调试模式 那么就是正常的 先调试输出 然后到超级编辑框上 再确定是否写入综合日志文件 再确定是否写入线程独立日志文件

.如果 (是否为调试版 ())'1.调试输出信心

调试输出 (要写入的日志内容)' 2界面超级编辑框日志输出

.如果真 (关闭编辑框日志记录 = 假)

.如果真 (是否为空 (警告等级))

警告等级 =0.如果真结束'字体大小 = 8

.判断开始 (警告等级 = 0)

日志内容格式.文本颜色 = #默认色

.判断 (警告等级 = 1)

日志内容格式.文本颜色 = #蓝色

.判断 (警告等级 = 2)

日志内容格式.文本颜色 = #黄色

.判断 (警告等级 = 3)

日志内容格式.文本颜色 = #红色

.默认

日志内容格式.文本颜色 = #默认色

.判断结束

日志内容格式.字体大小 = 8'字体固定为8把 也不用多费劲了

_启动窗口.超级编辑框_日志.置选择区字符格式 (日志内容格式)

线程_进入许可区 (许可证_超级编辑框_日志)

_启动窗口.超级编辑框_日志.被选择文本 = 要写入的日志内容 + #换行符

线程_退出许可区 (许可证_超级编辑框_日志)

.如果真结束'3 日志输出到综合日志文件

.如果真 (开启综合日志)

日志文件名 = 时间到文本 (当前时间, #日期部分) + “.txt”

日志文件路径 = 日志目录路径 + “\” + 日志文件名

线程_进入许可区 (许可证_综合日志文件操作)

.如果真 (zjl取反 (文件是否存在 (日志文件路径)))

写到文件 (日志文件路径, 到字节集 (“”))

.如果真结束

文件号 = 打开文件 (日志文件路径, #读写, )

移到文件尾 (文件号)

写文本行 (文件号, 要写入的日志内容)

关闭文件 (文件号)

线程_退出许可区 (许可证_综合日志文件操作)

.如果真结束' 4日志输出到独立的线程日志文件 每个线程对应一个独立的日志文件 所以不用许可证了

.如果真 (开启独立线程日志 = 真)'如果开启了线程独立日志

独立线程日志前缀 = “线程日志_” + 时间到文本 (当前时间, #日期部分) + “_”'写入日志文件

日志文件名 = 独立线程日志前缀 + 到文本 (大漠多线程数组标识) + “.txt”

日志文件路径 = 日志目录路径 + “\” + 日志文件名

.如果真 (zjl取反 (文件是否存在 (日志文件路径)))

写到文件 (日志文件路径, 到字节集 (“”))

.如果真结束

文件号 = 打开文件 (日志文件路径, #读写, )

移到文件尾 (文件号)

写文本行 (文件号, 要写入的日志内容)

关闭文件 (文件号)

.如果真结束

.否则'1.调试输出 这里用的大漠日志信息

大漠日志_输出 (要写入的日志内容)' 2界面超级编辑框日志输出

.如果真 (关闭编辑框日志记录 = 假)

.如果真 (是否为空 (警告等级))

警告等级 =0.如果真结束'字体大小 = 8

.判断开始 (警告等级 = 0)

日志内容格式.文本颜色 = #默认色

.判断 (警告等级 = 1)

日志内容格式.文本颜色 = #蓝色

.判断 (警告等级 = 2)

日志内容格式.文本颜色 = #黄色

.判断 (警告等级 = 3)

日志内容格式.文本颜色 = #红色

.默认

日志内容格式.文本颜色 = #默认色

.判断结束

日志内容格式.字体大小 = 8'字体固定为8把 也不用多费劲了

_启动窗口.超级编辑框_日志.置选择区字符格式 (日志内容格式)

线程_进入许可区 (许可证_超级编辑框_日志)

_启动窗口.超级编辑框_日志.被选择文本 = 要写入的日志内容 + #换行符

线程_退出许可区 (许可证_超级编辑框_日志)

.如果真结束'3 日志输出到综合日志文件

.如果真 (开启综合日志)

日志文件名 = 时间到文本 (当前时间, #日期部分) + “.txt”

日志文件路径 = 日志目录路径 + “\” + 日志文件名

线程_进入许可区 (许可证_综合日志文件操作)

.如果真 (zjl取反 (文件是否存在 (日志文件路径)))

写到文件 (日志文件路径, 到字节集 (“”))

.如果真结束

文件号 = 打开文件 (日志文件路径, #读写, )

移到文件尾 (文件号)

写文本行 (文件号, 要写入的日志内容)

关闭文件 (文件号)

线程_退出许可区 (许可证_综合日志文件操作)

.如果真结束' 4日志输出到独立的线程日志文件 每个线程对应一个独立的日志文件 所以不用许可证了

.如果真 (开启独立线程日志 = 真)'如果开启了线程独立日志

独立线程日志前缀 = “线程日志_” + 时间到文本 (当前时间, #日期部分) + “_”'写入日志文件

日志文件名 = 独立线程日志前缀 + 到文本 (大漠多线程数组标识) + “.txt”

日志文件路径 = 日志目录路径 + “\” + 日志文件名

.如果真 (zjl取反 (文件是否存在 (日志文件路径)))

写到文件 (日志文件路径, 到字节集 (“”))

.如果真结束

文件号 = 打开文件 (日志文件路径, #读写, )

移到文件尾 (文件号)

写文本行 (文件号, 要写入的日志内容)

关闭文件 (文件号)

.如果真结束

易语言输出mysql日志_个人理解的易语言下的日志总结(备忘)相关推荐

  1. go语言mysql框架_超级详细:Go语言框架Gin和Gorm实现一个完整的待办事项微服务...

    前言 本文通过一步一步的设计,最终实现一个完善的todo应用. 我们使用GO框架Gin用户路由控制和返回数据.使用Gorm用于操作数据库. 读者可根据本教程操作,最终实现列出的各项功能. 技术清单 本 ...

  2. c语言tab什么意思_速收藏 | 学习C语言最需要记住的基础知识!!

    点 工控分享技术服务社区,赶紧上车 C语言一经出现就以其功能丰富.表达能力强.灵活方便.应用面广等特点迅速在全世界普及和推广.C语言不但执行效率高而且可移植性好,可以用来开发应用软件.驱动.操作系统等 ...

  3. c语言输出字母随机数,你好,怎样用c语言输出一个1到100的随机数

    你好,怎样用c语言输出一个1到100的随机数以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 你好,怎样用c语言输出一个1 ...

  4. 以下描述中不属于python语言控制结构的是_高中信息技术《Python语言》模块试卷...

    高中信息技术<Python语言>模块试卷 本试卷分为五大题,37小题,共100分,考试用时60分钟. 一.单选题(本题共15小题,每小题2分,共30分) 是一门( ) (A)自然语言(B) ...

  5. java 如何去掉http debug日志_你居然还去服务器上捞日志,搭个日志收集系统难道不香吗?...

    作者:MacroZheng 链接:https://juejin.im/post/5eef217d51882565d74fb4eb 来源:掘金 SpringBoot实战电商项目mall(35k+star ...

  6. window 如何查看tomcat 实时日志_如何处理生产环境Tomcat的catalina.out日志?

    前语:不要为了读文章而读文章,一定要带着问题来读文章,勤思考. 作者:jmcui  来源:http://1t.click/x4q # 前言 随着每天业务的增长,Tomcat 的catalina.out ...

  7. java 如何去掉http debug日志_你居然还去服务器上捞日志,搭个日志收集系统难道不香么!...

    作者:MacroZheng 链接:https://juejin.im/post/5eef217d51882565d74fb4eb 摘要 ELK日志收集系统进阶使用,本文主要讲解如何打造一个线上环境真实 ...

  8. 单片机c语言必背代码_单片机编程用C语言还是汇编?

    单片机是一种可编程器件,单片机的出现使硬件设计变得更为简单,产品的功能也更强大,而程序就是单片机的灵魂.目前功能稍微复杂一点的电子产品,都是以单片机为核心,再加以不通的外设电路实现不通的功能需求.单片 ...

  9. java sl4j 日志_为Java项目添加slf4j的log日志-阿里云开发者社区

    我们今天要给之前编码的一个maven的web项目提供slf4j的日志,这样所有的日志信息可以显示到项目的某个目录的log文件中. 项目的样子如下图: 首先配置pom,我也不知道下面的内容是否必要 or ...

  10. java 日志_跟着Tomcat学编码:Java 原生日志框架分析

    背景 调试 Tomcat 源码过程中,控制台日志打印的都是 INFO 级别的日志,于是就想修改下日志级别,打印 Digester 类的 DEBUG 级别的日志,便于观察 Digester 类解析 se ...

最新文章

  1. ubuntu 修改ip
  2. hiho 1483 区间计数问题+二分答案
  3. Docker简介以及mysql和redis的部署
  4. 如何构建企业出海的“免疫力“?深入解读阿里云CDN安全能力
  5. C#基础(Day08)
  6. 【转】c++ http下载文件
  7. 用正则判断字符串是否为中文的方法
  8. Python之操作HBASE数据库
  9. Python pip install 包后,pycharm仍然提示No module named(提示 No module named ‘pip‘)
  10. ROS学习笔记(八): ROS通信架构
  11. 产业链人士:台积电将同设备及原材料供应商谈判,希望明年降价15%
  12. 有没有用过苹果手机的人,使用后放弃苹果
  13. Java代码操作数据库(上)——JDBC(JDBC、JUnit、PreparedStatement) 练习
  14. 身份证编码前六位对应地区(下)
  15. A DIRT-T APPROACH TO UNSUPERVISED DOMAIN ADAPTATION
  16. linux安装水星网卡驱动,centos7.5 安装无线网卡驱动
  17. 文明与征服北条时宗最强阵容搭配指南
  18. PgMP Program Management Professional All-in-One Exam Guide
  19. PHP解码JavaScript中的escape()方法
  20. 一句话的结束!句号问号叹号

热门文章

  1. 500强企业校园招聘经典面试问题汇编
  2. C++视频教程资源链接合集
  3. wpf 复制到粘贴板_将WPF UI单元复制到剪贴板-阿里云开发者社区
  4. csgo删除服务器地图在哪个文件夹,CSGO de_cache地图
  5. 硅谷课堂 13_公众号点播课程和直播管理
  6. linux中安装无线网卡驱动,在linux下安装无线网卡驱动
  7. 如何把书上的字弄到电脑
  8. 基于微博评论的情感分析研究(小记)
  9. Pandas数据库数据抽取
  10. ret2text涉及到的堆栈平衡问题