婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PostgreSQL 打印日志信息所在的源文件和行數(shù)的實例

PostgreSQL 打印日志信息所在的源文件和行數(shù)的實例

熱門標(biāo)簽:地圖標(biāo)注要花多少錢 天津開發(fā)區(qū)地圖標(biāo)注app 移動外呼系統(tǒng)模擬題 400電話申請客服 電銷機(jī)器人能補救房產(chǎn)中介嗎 電話機(jī)器人怎么換人工座席 廣州電銷機(jī)器人公司招聘 濟(jì)南外呼網(wǎng)絡(luò)電話線路 江蘇400電話辦理官方

一直好奇在PG中, 當(dāng)輸出錯誤日志時, 如何能夠附帶錯誤信息所在的源代碼文件名以及發(fā)生錯誤的代碼行數(shù).

postgres.conf中, log信息冗余級別為"default(默認(rèn))", terse: 表示更加簡單的日志信息, verbose: 表示更加冗余的日志信息(即: 附帶"文件名和行數(shù))

#log_error_verbosity = default # terse, default, or verbose messages

修改為下面的"verbose"即可.

log_error_verbosity = verbose # terse, default, or verbose messages

修改后, 重啟實例后生效, 結(jié)果如下, 可以看到日志信息附帶了"文件名"和"行數(shù)"信息.

2020-03-02 09:34:41.800 CST [9019] LOG: 00000: listening on IPv6 address "::1", port 7433
2020-03-02 09:34:41.800 CST [9019] LOCATION: StreamServerPort, pqcomm.c:593
2020-03-02 09:34:41.800 CST [9019] LOG: 00000: listening on IPv4 address "127.0.0.1", port 7433
2020-03-02 09:34:41.800 CST [9019] LOCATION: StreamServerPort, pqcomm.c:593
2020-03-02 09:34:41.801 CST [9019] LOG: 00000: listening on Unix socket "/tmp/.s.PGSQL.7433"
2020-03-02 09:34:41.801 CST [9019] LOCATION: StreamServerPort, pqcomm.c:587
2020-03-02 09:34:41.814 CST [9020] LOG: 00000: database system was shut down at 2020-03-02 09:34:24 CST
2020-03-02 09:34:41.814 CST [9020] LOCATION: StartupXLOG, xlog.c:6291
2020-03-02 09:34:41.819 CST [9019] LOG: 00000: database system is ready to accept connections
2020-03-02 09:34:41.819 CST [9019] LOCATION: reaper, postmaster.c:2938

備注: 以上verbose方法應(yīng)該只能在debug模式下生效, 因為release下根本就沒有文件名和行數(shù)相關(guān)的信息.

補充:PostgreSQL數(shù)據(jù)庫之運行日志

PostgreSQL有三種日志:

1、pg_wal(WAL 日志,即重做日志) 內(nèi)容一般不具有可讀性強(qiáng)制開啟

2、pg_log(數(shù)據(jù)庫運行日志) 內(nèi)容可讀 默認(rèn)關(guān)閉的,需要設(shè)置參數(shù)啟動

3、pg_clog(事務(wù)提交日志,記錄的是事務(wù)的元數(shù)據(jù)) 內(nèi)容一般不具有可讀性 強(qiáng)制開啟

PostgreSQL運行日志可以實現(xiàn)日志輸出記錄,默認(rèn)是沒有啟動記錄。這個日志一般是記錄服務(wù)器與DB的狀態(tài),比如各種Error信息,定位慢查詢SQL,數(shù)據(jù)庫的啟動關(guān)閉信息,發(fā)生checkpoint過于頻繁等的告警信息,諸如此類。

PostgreSQL常用日志參數(shù)

項目 默認(rèn)值 設(shè)定值 說明
logging_collector off on 日志收集功能是否啟動
log_destination stderr csvlog 日志收集存儲方式
log_directory log pg_log 日志收集存儲路徑
log_filename postgresql-%Y-%m-%d.log postgresql-%Y-%m-%d_%H%M%S.log 日志文件命名格式
log_timezone RPC RPC 日志時區(qū)
log_rotation_age 1440 7d 單個日志文件生存周期,默認(rèn)1天
log_rotation_size 10240 100MB 單個日志文件大小
log_truncate_on_retation off off log_rotation_age觸發(fā)切換下一個日志,存在則附加,否則將覆蓋
log_min_messages warning warning 日志輸出級別
log_min_duration_statement -1 3000 -1表示不可用,0將記錄所有SQL語句和它們的耗時,>0只記錄那些耗時超過(或等于)這個值(ms)的SQL語句。
log_checkpoints off on 記錄Checkpoint信息
log_connections off on 是否記錄連接日志
log_disconnections off on 是否記錄連接斷開日志
log_duration off off 記錄每條SQL語句執(zhí)行完成消耗的時間
log_line_prefix %m[%p] %e: %t [%p]: [%l-1] user = %u,db = %d,remote = %r app = %a 日志輸出格式;
log_lock_waits off on 控制當(dāng)一個會話等待時間超過deadlock_timeout而被鎖時是否產(chǎn)生一個日志信息??膳袛嗍欠翊嬖阪i等待問題
log_statement none ddl 控制記錄哪些SQL語句??蛇x值:none=>不記錄、ddl=>Create table之類的、mod=>DML語句、all=>記錄所有

log_line_prefix參數(shù)說明:

%a = application name 應(yīng)用名稱
%u = user name 用戶名稱
%d = database name 數(shù)據(jù)庫名稱
%r = remote host and port 遠(yuǎn)程主機(jī)與端口
%h = remote host 遠(yuǎn)程主機(jī)
%p = process ID 進(jìn)程號
%t = timestamp without milliseconds 時間戳格式
%m = timestamp with millisecond 時間戳格式
%n = timestamp with milliseconds (as a Unix epoch) 時間戳格式
%i = command tag 命令標(biāo)簽
%e = SQL state SQL語句狀態(tài)

日志設(shè)置方式

啟動pg_log配置與日志參數(shù)

ALTER SYSTEM SET log_destination = 'csvlog';
ALTER SYSTEM SET logging_collector = on;
ALTER SYSTEM SET log_directory = 'pg_log';
ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';
ALTER SYSTEM SET log_rotation_age = '7d';
ALTER SYSTEM SET log_rotation_size = '100MB';
ALTER SYSTEM SET log_min_messages = warning;

記錄執(zhí)行慢的SQL語句

ALTER SYSTEM SET log_min_duration_statement = 3000;
ALTER SYSTEM SET log_checkpoints = on;
ALTER SYSTEM SET log_connections = on;
ALTER SYSTEM SET log_disconnections = on;
ALTER SYSTEM SET log_duration = off;
ALTER SYSTEM SET log_line_prefix = '%e: %t [%p]: [%l-1] user = %u,db = %d,remote = %r app = %a';

監(jiān)控數(shù)據(jù)庫中長時間的鎖

ALTER SYSTEM SET log_lock_waits = on;

記錄DDL操作

ALTER SYSTEM SET log_statement = 'ddl';

參數(shù)查詢

select name,setting,short_desc from pg_settings where name like 'log_%';

重啟服務(wù)Reload參數(shù)

// 重啟服務(wù)
pg_ctl restart -m fast -D /pgdata/11.2/data
// Reload參數(shù)
select pg_reload_conf();

CSV日志導(dǎo)入到數(shù)據(jù)庫分析

:# 創(chuàng)建數(shù)據(jù)表

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)
);

