Skip to content

VBMAN.Logs - 日志记录对象

概述

VBMAN.Logs 提供了多通道日志记录功能,支持文件日志、窗体显示、网页远程调试等输出方式。

核心特性

  • 多通道输出: 文件、窗体、DbgView、网页远程调试
  • 日志级别: 支持多种日志级别控制
  • 异步提交: 网络日志采用异步方式,不阻塞程序
  • 日志查看器: 内置日志查看窗体

日志级别枚举

vb
Public Enum EnumLogLevel
    LvInfo = 0      ' 信息
    LvWarn = 1      ' 警告
    LvDanger = 2    ' 危险
    LvError = 3     ' 错误
    LvDebugger = 4  ' 调试
    LvCustom = 5    ' 自定义
End Enum

日志文件名规则枚举

vb
Public Enum EnumLogFileNameRule
    None = 0        ' 无规则
    ByMonth = 1     ' 按月份
    ByDay = 2       ' 按天
    byUser = 3      ' 用户自定义
End Enum

属性

属性类型说明
LogLevelControlEnumLogLevel当前日志控制级别
SendToFormViewBoolean是否输出到窗体
SendToDbgViewBoolean是否输出到 DbgView
SendToWebViewBoolean是否输出到网页
FormListBoxVB.ListBox输出到的列表框控件
FormListBoxMaxItemLong列表框最大条目数
LogDirString日志文件根目录
LogSubDirString日志子目录
LogFileNameRuleEnumLogFileNameRule日志文件名规则
LogFileNameByUerString用户自定义文件名
WebUserCodeString网页调试用户识别码
ShowLogsViewerBoolean日志查看器是否显示(可读写)
LastErrorString最后错误信息

方法

HostApp

设置宿主应用程序(链式调用)

vb
Public Function HostApp(o As Object) As cLogs

View

设置日志查看器显示状态(链式调用)

vb
Public Function View(Value As Boolean) As cLogs

Data

添加日志数据(链式调用)

vb
Public Function Data(ByVal LogContent As String, Optional ByVal LogTitle As String, Optional LogLevel As EnumLogLevel = LvInfo) As cLogs

示例:

vb
VBMAN.Logs.Data("用户登录成功", "登录模块", LvInfo)

DataLine

添加带换行的日志数据(链式调用)

vb
Public Function DataLine(ByVal LogContent As String, Optional ByVal LogTitle As String, Optional LogLevel As EnumLogLevel = LvInfo) As cLogs

示例:

vb
VBMAN.Logs.DataLine "操作完成" & vbCrLf & "结果: 成功", "业务模块", LvInfo

ToFormView

输出到窗体列表框

vb
Public Function ToFormView(LogStr As String, Optional LogLevel As EnumLogLevel) As String

ToWebView

输出到网页远程调试

vb
Public Function ToWebView(LogStr As String, Optional LogLevel As EnumLogLevel) As String

综合示例

示例1: 基本日志记录

vb
Private Sub TestLog()
    ' 简单日志
    VBMAN.Logs.Data "程序启动", "系统", LvInfo
    
    ' 带标题和级别的日志
    VBMAN.Logs.Data "磁盘空间不足", "监控", LvWarn
    
    ' 多行日志
    VBMAN.Logs.DataLine "发生错误" & vbCrLf & Err.Description, "错误处理", LvError
End Sub

示例2: 链式调用

vb
Private Sub ChainLog()
    VBMAN.Logs _
        .HostApp(Me) _
        .View(True) _
        .Data("初始化完成", "启动", LvInfo) _
        .Data("加载配置", "配置", LvInfo) _
        .DataLine "配置加载完成", "配置", LvInfo
End Sub

示例3: 输出到窗体控件

vb
Private Sub Form_Load()
    ' 设置输出到 List1 控件
    Set VBMAN.Logs.FormListBox = List1
    VBMAN.Logs.FormListBoxMaxItem = 500
    VBMAN.Logs.SendToFormView = True
End Sub

Private Sub DoSomething()
    VBMAN.Logs.Data "正在处理...", "业务", LvInfo
    ' ... 处理逻辑
    VBMAN.Logs.Data "处理完成", "业务", LvInfo
End Sub

示例4: 网页远程调试

vb
Private Sub SetupWebLog()
    ' 设置网页调试用户码(在 http://log.vb6.pro 注册)
    VBMAN.Logs.WebUserCode = "myapp123"
    VBMAN.Logs.SendToWebView = True
End Sub

Private Sub RemoteLog()
    VBMAN.Logs.ToWebView "远程调试信息", LvInfo
End Sub

示例5: 打开日志查看器

vb
Private Sub ShowLogViewer()
    VBMAN.Logs.ShowLogsViewer = True
    ' 或
    VBMAN.Logs.View(True)
End Sub

最佳实践

  1. 日志级别控制: 根据环境设置合适的 LogLevelControl
  2. 异步网络日志: 网页调试使用异步提交,不影响性能
  3. 日志清理: 定期清理旧日志文件
  4. 敏感信息: 不要在日志中记录密码等敏感信息
  5. 错误处理: 日志记录失败不应影响主程序运行

VB6及其LOGO版权为微软公司所有