1 问题描述
有些情况下,需要查看接口的请求 body,这时需要将请求记录到日志文件里。nginx记录日志时,会将中文写成 Unicode 字符,如果需要查看,就需要一行一行复制出来看。这时,可以利用 echo 命令进行查看。
2 Nginx 记录 Body 配置
http {
log_format postlog '$request - "$request_body"';
server {
listen 8080;
location /url {
proxy_pass http://127.0.0.1:1080;
access_log /path/to/log/post.log postlog;
}
}
}
3 显示中文命令
echo
命令用于在shell中打印shell变量的值,或者直接输出指定的字符串。而
echo -e
是处理特殊字符的命令,利用该特性可以实现英文与 Unicode 混合文本中的内容进行正常输出。
-e:激活转义字符。使用-e选项时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
- \a 发出警告声;
- \b 删除前一个字符;
- \c 最后不加上换行符号;
- \f 换行但光标仍旧停留在原来的位置;
- \n 换行且光标移至行首;
- \r 光标移至行首,但不换行;
- \t 插入tab;
- \v 与\f相同;
- \ 插入\字符;
- \nnn 插入nnn(八进制)所代表的ASCII字符;
因此,使用 Linux 自带的
echo -e
命令即可查看 Unicode 文本。
3.1 使用方法
cd /path/to/nginx/log # 进入 Nginx 日志文件夹
text=`tail -n 1000 access.log` # 输出末尾 1000 行日志
echo -e ${text} # 显示日志
版权声明:本文为Orainge原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。