delphi的输出调试信息用出啥语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi的输出调试信息用出啥语句相关的知识,希望对你有一定的参考价值。

delphi 里输出调试信息,有多种方法:


1、最简单的就是用 ShowMessage 直接在程序当中输出信息,缺点是弹出对话框很烦人,必须不断地关闭,且信息文字不能太长。


2、使用文件函数输出调试信息,优点是记录可以很详细,便于事后查看。


3、使用 WriteLn 函数:


此方法可以直接打开一个 cmd 窗口,将信息输出到这个窗口里,优点是输出信息与窗口运行互不干扰:




4、使用 OutputDebugString 函数:


此方法与上面的效果类似,区别在于输出的信息在 IDE 的 Envent Log 窗口:



5、最方便的是直接下断点调试,


参考技术A 可以MessageBox

使用logback来输出日志

日志级别——level

  • debug:调试,从名字可以看出其作用。程序中报错无法解决时,使用调试来查看更多错误信息。在mybatis中使用这种日志才会输出sql语句。debug的输出量太大,而且不懂源码的人很多都看不懂,还有很多没什么实际作用的日志信息刷屏,只适合报异常程序的调试。
  • info:信息,信息量比debug少很多,只会输出一些重要的信息,适合开发时使用。
  • warn:警告,通常是可以修复的,不修复也不一定会引发异常,有时候是一些提示信息,但是比info信息更加重要
  • error:错误,很明显,就是程序异常

logback读取配置文件

logback在初始化时,按照以下顺序来读取配置文件

  1. 如果java程序启动时指定了logback.configurationFile属性,就用该属性指定的配置文件。如java -Dlogback.configurationFile=/path/to/mylogback.xml Test ,这样执行Test类的时候就会加载/path/to/mylogback.xml配置。
  2. 在classpath中查找 logback-test.xml 文件。
  3. 在classpath中查找 logback.groovy 文件。
  4. 在classpath中查找 logback.xml 文件。

logback.xml

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>

    <!--定义变量,可以通过${name}使用-->
    <property name="path" value="log" />

    <!--ConsoleAppender 用于配置日志的输出,ConsoleAppender是控制台-->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <!-- 配置日志格式,这是一个比较通用的格式 -->
            <pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
    </appender>

    <!-- 输出终端是滚动文件 -->
    <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 基于时间滚动,就是每天的日志输出到不同的文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 输出日志的目录文件名,window中默认分区为当前程序的硬盘分区,%d{yyyy-MM-dd}是当前日期 -->
            <fileNamePattern>${path}/info/info-%d{yyyy-MM-dd}.log</fileNamePattern>
            <!-- 最大保存2个文件,超出的历史文件会被删除 -->
            <maxHistory>2</maxHistory>
        </rollingPolicy>

        <!-- 按照日志级别进行过滤 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 只收集WARN级别的日志,其他高级别和低级别的日志都放弃 -->
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>

        <encoder>
            <!-- 配置日志格式,这是一个比较通用的格式 -->
            <pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
    </appender>

    <!-- 输出终端是滚动文件 -->
    <appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 基于时间滚动,就是每天的日志输出到不同的文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 输出日志的目录文件名,window中默认分区为当前程序的硬盘分区,%d{yyyy-MM-dd}是当前日期 -->
            <fileNamePattern>${path}/warn/warn-%d{yyyy-MM-dd}.log</fileNamePattern>
            <!-- 最大保存2个文件,超出的历史文件会被删除 -->
            <maxHistory>2</maxHistory>
        </rollingPolicy>

        <!-- 按照日志级别进行过滤 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 只收集WARN级别的日志,其他高级别和低级别的日志都放弃 -->
            <level>WARN</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>

        <encoder>
            <!-- 配置日志格式,这是一个比较通用的格式 -->
            <pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
    </appender>

    <root level="INFO">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="INFO" />
        <appender-ref ref="WARN" />
    </root>
</configuration>

以上是关于delphi的输出调试信息用出啥语句的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Delphi 程序或编译器生成的调试信息中提取局部变量信息(地址和类型)?

怎样查看Tomcat动态控制台信息

如何去掉ARM-LINUX启动时输出到串口的调试信息

Delphi调试器窗口中为啥变量内容显示不全

使用logback来输出日志

python -- 程序异常与调试(程序调试)