2005-06-11 12:48:02 +02:00
< ? php
2012-05-13 17:11:31 +02:00
/* Copyright ( C ) 2005 - 2012 Laurent Destailleur < eldy @ users . sourceforge . net >
2009-05-07 16:33:52 +02:00
* Copyright ( C ) 2005 - 2009 Regis Houssin < regis @ dolibarr . fr >
2007-01-07 19:19:59 +01:00
* Copyright ( C ) 2007 Rodolphe Quiedeville < rodolphe @ quiedeville . org >
2005-06-11 12:48:02 +02: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-08-01 00:21:57 +02:00
* along with this program . If not , see < http :// www . gnu . org / licenses />.
2005-06-11 12:48:02 +02:00
*/
/**
2008-06-16 14:45:41 +02:00
* \file htdocs / admin / syslog . php
* \ingroup syslog
2011-10-03 17:19:39 +02:00
* \brief Setup page for logs module
2008-06-16 14:45:41 +02:00
*/
2012-08-22 23:24:21 +02:00
require '../main.inc.php' ;
2012-08-22 23:11:24 +02:00
require_once DOL_DOCUMENT_ROOT . '/core/lib/admin.lib.php' ;
2005-06-11 12:48:02 +02:00
2011-09-21 15:16:13 +02:00
if ( ! $user -> admin ) accessforbidden ();
2005-06-11 12:48:02 +02:00
2007-02-27 22:14:15 +01:00
$langs -> load ( " admin " );
$langs -> load ( " other " );
2011-10-03 17:19:39 +02:00
$error = 0 ; $mesg = '' ;
2011-09-03 15:30:50 +02:00
$action = GETPOST ( " action " );
2011-10-03 17:19:39 +02: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 17:23:16 +02: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 17:19:39 +02:00
2007-02-27 22:14:15 +01:00
2005-06-11 12:48:02 +02:00
/*
2008-06-16 14:45:41 +02:00
* Actions
2005-06-11 12:48:02 +02:00
*/
2011-09-21 15:16:13 +02:00
2011-10-03 17:19:39 +02:00
// Set modes
if ( $action == 'set' )
2007-01-05 10:08:03 +01:00
{
2011-10-03 17:19:39 +02:00
$db -> begin ();
2011-09-21 15:16:13 +02:00
2011-10-03 17:19:39 +02:00
$res = dolibarr_del_const ( $db , " SYSLOG_FILE_ON " , 0 );
$res = dolibarr_del_const ( $db , " SYSLOG_SYSLOG_ON " , 0 );
2011-10-06 00:49:58 +02:00
$res = dolibarr_del_const ( $db , " SYSLOG_FIREPHP_ON " , 0 );
2007-02-27 22:14:15 +01:00
2011-11-09 17:09:14 +01:00
$syslog_file_on = 0 ;
$syslog_syslog_on = 0 ;
$syslog_firephp_on = 0 ;
2012-09-07 17:23:16 +02:00
$syslog_chromephp_on = 0 ;
2011-11-09 17:09:14 +01:00
2011-10-03 17:19:39 +02:00
if ( ! $error && GETPOST ( " filename " ))
2007-02-27 22:14:15 +01:00
{
2011-10-03 17:19:39 +02: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 14:45:41 +02:00
{
2011-10-03 17:19:39 +02:00
fclose ( $file );
2011-09-03 15:30:50 +02:00
2011-10-03 17:19:39 +02:00
dol_syslog ( " admin/syslog: file " . $filename );
$res = dolibarr_set_const ( $db , " SYSLOG_FILE " , $filename , 'chaine' , 0 , '' , 0 );
2011-09-03 15:30:50 +02:00
if ( ! $res > 0 ) $error ++ ;
2011-10-03 17:19:39 +02: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 14:45:41 +02:00
}
else
{
2011-10-03 17:19:39 +02:00
$error ++ ;
$mesg = " <font class= \" error \" > " . $langs -> trans ( " ErrorFailedToOpenFile " , $filename ) . " </font> " ;
2008-06-16 14:45:41 +02:00
}
2007-02-27 22:14:15 +01:00
}
2010-05-23 12:20:35 +02:00
2011-10-03 17:19:39 +02:00
if ( ! $error && GETPOST ( " facility " ))
2007-02-27 22:14:15 +01:00
{
2011-10-03 17:19:39 +02:00
$facility = GETPOST ( " facility " );
if ( defined ( $_POST [ " facility " ]))
2008-06-16 14:45:41 +02:00
{
2011-10-03 17:19:39 +02: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 15:30:50 +02:00
if ( ! $res > 0 ) $error ++ ;
2011-10-03 17:19:39 +02: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 14:45:41 +02:00
}
else
{
2011-10-03 17:19:39 +02:00
$error ++ ;
$mesg = " <font class= \" error \" > " . $langs -> trans ( " ErrorUnknownSyslogConstant " , $facility ) . " </font> " ;
2008-06-16 14:45:41 +02:00
}
2007-02-27 22:14:15 +01:00
}
2011-10-03 17:19:39 +02:00
2012-08-29 17:43:20 +02:00
if ( ! $error && isset ( $_POST [ 'SYSLOG_FIREPHP_ON' ])) // If firephp no available, post is not present. We must keep isset here.
2011-10-06 00:49:58 +02: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 17:43:20 +02: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 17:19:39 +02: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 12:48:02 +02:00
}
2011-10-03 17:19:39 +02: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 10:08:03 +01:00
2008-06-16 14:45:41 +02:00
/*
* View
*/
2007-01-07 19:19:59 +01:00
2007-01-05 10:08:03 +01:00
llxHeader ();
2011-11-08 10:18:45 +01:00
$form = new Form ( $db );
2009-04-29 17:02:40 +02:00
2008-01-26 16:10:18 +01: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 10:08:03 +01:00
print '<br>' ;
$def = array ();
2005-06-11 12:48:02 +02:00
2009-05-07 11:06:57 +02:00
$syslogfacility = $defaultsyslogfacility = dolibarr_get_const ( $db , " SYSLOG_FACILITY " , 0 );
$syslogfile = $defaultsyslogfile = dolibarr_get_const ( $db , " SYSLOG_FILE " , 0 );
2008-04-19 22:57:29 +02:00
2005-06-11 12:48:02 +02:00
if ( ! $defaultsyslogfacility ) $defaultsyslogfacility = 'LOG_USER' ;
if ( ! $defaultsyslogfile ) $defaultsyslogfile = 'dolibarr.log' ;
2009-05-07 11:06:57 +02:00
if ( $conf -> global -> MAIN_MODULE_MULTICOMPANY && $user -> entity )
{
print '<div class="error">' . $langs -> trans ( " ContactSuperAdminForChange " ) . '</div>' ;
$option = 'disabled="disabled"' ;
}
2008-06-16 14:45:41 +02:00
// Output mode
2005-06-11 12:48:02 +02:00
print_titre ( $langs -> trans ( " SyslogOutput " ));
2007-02-27 22:14:15 +01:00
// Mode
2008-10-03 00:29:54 +02:00
print '<form action="' . $_SERVER [ " PHP_SELF " ] . '" method="post">' ;
2009-05-17 10:01:54 +02:00
print '<input type="hidden" name="token" value="' . $_SESSION [ 'newtoken' ] . '">' ;
2005-06-11 12:48:02 +02:00
print '<input type="hidden" name="action" value="set">' ;
2007-01-05 10:08:03 +01:00
print '<table class="noborder" width="100%">' ;
2005-06-11 12:48:02 +02:00
print '<tr class="liste_titre">' ;
2010-05-23 12:20:35 +02:00
print '<td>' . $langs -> trans ( " Type " ) . '</td><td>' . $langs -> trans ( " Value " ) . '</td>' ;
2009-05-07 11:06:57 +02:00
print '<td align="right" colspan="2"><input type="submit" class="button" ' . $option . ' value="' . $langs -> trans ( " Modify " ) . '"></td>' ;
2005-06-11 12:48:02 +02:00
print " </tr> \n " ;
$var = true ;
2011-10-03 17:19:39 +02:00
2012-08-29 17:43:20 +02:00
// Output to file
2005-06-11 12:48:02 +02:00
$var =! $var ;
2011-10-06 00:49:58 +02: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 17:11:31 +02:00
print '<td nowrap="nowrap">' . $langs -> trans ( " SyslogFilename " ) . ': <input type="text" class="flat" name="filename" ' . $option . ' size="60" value="' . $defaultsyslogfile . '">' ;
2011-10-03 17:19:39 +02:00
print '</td>' ;
2011-11-08 10:18:45 +01:00
print " <td align= \" left \" > " . $form -> textwithpicto ( '' , $langs -> trans ( " YouCanUseDOL_DATA_ROOT " ));
2009-01-21 15:09:42 +01:00
print '</td></tr>' ;
2007-02-27 22:14:15 +01:00
2012-08-29 17:43:20 +02:00
// Output to syslog
2007-02-27 22:14:15 +01:00
$var =! $var ;
2011-10-06 00:49:58 +02: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 17:11:31 +02:00
print '<td nowrap="nowrap">' . $langs -> trans ( " SyslogFacility " ) . ': <input type="text" class="flat" name="facility" ' . $option . ' value="' . $defaultsyslogfacility . '">' ;
2009-04-29 23:26:17 +02:00
print '</td>' ;
2012-07-30 17:33:32 +02:00
print " <td align= \" left \" > " . $form -> textwithpicto ( '' , $langs -> trans ( 'OnlyWindowsLOG_USER' ));
2009-01-25 15:30:42 +01:00
print '</td></tr>' ;
2007-02-27 22:14:15 +01:00
2012-08-29 17:43:20 +02:00
// Output to Firebug
2011-10-06 00:49:58 +02:00
try
{
set_include_path ( '/usr/share/php/' );
2012-08-23 02:04:35 +02:00
$res =@ include_once 'FirePHPCore/FirePHP.class.php' ;
2011-10-06 00:49:58 +02:00
restore_include_path ();
2012-02-22 13:23:13 +01: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 17:11:31 +02:00
print '<td nowrap="nowrap">' ;
2012-02-22 13:23:13 +01: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-06 00:49:58 +02:00
}
catch ( Exception $e )
{
// Do nothing
print '<!-- FirePHP no available into PHP -->' . " \n " ;
}
2012-09-07 17:23:16 +02: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 17:43:20 +02:00
2007-02-27 22:14:15 +01:00
print " </table> \n " ;
print " </form> \n " ;
2007-01-05 10:08:03 +01:00
2011-10-03 17:19:39 +02:00
print '<br>' ;
print_titre ( $langs -> trans ( " SyslogLevel " ));
2007-02-27 22:14:15 +01:00
// Level
print '<form action="syslog.php" method="post">' ;
2009-05-17 10:01:54 +02:00
print '<input type="hidden" name="token" value="' . $_SESSION [ 'newtoken' ] . '">' ;
2007-02-27 22:14:15 +01:00
print '<input type="hidden" name="action" value="setlevel">' ;
print '<table class="noborder" width="100%">' ;
print '<tr class="liste_titre">' ;
2010-05-23 12:20:35 +02:00
print '<td>' . $langs -> trans ( " Parameter " ) . '</td><td>' . $langs -> trans ( " Value " ) . '</td>' ;
2009-05-07 11:06:57 +02:00
print '<td align="right"><input type="submit" class="button" ' . $option . ' value="' . $langs -> trans ( " Modify " ) . '"></td>' ;
2007-02-27 22:14:15 +01:00
print " </tr> \n " ;
$var = true ;
$var =! $var ;
2012-05-13 17:11:31 +02:00
print '<tr ' . $bc [ $var ] . '><td width="140">' . $langs -> trans ( " SyslogLevel " ) . '</td>' ;
2009-05-07 11:06:57 +02:00
print '<td colspan="2"><select class="flat" name="level" ' . $option . '>' ;
2007-05-10 20:25:19 +02: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 22:03:33 +01:00
print '<option value="' . LOG_DEBUG . '" ' . ( $conf -> global -> SYSLOG_LEVEL >= LOG_DEBUG ? 'SELECTED' : '' ) . '>LOG_DEBUG (' . LOG_DEBUG . ')</option>' ;
2007-02-27 22:14:15 +01:00
print '</select>' ;
print '</td></tr>' ;
print '</table>' ;
2007-01-05 10:08:03 +01:00
print " </form> \n " ;
2005-06-11 12:48:02 +02:00
2011-09-03 15:30:50 +02:00
dol_htmloutput_mesg ( $mesg );
2011-08-27 16:24:16 +02:00
llxFooter ();
2012-02-22 13:23:13 +01:00
$db -> close ();
2012-02-22 15:24:34 +01:00
?>