안녕하세요. 명월입니다.
이 글은 PHP에서 사용되는 Log 라이브러리 log4php에 대한 설명입니다.
log4j,log4net 그리고 log4php의 라이브러리들은 전부 apache 재단에서 만들고 무료로 배포되는 로그 라이브러리입니다.
개인적으로 좋아하는 log4시리즈이기도 합니다.
위 java와 C#에서와 마찬가지로 php에서도 매우 간단하게 설치가 가능하고 사용가능합니다.
먼저 log4php의 메뉴얼부터 링크하겠습니다.
링크 - https://logging.apache.org/log4php/
위 사이트를 가면 다운로드를 받거나 composer를 이용해서 설치하라고 쓰여 있습니다. 우리는 composer를 이용할 생각입니다.
먼저 composer.json 설정을 하고 콘솔에서 install를 합니다.
이제 설치가 끝났습니다.
그러면 log4php에서 사용할 config.xml를 작성합니다. 저는 root폴더에 작성합니다.
<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns="http://logging.apache.org/log4php/">
<appender name="default" class="LoggerAppenderRollingFile">
<layout class="LoggerLayoutPattern">
<param name="conversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
<param name="file" value="d:\log\log4phpExample.log" />
<param name="maxFileSize" value="1MB" />
<param name="maxBackupIndex" value="5" />
</appender>
<root>
<appender_ref ref="default" />
</root>
</configuration>
제가 이 log4시리즈를 좋아하는 이유는 이 Appender추가로 파일 뿐아니라 여러가지 형태로 log를 구현할 수 있습니다.
링크 - https://logging.apache.org/log4php/docs/appenders.html
눈에 띄는 부분은 Mail과 DB부분입니다. 즉 설정에 따라 Fatal에러의 경우는 긴급의 경우이니 개발자에게 메일을 보내게 설정할 수도 있습니다.
일단 우리는 log4php의 설치가 목표이므로 파일 로그만 설정했습니다.
그리고 사용할 웹 페이지에 require를 하고 사용해 보겠습니다.
<?php
require "vendor/autoload.php";
Logger::configure('config.xml');
$logger = Logger::getLogger("main");
$logger->trace("My first message."); // Not logged because TRACE < WARN
$logger->debug("My second message."); // Not logged because DEBUG < WARN
$logger->info("My third message."); // Not logged because INFO < WARN
$logger->warn("My fourth message."); // Logged because WARN >= WARN
$logger->error("My fifth message."); // Logged because ERROR >= WARN
$logger->fatal("My sixth message."); // Logged because FATAL >= WARN
index.php에는 output이 전혀 없기 때문에 localhost/index.php 하면 그냥 빈 페이지가 나옵니다. 페이지를 한번 요청했으면 로그가 작성될 것입니다.
여기까지 PHP에서 사용되는 Log 라이브러리 log4php에 대한 글이었습니다.
궁금한 점이나 잘못된 점이 있으면 댓글 부탁드립니다.
'Development note > PHP' 카테고리의 다른 글
[PHP] ajaxForm을 이용한 파일 업로드(프로그래스바로 파일 업로드 상태를 표시하는 방법) (0) | 2019.10.26 |
---|---|
[PHP] String 객체를 다루는 방법 (EOT, ob_start, ob_get_contents, ob_end_clean, ob_end_flush) (0) | 2019.10.26 |
[PHP] PHPMailer 라이브러리를 이용해서 메일 발송하는 방법 (0) | 2019.10.19 |
[PHP] PHP의 HttpConnection 도구 cURL 사용 방법 (0) | 2019.10.18 |
[PHP] Apache 환경의 같은 호스트 안에서 PHP와 Java(Servlet)를 동시에 기동, 운영하는 방법 (0) | 2019.10.17 |
[CakePHP] CSRF token mismatch가 발생했을 때 처리하는 방법 (0) | 2019.10.05 |
[PHP] 확장 DLL(Zend Extension dll) 파일을 작성하고 적용하는 방법(사용자 내장 함수 만들기) (0) | 2019.09.21 |
[PHP] xDebug 설치 방법 (0) | 2019.09.16 |