[PHP] 로그 라이브러리 Log4Php


Development note/PHP  2019. 10. 13. 09:00

안녕하세요. 명월입니다.


이 글은 PHP에서 사용되는 Log 라이브러리 log4php에 대한 설명입니다.


log4j,log4net 그리고 log4php의 라이브러리들은 전부 apache 재단에서 만들고 무료로 배포되는 로그 라이브러리입니다.

개인적으로 좋아하는 log4시리즈이기도 합니다.


링크 - [Java] 로그 라이브러리(log4j)

링크 - [C#] 로그 라이브러리(log4net)


위 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에 대한 글이었습니다.


궁금한 점이나 잘못된 점이 있으면 댓글 부탁드립니다.