cari

Rumah  >  Soal Jawab  >  teks badan

php - Bagaimana untuk menukar format biasa log nginx ke dalam format log apache

format log nginx

log_format  access  '$remote_addr - [$time_local] "$request" '
             '$status $body_bytes_sent $request_time "$http_referer" '
             '"$http_user_agent" - $http_x_forwarded_for';

Berikut ialah format pengekstrakan biasa log nginx

log_pattern = r'^(?P<remote_addr>.*?) - \[(?P<time_local>.*?)\] "(?P<request>.*?)"' \
              r' (?P<status>.*?) (?P<body_bytes_sent>.*?) (?P<request_time>.*?)' \
              r' "(?P<http_referer>.*?)" "(?P<http_user_agent>.*?)" - (?P<http_x_forwarded_for>.*)$'

request_uri_pattern = r'^(?P<request_method>(GET|POST|HEAD|DELETE)?) (?P<request_uri>.*?) (?P<server_protocol>HTTP.*)$'

Format log Apache saya adalah seperti berikut:

123.125.71.55 - - [14/Apr/2017:00:00:15 +0800] "GET /article/511615 HTTP/1.1" 200 11238
111.206.221.100 - - [14/Apr/2017:00:00:16 +0800] "POST /baidutj/tj HTTP/1.1" 302 -

Bagaimana untuk mengubah suai ungkapan biasa di atas menjadi ungkapan biasa yang boleh saya gunakan,

Saya mencubanya untuk masa yang lama tetapi terus mendapat ralat,

大家讲道理大家讲道理2781 hari yang lalu427

membalas semua(1)saya akan balas

  • 伊谢尔伦

    伊谢尔伦2017-05-16 13:15:53

    log_pattern = (r'^(?P<remote_addr>\S+) - - \[(?P<time_local>[^]]+)\] "(?P<request>.*?)"'
                  ' (?P<status>\d+) (?P<body_bytes_sent>\d+)')
    request_uri_pattern = r'"(?P<request_method>(?:GET|POST|HEAD|DELETE)?) (?P<request_uri>\S*) (?P<server_protocol>HTTP\S*?")'

    balas
    0
  • Batalbalas