본문 바로가기
서버/Mysql

Mysql 에러 로그 출력

by 코딩히어로 2022. 2. 9.
728x90

Mysql을 실행하는 동안 어떠한 이유에서 실행이 되지 않거나

연결이 끊어지는 경우가 있는데 개발자는 왜 어떠한 이유로 문제가

발생하는지를 추적해야 하기 때문에 오늘 포스팅의 에러 출력에 대한 내용이 중요합니다.

 

Mysql 라이브러리에서는 기본적으로 연결된 소켓의 에러 정보를 출력할 수 있는

함수를 제공하는데 mysql_error() 라는 함수입니다.

 

mysql_error(&connection);

 

해당 함수에 들어가는 인자는 현재 프로그램에서 Mysql 연결할 때 선언한

MYSQL 포인터 변수입니다.

 

MYSQL *connection;

 

간단하게 예를들어서 DB를 Select 하는 구문에서 에러가 발생할 경우에

해당 함수를 가지고 에러내용을 출력하는 방법을 알아보겠습니다.

 

int iStatus;
char strQuery[512];

memset(strQuery, 0x00, sizeof(strQuery));
sprintf(strQuery, "select test_id from test where test_num = 1");

iStatus = mysql_query(connection, strQuery);
if(iStatus == 0){
	// 다음 실행 코드
}else{
	fprintf(stderr,"Mysql Error : %s\n", mysql_error(connection));
}

 

여기에서 마지막 두번째줄에 실행 에러가 발생하면 fprintf를 통해 에러 내용을 출력합니다.

자 여기서 응용을 해서 만약에 해당 에러 내용을 로그로 남기고 싶다면

 

int iStatus;
char strQuery[512];

memset(strQuery, 0x00, sizeof(strQuery));
sprintf(strQuery, "select test_id from test where test_num = 1");

iStatus = mysql_query(connection, strQuery);
if(iStatus == 0){
	// 다음 실행 코드
}else{
	write_log(mysql_error(connection));
}

 

write_log 함수를 통해서 에러 내용을 입력해주면 됩니다.

write_log 함수에 대한 내용은 다음 포스팅을 참고하시면 됩니다.

 

2021.12.30 - [서버/C언어 프로그래밍] - Log파일 기록

 

Log파일 기록

리눅스상에 프로그램을 설계할 때 로그만큼 중요한 게 없습니다. 로그를 통해 에러를 찾아내고 Application의 동작을 추적할 수 있습니다. 그만큼 필수적인 로그를 C언어 프로그램 Application에서 어

codinghero.tistory.com

 

728x90
반응형

댓글