2005-06-11 10:48:02 +00:00
< ? php
2012-05-13 15:11:31 +00:00
/* Copyright ( C ) 2005 - 2012 Laurent Destailleur < eldy @ users . sourceforge . net >
2009-05-07 14:33:52 +00:00
* Copyright ( C ) 2005 - 2009 Regis Houssin < regis @ dolibarr . fr >
2007-01-07 18:19:59 +00:00
* Copyright ( C ) 2007 Rodolphe Quiedeville < rodolphe @ quiedeville . org >
2005-06-11 10:48:02 +00:00
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 2 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
2011-07-31 22:21:57 +00:00
* along with this program . If not , see < http :// www . gnu . org / licenses />.
2005-06-11 10:48:02 +00:00
*/
/**
2008-06-16 12:45:41 +00:00
* \file htdocs / admin / syslog . php
* \ingroup syslog
2011-10-03 15:19:39 +00:00
* \brief Setup page for logs module
2008-06-16 12:45:41 +00:00
*/
2012-08-22 21:24:21 +00:00
require '../main.inc.php' ;
2012-08-22 21:11:24 +00:00
require_once DOL_DOCUMENT_ROOT . '/core/lib/admin.lib.php' ;
2005-06-11 10:48:02 +00:00
2011-09-21 13:16:13 +00:00
if ( ! $user -> admin ) accessforbidden ();
2005-06-11 10:48:02 +00:00
2007-02-27 21:14:15 +00:00
$langs -> load ( " admin " );
$langs -> load ( " other " );
2011-10-03 15:19:39 +00:00
$error = 0 ; $mesg = '' ;
2011-09-03 13:30:50 +00:00
$action = GETPOST ( " action " );
2011-10-03 15:19:39 +00:00
$syslog_file_on = ( defined ( 'SYSLOG_FILE_ON' ) && constant ( 'SYSLOG_FILE_ON' )) ? 1 : 0 ;
$syslog_syslog_on = ( defined ( 'SYSLOG_SYSLOG_ON' ) && constant ( 'SYSLOG_SYSLOG_ON' )) ? 1 : 0 ;
2012-09-07 15:23:16 +00:00
$syslog_firephp_on = ( defined ( 'SYSLOG_FIREPHP_ON' ) && constant ( 'SYSLOG_FIREPHP_ON' )) ? 1 : 0 ;
$syslog_chromephp_on = ( defined ( 'SYSLOG_CHROMEPHP_ON' ) && constant ( 'SYSLOG_CHROMEPHP_ON' )) ? 1 : 0 ;
2011-10-03 15:19:39 +00:00
2007-02-27 21:14:15 +00:00
2005-06-11 10:48:02 +00:00
/*
2008-06-16 12:45:41 +00:00
* Actions
2005-06-11 10:48:02 +00:00
*/
2011-09-21 13:16:13 +00:00
2011-10-03 15:19:39 +00:00
// Set modes
if ( $action == 'set' )
2007-01-05 09:08:03 +00:00
{
2011-10-03 15:19:39 +00:00
$db -> begin ();
2011-09-21 13:16:13 +00:00
2011-10-03 15:19:39 +00:00
$res = dolibarr_del_const ( $db , " SYSLOG_FILE_ON " , 0 );
$res = dolibarr_del_const ( $db , " SYSLOG_SYSLOG_ON " , 0 );
2011-10-05 22:49:58 +00:00
$res = dolibarr_del_const ( $db , " SYSLOG_FIREPHP_ON " , 0 );
2012-10-08 18:47:10 +00:00
$res = dolibarr_del_const ( $db , " SYSLOG_CHROMEPHP_ON " , 0 );
2007-02-27 21:14:15 +00:00
2011-11-09 16:09:14 +00:00
$syslog_file_on = 0 ;
$syslog_syslog_on = 0 ;
$syslog_firephp_on = 0 ;
2012-09-07 15:23:16 +00:00
$syslog_chromephp_on = 0 ;
2011-11-09 16:09:14 +00:00
2011-10-03 15:19:39 +00:00
if ( ! $error && GETPOST ( " filename " ))
2007-02-27 21:14:15 +00:00
{
2011-10-03 15:19:39 +00:00
$filename = GETPOST ( " filename " );
$filelog = GETPOST ( " filename " );
$filelog = preg_replace ( '/DOL_DATA_ROOT/i' , DOL_DATA_ROOT , $filelog );
$file =@ fopen ( $filelog , " a+ " );
if ( $file )
2008-06-16 12:45:41 +00:00
{
2011-10-03 15:19:39 +00:00
fclose ( $file );
2011-09-03 13:30:50 +00:00
2011-10-03 15:19:39 +00:00
dol_syslog ( " admin/syslog: file " . $filename );
$res = dolibarr_set_const ( $db , " SYSLOG_FILE " , $filename , 'chaine' , 0 , '' , 0 );
2011-09-03 13:30:50 +00:00
if ( ! $res > 0 ) $error ++ ;
2011-10-03 15:19:39 +00:00
$syslog_file_on = GETPOST ( 'SYSLOG_FILE_ON' );
if ( ! $error ) $res = dolibarr_set_const ( $db , " SYSLOG_FILE_ON " , $syslog_file_on , 'chaine' , 0 , '' , 0 );
2008-06-16 12:45:41 +00:00
}
else
{
2011-10-03 15:19:39 +00:00
$error ++ ;
$mesg = " <font class= \" error \" > " . $langs -> trans ( " ErrorFailedToOpenFile " , $filename ) . " </font> " ;
2008-06-16 12:45:41 +00:00
}
2007-02-27 21:14:15 +00:00
}
2010-05-23 10:20:35 +00:00
2011-10-03 15:19:39 +00:00
if ( ! $error && GETPOST ( " facility " ))
2007-02-27 21:14:15 +00:00
{
2011-10-03 15:19:39 +00:00
$facility = GETPOST ( " facility " );
if ( defined ( $_POST [ " facility " ]))
2008-06-16 12:45:41 +00:00
{
2011-10-03 15:19:39 +00:00
// Only LOG_USER supported on Windows
if ( ! empty ( $_SERVER [ " WINDIR " ])) $facility = 'LOG_USER' ;
dol_syslog ( " admin/syslog: facility " . $facility );
$res = dolibarr_set_const ( $db , " SYSLOG_FACILITY " , $facility , 'chaine' , 0 , '' , 0 );
2011-09-03 13:30:50 +00:00
if ( ! $res > 0 ) $error ++ ;
2011-10-03 15:19:39 +00:00
$syslog_syslog_on = GETPOST ( 'SYSLOG_SYSLOG_ON' );
if ( ! $error ) $res = dolibarr_set_const ( $db , " SYSLOG_SYSLOG_ON " , $syslog_syslog_on , 'chaine' , 0 , '' , 0 );
2008-06-16 12:45:41 +00:00
}
else
{
2011-10-03 15:19:39 +00:00
$error ++ ;
$mesg = " <font class= \" error \" > " . $langs -> trans ( " ErrorUnknownSyslogConstant " , $facility ) . " </font> " ;
2008-06-16 12:45:41 +00:00
}
2007-02-27 21:14:15 +00:00
}
2011-10-03 15:19:39 +00:00
2012-08-29 15:43:20 +00:00
if ( ! $error && isset ( $_POST [ 'SYSLOG_FIREPHP_ON' ])) // If firephp no available, post is not present. We must keep isset here.
2011-10-05 22:49:58 +00:00
{
$syslog_firephp_on = GETPOST ( 'SYSLOG_FIREPHP_ON' );
if ( ! $error ) $res = dolibarr_set_const ( $db , " SYSLOG_FIREPHP_ON " , $syslog_firephp_on , 'chaine' , 0 , '' , 0 );
}
2012-08-29 15:43:20 +00:00
if ( ! $error && isset ( $_POST [ 'SYSLOG_CHROMEPHP_ON' ])) // If chromephp no available, post is not present. We must keep isset here.
{
$syslog_chromephp_on = GETPOST ( 'SYSLOG_CHROMEPHP_ON' );
if ( ! $error ) $res = dolibarr_set_const ( $db , " SYSLOG_CHROMEPHP_ON " , $syslog_chromephp_on , 'chaine' , 0 , '' , 0 );
}
if ( ! $error )
2011-10-03 15:19:39 +00:00
{
$db -> commit ();
$mesg = " <font class= \" ok \" > " . $langs -> trans ( " SetupSaved " ) . " </font> " ;
}
else
{
$db -> rollback ();
if ( empty ( $mesg )) $mesg = " <font class= \" error \" > " . $langs -> trans ( " Error " ) . " </font> " ;
}
2005-06-11 10:48:02 +00:00
}
2011-10-03 15:19:39 +00:00
// Set level
if ( $action == 'setlevel' )
{
$level = GETPOST ( " level " );
$res = dolibarr_set_const ( $db , " SYSLOG_LEVEL " , $level , 'chaine' , 0 , '' , 0 );
dol_syslog ( " admin/syslog: level " . $level );
if ( ! $res > 0 ) $error ++ ;
if ( ! $error )
{
$mesg = " <font class= \" ok \" > " . $langs -> trans ( " SetupSaved " ) . " </font> " ;
}
else
{
$mesg = " <font class= \" error \" > " . $langs -> trans ( " Error " ) . " </font> " ;
}
}
2007-01-05 09:08:03 +00:00
2008-06-16 12:45:41 +00:00
/*
* View
*/
2007-01-07 18:19:59 +00:00
2007-01-05 09:08:03 +00:00
llxHeader ();
2011-11-08 09:18:45 +00:00
$form = new Form ( $db );
2009-04-29 15:02:40 +00:00
2008-01-26 15:10:18 +00:00
$linkback = '<a href="' . DOL_URL_ROOT . '/admin/modules.php">' . $langs -> trans ( " BackToModuleList " ) . '</a>' ;
print_fiche_titre ( $langs -> trans ( " SyslogSetup " ), $linkback , 'setup' );
2007-01-05 09:08:03 +00:00
print '<br>' ;
$def = array ();
2005-06-11 10:48:02 +00:00
2009-05-07 09:06:57 +00:00
$syslogfacility = $defaultsyslogfacility = dolibarr_get_const ( $db , " SYSLOG_FACILITY " , 0 );
$syslogfile = $defaultsyslogfile = dolibarr_get_const ( $db , " SYSLOG_FILE " , 0 );
2008-04-19 20:57:29 +00:00
2005-06-11 10:48:02 +00:00
if ( ! $defaultsyslogfacility ) $defaultsyslogfacility = 'LOG_USER' ;
if ( ! $defaultsyslogfile ) $defaultsyslogfile = 'dolibarr.log' ;
2009-05-07 09:06:57 +00:00
if ( $conf -> global -> MAIN_MODULE_MULTICOMPANY && $user -> entity )
{
print '<div class="error">' . $langs -> trans ( " ContactSuperAdminForChange " ) . '</div>' ;
$option = 'disabled="disabled"' ;
}
2008-06-16 12:45:41 +00:00
// Output mode
2005-06-11 10:48:02 +00:00
print_titre ( $langs -> trans ( " SyslogOutput " ));
2007-02-27 21:14:15 +00:00
// Mode
2008-10-02 22:29:54 +00:00
print '<form action="' . $_SERVER [ " PHP_SELF " ] . '" method="post">' ;
2009-05-17 08:01:54 +00:00
print '<input type="hidden" name="token" value="' . $_SESSION [ 'newtoken' ] . '">' ;
2005-06-11 10:48:02 +00:00
print '<input type="hidden" name="action" value="set">' ;
2007-01-05 09:08:03 +00:00
print '<table class="noborder" width="100%">' ;
2005-06-11 10:48:02 +00:00
print '<tr class="liste_titre">' ;
2010-05-23 10:20:35 +00:00
print '<td>' . $langs -> trans ( " Type " ) . '</td><td>' . $langs -> trans ( " Value " ) . '</td>' ;
2009-05-07 09:06:57 +00:00
print '<td align="right" colspan="2"><input type="submit" class="button" ' . $option . ' value="' . $langs -> trans ( " Modify " ) . '"></td>' ;
2005-06-11 10:48:02 +00:00
print " </tr> \n " ;
$var = true ;
2011-10-03 15:19:39 +00:00
2012-08-29 15:43:20 +00:00
// Output to file
2005-06-11 10:48:02 +00:00
$var =! $var ;
2011-10-05 22:49:58 +00:00
print '<tr ' . $bc [ $var ] . '><td width="140"><input ' . $bc [ $var ] . ' type="checkbox" name="SYSLOG_FILE_ON" ' . $option . ' value="1" ' . ( $syslog_file_on ? ' checked="checked"' : '' ) . '> ' . $langs -> trans ( " SyslogSimpleFile " ) . '</td>' ;
2012-05-13 15:11:31 +00:00
print '<td nowrap="nowrap">' . $langs -> trans ( " SyslogFilename " ) . ': <input type="text" class="flat" name="filename" ' . $option . ' size="60" value="' . $defaultsyslogfile . '">' ;
2011-10-03 15:19:39 +00:00
print '</td>' ;
2011-11-08 09:18:45 +00:00
print " <td align= \" left \" > " . $form -> textwithpicto ( '' , $langs -> trans ( " YouCanUseDOL_DATA_ROOT " ));
2009-01-21 14:09:42 +00:00
print '</td></tr>' ;
2007-02-27 21:14:15 +00:00
2012-08-29 15:43:20 +00:00
// Output to syslog
2007-02-27 21:14:15 +00:00
$var =! $var ;
2011-10-05 22:49:58 +00:00
print '<tr ' . $bc [ $var ] . '><td width="140"><input ' . $bc [ $var ] . ' type="checkbox" name="SYSLOG_SYSLOG_ON" ' . $option . ' value="1" ' . ( $syslog_syslog_on ? ' checked="checked"' : '' ) . '> ' . $langs -> trans ( " SyslogSyslog " ) . '</td>' ;
2012-05-13 15:11:31 +00:00
print '<td nowrap="nowrap">' . $langs -> trans ( " SyslogFacility " ) . ': <input type="text" class="flat" name="facility" ' . $option . ' value="' . $defaultsyslogfacility . '">' ;
2009-04-29 21:26:17 +00:00
print '</td>' ;
2012-07-30 15:33:32 +00:00
print " <td align= \" left \" > " . $form -> textwithpicto ( '' , $langs -> trans ( 'OnlyWindowsLOG_USER' ));
2009-01-25 14:30:42 +00:00
print '</td></tr>' ;
2007-02-27 21:14:15 +00:00
2012-08-29 15:43:20 +00:00
// Output to Firebug
2011-10-05 22:49:58 +00:00
try
{
set_include_path ( '/usr/share/php/' );
2012-08-23 00:04:35 +00:00
$res =@ include_once 'FirePHPCore/FirePHP.class.php' ;
2011-10-05 22:49:58 +00:00
restore_include_path ();
2012-02-22 12:23:13 +00:00
if ( $res )
{
$var =! $var ;
print '<tr ' . $bc [ $var ] . '><td width="140"><input ' . $bc [ $var ] . ' type="checkbox" name="SYSLOG_FIREPHP_ON" ' . $option . ' value="1" ' ;
if ( ! class_exists ( 'FirePHP' )) print ' disabled="disabled"' ;
else print ( $syslog_firephp_on ? ' checked="checked"' : " " );
print '> ' . $langs -> trans ( " FirePHP " ) . '</td>' ;
2012-05-13 15:11:31 +00:00
print '<td nowrap="nowrap">' ;
2012-02-22 12:23:13 +00:00
print '</td>' ;
print " <td align= \" left \" > " . $form -> textwithpicto ( '' , 'FirePHP must be installed onto PHP and FirePHP plugin for Firefox must also be installed' );
print '</td></tr>' ;
}
2011-10-05 22:49:58 +00:00
}
catch ( Exception $e )
{
// Do nothing
print '<!-- FirePHP no available into PHP -->' . " \n " ;
}
2012-09-07 15:23:16 +00:00
// Output to Chrome
try
{
set_include_path ( '/usr/share/php/' );
$res =@ include_once 'ChromePhp.php' ;
restore_include_path ();
if ( $res )
{
$var =! $var ;
print '<tr ' . $bc [ $var ] . '><td width="140"><input ' . $bc [ $var ] . ' type="checkbox" name="SYSLOG_CHROMEPHP_ON" ' . $option . ' value="1" ' ;
if ( ! class_exists ( 'ChromePHP' )) print ' disabled="disabled"' ;
else print ( $syslog_chromephp_on ? ' checked="checked"' : " " );
print '> ' . $langs -> trans ( " ChromePHP " ) . '</td>' ;
print '<td nowrap="nowrap">' ;
print '</td>' ;
print " <td align= \" left \" > " . $form -> textwithpicto ( '' , 'ChromePHP must be installed onto PHP path and ChromePHP plugin for Chrome must also be installed' );
print '</td></tr>' ;
}
}
catch ( Exception $e )
{
// Do nothing
print '<!-- ChromePHP no available into PHP -->' . " \n " ;
}
2012-08-29 15:43:20 +00:00
2007-02-27 21:14:15 +00:00
print " </table> \n " ;
print " </form> \n " ;
2007-01-05 09:08:03 +00:00
2011-10-03 15:19:39 +00:00
print '<br>' ;
print_titre ( $langs -> trans ( " SyslogLevel " ));
2007-02-27 21:14:15 +00:00
// Level
print '<form action="syslog.php" method="post">' ;
2009-05-17 08:01:54 +00:00
print '<input type="hidden" name="token" value="' . $_SESSION [ 'newtoken' ] . '">' ;
2007-02-27 21:14:15 +00:00
print '<input type="hidden" name="action" value="setlevel">' ;
print '<table class="noborder" width="100%">' ;
print '<tr class="liste_titre">' ;
2010-05-23 10:20:35 +00:00
print '<td>' . $langs -> trans ( " Parameter " ) . '</td><td>' . $langs -> trans ( " Value " ) . '</td>' ;
2009-05-07 09:06:57 +00:00
print '<td align="right"><input type="submit" class="button" ' . $option . ' value="' . $langs -> trans ( " Modify " ) . '"></td>' ;
2007-02-27 21:14:15 +00:00
print " </tr> \n " ;
$var = true ;
$var =! $var ;
2012-05-13 15:11:31 +00:00
print '<tr ' . $bc [ $var ] . '><td width="140">' . $langs -> trans ( " SyslogLevel " ) . '</td>' ;
2009-05-07 09:06:57 +00:00
print '<td colspan="2"><select class="flat" name="level" ' . $option . '>' ;
2007-05-10 18:25:19 +00:00
print '<option value="' . LOG_EMERG . '" ' . ( $conf -> global -> SYSLOG_LEVEL == LOG_EMERG ? 'SELECTED' : '' ) . '>LOG_EMERG (' . LOG_EMERG . ')</option>' ;
print '<option value="' . LOG_ALERT . '" ' . ( $conf -> global -> SYSLOG_LEVEL == LOG_ALERT ? 'SELECTED' : '' ) . '>LOG_ALERT (' . LOG_ALERT . ')</option>' ;
print '<option value="' . LOG_CRIT . '" ' . ( $conf -> global -> SYSLOG_LEVEL == LOG_CRIT ? 'SELECTED' : '' ) . '>LOG_CRIT (' . LOG_CRIT . ')</option>' ;
print '<option value="' . LOG_ERR . '" ' . ( $conf -> global -> SYSLOG_LEVEL == LOG_ERR ? 'SELECTED' : '' ) . '>LOG_ERR (' . LOG_ERR . ')</option>' ;
print '<option value="' . LOG_WARNING . '" ' . ( $conf -> global -> SYSLOG_LEVEL == LOG_WARNING ? 'SELECTED' : '' ) . '>LOG_WARNING (' . LOG_WARNING . ')</option>' ;
print '<option value="' . LOG_NOTICE . '" ' . ( $conf -> global -> SYSLOG_LEVEL == LOG_NOTICE ? 'SELECTED' : '' ) . '>LOG_NOTICE (' . LOG_NOTICE . ')</option>' ;
print '<option value="' . LOG_INFO . '" ' . ( $conf -> global -> SYSLOG_LEVEL == LOG_INFO ? 'SELECTED' : '' ) . '>LOG_INFO (' . LOG_INFO . ')</option>' ;
2009-11-17 21:03:33 +00:00
print '<option value="' . LOG_DEBUG . '" ' . ( $conf -> global -> SYSLOG_LEVEL >= LOG_DEBUG ? 'SELECTED' : '' ) . '>LOG_DEBUG (' . LOG_DEBUG . ')</option>' ;
2007-02-27 21:14:15 +00:00
print '</select>' ;
print '</td></tr>' ;
print '</table>' ;
2007-01-05 09:08:03 +00:00
print " </form> \n " ;
2005-06-11 10:48:02 +00:00
2011-09-03 13:30:50 +00:00
dol_htmloutput_mesg ( $mesg );
2011-08-27 14:24:16 +00:00
llxFooter ();
2012-02-22 12:23:13 +00:00
$db -> close ();
2012-02-22 14:24:34 +00:00
?>