:# CSV日志加載

\copy postgres_log from ‘CSV日志路徑>' with csv;

:# 數(shù)據(jù)檢索測試

// csv日志區(qū)間范圍
select min(log_time),max(log_time) from postgres_log;
  min  |  max
----------------------------+---------------------------
 2019-12-11 23:18:17.334+08 | 2019-12-11 23:30:49.04+08
(1 行記錄)
// 模糊檢索字段信息
select log_time,database_name,user_name,application_name,message from postgres_log where message like '%duration%';
  log_time  | database_name | user_name | application_name | message
----------------------------+---------------+-----------+------------------+-----------------------
 2019-12-11 23:18:33.559+08 | pgbench | pgbench | pgbench  | duration: 36.286 ms
 2019-12-11 23:18:33.573+08 | pgbench | pgbench | pgbench  | duration: 13.944 ms
 2019-12-11 23:18:33.581+08 | pgbench | pgbench | pgbench  | duration: 7.953 ms
 2019-12-11 23:18:34.561+08 | pgbench | pgbench | pgbench  | duration: 976.103 ms

SQL統(tǒng)計信息

pg_stat_statements統(tǒng)計了SQL的很多信息,方便我們分析SQL的性能。

:# 參數(shù)配置

alter system set shared_preload_libraries = pg_stat_statements;

:# 重啟服務(wù)Reload參數(shù)

pg_ctl restart -m fast -D /pgdata/11.2/data

:# 創(chuàng)建擴(kuò)展表

CREATE EXTENSION pg_stat_statements;

:# 查詢TOP10

SELECT query, calls, total_time, (total_time/calls) as average ,rows, 
 100.0 * shared_blks_hit /nullif(shared_blks_hit + shared_blks_read, 0) AS hit_percent 
FROM pg_stat_statements 
ORDER BY average DESC LIMIT 10;

※ 統(tǒng)計結(jié)果一直都在,重啟也不會清零。通過如下命令可以手工清零。

select pg_stat_statements_reset() ;

