Re: fishing out LOG: duration lines from the logfile.

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: fishing out LOG: duration lines from the logfile.
Дата
Msg-id 200310312124.h9VLOs127219@candle.pha.pa.us
обсуждение исходный текст
Ответ на fishing out LOG: duration lines from the logfile.  (Rajesh Kumar Mallah <mallah@trade-india.com>)
Список pgsql-admin
Rajesh Kumar Mallah wrote:
>
> Hi,
>
> I think its not going to a trivial task to take out only the LOG duration
> lines from a PostgreSQL logfile. We need to extract the duration and
> the actual statement. I think i will put a custom delimeters around the
> statements for the time being so that the log parser can parse it
> unambigiously. Is there any better method?

Seeing that I was involved in implementing this behavior, I felt I
should write a script to pull out this information to see how hard it
would be.  Here is an awk script:

    awk '  BEGIN {in_statement = "N"}
        {
            while (getline > 0)
            {
                if ($1 == "LOG:" && $2 == "duration:" && $5 == "statement:")
                {
                    print $0;
                    in_statement = "Y";
                }
                else if (in_statement == "Y" && $0 ~ /^    /)  # <-- tab
                {
                    print $0;
                }
                else
                    in_statement = "N";
            }
        }' "$@"

I tested this with the log file you included and it seeme to work fine,
though the email had some line wraps I had to remove.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

В списке pgsql-admin по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: ? in explain query
Следующее
От: Tom Lane
Дата:
Сообщение: Re: SELECT COUNT(*)... returns 0 ROWS