예제 #1
0
function configSyslog(&$arrCfg)
{
    $logPath = null;
    // safe default command line
    $args = '-S -C512';
    if (isset($arrCfg['system']['syslog'])) {
        // configure local syslog mode
        if (isset($arrCfg['system']['syslog']['mode'])) {
            if ($arrCfg['system']['syslog']['mode'] == 'membuffer') {
                if (isset($arrCfg['system']['syslog']['buffer']) && !empty($arrCfg['system']['syslog']['buffer'])) {
                    $args = "-S -C{$arrCfg['system']['syslog']['buffer']}";
                }
            } elseif ($arrCfg['system']['syslog']['mode'] == 'disk' && ($logPath = getSvcState($arrCfg, 'systemlog')) == !false) {
                $args = "-S -s 1024 -b 5 -O {$logPath}/messages";
            }
        }
        // configure remote logging
        if (isset($arrCfg['system']['syslog']['remotehost']) && !empty($arrCfg['system']['syslog']['remotehost'])) {
            $args .= " -R {$arrCfg['system']['syslog']['remotehost']}";
            if (isset($arrCfg['system']['syslog']['remoteport']) && !empty($arrCfg['system']['syslog']['remoteport'])) {
                $args .= ":{$arrCfg['system']['syslog']['remoteport']}";
            }
            // anyway... keep local logging
            $args .= ' -L';
        }
    }
    $saveOld = false;
    getProcessCmdline('syslogd');
    if ($oldArgs !== false) {
        if ($oldArgs === $args) {
            // nothing to do
            return false;
        }
        if (strpos($oldArgs, '-C') !== false) {
            $saveOld = true;
        }
    }
    return array('args' => $args, 'saveOld' => $saveOld, 'logPath' => $logPath);
}
예제 #2
0
            $cfgPtr['remoteport'] = $form->getTextFld('remoteport');
        }
        // save configuration
        $retval = 0;
        write_config();
        if (!file_exists($d_sysrebootreqd_path)) {
            config_lock();
            $retval |= restartSyslog($config);
            config_unlock();
        }
        $savemsg = get_std_save_message($retval);
    }
} else {
    // prepare the configuration form
    $form->startFieldSet('fset_local', _('Local log'));
    if (($logPath = getSvcState($config, 'systemlog')) == !false) {
        $form->startBlock('rw_localmode');
        $form->setLabel(null, _('Mode'), 'mode', 'class=labelcol');
        $form->startBlock('rw_localmode', 'right');
        $form->setField('mode', 'select', 'name=mode');
        //
        $modeOptions = array('membuffer' => _('Shared memory circular buffer'), 'disk' => _('Disk') . " ({$logPath}/messages)");
        $form->setSelectOptFill('mode', $modeOptions);
        $form->setFieldOptionsState('mode', $cfgPtr['mode'], 'membuffer');
        $form->setBlockHint('hint-syslogmode', _('Choose where log application writes the log messages it receives.') . '<br>' . _('Messages written to shared memory will not survive across reboots.'));
        //
        $form->exitBlock();
    }
    $form->startBlock('rw_buffer');
    $form->setLabel(null, _('Buffer size'), 'buffer', 'class=labelcol');
    $form->startBlock('rw_buffer', 'right');
예제 #3
0
	OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
	SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
	INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
	CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
	ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
	POSSIBILITY OF SUCH DAMAGE.
*/
require 'guiconfig.inc';
require_once 'services.lib.php';
require_once 'libs-php/uiutils.lib.php';
define('INCLUDE_TABSFILES', true);
$log_get_cmd = 'dmesg';
$logHeader = _('Kernel log entries');
if (isset($_GET) && !empty($_GET['show'])) {
    $sysLogReadCmd = 'logread';
    $sysLogPath = getSvcState($config, 'systemlog');
    if ($sysLogPath !== false && isset($config['system']['syslog']['mode']) && $config['system']['syslog']['mode'] == 'disk') {
        $sysLogFile = 'messages';
        // TODO: rotated logs, saved buffer...
        $sysLogReadCmd = "cat {$sysLogPath}/{$sysLogFile}";
    }
    switch ($_GET['show']) {
        case 'syslog':
            $log_get_cmd = $sysLogReadCmd . '|grep -v "asterisk\\["';
            $logHeader = _('System log entries');
            break;
        case 'asterisk':
            $log_get_cmd = $sysLogReadCmd . '|grep "asterisk\\["';
            $logHeader = _('Asterisk pbx log entries');
            break;
        case 'cdr':