日志保留周期

通常我們會對日志進(jìn)行定期保留以保證不會撐爆磁盤容量,此時需要考慮日志保留周期。

核心參數(shù):

項目 默認(rèn)值 設(shè)定值 說明
log_truncate_on_retation off off log_rotation_age觸發(fā)切換下一個日志,存在則附加,否則將覆蓋
log_rotation_age 1440 7d 單個日志文件生存周期,默認(rèn)1天
log_rotation_size 10240 100MB 單個日志文件大小

按照每分鐘創(chuàng)建文件,保留1小時:

log_destination = 'csvlog' 
logging_collector = on 
log_directory = 'log' 
log_filename = 'postgresql-%M.log' 
log_truncate_on_rotation = on 
log_rotation_age = 1min 
log_rotation_size = 100MB

每小時一個文件,保留一天:

log_destination = 'csvlog' 
logging_collector = on 
log_directory = 'log' 
log_filename = 'postgresql-%H.log' 
log_truncate_on_rotation = on 
log_rotation_age = 1hour 
log_rotation_size = 100MB

每天一個文件,保留一個月:

log_destination = 'csvlog' 
logging_collector = on 
log_directory = 'log' 
log_filename = 'postgresql-%d.log' 
log_truncate_on_rotation = on 
log_rotation_age = 1day 
log_rotation_size = 100MB

每個月一個文件,保留一年:

log_destination = 'csvlog' 
logging_collector = on 
log_directory = 'log' 
log_filename = 'postgresql-%m.log' 
log_truncate_on_rotation = on 
log_rotation_age = 1month 
log_rotation_size = 100MB

每天一個文件,保留一年:

log_destination = 'csvlog' 
logging_collector = on 
log_directory = 'log' 
log_filename = 'postgresql-%m-%d.log' 
log_truncate_on_rotation = on 
log_rotation_age = 1day 
log_rotation_size = 100MB

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • postgresql通過索引優(yōu)化查詢速度操作
  • Postgresql在mybatis中報錯:操作符不存在:character varying == unknown的問題
  • 基于Postgresql 事務(wù)的提交與回滾解析
  • postgresql 如何關(guān)閉自動提交
  • Postgresql 解決pg掉電后無法重啟的問題
  • PostgreSQL 恢復(fù)誤刪數(shù)據(jù)的操作
  • PostgreSQL 日志文件的所在位置
  • PostgreSQL的B-tree索引用法詳解

