database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 9303 게시물 읽기
No. 9303
쿼리 로그에 관한 질문입니다.
작성자
김문수(ykrgulm)
작성일
2013-06-25 16:22ⓒ
2013-06-25 16:23ⓜ
조회수
9,634

DB에 들어오는 모든 쿼리에 대해 로그를 남기고 싶은데, 잘 되지 않아서 글을 올리게 되었습니다.

 

현재 DB에 들어오는 모든 쿼리는

Select  'plpgsql로 작성된 함수'  이거나

Select * from 'plpgsql로 작성된 함수' 입니다.

 

우선, 구성파일에서 로그와 관련된 부분을 다음과 같이 수정하였습니다.

log_destination = 'stderr'

logging_conllector = on

log_min_duration_statement = 0

log_statement = 'all'

 

 'plpgsql로 작성된 함수'의 내용이 인서트와 관련이 있어도, 쿼리문의 첫번째 단어가 Select이다 보니  pg_log의 파일에 로그기록이 남지 않았습니다.

 

외부 프로그램에서 DB로 쿼리를 보냈는지를 확인해야 하는데, 어떻게 하면 되는지 알 수 있을까요?

읽어주셔서 감사합니다.

이 글에 대한 댓글이 총 2건 있습니다.
$ psql
psql (9.2.4)
Type "help" for help.

postgres=# show log_destination ;
 log_destination 
-----------------
 stderr
(1 row)

postgres=# show logging_conllector ;
ERROR:  unrecognized configuration parameter "logging_conllector"
-- 9.2에서는 지원하지 않는 환경변수고요.
postgres=# show log_min_duration_statement ;
 log_min_duration_statement 
----------------------------
 -1
(1 row)

-- 이 값이 반영 안되어서 postgresql.conf 파일의 내용을 다시 불러왔고, 확인
postgres=# select pg_reload_conf();
 pg_reload_conf 
----------------
 t
(1 row)

postgres=# show log_min_duration_statement ;
 log_min_duration_statement 
----------------------------
 0
(1 row)

-- 이 변수값이 none으로 되어있어서, all로 바꾸었고
postgres=# show log_statement ;
 log_statement 
---------------
 none
(1 row)

postgres=# set log_statement = 'all';
SET
postgres=# show log_statement ;
 log_statement 
---------------
 all
(1 row)

-- 테스트
postgres=# select 'plpgsql log test';
     ?column?     
------------------
 plpgsql log test
(1 row)

postgres=# Select * from 'plpgsql  ';
ERROR:  syntax error at or near "'plpgsql  '"
LINE 1: Select * from 'plpgsql  ';
                      ^
postgres=# \q

$ vi pg_log/postgresql-2013-06-26_000000.log

2013-06-26 13:24:56 KST [local] LOG:  statement: select 'plpgsql log test';
2013-06-26 13:24:56 KST [local] LOG:  duration: 0.149 ms
2013-06-26 13:25:11 KST [local] STATEMENT:  Select * from 'plpgsql로 작성된 함수
';

이런 로그들이 나오네요.

김상기(ioseph)님이 2013-06-26 13:35에 작성한 댓글입니다.

답변해주셔서 감사합니다.

적어주신대로 따라해보니까 로그가 남아있었습니다.

관심 갖아주셔서 감사하며, 즐거운 하루되시길 바랍니다.

김문수(ykrgulm)님이 2013-06-28 11:16에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
9306오라클쿼리 포팅중입니다. [4]
디비디비딥
2013-07-01
11828
9305연속적으로 이어진 구간의 일자구하는 방법 [1]
김민석
2013-06-28
9098
9304update 시 동일 값에 대해 한건만 update 하는 방법? [1]
이규열
2013-06-27
9162
9303쿼리 로그에 관한 질문입니다. [2]
김문수
2013-06-25
9634
9302PostgreSQL 에서 증분백업은 지원하지않나요 ? [2]
아지랑이
2013-06-24
9545
9301dblink 설치 문제 [1]
이성필
2013-06-21
10192
9300대용량 데이터 search 방안은?? [1]
권이가
2013-06-20
10161
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다