postgreSQL9.3ログ構成
3890 ワード
pgのログ構成オプションは多く、デフォルトではpgは起動停止の情報を記録しているだけです.postgresql.confプロファイルでは、ログがどこに記録されているか、ログが何を記録しているか、ログがいつ記録されているかを構成できます.以下は自分でテストした設定です
# - When to Log - client_min_messages = notice # values in order of decreasing detail:# debug5# debug4# debug3# debug2# debug1# log# notice# warning# error log_min_messages = warning # values in order of decreasing detail:# debug5# debug4# debug3# debug2# debug1# info# notice# warning# error# log# fatal# panic log_min_error_statement = error # values in order of decreasing detail:# debug5# debug4# debug3# debug2# debug1# info# notice# warning# error# log# fatal# panic (effectively off) log_min_duration_statement = 0 # -1 is disabled, 0 logs all statements# and their durations, > 0 logs only# statements running at least this number# of milliseconds # - What to Log - #debug_print_parse = off#debug_print_rewritten = off debug_print_plan = on #debug_pretty_print = on #log_checkpoints = off log_connections = on log_disconnections = on #log_duration = off#log_error_verbosity = default # terse, default, or verbose messages #log_hostname = off log_line_prefix = '%d%p%c%t ' # special values:# %a = application name# %u = user name# %d = database name# %r = remote host and port# %h = remote host# %p = process ID# %t = timestamp without milliseconds# %m = timestamp with milliseconds# %i = command tag# %e = SQL state# %c = session ID# %l = session line number# %s = session start timestamp# %v = virtual transaction ID# %x = transaction ID (0 if none)# %q = stop here in non-session# processes# %% = '%'# e.g. ' ' #log_lock_waits = off# log lock waits >= deadlock_timeout #log_statement = 'none' # none, ddl, mod, all #log_temp_files = -1 # log temporary files equal or larger# than the specified size in kilobytes;# -1 disables, 0 logs all temp files log_timezone = 'Asia/Hong_Kong'
ロゴ_line_prefixには、データベース名、プロセスid、セッションid、時間が記録されています.
log_Connectionには接続の情報などが記録されており、これらは自分のニーズに合わせて指定できます.
次のテストでは、csvファイルにログを配置します.
log_destination = 'csvlog' # Valid values are combinations of# stderr, csvlog, syslog, and eventlog,# depending on platform. csvlog# requires logging_collector to be on. # This is used when logging to stderr: logging_collector = on # Enable capturing of stderr and csvlog# into log files. Required to be on for# csvlogs.# (change requires restart) # These are only used if logging_collector is on: log_directory = 'D:\\PostgreSQL\\9.3\\data\\logs' # directory where log files are written,# can be absolute or relative to PGDATA log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern,
これらのパラメータを設定すると、dbを再起動するとcsv形式のログを生成できます.このログは、データベースのテーブルにログファイルを簡単に入れることができます.次に、ログ・テーブルを作成します.
表をファイルにコピー:copy customer to'D:\test 2.txt';
このcopyはテーブルやファイルにデータを移動するのに便利です.
ログ構成推奨設定のパラメータlog_line_prefix='%t:%r:%u@%d:[%p]:'ログの内容log_を記録statementログのタイプlog_min_duration_statementはどのくらいの時間のsqlを記録します
# - When to Log - client_min_messages = notice # values in order of decreasing detail:# debug5# debug4# debug3# debug2# debug1# log# notice# warning# error log_min_messages = warning # values in order of decreasing detail:# debug5# debug4# debug3# debug2# debug1# info# notice# warning# error# log# fatal# panic log_min_error_statement = error # values in order of decreasing detail:# debug5# debug4# debug3# debug2# debug1# info# notice# warning# error# log# fatal# panic (effectively off) log_min_duration_statement = 0 # -1 is disabled, 0 logs all statements# and their durations, > 0 logs only# statements running at least this number# of milliseconds # - What to Log - #debug_print_parse = off#debug_print_rewritten = off debug_print_plan = on #debug_pretty_print = on #log_checkpoints = off log_connections = on log_disconnections = on #log_duration = off#log_error_verbosity = default # terse, default, or verbose messages #log_hostname = off log_line_prefix = '%d%p%c%t ' # special values:# %a = application name# %u = user name# %d = database name# %r = remote host and port# %h = remote host# %p = process ID# %t = timestamp without milliseconds# %m = timestamp with milliseconds# %i = command tag# %e = SQL state# %c = session ID# %l = session line number# %s = session start timestamp# %v = virtual transaction ID# %x = transaction ID (0 if none)# %q = stop here in non-session# processes# %% = '%'# e.g. ' ' #log_lock_waits = off# log lock waits >= deadlock_timeout #log_statement = 'none' # none, ddl, mod, all #log_temp_files = -1 # log temporary files equal or larger# than the specified size in kilobytes;# -1 disables, 0 logs all temp files log_timezone = 'Asia/Hong_Kong'
ロゴ_line_prefixには、データベース名、プロセスid、セッションid、時間が記録されています.
log_Connectionには接続の情報などが記録されており、これらは自分のニーズに合わせて指定できます.
次のテストでは、csvファイルにログを配置します.
log_destination = 'csvlog' # Valid values are combinations of# stderr, csvlog, syslog, and eventlog,# depending on platform. csvlog# requires logging_collector to be on. # This is used when logging to stderr: logging_collector = on # Enable capturing of stderr and csvlog# into log files. Required to be on for# csvlogs.# (change requires restart) # These are only used if logging_collector is on: log_directory = 'D:\\PostgreSQL\\9.3\\data\\logs' # directory where log files are written,# can be absolute or relative to PGDATA log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern,
これらのパラメータを設定すると、dbを再起動するとcsv形式のログを生成できます.このログは、データベースのテーブルにログファイルを簡単に入れることができます.次に、ログ・テーブルを作成します.
CREATE TABLE postgres_log
(
log_time timestamp(3) with time zone,
user_name text,
database_name text,
process_id integer,
connection_from text,
session_id text,
session_line_num bigint,
command_tag text,
session_start_time timestamp with time zone,
virtual_transaction_id text,
transaction_id bigint,
error_severity text,
sql_state_code text,
message text,
detail text,
hint text,
internal_query text,
internal_query_pos integer,
context text,
query text,
query_pos integer,
location text,
application_name text,
PRIMARY KEY (session_id,session_line_num)
);
copy
copy postgres_log from 'D:\\PostgreSQL\\9.3\\data\\logs\\postgresql-2014-11-17_210250.csv' with csv;
表をファイルにコピー:copy customer to'D:\test 2.txt';
このcopyはテーブルやファイルにデータを移動するのに便利です.
ログ構成推奨設定のパラメータlog_line_prefix='%t:%r:%u@%d:[%p]:'ログの内容log_を記録statementログのタイプlog_min_duration_statementはどのくらいの時間のsqlを記録します