是否可以根据日志级别将错误日志记录到其中的日志文件中。
例如,我有level = fatal,我会把所有的致命日志放到sugarcrm_fatal.log,level = info,我会把所有的信息日志放到sugarcrm_info.log
谢谢大家提前!
发布于 2017-02-08 09:29:47
我不是自己做的,你应该试一试,我只是推荐links.It可以帮你。
创建自定义记录器
自定义记录器
自定义记录器可用于将日志条目写入集中式应用程序管理工具,或用于向开发人员工具(如FirePHP )写入消息。
为此,您可以创建一个实现LoggerTemplate接口的新实例类。下面的代码是如何创建FirePHP记录器的示例。
您首先需要在./custom/include/SugarLogger/中创建记录器类。对于本例,我们将创建./custom/include/SugarLogger/FirePHPLogger.php。
<
?php
// change the path below to the path to your FirePHP install
require_once('/path/to/fb.php');
class FirePHPLogger implements LoggerTemplate
{
/** Constructor */
public function __construct()
{
if (
isset($GLOBALS['sugar_config']['logger']['default'])
&& $GLOBALS['sugar_config']['logger']['default'] == 'FirePHP'
)
{
LoggerManager::setLogger('default','FirePHPLogger');
}
}
/** see LoggerTemplate::log() */
public function log($level, $message)
{
// change to a string if there is just one entry
if ( is_array($message) && count($message) == 1 )
{
$message = array_shift($message);
}
switch ($level)
{
case 'debug':
FB::log($message);
break;
case 'info':
FB::info($message);
break;
case 'deprecated':
case 'warn':
FB::warn($message);
break;
case 'error':
case 'fatal':
case 'security':
FB::error($message);
break;
}
}
}默认情况下,唯一需要实现的方法是log()方法,它将日志消息写入后端。您可以通过调用LoggerManager::setLogger()方法并在第一个参数中指定此记录器要使用的级别来指定此后端可以在构造器中使用的日志级别;传递“默认”使其成为所有日志记录级别的记录器。
然后,在您的FirePHP文件中将默认的记录器指定为“config_override.php”。
$sugar_config['logger']['default'] = 'FirePHP';参考链接
有关日志的更多信息
https://stackoverflow.com/questions/42107530
复制相似问题