You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Seaside部署应用中记录栈追踪信息

实现Seaside部署环境下的服务器端栈追踪记录

要实现部署后隐藏前端栈追踪、同时在服务器端记录完整栈信息的需求,你需要做以下两处核心配置调整:

1. 自定义异常处理器,记录栈追踪

默认的WAErrorHandler仅向用户返回友好错误页面,不会记录栈信息。你需要创建一个继承自它的自定义处理器,在处理异常时将栈追踪写入Transcript或日志文件:

"定义自定义异常处理器类"
WAErrorHandler subclass: #WAServerLoggingErrorHandler
	instanceVariableNames: ''
	classVariableNames: ''
	package: 'BabyTrackerApp' "替换为你的应用包名"

"重写异常处理方法,添加栈记录逻辑"
WAServerLoggingErrorHandler >> handleException: anException
	super handleException: anException. "保持向用户返回友好错误页"
	"记录异常信息和栈追踪到Transcript"
	Transcript
		show: '[' , DateAndTime now printString , '] 异常触发: ';
		show: anException description;
		cr;
		show: anException stackString;
		cr; cr.
	"可选:如果需要写入日志文件,取消下面注释并调整路径"
	"FileStream fileNamed: '/path/to/your/babytracker_errors.log' do: [ :stream |
		stream setToEnd;
			nextPutAll: '[' , DateAndTime now printString , '] 异常触发: ';
			nextPutAll: anException description;
			cr;
			nextPutAll: anException stackString;
			cr; cr ]."

2. 更新应用配置,启用自定义处理器并调整日志级别

修改你当前的配置代码,替换默认异常处理器,并调高ZnServer的日志级别以捕获更多细节:

ZnZincServerAdaptor startOn: 1701.

"将日志级别从2(info)调整为3(debug),确保捕获异常相关日志"
ZnZincServerAdaptor default server logLevel: 3; logToTranscript.

WAAdmin clearAll.
WAEnvironment configureApplicationDefaults.
WAEnvironment registerDefaultRequestHandlers.
WAAdmin applicationDefaults removeParent: WADevelopmentConfiguration instance.
"替换为自定义的异常处理器"
WAAdmin applicationExceptionHandlingDefaults at: #exceptionHandler put: WAServerLoggingErrorHandler.
BabyTrackerApp initialize.
WAAdmin defaultDispatcher defaultName: 'babytracker'.

Transcript show: 'Baby Tracker started'; cr

完成以上配置后,当应用触发异常时:

  • 用户浏览器只会看到WAErrorHandler提供的通用错误页面,不会暴露栈追踪信息
  • 服务器端的Transcript(或指定的日志文件)会记录完整的异常描述和栈追踪内容,方便后续调试

内容的提问来源于stack exchange,提问作者cts

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 00:10:52