perl - 为什么我的 Apache2::Log 输出用\n 替换换行符?

标签 perl apache newline error-log

我在 apache2/mod_perl 下设置了多个虚拟主机。我使用 ErrorLog 指令为每个虚拟主机获取单独的错误日志。这仅在我使用 Apache2::Log 时按预期工作。 'warn' 只会记录到常规错误日志。

这样就可以了。最后。但还有一个问题:当我通过 $r->log_error 登录时,我发现换行符被替换为 \n

知道为什么会发生这种情况,以及如何解决?

谢谢。

最佳答案

这不是 mod_perl 问题,而是 Apache 问题。显然,将未转义的输出打印到错误日志存在一些安全问题(我不完全确定为什么),因此在使用此构建/配置 Apache 时必须在 Apache 中明确启用它:

CFLAGS=-DAP_UNSAFE_ERROR_LOG_UNESCAPED ./configure

如果您使用的是已安装的 apache,则您无能为力。

关于perl - 为什么我的 Apache2::Log 输出用\n 替换换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1573912/

相关文章:

linux - 传递其中包含点运算符的命令行参数

perl - Perl 测试脚本能否检测它是否正在从一个 harness 中并行运行?

python字符串模板: multiline substitution with correct indentation

java - 如何将 CRLF 转换为\n 字符串

linux - 如何编写 sed 脚本以从文本文件中获取信息

Perl - 为什么需要指定使用 'state' 功能?

git - 如何安装/配置 Git::Hooks 以与 Gerrit 一起使用

apache - CentOS + apache 子域总是重定向到主域

apache - 在Docker中运行Apache和Cron

apache - 我的 Apache 日志中奇怪的十六进制条目