/** * 複数のログを書き込む * @param array $contents * 全て同じレベルで書き込む場合 * $contents = [ * msg1,msg2 * ] * or * $contents = [ * [msg =>msg1], * [msg =>msg2] * ] * 個別にレベルを指定する場合 * $contents = [ * [msg => msg1, level => notice], * [msg => msg2, level => warning], * ] * @param null $level $contentsの子要素にlevelを指定しない場合はかならず指定 */ public function write(array $contents, $level = null) { $this->logger->begin(); foreach ($contents as $content) { if (!is_array($content) || !isset($content['level'])) { if (is_null($level)) { $this->warning('No log level set'); $this->info($content); } else { $this->{$level}($content); } } else { $level = $content['level']; $this->{$level}($content['msg']); } } $this->logger->commit(); }
/** * Tests the begin/rollback * * @author Nikos Dimopoulos <*****@*****.**> * @since 2012-11-30 */ public function testRollback() { $fileName = $this->getFileName('log', 'log'); $logger = new PhLoggerAdapterFile($this->logPath . $fileName); $logger->log('Hello'); $contents = file($this->logPath . $fileName); $expected = 1; $actual = count($contents); $this->assertEquals($expected, $actual, 'Log does not contain correct number of messages before rollback'); $logger->begin(); $logger->log('Message 1'); $logger->log('Message 2'); $logger->log('Message 3'); $logger->rollback(); $logger->close(); $contents = file($this->logPath . $fileName); $expected = 1; $actual = count($contents); $this->cleanFile($this->logPath, $fileName); $this->assertEquals($expected, $actual, 'Log does not contain correct number of messages after rollback'); }
/** * Tests the begin/rollback * * @author Nikolaos Dimopoulos <*****@*****.**> * @since 2014-09-13 */ public function testLoggerAdapterFileRollback() { $this->specify("Logging does not contain correct number of messages before rollback", function () { $fileName = newFileName('log', 'log'); $logger = new PhTLoggerAdapterFile($this->logPath . $fileName); $logger->log('Hello'); $logger->close(); $contents = file($this->logPath . $fileName); cleanFile($this->logPath, $fileName); $expected = 1; $actual = count($contents); expect($actual)->equals($expected); }); $this->specify("Logging does not contain correct number of messages after rollback", function () { $fileName = newFileName('log', 'log'); $logger = new PhTLoggerAdapterFile($this->logPath . $fileName); $logger->log('Hello'); $logger->begin(); $logger->log('Message 1'); $logger->log('Message 2'); $logger->log('Message 3'); $logger->rollback(); $logger->close(); $contents = file($this->logPath . $fileName); cleanFile($this->logPath, $fileName); $expected = 1; $actual = count($contents); expect($actual)->equals($expected); }); }
<?php use Phalcon\Logger\Adapter\File as FileAdapter; // Create the logger $logger = new FileAdapter("app/logs/test.log"); // Start a transaction $logger->begin(); // Add messages $logger->alert("This is an alert"); $logger->error("This is another error"); // Commit messages to file $logger->commit();