我有一个cgi web程序(在C中),它会将不同的错误消息打印到日志文件中。如果程序再次运行并遇到同样的错误,我不希望再次记录相同的错误消息。我正在寻找不同的选择,任何建议表示赞赏。感谢。
-Cookie:打印出html <head>
部分后无法设置Cookie
(在头部之后是发生任何错误的地方。)
- 数据库:没有。安装此问题需要太多的开销。
- 日志文件:许多其他进程正在写入此日志文件。
-html文件上的隐藏表单输入:看起来很乱。在同一个html页面上有3种不同的表单。无论提交哪种表单,我如何确定始终提交隐藏字段?但其中一个错误是当html无法生成时,所以不能依赖于此。
感谢。
答案 0 :(得分:1)
将构建的页面存储在变量中并在末尾输出它将允许您在此之前的任何时间发出标题。
答案 1 :(得分:1)
另一种选择是在任何地方创建某种形式的临时文件(不确定权限),并在执行任何工作之前阅读。简单地列出错误类型和可选的时间吗?这假设您希望在程序运行期间保持此行为。这是没有数据库的数据库解决方案,所以我不确定它有多大帮助。
每当我提到没有数据库的数据库解决方案时,我总是要提到SQLite这是一个基于文件的无服务器SQL“服务器”。
答案 2 :(得分:1)
我认为您应该重构您的程序以创建之前的所有输出,以便将任何HTML发送到客户端,这样您就可以预先知道所有现有错误并设置cookie。
现在,如果由于任何原因这不可行,您应该有一个临时文件识别IP地址和用户代理以及已经显示的错误。一个简单的文本文件应该足够快,可以解析。
答案 3 :(得分:1)
使用memcached可能是一种在不同会话中保持状态的方法。