{"id":5507,"date":"2010-10-16T21:00:49","date_gmt":"2010-10-16T12:00:49","guid":{"rendered":"http:\/\/www.sssg.org\/blogs\/hiro345\/?p=5507"},"modified":"2011-10-03T17:48:17","modified_gmt":"2011-10-03T08:48:17","slug":"twitter-hiro345s-tweets-on-2010-10-13","status":"publish","type":"post","link":"https:\/\/www.hiro345.net\/blogs\/hiro345\/archives\/5507.html","title":{"rendered":"PHP\u3067\u30ed\u30ae\u30f3\u30b0"},"content":{"rendered":"<p>PHP\u3067\u30ed\u30ae\u30f3\u30b0\u3092\u3059\u308b\u306b\u306f\u3044\u304f\u3064\u304b\u65b9\u6cd5\u304c\u3042\u308a\u307e\u3059\u3002<!--more--><\/p>\n<p>PHP\u3067\u63d0\u4f9b\u3055\u308c\u3066\u3044\u308b\u3082\u306e\u306b\u3001error_log() \u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u3092\u4f7f\u3046\u4f8b\u306f\u6b21\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u300cerror\u300d\u3068\u3044\u3046\u6587\u5b57\u5217\u3092\u51fa\u529b\u3059\u308b\u3060\u3051\u306e\u5358\u7d14\u306a\u3082\u306e\u3067\u3059\u3002error_log.php \u3068\u3057\u3066\u4fdd\u5b58\u3057\u307e\u3059\u3002<\/p>\n<div class=\"code\" style=\"overflow: scroll; width: 490px; white-space: nowrap;background-color:black;color:white;padding:4px;\">&lt;?php<br \/>\nerror_log(&quot;error&quot;)&#x3b;<br \/>\n?&gt;\n<\/div>\n<p>\u52d5\u4f5c\u78ba\u8a8d\u3092\u3059\u308b\u306b\u306f\u3001\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u3067\u5b9f\u884c\u3057\u307e\u3059\u3002<\/p>\n<div class=\"code\" style=\"overflow: scroll; width: 490px; white-space: nowrap;background-color:black;color:white;padding:4px;\">&#x24;&nbsp;php&nbsp;&#x2d;f&nbsp;error_log.php<br \/>\nerror\n<\/div>\n<p>Web\u30d6\u30e9\u30a6\u30b6\u3067\u30a2\u30af\u30bb\u30b9\u3057\u305f\u3068\u304d\u306f\u3001Apache\u306e\u30a8\u30e9\u30fc\u30ed\u30b0\uff08CentOS\u3067\u306f\/var\/log\/httpd\/error_log\uff09\u306b\u51fa\u529b\u3055\u308c\u307e\u3059\u3002\u3069\u3053\u306b\u51fa\u529b\u3055\u308c\u308b\u304b\u306fphp.ini\uff08CentOS\u3067\u306f \/etc\/php.ini\uff09\u306e\u8a2d\u5b9a\u306b\u3082\u3088\u308a\u307e\u3059\u3002<\/p>\n<p>\u3069\u306e\u51e6\u7406\u304c\u5b9f\u884c\u3055\u308c\u305f\u304b\u3088\u308a\u3082\u3001\u5909\u6570\u306e\u5024\u304c\u3069\u3046\u306a\u3063\u3066\u3044\u308b\u306e\u304b\u3092\u77e5\u308a\u305f\u3044\u5834\u5408\u306f\u3001var_dump()\u3092\u4f7f\u3044\u307e\u3059\u3002\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u3092var_dump.php\u3068\u3057\u3066\u4fdd\u5b58\u3057\u307e\u3059\u3002<\/p>\n<div class=\"code\" style=\"overflow: scroll; width: 490px; white-space: nowrap;background-color:black;color:white;padding:4px;\">&lt;?php<br \/>\n&#x24;s&nbsp;=&nbsp;&#x27;Hello&#x27;&#x3b;<br \/>\nvar_dump(&#x24;s)&#x3b;<br \/>\n?&gt;\n<\/div>\n<p>\u300cphp -f var_dump.php\u300d\u306e\u3088\u3046\u306b\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u304b\u3089\u5b9f\u884c\u3057\u305f\u308a\u3001var_dump.php \u3078Web\u30d6\u30e9\u30a6\u30b6\u304b\u3089\u30a2\u30af\u30bb\u30b9\u3057\u305f\u308a\u3059\u308b\u3068\u3001\u6b21\u306e\u3088\u3046\u306a\u7d50\u679c\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<div class=\"code\" style=\"overflow: scroll; width: 490px; white-space: nowrap;background-color:black;color:white;padding:4px;\">string(5)&nbsp;&quot;Hello&quot;&nbsp;\n<\/div>\n<p><a href=\"http:\/\/logging.apache.org\/log4php\/\">Apache Log4php<\/a>\u3092\u4f7f\u3046\u3068\u3044\u3046\u65b9\u6cd5\u3082\u3042\u308a\u307e\u3059\u3002\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306f\u7c21\u5358\u3067\u3059\u3002<\/p>\n<ol>\n<li>apache-log4php-2.0.0-incubating-src.tar.gz \u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/li>\n<li>\u5c55\u958b\uff08 tar xzf apache-log4php-2.0.0-incubating-src.tar.gz \uff09<\/li>\n<li>\u300capache-log4php-2.0.0-incubating\/src\/main\/php\u300d\u3092\u300clog4php\u300d\u3068\u3044\u3046\u540d\u524d\u3067\u914d\u5099<\/li>\n<\/ol>\n<p>\u3053\u3053\u3067\u306f\u3001\u6b21\u306e\u3088\u3046\u306b\u3057\u307e\u3057\u305f\u3002<\/p>\n<div class=\"code\" style=\"overflow: scroll; width: 490px; white-space: nowrap;background-color:black;color:white;padding:4px;\">+&#x2d;&nbsp;log4php&#x2f;<br \/>\n+&#x2d;&nbsp;simple&#x2f;<br \/>\n&nbsp;&nbsp;&nbsp;+&#x2d;&nbsp;simple.php\n<\/div>\n<p>simple\/simple.php \u306f\u6b21\u306e\u3088\u3046\u306b\u3057\u307e\u3057\u305f\u3002log4php\u306eLogger.php\u3092\u4f7f\u3046\u3088\u3046\u306b\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<div class=\"code\" style=\"overflow: scroll; width: 490px; white-space: nowrap;background-color:black;color:white;padding:4px;\">&lt;?php<br \/>\nrequire_once(&#x27;..&#x2f;log4php&#x2f;Logger.php&#x27;)&#x3b;<br \/>\necho&nbsp;&quot;Hello&nbsp;PHP&#x5c;n&quot;&#x3b;<\/p>\n<p>&#x24;logger&nbsp;=&nbsp;Logger&#x3a;&#x3a;getLogger(&#x27;main&#x27;)&#x3b;<br \/>\n&#x24;logger&#x2d;&gt;info(&quot;log4php&nbsp;info&quot;)&#x3b;<br \/>\n&#x24;logger&#x2d;&gt;warn(&quot;log4php&nbsp;warn&quot;)&#x3b;<\/p>\n<p>echo&nbsp;&quot;Logger&nbsp;done&#x5c;n&quot;&#x3b;<br \/>\n?&gt;\n<\/p><\/div>\n<p>\u3053\u308c\u3092\u300cphp -f simple.php\u300d\u306e\u3088\u3046\u306b\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u3067\u5b9f\u884c\u3059\u308b\u3068\u3001\u6b21\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<div class=\"code\" style=\"overflow: scroll; width: 490px; white-space: nowrap;background-color:black;color:white;padding:4px;\">Hello&nbsp;PHP<br \/>\nSat&nbsp;Oct&nbsp;16&nbsp;10&#x3a;50&#x3a;20&nbsp;2010,607&nbsp;[24562]&nbsp;INFO&nbsp;main&nbsp;&#x2d;&nbsp;log4php&nbsp;info<br \/>\nSat&nbsp;Oct&nbsp;16&nbsp;10&#x3a;50&#x3a;20&nbsp;2010,611&nbsp;[24562]&nbsp;WARN&nbsp;main&nbsp;&#x2d;&nbsp;log4php&nbsp;warn<br \/>\nLogger&nbsp;done\n<\/div>\n<p>Web\u30d6\u30e9\u30a6\u30b6\u3078\u8868\u793a\u3059\u308b\u305f\u3081\u306b\u306f\u3001LoggerAppenderEcho\u3092\u4f7f\u3044\u307e\u3059\u3002\u6b21\u306e\u3088\u3046\u306a\u69cb\u6210\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u7528\u610f\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<div class=\"code\" style=\"overflow: scroll; width: 490px; white-space: nowrap;background-color:black;color:white;padding:4px;\">+&#x2d;&nbsp;log4php<br \/>\n+&#x2d;&nbsp;sample.log4php<br \/>\n&nbsp;&nbsp;+&#x2d;&nbsp;SampleLogger.class.php<br \/>\n&nbsp;&nbsp;+&#x2d;&nbsp;log4php.properties\n<\/div>\n<p>\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eblog4php.properties\u306f\u6b21\u306e\u901a\u308a\u3067\u3059\u3002appender\u306edefault\u3068\u3057\u3066\u3001LoggerAppenderEcho\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002<\/p>\n<div class=\"code\" style=\"overflow: scroll; width: 490px; white-space: nowrap;background-color:black;color:white;padding:4px;\">log4php.appender.default&nbsp;=&nbsp;LoggerAppenderEcho<br \/>\nlog4php.appender.default.layout&nbsp;=&nbsp;LoggerLayoutSimple<br \/>\nlog4php.rootLogger&nbsp;=&nbsp;DEBUG,&nbsp;default\n<\/div>\n<p>\u3053\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092\u53d6\u308a\u8fbc\u3080\u30b5\u30f3\u30d7\u30eb\u30d7\u30ed\u30b0\u30e9\u30e0SampleLogger.class.php\u306f\u6b21\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<div class=\"code\" style=\"overflow: scroll; width: 490px; white-space: nowrap;background-color:black;color:white;padding:4px;\">&lt;?php<br \/>\nrequire_once(&#x27;..&#x2f;log4php&#x2f;Logger.php&#x27;)&#x3b;<br \/>\nLogger&#x3a;&#x3a;configure(&#x27;.&#x2f;log4php.properties&#x27;)&#x3b;<\/p>\n<p>class&nbsp;SampleLogger&nbsp;{<br \/>\n&nbsp;&nbsp;&nbsp;private&nbsp;&#x24;logger&#x3b;<br \/>\n&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;__construct()&nbsp;{<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#x24;this&#x2d;&gt;logger&nbsp;=&nbsp;Logger&#x3a;&#x3a;getLogger(&#x27;main&#x27;)&#x3b;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#x24;this&#x2d;&gt;logger&#x2d;&gt;debug(&#x27;log4php&nbsp;debug&#x27;)&#x3b;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;&quot;&#x5c;n&lt;br&nbsp;&#x2f;&gt;SampleLogger&nbsp;constructed&quot;&#x3b;<br \/>\n&nbsp;&nbsp;&nbsp;}<br \/>\n}<\/p>\n<p>echo&nbsp;&quot;&#x5c;n&lt;br&nbsp;&#x2f;&gt;SampleLogger&nbsp;begin&#x5c;n&quot;&#x3b;<br \/>\n&#x24;logger&nbsp;=&nbsp;Logger&#x3a;&#x3a;getLogger(&#x27;main&#x27;)&#x3b;<br \/>\n&#x24;logger&#x2d;&gt;info(&#x27;log4php&nbsp;info&#x27;)&#x3b;<br \/>\n&#x24;sample_logger&nbsp;=&nbsp;new&nbsp;SampleLogger()&#x3b;<br \/>\necho&nbsp;&quot;&#x5c;n&lt;br&nbsp;&#x2f;&gt;SampleLogger&nbsp;end&#x5c;n&quot;&#x3b;<br \/>\n?&gt;\n<\/p><\/div>\n<p>sample.log4php\u3092\u30ab\u30ec\u30f3\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3068\u3057\u3066\u300cphp -f SampleLogger.class.php\u300d\u3068\u3059\u308b\u3068\u6b21\u306e\u3088\u3046\u306a\u7d50\u679c\u306b\u306a\u308a\u307e\u3059\u3002Web\u30d6\u30e9\u30a6\u30b6\u304b\u3089SampleLogger.class.php\u3092\u958b\u3044\u3066\u3082\u540c\u69d8\u306a\u7d50\u679c\u3068\u306a\u308a\u307e\u3059\uff08\u30bd\u30fc\u30b9\u3092\u958b\u3044\u3066\u4e2d\u8eab\u304c\u540c\u3058\u3053\u3068\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\uff09\u3002<\/p>\n<div class=\"code\" style=\"overflow: scroll; width: 490px; white-space: nowrap;background-color:black;color:white;padding:4px;\">\n&lt;br&nbsp;&#x2f;&gt;SampleLogger&nbsp;begin<br \/>\nINFO&nbsp;&#x2d;&nbsp;log4php&nbsp;info<br \/>\nDEBUG&nbsp;&#x2d;&nbsp;log4php&nbsp;debug<\/p>\n<p>&lt;br&nbsp;&#x2f;&gt;SampleLogger&nbsp;constructed<br \/>\n&lt;br&nbsp;&#x2f;&gt;SampleLogger&nbsp;end\n<\/p><\/div>\n<p>Apache HTTP Server\u306e\u30a8\u30e9\u30fc\u30ed\u30b0\u3092\u898b\u305f\u308a\u3059\u308b\u3088\u308a\u306f\u3001Apache log4php\u306eLoggerAppenderEcho\u3001LoggerAppenderFile\u3001LoggerAppenderDailyFile\u3042\u305f\u308a\u3092\u4f7f\u3063\u305f\u65b9\u304c\u3088\u3044\u5834\u9762\u3082\u3042\u308b\u3067\u3057\u3087\u3046\u3002appender\u306b\u3064\u3044\u3066\u306f\u3001\u300c<a href=\"http:\/\/logging.apache.org\/log4php\/docs\/appenders.html\">log4php &#8211; Apache log4php Appenders<\/a>\u300d\u306b\u30d8\u30eb\u30d7\u304c\u3042\u308a\u307e\u3059\u3002\u9069\u6750\u9069\u6240\u3067\u63a1\u7528\u3092\u6c7a\u3081\u305f\u3044\u3068\u3053\u308d\u3067\u3059\u3002<\/p>\n<p>\u3061\u306a\u307f\u306b\u3001log4php\u304c\u3046\u307e\u304f\u52d5\u4f5c\u3057\u306a\u3044\u5834\u5408\u306f\u3001error_log()\u3084var_dump()\u3092\u4f7f\u3063\u3066\u539f\u56e0\u3092\u7a81\u304d\u6b62\u3081\u307e\u3057\u3087\u3046\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>PHP\u3067\u30ed\u30ae\u30f3\u30b0\u3092\u3059\u308b\u306b\u306f\u3044\u304f\u3064\u304b\u65b9\u6cd5\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15],"tags":[341,587,295],"class_list":["post-5507","post","type-post","status-publish","format-standard","hentry","category-program","tag-apache","tag-logging","tag-php"],"_links":{"self":[{"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/posts\/5507","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/comments?post=5507"}],"version-history":[{"count":7,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/posts\/5507\/revisions"}],"predecessor-version":[{"id":5516,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/posts\/5507\/revisions\/5516"}],"wp:attachment":[{"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/media?parent=5507"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/categories?post=5507"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/tags?post=5507"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}