Skip to content

Log Format Sed

Source Format

bash
log_format main '$remote_addr - $remote_user [$time_local] '
                '"$reqpwuest" $status $body_bytes_sent "$http_referer" '
                '"$http_user_agent" "$http_x_forwarded_for"';

Dest Format

bash
log_format main '$remote_addr - $remote_user [$time_local] '
                '"$request" $status $body_bytes_sent "$http_referer" '
                '"$http_user_agent" "$http_x_forwarded_for" '
                'rt="$request_time" uct="$upstream_connect_time" '
                'uht="$upstream_header_time" urt="$upstream_response_time"';

Sed Script

bash
cat > replace.sed << 'EOF'
/log_format.*main/,/;/c\
    log_format main '$remote_addr - $remote_user [$time_local] '\
                     '"$request" $status $body_bytes_sent "$http_referer" '\
                     '"$http_user_agent" "$http_x_forwarded_for" '\
                     'rt="$request_time" uct="$upstream_connect_time" '\
                     'uht="$upstream_header_time" urt="$upstream_response_time"';
EOF

Sed Command

bash
sed -i -f replace.sed nginx.conf