全局日志(Global Log)
CSM - Global Log Queue.vi
获取全局日志的队列句柄,可以从这个队列中获取全局日志事件。
- Ref: CSM全局日志功能
- Ref: CSM全局日志获取方法
参考范例:
4. Advance Examples\Filter From Source(Queue).vi4. Advance Examples\Filter From Subscriber(Queue).vi
– 输出控件(Indicators) –
- Global Log Queue: 全局日志队列句柄。
CSM - Global Log Event.vi
获取CSM全局日志用户事件句柄,用于从全局日志队列中获取全局日志用户事件。
- Ref: CSM全局日志功能
- Ref: CSM全局日志获取方法
参考范例:
4. Advance Examples\Filter From Source(Event).vi4. Advance Examples\Filter From Subscriber(Event).vi
– 输出控件(Indicators) –
- CSM Global Log Event: CSM全局日志用户事件句柄。
- Timeout In ms (5000ms): 超时时间,默认5000 ms。
CSM - Destroy Global Log Queue.vi
释放全局日志队列句柄。
- Ref: CSM全局日志功能
- Ref: CSM全局日志获取方法
参考范例:
4. Advance Examples\Filter From Source(Queue).vi4. Advance Examples\Filter From Subscriber(Queue).vi
– 输入控件(Controls) –
- Global Log Queue: 全局日志队列句柄。
CSM - Destroy Global Log Event.vi
释放CSM全局日志用户事件句柄。
- Ref: CSM全局日志功能
- Ref: CSM全局日志获取方法
参考范例:
4. Advance Examples\Filter From Source(Event).vi4. Advance Examples\Filter From Subscriber(Event).vi
– 输入控件(Controls) –
- CSM Global Log Event: CSM全局日志用户事件句柄。
- Force Destroy? (F): 是否强制销毁,默认不强制。
- Timeout In ms (5000ms): 超时时间,默认5000 ms。
CSM - Global Log Error Handler.vi
CSM错误处理函数。如果发生错误,错误信息将通过CSM Global Log发布。从而可以将一些不在CSM框架的错误信息统一的记录在全局日志中。
– 输入控件(Controls) –
- Place (“” to Use VI’s Name): 标记发生错误的位置,默认使用调用VI的名称。
- Clear Error? (T): 是否清除错误。默认清除,经过此VI后,错误将被清除。
CSM - Generate User Global Log.vi
生成一个自定义的用户日志,用于调试等场景。当此VI的输入参数中包含错误信息时,将调用CSM - Global Log Error Handler VI记录错误信息。
– 输入控件(Controls) –
- Log: 事件名称。
- Arguments: 事件参数。
- From Who: 来源。
- ModuleName: 模块名称。
- Place (“” to Use VI’s Name): 发生错误的地点,默认使用VI的名称。
Filter Rules
CSM - Set Log Filter Rules.vi
设置全局的源端过滤规则,当log满足过滤规则时,将不会在源头被发送,因此任何工具也将不能再检测到这个log记录。
- Ref: 全局日志过滤位置
- Ref: 全局日志过滤规则
参考范例:
4. Advance Examples\Filter From Source(Queue).vi4. Advance Examples\Filter From Source(Event).vi
CSM - List Log Filter Rules As Strings.vi
以字符串的格式将全局过滤规则列出来,每个规则占一行,可供用户查看。主要用于后台日志文件保存、调试界面查看等。
- Ref: 全局日志过滤规则
– 输出控件(Indicators) –
- Rule Strings: 过滤规则字符串。
CSM - Convert Filter Rules.vi
将过滤规则簇列表转换为过滤规则类实例。以类的形式提供接口可以保证接口的向前兼容,在功能修改后,旧的接口不变。目前这个VI主要用于CSM File Logger Addon.
- Ref: 全局日志过滤规则
CSM - Filter Global Log.vi
这是一个订阅端过滤VI,用于判断是否log被满足过滤规则。过滤判断发生在订阅端,因此不会影响其他工具的订阅。
- Ref: 全局日志过滤规则
Utility VIs
Global Log To String.vi
全局日志(Global Log)数据簇转换为字符串。
– 输入控件(Controls) –
- Log: 全局日志数据簇。
– 输出控件(Indicators) –
- Log String: 全局日志字符串。
Global Log To String(Source Time).vi
将全局日志(Global Log)数据簇转换为字符串,使用发送时间作为时间戳。
– 输入控件(Controls) –
- Log: 全局日志数据簇。
- Format String: 时间戳格式。
– 输出控件(Indicators) –
- Log String: 全局日志字符串。
Global Log History Cacher.vi
保存当前输入的字符串到缓存,缓存的历史字符串,当超出最大长度限制时,最先进入的缓存字符串将被覆盖。用于调试CSM的历史状态。
– 输入控件(Controls) –
- Global Log Data: 收到的Global Log信息数据包。
- Length (10000): 缓存的历史字符串最大字符串长度。
- Level (Normal): 处理等级,Normal为正常处理,更高的等级会省略不同的信息,以提高处理速度。
- Time Format String: 时间戳格式。
- With Periodic Info? (T): 是否折叠周期性的log。
- Remove Immediately? (F): 是否立即移除周期性的折叠信息。
- Reset?: 重置标志。
- Settings: 周期性的log配置信息,可以设置检测周期与周期性阈值,来判断是否折叠。
– 输出控件(Indicators) –
- String Cache: 缓存的历史字符串。
Auto Processing Level.vi
根据当前全局日志队列的日志数量,动态的推算推荐的日志处理等级。
– 输入控件(Controls) –
- #Left In Q: 全局日志队列中剩余的日志数量。
- Debounce Period (5s): 日志处理升级时间,在指定时间内全局日志失踪在增加,将提高处理等级。
- Period (0.1s): 检测周期,默认100 ms。
- Reset? (F): 重置标志。
– 输出控件(Indicators) –
- Level: 处理等级,Normal为正常处理,更高的等级会省略不同的信息,以提高处理速度。
- LogInQ Changing Speed (#/s): 当前全局日志队列的日志变化速度。
- Since Upgraded (S): 自从上次升级处理等级以来的时间。
Exit With Empty Queue Check.vi
此VI用于使用Global Log Queue的全局日志监控循环,例如template/CSM - Global Log Queue Monitoring Loop.vi或CSM File Logger的后台线程。
通常这些全局日志的监控循环的退出条件会在程序退出时成立,这时可能队列中的日志还没有完全的处理完毕,这个VI用于在Stop信号到来后,再给一段时间Timeout (5s)来处理队列中的日志。当队列中日志的数量为空或超时后,才会将 Exit置真,真正的退出循环。
– 输入控件(Controls) –
- Queue: 队列资源,例如Global Log Queue。
- Stop: 输入的停止信号,当此信号为真时,将开始检查队列是否为空。
– 输入控件(Controls) –
- Timeout (5s): 超时时间,默认5 s。
- Exit: 真实的退出信号,当队列为空,或超时时为TRUE。
- Since Exiting (s): 自退出开始的时间,单位为秒。