標(biāo)簽:辛集 杭州 寶雞 榆林 昭通 海西 濮陽 溫州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PostgreSQL 打印日志信息所在的源文件和行數(shù)的實例》,本文關(guān)鍵詞  PostgreSQL,打印,日志,信息,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PostgreSQL 打印日志信息所在的源文件和行數(shù)的實例》相關(guān)的同類信息!
  • 本頁收集關(guān)于PostgreSQL 打印日志信息所在的源文件和行數(shù)的實例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    一本大道av伊人久久综合| 精品国产一区二区亚洲人成毛片| 国产欧美日韩中文久久| 国产精品中文字幕日韩精品 | 亚洲v中文字幕| 一区二区三区四区在线免费观看 | 国产91丝袜在线播放| 久久精品久久99精品久久| 久久精品国产精品青草| 国内一区二区在线| eeuss鲁片一区二区三区在线看| 成人黄动漫网站免费app| 国产成人av影院| av中文字幕亚洲| 日韩一区二区免费在线电影| 亚洲激情五月婷婷| 蜜桃久久久久久久| 99精品久久免费看蜜臀剧情介绍| 欧美一区二区在线免费播放| 在线免费亚洲电影| 欧洲精品一区二区三区在线观看| 日韩精品一区二区在线| 中文av字幕一区| 视频一区欧美日韩| 青青草原综合久久大伊人精品优势 | 精品少妇一区二区三区日产乱码| 国产精品久久久久精k8| 91精品在线麻豆| 日韩亚洲欧美综合| 欧美国产一区视频在线观看| 丝瓜av网站精品一区二区| 久久久影视传媒| 一区二区三区小说| 成人在线一区二区三区| 欧美精品在线观看一区二区| 日韩精品中午字幕| 一区二区在线看| 韩国欧美国产1区| 这里只有精品视频在线观看| 午夜电影一区二区| 免费看精品久久片| 欧美精选午夜久久久乱码6080| 欧美极品美女视频| 欧美亚一区二区| 久久久亚洲精品一区二区三区| 亚洲乱码国产乱码精品精98午夜| 视频一区欧美精品| 天天色天天爱天天射综合| 欧美亚州韩日在线看免费版国语版| 国产精品理论片在线观看| 美女国产一区二区| 91极品视觉盛宴| 日韩一区欧美一区| 91麻豆自制传媒国产之光| 高清在线成人网| 欧美激情一区二区三区在线| 美国精品在线观看| 欧美v亚洲v综合ⅴ国产v| 激情综合网av| 日韩精品国产精品| 久久午夜免费电影| 国内国产精品久久| 国产精品嫩草影院av蜜臀| 成人午夜碰碰视频| 国产欧美一二三区| 成人h版在线观看| 一区二区成人在线视频| 狠狠色综合播放一区二区| 在线综合亚洲欧美在线视频| 国产精品成人在线观看| 色哟哟国产精品| 成人精品视频一区| 国产一级精品在线| 激情综合色综合久久| 久久国产免费看| 久久91精品国产91久久小草| 日本一区中文字幕| 日本在线不卡视频| 国产一区二区美女| 国产·精品毛片| 91免费看`日韩一区二区| 91日韩精品一区| 欧美午夜不卡在线观看免费| 91精品国产综合久久国产大片| 日韩一卡二卡三卡国产欧美| 久久综合久色欧美综合狠狠| 久久久91精品国产一区二区精品| 欧美国产成人精品| 国产精品午夜在线| 一级中文字幕一区二区| 美女诱惑一区二区| 国产高清精品网站| av亚洲精华国产精华精| 欧美日韩在线一区二区| 精品日韩欧美在线| 欧美国产精品专区| 亚洲成人午夜电影| 国产成人综合亚洲网站| 欧美性色欧美a在线播放| 日韩精品一区二区三区视频播放 | 久久香蕉国产线看观看99| 国产欧美va欧美不卡在线| 亚洲国产精品久久人人爱蜜臀| 久久综合综合久久综合| 色综合久久综合网欧美综合网| 欧美成人一区二区| 性做久久久久久免费观看| 国产福利91精品一区| 欧美一区二区三区四区五区| 亚洲日穴在线视频| 国产精品一区免费视频| 欧美伦理影视网| 亚洲视频综合在线| 国产一区二区福利| 日韩精品一区国产麻豆| 亚洲3atv精品一区二区三区| 成人一区二区在线观看| 久久综合狠狠综合| 久久精品999| 欧美喷潮久久久xxxxx| 洋洋av久久久久久久一区| av中文字幕一区| 国产精品乱码久久久久久| 精品亚洲国内自在自线福利| 67194成人在线观看| 亚洲一区二区综合| 色素色在线综合| 亚洲黄一区二区三区| 一本色道亚洲精品aⅴ| 亚洲日本在线观看| 91电影在线观看| 亚洲人成小说网站色在线 | 666欧美在线视频| 一区二区三区欧美日韩| 色婷婷综合久久久久中文| 亚洲免费资源在线播放| 一本色道a无线码一区v| 亚洲女同一区二区| 91啪亚洲精品| 一区二区三区不卡视频在线观看| av午夜一区麻豆| 亚洲人成影院在线观看| 欧洲精品中文字幕| 午夜久久久久久| 日韩久久免费av| 国产成人啪免费观看软件| 欧美国产欧美综合| 色综合咪咪久久| 高清shemale亚洲人妖| 国产精品福利影院| 在线看一区二区| 琪琪一区二区三区| 精品国产sm最大网站| 国产成人精品www牛牛影视| 亚洲人成精品久久久久| 在线观看日韩一区| 久久精品国产久精国产爱| 久久久噜噜噜久久人人看 | 一区二区三区在线视频观看| 91精品欧美综合在线观看最新| 久久精品99国产精品| 国产精品久久久久久妇女6080| 在线观看亚洲一区| 久久99在线观看| 亚洲精品菠萝久久久久久久| 日韩视频在线永久播放| 91免费视频网| 久久99精品一区二区三区三区| 中文字幕一区视频| 日韩欧美色综合| 不卡一二三区首页| 久热成人在线视频| 亚洲靠逼com| 久久精品夜夜夜夜久久| 欧美日韩一区二区三区四区| 国产91富婆露脸刺激对白| 香蕉成人伊视频在线观看| 久久九九久精品国产免费直播| 欧美日韩亚洲综合在线| 成人中文字幕合集| 午夜精彩视频在线观看不卡| 中文字幕亚洲区| 国产欧美一区二区精品秋霞影院| 在线成人免费视频| 色成年激情久久综合| 高清不卡在线观看| 麻豆精品蜜桃视频网站| 中文字幕欧美一| 国产三级一区二区三区| 欧美成人r级一区二区三区| 欧美吻胸吃奶大尺度电影| 成人福利视频网站| 国产成人综合网站| 国产精品主播直播| 亚洲v精品v日韩v欧美v专区| 夜夜操天天操亚洲| 亚洲综合在线免费观看| 日韩一区在线看| 国产精品你懂的| 欧美经典一区二区三区|