Progress 写入系统标准错误
Write to the system's standard error in Progress
我正在编写一个需要向系统 standard error 写入错误消息的小程序。我可以使用哪些简单的方法来打印到标准错误?
我正在使用 OpenEdge 11.3.
Progress 不提供写入 stderr 的方法 - 我能想到的最简单的方法是 output-through 一个接受 stdin 并将其回显到 stderr 的外部程序。
启用 Windows (10.2B+) 后,您可以使用 .NET:
System.Console:Error:WriteLine ("This is an error message") .
连同
prowin32 2> stderr.out
您可以查看 LOG-MANAGER:WRITE-MESSAGE。它不会记录到标准输出或标准错误,而是记录到 client-specific 日志。在任何情况下都应该监视此日志(特别是如果客户端是应用程序服务器)。
来自文档:
For an interactive or batch client, the WRITE-MESSAGE( ) method writes the log entries to the log file specified by the LOGFILE-NAME attribute or the Client Logging (-clientlog) startup parameter. For WebSpeed agents and AppServer servers, the WRITE-MESSAGE() method writes the log entries to the server log file. For DataServers, the WRITE-MESSAGE() method writes the log entries to the log file specified by the DataServer Logging (-dslog) startup parameter.
LOG-MANAGER:WRITE-MESSAGE("Got here, x=" + STRING(x), "DEBUG1").
将在日志中写入:
[04/12/05@13:19:19.742-0500] P-003616 T-001984 1 4GL DEBUG1 Got here, x=5
关于LOG-MANAGER系统、要显示的消息、文件的放置位置等有很多选项
没有简单的方法,但在 Unixen 中你总是可以使用 OUTPUT THROUGH(未测试)来做这样的事情:
output through "cat >&2" no-echo unbuffered.
或者——这个是测试的——如果你只是想让来自batch-mode程序的错误消息成为标准输出那么
output through "tee" ...
...绝对有效。
我正在编写一个需要向系统 standard error 写入错误消息的小程序。我可以使用哪些简单的方法来打印到标准错误?
我正在使用 OpenEdge 11.3.
Progress 不提供写入 stderr 的方法 - 我能想到的最简单的方法是 output-through 一个接受 stdin 并将其回显到 stderr 的外部程序。
启用 Windows (10.2B+) 后,您可以使用 .NET:
System.Console:Error:WriteLine ("This is an error message") .
连同
prowin32 2> stderr.out
您可以查看 LOG-MANAGER:WRITE-MESSAGE。它不会记录到标准输出或标准错误,而是记录到 client-specific 日志。在任何情况下都应该监视此日志(特别是如果客户端是应用程序服务器)。
来自文档:
For an interactive or batch client, the WRITE-MESSAGE( ) method writes the log entries to the log file specified by the LOGFILE-NAME attribute or the Client Logging (-clientlog) startup parameter. For WebSpeed agents and AppServer servers, the WRITE-MESSAGE() method writes the log entries to the server log file. For DataServers, the WRITE-MESSAGE() method writes the log entries to the log file specified by the DataServer Logging (-dslog) startup parameter.
LOG-MANAGER:WRITE-MESSAGE("Got here, x=" + STRING(x), "DEBUG1").
将在日志中写入:
[04/12/05@13:19:19.742-0500] P-003616 T-001984 1 4GL DEBUG1 Got here, x=5
关于LOG-MANAGER系统、要显示的消息、文件的放置位置等有很多选项
没有简单的方法,但在 Unixen 中你总是可以使用 OUTPUT THROUGH(未测试)来做这样的事情:
output through "cat >&2" no-echo unbuffered.
或者——这个是测试的——如果你只是想让来自batch-mode程序的错误消息成为标准输出那么
output through "tee" ...
...绝对有效。