在txt文件中的json中编码消息?

时间:2016-02-26 15:15:10

标签: php json

我创建了一个日志库,在txt文件上写了一些跟踪,一切正常但我需要在json编码中格式化消息,特别是我有这个函数:

private function Message($level, $mex, $ctx)
{
    $date = getTimeStamp($this->settings['dateFormat']);
    $message = "[{$date}] [{$level}] {$mex} ";
    $message .= PHP_EOL.indent(contextToString($ctx));
    return $message.PHP_EOL;
}

现在这是变量值:

$level =>调试
$mex =>系统执行
$ctx =>

[0]=> array(2) { ["name"]=> string(6) "john" ["username"]=> string(6) "foo" } [1]=> array(2) { ["name"]=> string(4) "jack" ["username"]=> string(3) "foo" }

现在在条件中我将上下文附加到带有外部函数的消息,以便更好地格式化消息。 $message的最终结果是这样的:

`[26-02-2016 16:08:40.392436] [debug] System executed.  
 0: array( 'name' => 'john', 'username' => 'foo' )  
 1: array( 'name' => 'jack', 'username' => 'foo' )`

所以一个简单的文件内容是这样的:

[25-02-2016 16:55:09.497203] [exception] SQLSTATE[42S02]: Base table or 
 view not found: 1146 Table 'test.pdd_userss' doesn't exist 
 0: array(
  'Stack' => 'Stack trace... ""
  'ID' => 'john foo'
 )
[25-02-2016 16:55:09.497857] [info] Sistema executed. 
   0: array(
      'ID' => 'john foo'
   )
[25-02-2016 16:55:13.255716] [info] System done. 

我需要做的是解析函数write

中的每条消息
private function write($mex)
{
    if(fwrite($this->_handle, $mex) === false)
    {
        throw new RuntimeException('check the file permission');
    }
 }

执行write函数后调用Message函数,首先我格式化消息,然后将其写入文件。现在我需要做的是以json格式编码每条消息,这样我就可以在其他项目中简单地解析整个txt文件,我该怎么做?

0 个答案:

没有答案