diff --git a/ChangeLog b/ChangeLog index c2f39ccc..ff8e589c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -18768,3 +18768,7 @@ 2019-06-13 Fred Gleason * Fixed a bug in rdalsaconfig(8) that caused the device list to be incorrectly sorted. +2019-06-17 Fred Gleason + * Refactored logging system to use syslog(3) exclusively. + * Removed the 'Facility=', 'LogDirectory=', 'CoreDumpDirectory=' + and 'LogPattern=' directives from rd.conf(5). diff --git a/cae/cae.cpp b/cae/cae.cpp index ff8ac41e..53585f06 100644 --- a/cae/cae.cpp +++ b/cae/cae.cpp @@ -18,6 +18,7 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // +#include #include #include diff --git a/cae/cae_alsa.cpp b/cae/cae_alsa.cpp index 2724b497..678f6c48 100644 --- a/cae/cae_alsa.cpp +++ b/cae/cae_alsa.cpp @@ -20,6 +20,7 @@ #include #include +#include #include @@ -72,9 +73,8 @@ void *AlsaCaptureCallback(void *ptr) (!alsa_format->exiting))||(s<0)) { snd_pcm_drop (alsa_format->pcm); snd_pcm_prepare(alsa_format->pcm); - rd_config->log("caed",RDConfig::LogNotice,QString(). - sprintf("****** ALSA Capture Xrun - Card: %d ******", - alsa_format->card)); + syslog(LOG_DEBUG,"****** ALSA Capture Xrun - Card: %d ******", + alsa_format->card); } else { switch(alsa_format->format) { @@ -510,21 +510,18 @@ void *AlsaPlayCallback(void *ptr) int s=snd_pcm_writei(alsa_format->pcm,alsa_format->card_buffer,n); if(s!=n) { if(s<0) { - rd_config->log("caed",RDConfig::LogNotice, - QString().sprintf("*** alsa error %d: %s",-s,snd_strerror(s))); + syslog(LOG_WARNING,"*** alsa error %d: %s",-s,snd_strerror(s)); } else { - rd_config->log("caed",RDConfig::LogNotice, - QString().sprintf("period size mismatch - wrote %d\n",s)); + syslog(LOG_WARNING,"period size mismatch - wrote %d",s); } } if((snd_pcm_state(alsa_format->pcm)!=SND_PCM_STATE_RUNNING)&& (!alsa_format->exiting)) { snd_pcm_drop (alsa_format->pcm); snd_pcm_prepare(alsa_format->pcm); - rd_config->log("caed",RDConfig::LogNotice,QString(). - sprintf("****** ALSA Playout Xrun - Card: %d ******", - alsa_format->card)); + syslog(LOG_DEBUG,"****** ALSA Playout Xrun - Card: %d ******", + alsa_format->card); } } @@ -570,7 +567,6 @@ void MainObject::AlsaInitCallback() void MainObject::alsaStopTimerData(int cardstream) { - rd_config->log("caed",RDConfig::LogErr,QString().sprintf("alsaStopTimerData(%d)",cardstream)); #ifdef ALSA int card=cardstream/RD_MAX_STREAMS; int stream=cardstream-card*RD_MAX_STREAMS; @@ -603,7 +599,7 @@ void MainObject::alsaFadeTimerData(int cardstream) alsa_fade_timer[card][stream]->stop(); } } - rd_config->log("caed",RDConfig::LogDebug,QString().sprintf("FadeLevel: %d",level)); + syslog(LOG_DEBUG,"FadeLevel: %d",level); alsaSetOutputVolume(card,stream,alsa_fade_port[card][stream],level); #endif // ALSA } @@ -723,9 +719,8 @@ void MainObject::alsaInit(RDStation *station) if(cae_driver[i]==RDStation::Alsa) { station->setCardDriver(i,RDStation::Alsa); if(snd_ctl_open(&snd_ctl,dev,0)<0) { - rd_config->log("caed",RDConfig::LogNotice,QString(). - sprintf("no control device found for %s", - (const char *)dev)); + syslog(LOG_DEBUG,"no control device found for %s", + (const char *)dev); station-> setCardName(i, QString().sprintf("ALSA Device %s",(const char *)dev)); @@ -783,17 +778,14 @@ bool MainObject::alsaLoadPlayback(int card,QString wavename,int *stream) { #ifdef ALSA if(alsa_play_format[card].exiting||((*stream=GetAlsaOutputStream(card))<0)) { - rd_config->log("caed",RDConfig::LogErr,QString().sprintf( - "Error: alsaLoadPlayback(%s) GetAlsaOutputStream():%d < 0", - (const char *) wavename, - *stream) ); + syslog(LOG_WARNING,"alsaLoadPlayback(%s) GetAlsaOutputStream():%d < 0", + (const char *)wavename.toUtf8(),*stream); return false; } alsa_play_wave[card][*stream]=new RDWaveFile(wavename); if(!alsa_play_wave[card][*stream]->openWave()) { - rd_config->log("caed",RDConfig::LogErr,QString().sprintf( - "Error: alsaLoadPlayback(%s) openWave() failed to open file", - (const char *) wavename) ); + syslog(LOG_WARNING,"alsaLoadPlayback(%s) openWave() failed to open file", + (const char *)wavename.toUtf8()); delete alsa_play_wave[card][*stream]; alsa_play_wave[card][*stream]=NULL; FreeAlsaOutputStream(card,*stream); @@ -810,11 +802,11 @@ bool MainObject::alsaLoadPlayback(int card,QString wavename,int *stream) break; default: - rd_config->log("caed",RDConfig::LogErr,QString().sprintf( - "Error: alsaLoadPlayback(%s) getFormatTag()%d || getBistsPerSample()%d failed", - (const char *) wavename, + syslog(LOG_WARNING, + "alsaLoadPlayback(%s) getFormatTag()%d || getBistsPerSample()%d failed", + (const char *)wavename.toUtf8(), alsa_play_wave[card][*stream]->getFormatTag(), - alsa_play_wave[card][*stream]->getBitsPerSample() )); + alsa_play_wave[card][*stream]->getBitsPerSample()); delete alsa_play_wave[card][*stream]; alsa_play_wave[card][*stream]=NULL; FreeAlsaOutputStream(card,*stream); @@ -998,9 +990,9 @@ bool MainObject::alsaLoadRecord(int card,int stream,int coding,int chans, break; default: - rd_config->log("caed",RDConfig::LogErr,QString(). - sprintf("requested unsupported channel count %d, card: %d, stream: %d", - chans,card,stream)); + syslog(LOG_WARNING, + "requested unsupported channel count %d, card: %d, stream: %d", + chans,card,stream); delete alsa_record_wave[card][stream]; alsa_record_wave[card][stream]=NULL; return false; @@ -1026,9 +1018,9 @@ bool MainObject::alsaLoadRecord(int card,int stream,int coding,int chans, break; default: - rd_config->log("caed",RDConfig::LogErr,QString(). - sprintf("requested invalid audio encoding %d, card: %d, stream: %d", - coding,card,stream)); + syslog(LOG_WARNING, + "requested invalid audio encoding %d, card: %d, stream: %d", + coding,card,stream); delete alsa_record_wave[card][stream]; alsa_record_wave[card][stream]=NULL; return false; @@ -1366,17 +1358,16 @@ bool MainObject::AlsaStartCaptureDevice(QString &dev,int card,snd_pcm_t *pcm) snd_pcm_hw_params_alloca(&hwparams); snd_pcm_hw_params_any(pcm,hwparams); - rd_config->log("caed",RDConfig::LogInfo,QString(). - sprintf("Starting ALSA Capture Device %s:", - (const char *)dev)); + syslog(LOG_INFO,"Starting ALSA Capture Device %s:", + (const char *)dev.toUtf8()); // // Access Type // if(snd_pcm_hw_params_test_access(pcm,hwparams, SND_PCM_ACCESS_RW_INTERLEAVED)<0) { - rd_config->log("caed",RDConfig::LogErr," Interleaved access not supported,"); - rd_config->log("caed",RDConfig::LogErr," aborting initialization of device."); + syslog(LOG_WARNING," Interleaved access not supported,"); + syslog(LOG_WARNING," aborting initialization of device."); return false; } snd_pcm_hw_params_set_access(pcm,hwparams,SND_PCM_ACCESS_RW_INTERLEAVED); @@ -1386,18 +1377,18 @@ bool MainObject::AlsaStartCaptureDevice(QString &dev,int card,snd_pcm_t *pcm) // if(snd_pcm_hw_params_test_format(pcm,hwparams,SND_PCM_FORMAT_S32_LE)==0) { alsa_capture_format[card].format=SND_PCM_FORMAT_S32_LE; - rd_config->log("caed",RDConfig::LogDebug," Format = 32 bit little-endian"); + syslog(LOG_INFO," Format = 32 bit little-endian"); } else { if(snd_pcm_hw_params_test_format(pcm,hwparams,SND_PCM_FORMAT_S16_LE)==0) { alsa_capture_format[card].format=SND_PCM_FORMAT_S16_LE; - rd_config->log("caed",RDConfig::LogDebug," Format = 16 bit little-endian"); + syslog(LOG_INFO," Format = 16 bit little-endian"); } else { - rd_config->log("caed",RDConfig::LogErr, - " Neither 16 nor 32 bit little-endian formats available,"); - rd_config->log("caed",RDConfig::LogErr, - " aborting initialization of device."); + syslog(LOG_WARNING, + " Neither 16 nor 32 bit little-endian formats available,"); + syslog(LOG_WARNING, + " aborting initialization of device."); return false; } } @@ -1415,14 +1406,13 @@ bool MainObject::AlsaStartCaptureDevice(QString &dev,int card,snd_pcm_t *pcm) snd_pcm_hw_params_set_rate_near(pcm,hwparams,&sr,&dir); if((sr<(system_sample_rate-RD_ALSA_SAMPLE_RATE_TOLERANCE))|| (sr>(system_sample_rate+RD_ALSA_SAMPLE_RATE_TOLERANCE))) { - rd_config->log("caed",RDConfig::LogErr, - QString().sprintf(" Asked for sample rate %u, got %u", - system_sample_rate,sr)); - rd_config->log("caed",RDConfig::LogErr," Sample rate unsupported by device"); + syslog(LOG_WARNING," Asked for sample rate %u, got %u", + system_sample_rate,sr); + syslog(LOG_WARNING," Sample rate unsupported by device"); return false; } alsa_capture_format[card].sample_rate=sr; - rd_config->log("caed",RDConfig::LogNotice,QString().sprintf(" SampleRate = %u",sr)); + syslog(LOG_INFO," SampleRate = %u",sr); // // Channels @@ -1436,9 +1426,8 @@ bool MainObject::AlsaStartCaptureDevice(QString &dev,int card,snd_pcm_t *pcm) snd_pcm_hw_params_set_channels_near(pcm,hwparams, &alsa_capture_format[card].channels); alsa_play_format[card].capture_channels=alsa_capture_format[card].channels; - rd_config->log("caed",RDConfig::LogDebug,QString(). - sprintf(" Aggregate Channels = %u", - alsa_capture_format[card].channels)); + syslog(LOG_INFO," Aggregate Channels = %u", + alsa_capture_format[card].channels); // // Buffer Size @@ -1446,25 +1435,23 @@ bool MainObject::AlsaStartCaptureDevice(QString &dev,int card,snd_pcm_t *pcm) alsa_capture_format[card].periods=rd_config->alsaPeriodQuantity(); snd_pcm_hw_params_set_periods_near(pcm,hwparams, &alsa_capture_format[card].periods,&dir); - rd_config->log("caed",RDConfig::LogDebug,QString().sprintf(" Periods = %u", - alsa_capture_format[card].periods)); + syslog(LOG_INFO," Periods = %u",alsa_capture_format[card].periods); alsa_capture_format[card].buffer_size= alsa_capture_format[card].periods*rd_config->alsaPeriodSize(); snd_pcm_hw_params_set_buffer_size_near(pcm,hwparams, &alsa_capture_format[card].buffer_size); - rd_config->log("caed",RDConfig::LogDebug,QString().sprintf(" BufferSize = %u frames", - (unsigned)alsa_capture_format[card].buffer_size)); + syslog(LOG_INFO," BufferSize = %u frames", + (unsigned)alsa_capture_format[card].buffer_size); // // Fire It Up // if((err=snd_pcm_hw_params(pcm,hwparams))<0) { - rd_config->log("caed",RDConfig::LogErr,QString().sprintf(" Device Error: %s,", - (const char *)snd_strerror(err))); - rd_config->log("caed",RDConfig::LogErr," aborting initialization of device."); + syslog(LOG_WARNING," Device Error: %s,",snd_strerror(err)); + syslog(LOG_WARNING," aborting initialization of device."); return false; } - rd_config->log("caed",RDConfig::LogNotice," Device started successfully"); + syslog(LOG_INFO," Device started successfully"); switch(alsa_capture_format[card].format) { case SND_PCM_FORMAT_S16_LE: alsa_capture_format[card].card_buffer_size= @@ -1494,9 +1481,8 @@ bool MainObject::AlsaStartCaptureDevice(QString &dev,int card,snd_pcm_t *pcm) snd_pcm_sw_params_current(pcm,swparams); snd_pcm_sw_params_set_avail_min(pcm,swparams,rd_config->alsaPeriodSize()); if((err=snd_pcm_sw_params(pcm,swparams))<0) { - rd_config->log("caed",RDConfig::LogErr,QString().sprintf("ALSA Device %s: %s", - (const char *)dev, - (const char *)snd_strerror(err))); + syslog(LOG_WARNING,"ALSA Device %s: %s",(const char *)dev.toUtf8(), + snd_strerror(err)); return false; } @@ -1530,16 +1516,16 @@ bool MainObject::AlsaStartPlayDevice(QString &dev,int card,snd_pcm_t *pcm) snd_pcm_hw_params_alloca(&hwparams); snd_pcm_hw_params_any(pcm,hwparams); - rd_config->log("caed",RDConfig::LogNotice,QString().sprintf("Starting ALSA Play Device %s:", - (const char *)dev)); + syslog(LOG_INFO,"Starting ALSA Play Device %s:", + (const char *)dev.toUtf8()); // // Access Type // if(snd_pcm_hw_params_test_access(pcm,hwparams, SND_PCM_ACCESS_RW_INTERLEAVED)<0) { - rd_config->log("caed",RDConfig::LogErr," Interleaved access not supported,"); - rd_config->log("caed",RDConfig::LogErr," aborting initialization of device."); + syslog(LOG_WARNING," Interleaved access not supported,"); + syslog(LOG_WARNING," aborting initialization of device."); return false; } snd_pcm_hw_params_set_access(pcm,hwparams,SND_PCM_ACCESS_RW_INTERLEAVED); @@ -1549,17 +1535,17 @@ bool MainObject::AlsaStartPlayDevice(QString &dev,int card,snd_pcm_t *pcm) // if(snd_pcm_hw_params_test_format(pcm,hwparams,SND_PCM_FORMAT_S32_LE)==0) { alsa_play_format[card].format=SND_PCM_FORMAT_S32_LE; - rd_config->log("caed",RDConfig::LogDebug," Format = 32 bit little-endian"); + syslog(LOG_INFO," Format = 32 bit little-endian"); } else { if(snd_pcm_hw_params_test_format(pcm,hwparams,SND_PCM_FORMAT_S16_LE)==0) { alsa_play_format[card].format=SND_PCM_FORMAT_S16_LE; - rd_config->log("caed",RDConfig::LogDebug," Format = 16 bit little-endian"); + syslog(LOG_INFO," Format = 16 bit little-endian"); } else { - rd_config->log("caed",RDConfig::LogErr, - " Neither 16 nor 32 bit little-endian formats available,"); - rd_config->log("caed",RDConfig::LogErr," aborting initialization of device."); + syslog(LOG_WARNING, + " Neither 16 nor 32 bit little-endian formats available,"); + syslog(LOG_WARNING," aborting initialization of device."); return false; } } @@ -1572,14 +1558,13 @@ bool MainObject::AlsaStartPlayDevice(QString &dev,int card,snd_pcm_t *pcm) snd_pcm_hw_params_set_rate_near(pcm,hwparams,&sr,&dir); if((sr<(system_sample_rate-RD_ALSA_SAMPLE_RATE_TOLERANCE))|| (sr>(system_sample_rate+RD_ALSA_SAMPLE_RATE_TOLERANCE))) { - rd_config->log("caed",RDConfig::LogErr, - QString().sprintf(" Asked for sample rate %u, got %u", - system_sample_rate,sr)); - rd_config->log("caed",RDConfig::LogErr," Sample rate unsupported by device"); + syslog(LOG_WARNING," Asked for sample rate %u, got %u", + system_sample_rate,sr); + syslog(LOG_WARNING," Sample rate unsupported by device"); return false; } alsa_play_format[card].sample_rate=sr; - rd_config->log("caed",RDConfig::LogDebug,QString().sprintf(" SampleRate = %u",sr)); + syslog(LOG_INFO," SampleRate = %u",sr); // // Channels @@ -1592,35 +1577,30 @@ bool MainObject::AlsaStartPlayDevice(QString &dev,int card,snd_pcm_t *pcm) } snd_pcm_hw_params_set_channels_near(pcm,hwparams, &alsa_play_format[card].channels); - rd_config->log("caed",RDConfig::LogDebug,QString().sprintf(" Aggregate Channels = %u", - alsa_play_format[card].channels)); - + syslog(LOG_INFO," Aggregate Channels = %u",alsa_play_format[card].channels); // // Buffer Size // alsa_play_format[card].periods=rd_config->alsaPeriodQuantity(); snd_pcm_hw_params_set_periods_near(pcm,hwparams, &alsa_play_format[card].periods,&dir); - rd_config->log("caed",RDConfig::LogDebug,QString().sprintf(" Periods = %u", - alsa_play_format[card].periods)); + syslog(LOG_INFO," Periods = %u",alsa_play_format[card].periods); alsa_play_format[card].buffer_size= alsa_play_format[card].periods*rd_config->alsaPeriodSize(); snd_pcm_hw_params_set_buffer_size_near(pcm,hwparams, &alsa_play_format[card].buffer_size); - rd_config->log("caed",RDConfig::LogDebug,QString(). - sprintf(" BufferSize = %u frames", - (unsigned)alsa_play_format[card].buffer_size)); + syslog(LOG_INFO," BufferSize = %u frames", + (unsigned)alsa_play_format[card].buffer_size); // // Fire It Up // if((err=snd_pcm_hw_params(pcm,hwparams))<0) { - rd_config->log("caed",RDConfig::LogErr,QString().sprintf(" Device Error: %s,", - (const char *)snd_strerror(err))); - rd_config->log("caed",RDConfig::LogErr," aborting initialization of device."); + syslog(LOG_WARNING," Device Error: %s,",snd_strerror(err)); + syslog(LOG_ERR," aborting initialization of device."); return false; } - rd_config->log("caed",RDConfig::LogNotice," Device started successfully"); + syslog(LOG_INFO," Device started successfully"); switch(alsa_play_format[card].format) { case SND_PCM_FORMAT_S16_LE: alsa_play_format[card].card_buffer_size= @@ -1649,9 +1629,8 @@ bool MainObject::AlsaStartPlayDevice(QString &dev,int card,snd_pcm_t *pcm) snd_pcm_sw_params_current(pcm,swparams); snd_pcm_sw_params_set_avail_min(pcm,swparams,rd_config->alsaPeriodSize()); if((err=snd_pcm_sw_params(pcm,swparams))<0) { - rd_config->log("caed",RDConfig::LogErr,QString().sprintf("ALSA Device %s: %s", - (const char *)dev, - (const char *)snd_strerror(err))); + syslog(LOG_WARNING,"ALSA Device %s: %s", + (const char *)dev.toUtf8(),snd_strerror(err)); return false; } @@ -1741,8 +1720,8 @@ void MainObject::WriteAlsaBuffer(int card,int stream,int16_t *buffer,unsigned le alsa_record_wave[card][stream]->writeWave(mpeg,s); } else { - rd_config->log("caed",RDConfig::LogErr,QString(). - sprintf("TwoLAME encode error, card: %d, stream: %d",card,stream)); + syslog(LOG_WARNING,"TwoLAME encode error, card: %d, stream: %d", + card,stream); } } #endif // HAVE_TWOLAME diff --git a/cae/cae_hpi.cpp b/cae/cae_hpi.cpp index b6e70ecc..5870c219 100644 --- a/cae/cae_hpi.cpp +++ b/cae/cae_hpi.cpp @@ -2,7 +2,7 @@ // // The HPI Driver for the Core Audio Engine component of Rivendell // -// (C) Copyright 2002-2004,2016 Fred Gleason +// (C) Copyright 2002-2019 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -18,10 +18,12 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include +#include #include +#include "cae.h" + void MainObject::hpiInit(RDStation *station) { #ifdef HPI @@ -76,9 +78,8 @@ bool MainObject::hpiLoadPlayback(int card,QString wavename,int *stream) RDHPIPlayStream *playstream=new RDHPIPlayStream(sound_card); playstream->setCard(card); if(playstream->openWave(wavename)!=RDHPIPlayStream::Ok) { - rd_config->log("caed",RDConfig::LogNotice,QString().sprintf( - "Error: hpiLoadPlayback(%s) openWave() failed to open file", - (const char *) wavename) ); + syslog(LOG_WARNING,"hpiLoadPlayback(%s) openWave() failed to open file", + (const char *)wavename.toUtf8()); delete playstream; return false; } diff --git a/cae/cae_jack.cpp b/cae/cae_jack.cpp index a32c73e4..1a24d260 100644 --- a/cae/cae_jack.cpp +++ b/cae/cae_jack.cpp @@ -19,6 +19,7 @@ // #include +#include #include @@ -446,13 +447,13 @@ void MainObject::jackClientStartData() jack_clients.push_back(new QProcess(this)); jack_clients.back()->start(program,args); if(jack_clients.back()->waitForStarted()) { - rd_config->log("caed",RDConfig::LogDebug,"started JACK Client \""+ - q->value(0).toString()+"\""); + syslog(LOG_INFO,"started JACK Client \"%s\"", + (const char *)q->value(0).toString().toUtf8()); } else { - rd_config->log("caed",RDConfig::LogWarning,"failed to start JACK Client \""+ - q->value(0).toString()+"\" ["+ - q->value(1).toString()+"]"); + syslog(LOG_WARNING,"failed to start JACK Client \"%s\" [%s]", + (const char *)q->value(0).toString().toUtf8(), + (const char *)q->value(1).toString().toUtf8()); } sleep(1); } @@ -466,7 +467,6 @@ void MainObject::jackInit(RDStation *station) #ifdef JACK jack_options_t jackopts=JackNullOption; jack_status_t jackstat=JackFailure; - RDConfig::LogPriority prio=RDConfig::LogDebug; jack_connected=false; jack_activated=false; @@ -480,7 +480,7 @@ void MainObject::jackInit(RDStation *station) } } if(jack_card==RD_MAX_CARDS) { - rd_config->log("caed",RDConfig::LogInfo,"no more RD cards available"); + syslog(LOG_INFO,"no more RD cards available"); return; } QString name=QString().sprintf("rivendell_%d",jack_card); @@ -496,10 +496,10 @@ void MainObject::jackInit(RDStation *station) QProcess *proc=new QProcess(this); proc->start(program,args); if(proc->waitForStarted()) { - rd_config->log("caed",RDConfig::LogDebug,"JACK server started"); + syslog(LOG_INFO,"JACK server started"); } else { - rd_config->log("caed",RDConfig::LogErr,"failed to start JACK server"); + syslog(LOG_WARNING,"failed to start JACK server"); } sleep(1); } @@ -518,61 +518,61 @@ void MainObject::jackInit(RDStation *station) if(jack_client==NULL) { if((jackstat&JackInvalidOption)!=0) { fprintf (stderr, "invalid or unsupported JACK option\n"); - rd_config->log("caed",prio,"invalid or unsupported JACK option"); + syslog(LOG_WARNING,"invalid or unsupported JACK option"); } if((jackstat&JackServerError)!=0) { fprintf (stderr, "communication error with the JACK server\n"); - rd_config->log("caed",prio,"communication error with the JACK server"); + syslog(LOG_WARNING,"communication error with the JACK server"); } if((jackstat&JackNoSuchClient)!=0) { fprintf (stderr, "requested JACK client does not exist\n"); - rd_config->log("caed",prio,"requested JACK client does not exist"); + syslog(LOG_WARNING,"requested JACK client does not exist"); } if((jackstat&JackLoadFailure)!=0) { fprintf (stderr, "unable to load internal JACK client\n"); - rd_config->log("caed",prio,"unable to load internal JACK client"); + syslog(LOG_WARNING,"unable to load internal JACK client"); } if((jackstat&JackInitFailure)!=0) { fprintf (stderr, "unable to initialize JACK client\n"); - rd_config->log("caed",prio,"unable to initialize JACK client"); + syslog(LOG_WARNING,"unable to initialize JACK client"); } if((jackstat&JackShmFailure)!=0) { fprintf (stderr, "unable to access JACK shared memory\n"); - rd_config->log("caed",prio,"unable to access JACK shared memory"); + syslog(LOG_WARNING,"unable to access JACK shared memory"); } if((jackstat&JackVersionError)!=0) { fprintf (stderr, "JACK protocol version mismatch\n"); - rd_config->log("caed",prio,"JACK protocol version mismatch"); + syslog(LOG_WARNING,"JACK protocol version mismatch"); } if((jackstat&JackServerStarted)!=0) { fprintf (stderr, "JACK server started\n"); - rd_config->log("caed",prio,"JACK server started"); + syslog(LOG_WARNING,"JACK server started"); } if((jackstat&JackServerFailed)!=0) { fprintf (stderr, "unable to communication with JACK server\n"); - rd_config->log("caed",prio,"unable to communicate with JACK server"); + syslog(LOG_WARNING,"unable to communicate with JACK server"); } if((jackstat&JackNameNotUnique)!=0) { fprintf (stderr, "JACK client name not unique\n"); - rd_config->log("caed",prio,"JACK client name not unique"); + syslog(LOG_WARNING,"JACK client name not unique"); } if((jackstat&JackFailure)!=0) { fprintf (stderr, "JACK general failure\n"); - rd_config->log("caed",prio,"JACK general failure"); + syslog(LOG_WARNING,"JACK general failure"); } jack_card=-1; fprintf (stderr, "no connection to JACK server\n"); - rd_config->log("caed",prio,"no connection to JACK server"); + syslog(LOG_WARNING,"no connection to JACK server"); return; } jack_connected=true; @@ -584,7 +584,7 @@ void MainObject::jackInit(RDStation *station) #else jack_on_shutdown(jack_client,JackShutdown,0); #endif // HAVE_JACK_INFO_SHUTDOWN - rd_config->log("caed",RDConfig::LogDebug,"connected to JACK server"); + syslog(LOG_INFO,"connected to JACK server"); // // Start JACK Clients @@ -701,7 +701,7 @@ void MainObject::jackInit(RDStation *station) jack_sample_rate=jack_get_sample_rate(jack_client); if(jack_sample_rate!=system_sample_rate) { fprintf (stderr,"JACK sample rate mismatch!\n"); - rd_config->log("caed",RDConfig::LogWarning,"JACK sample rate mismatch!"); + syslog(LOG_WARNING,"JACK sample rate mismatch!"); } jack_activated=true; cae_driver[jack_card]=RDStation::Jack; @@ -730,17 +730,14 @@ bool MainObject::jackLoadPlayback(int card,QString wavename,int *stream) { #ifdef JACK if((*stream=GetJackOutputStream())<0) { - rd_config->log("caed",RDConfig::LogErr,QString().sprintf( - "Error: jackLoadPlayback(%s) GetJackOutputStream():%d <0", - (const char *) wavename, - *stream) ); + syslog(LOG_WARNING,"jackLoadPlayback(%s) GetJackOutputStream():%d <0", + (const char *)wavename.toUtf8(),*stream); return false; } jack_play_wave[*stream]=new RDWaveFile(wavename); if(!jack_play_wave[*stream]->openWave()) { - rd_config->log("caed",RDConfig::LogNotice,QString().sprintf( - "Error: jackLoadPlayback(%s) openWave() failed to open file", - (const char *) wavename) ); + syslog(LOG_WARNING,"jackLoadPlayback(%s) openWave() failed to open file", + (const char *)wavename.toUtf8()); delete jack_play_wave[*stream]; jack_play_wave[*stream]=NULL; FreeJackOutputStream(*stream); @@ -757,12 +754,10 @@ bool MainObject::jackLoadPlayback(int card,QString wavename,int *stream) break; default: - rd_config->log("caed",RDConfig::LogNotice, - QString().sprintf( - "Error: jackLoadPlayback(%s) getFormatTag()%d || getBistsPerSample()%d failed", - (const char *) wavename, - jack_play_wave[*stream]->getFormatTag(), - jack_play_wave[*stream]->getBitsPerSample() )); + syslog(LOG_WARNING,"jackLoadPlayback(%s) getFormatTag()%d || getBistsPerSample()%d failed", + (const char *) wavename.toUtf8(), + jack_play_wave[*stream]->getFormatTag(), + jack_play_wave[*stream]->getBitsPerSample()); delete jack_play_wave[*stream]; jack_play_wave[*stream]=NULL; FreeJackOutputStream(*stream); @@ -953,9 +948,9 @@ bool MainObject::jackLoadRecord(int card,int stream,int coding,int chans, break; default: - rd_config->log("caed",RDConfig::LogErr,QString(). - sprintf("requested unsupported channel count %d, card: %d, stream: %d", - chans,card,stream)); + syslog(LOG_WARNING, + "requested unsupported channel count %d, card: %d, stream: %d", + chans,card,stream); delete jack_record_wave[stream]; jack_record_wave[stream]=NULL; return false; @@ -981,9 +976,9 @@ bool MainObject::jackLoadRecord(int card,int stream,int coding,int chans, break; default: - rd_config->log("caed",RDConfig::LogErr,QString(). - sprintf("requested invalid audio encoding %d, card: %d, stream: %d", - coding,card,stream)); + syslog(LOG_WARNING, + "requested invalid audio encoding %d, card: %d, stream: %d", + coding,card,stream); delete jack_record_wave[stream]; jack_record_wave[stream]=NULL; return false; @@ -1479,9 +1474,8 @@ void MainObject::WriteJackBuffer(int stream,jack_default_audio_sample_t *buffer, jack_record_wave[stream]->writeWave(mpeg,s); } else { - rd_config->log("caed",RDConfig::LogErr,QString(). - sprintf("TwoLAME encode error, card: %d, stream: %d",jack_card, - stream)); + syslog(LOG_WARNING, + "TwoLAME encode error, card: %d, stream: %d",jack_card,stream); } } if(done) { @@ -1684,9 +1678,8 @@ void MainObject::JackSessionSetup() QString dest=profile->stringValue("JackSession",dest_tag,"",&dest_ok); while(src_ok&&dest_ok) { if(jack_connect(jack_client,(const char *)src,(const char *)dest)!=0) { - rd_config->log("caed",RDConfig::LogNotice,QString(). - sprintf("unable to connect %s to %s", - (const char *)src,(const char *)dest)); + syslog(LOG_WARNING,"unable to connect %s to %s", + (const char *)src.toUtf8(),(const char *)dest.toUtf8()); } count++; src_tag=QString().sprintf("Source%d",count+1); diff --git a/cae/cae_server.cpp b/cae/cae_server.cpp index 7a25feb7..b5fe585e 100644 --- a/cae/cae_server.cpp +++ b/cae/cae_server.cpp @@ -20,6 +20,7 @@ #include #include +#include #include #include diff --git a/conf/rd.conf-sample b/conf/rd.conf-sample index 511b3fcb..9daf3162 100644 --- a/conf/rd.conf-sample +++ b/conf/rd.conf-sample @@ -77,35 +77,6 @@ NewServiceNameRegex=[^*]* NewServiceNameGroup=0 [Logs] -; Set the method to be used for logging. Possible values are: -; Syslog = Use the syslog facility. -; File = Log directly to a file. See also the 'LogDirectory=' -; and 'LogPattern=' parameters below. -; None = Don't generate logs at all. -Facility=Syslog - -; The directory to write logs to. Used only if the 'Facility=' -; parameter is set to 'File'. -LogDirectory=/home/rd/rdlogs - -; The directory to to put core files in in the event of a daemon -; crash. For this to work, you must also configure your environment -; to allow the generation of core dumps (e.g. 'ulimit -c unlimited'). -CoreDumpDirectory=/home/rd/rdlogs - -; The name of the file to send logs to. The following wildcards can -; be used: -; %d - The day of the month (01 - 31) -; %h - The hour (00 - 23) -; %M - The month (01 - 12) -; %m - The minute (00 - 59) -; %n - The name of the originating module --e.g. 'rdairplay', 'caed'. -; %s - The second (00 - 60) -; %Y - The four digit year -; This parameter is used only if the 'Facility=' parameter is set to -; 'File'. -LogPattern=%n-%Y%M%d.log - ; Log upload/download debug data. You generally want to enable this only ; when debugging a specific upload/download problem, as *lots* of data ; can be generated. Valid arguments are 'Yes' or 'No'. diff --git a/lib/rd.h b/lib/rd.h index 8009f973..f3e4b6e1 100644 --- a/lib/rd.h +++ b/lib/rd.h @@ -70,13 +70,6 @@ #define DEFAULT_MYSQL_CHARSET "utf8mb4" #define DEFAULT_MYSQL_COLLATION "utf8mb4_general_ci" -/* - * Default Logging Settings - */ -#define DEFAULT_LOG_FACILITY "syslog" -#define DEFAULT_LOG_CORE_DUMP_DIRECTORY "/" -#define DEFAULT_LOG_PATTERN "%n-%Y%M%d.log" - /* * ALSA Settings */ diff --git a/lib/rdapplication.cpp b/lib/rdapplication.cpp index 1ee7ed12..028433e1 100644 --- a/lib/rdapplication.cpp +++ b/lib/rdapplication.cpp @@ -259,12 +259,12 @@ RDUser *RDApplication::user() return app_user; } - +/* void RDApplication::log(RDConfig::LogPriority prio,const QString &msg) { app_config->log(app_module_name,prio,msg); } - +*/ bool RDApplication::dropTable(const QString &tbl_name) { diff --git a/lib/rdapplication.h b/lib/rdapplication.h index 7523b860..67116d16 100644 --- a/lib/rdapplication.h +++ b/lib/rdapplication.h @@ -58,7 +58,7 @@ class RDApplication : public QObject RDStation *station(); RDSystem *system(); RDUser *user(); - void log(RDConfig::LogPriority prio,const QString &msg); + // void log(RDConfig::LogPriority prio,const QString &msg); bool dropTable(const QString &tbl_name); void addTempFile(const QString &pathname); diff --git a/lib/rdaudioconvert.cpp b/lib/rdaudioconvert.cpp index 0315f61b..beb4bf7f 100644 --- a/lib/rdaudioconvert.cpp +++ b/lib/rdaudioconvert.cpp @@ -20,6 +20,7 @@ #include #include +#include #include #include #include @@ -179,7 +180,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::convert() QString err_msg; if(!temp_dir->create(&err_msg)) { delete temp_dir; - rda->log(RDConfig::LogWarning,QString("Could not create "+err_msg)); + syslog(LOG_WARNING,"Could not create %s",(const char *)err_msg.toUtf8()); return RDAudioConvert::ErrorInternal; } tmpfile1=QString(temp_dir->path())+"/signed32_1.wav"; @@ -924,7 +925,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage2Convert(const QString &srcfile, // memset(&src_info,0,sizeof(src_info)); if((src_sf=sf_open(srcfile,SFM_READ,&src_info))==NULL) { - rda->log(RDConfig::LogWarning,QString().sprintf("Could not open %s",(const char *)srcfile)); + syslog(LOG_WARNING,"Could not open %s",(const char *)srcfile.toUtf8()); return RDAudioConvert::ErrorInternal; } sf_command(src_sf,SFC_SET_NORM_FLOAT,NULL,SF_FALSE); @@ -935,7 +936,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage2Convert(const QString &srcfile, dst_info.samplerate=conv_settings->sampleRate(); if((dst_sf=sf_open(dstfile,SFM_WRITE,&dst_info))==NULL) { sf_close(src_sf); - rda->log(RDConfig::LogWarning,QString().sprintf("Could not open %s",(const char *)dstfile)); + syslog(LOG_WARNING,"Could not open %s",(const char *)dstfile.toUtf8()); return RDAudioConvert::ErrorInternal; } @@ -974,7 +975,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage2Convert(const QString &srcfile, if((src_state=src_new(conv_src_converter,src_info.channels,&err))==NULL) { sf_close(src_sf); sf_close(dst_sf); - rda->log(RDConfig::LogWarning,QString().sprintf("%s",src_strerror(err))); + syslog(LOG_WARNING,"%s",src_strerror(err)); return RDAudioConvert::ErrorInternal; } memset(&src_data,0,sizeof(src_data)); @@ -1025,7 +1026,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage2Convert(const QString &srcfile, src_data.input_frames=n; if((err=src_process(src_state,&src_data))!=0) { fprintf(stderr,"SRC Error: %s\n",src_strerror(err)); - rda->log(RDConfig::LogWarning,QString().sprintf("%s",src_strerror(err))); + syslog(LOG_WARNING,"%s",src_strerror(err)); return RDAudioConvert::ErrorInternal; } n=src_data.output_frames_gen; @@ -1145,7 +1146,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage3Convert(const QString &srcfile, // Open Source File // if((src_sf=sf_open(srcfile,SFM_READ,&src_sf_info))==NULL) { - rda->log(RDConfig::LogWarning,QString().sprintf("%s",sf_strerror(NULL))); + syslog(LOG_WARNING,"%s",sf_strerror(NULL)); return RDAudioConvert::ErrorInternal; } @@ -1242,7 +1243,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage3Flac(SNDFILE *src_sf, case FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_METADATA: default: delete flac; - rda->log(RDConfig::LogWarning,QString("flac->init() failure")); + syslog(LOG_WARNING,"flac->init() failure"); return RDAudioConvert::ErrorInternal; } @@ -1310,7 +1311,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage3Vorbis(SNDFILE *src_sf, conv_settings->quality())) { case OV_EFAULT: default: - rda->log(RDConfig::LogWarning,QString("vorbis_encode_init_vbr() failure")); + syslog(LOG_WARNING,"vorbis_encode_init_vbr() failure"); return RDAudioConvert::ErrorInternal; case OV_EINVAL: @@ -1502,7 +1503,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage3Layer3(SNDFILE *src_sf, if((lameopts=lame_init())==NULL) { lame_close(lameopts); ::close(dst_fd); - rda->log(RDConfig::LogWarning,QString("lame_init() failure")); + syslog(LOG_WARNING,"lame_init() failure"); return RDAudioConvert::ErrorInternal; } lame_set_mode(lameopts,mpeg_mode); @@ -1641,7 +1642,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage3Layer2Wav(SNDFILE *src_sf, // if((lameopts=twolame_init())==NULL) { wave->closeWave(); - rda->log(RDConfig::LogWarning,QString("twolame_init() failure")); + syslog(LOG_WARNING,"twolame_init() failure"); return RDAudioConvert::ErrorInternal; } twolame_set_mode(lameopts,mpeg_mode); @@ -1746,7 +1747,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage3Layer2(SNDFILE *src_sf, // if((lameopts=twolame_init())==NULL) { ::close(dst_fd); - rda->log(RDConfig::LogWarning,QString("twolame_init() failure")); + syslog(LOG_WARNING,"twolame_init() failure"); return RDAudioConvert::ErrorInternal; } twolame_set_mode(lameopts,mpeg_mode); diff --git a/lib/rdcartslot.cpp b/lib/rdcartslot.cpp index 2768598d..bc7cb4af 100644 --- a/lib/rdcartslot.cpp +++ b/lib/rdcartslot.cpp @@ -2,7 +2,7 @@ // // The cart slot widget. // -// (C) Copyright 2012-2014,2016-2017 Fred Gleason +// (C) Copyright 2012-2019 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -18,6 +18,8 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // +#include + #include #include diff --git a/lib/rdconfig.cpp b/lib/rdconfig.cpp index addb275c..079327fc 100644 --- a/lib/rdconfig.cpp +++ b/lib/rdconfig.cpp @@ -193,95 +193,12 @@ QString RDConfig::createTablePostfix() const } -RDConfig::LogFacility RDConfig::logFacility() const -{ - return conf_log_facility; -} - - -void RDConfig::setLogFacility(RDConfig::LogFacility log_facility) -{ - conf_log_facility=log_facility; -} - - -QString RDConfig::logDirectory() const -{ - return conf_log_directory; -} - - -void RDConfig::setLogDirectory(QString log_directory) -{ - conf_log_directory=log_directory; -} - - -QString RDConfig::logCoreDumpDirectory() const -{ - return conf_log_core_dump_directory; -} - - -QString RDConfig::logPattern() const -{ - return conf_log_pattern; -} - - -void RDConfig::setLogPattern(QString log_pattern) -{ - conf_log_pattern=log_pattern; -} - - bool RDConfig::logXloadDebugData() const { return conf_log_xload_debug_data; } -void RDConfig::log(const QString &module,LogPriority prio,const QString &msg) -{ - QDateTime dt; - QString filename; - FILE *f=NULL; - - switch(conf_log_facility) { - case RDConfig::LogSyslog: - syslog((int)prio,"%s",(const char *)msg.utf8()); - break; - - case RDConfig::LogFile: - if(conf_log_directory.isEmpty()||conf_log_pattern.isEmpty()) { - return; - } - filename=QString().sprintf("%s/%s",(const char *)conf_log_directory, - (const char *)conf_log_pattern); - dt=QDateTime(QDate::currentDate(),QTime::currentTime()); - filename.replace("%n",module); - filename.replace("%d",dt.date().toString("dd")); - filename.replace("%M",dt.date().toString("MM")); - filename.replace("%Y",dt.date().toString("yyyy")); - filename.replace("%h",dt.time().toString("hh")); - filename.replace("%m",dt.time().toString("mm")); - filename.replace("%s",dt.time().toString("ss")); - if((f=fopen(filename,"a"))!=NULL) { - fprintf(f,"%s: %s\n",(const char *)dt. - toString("dd/MM/yyyy - hh:mm:ss.zzz "), - (const char *)msg); - fclose(f); - } - chmod(filename,S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH); - chown(filename,uid(),gid()); - break; - - case RDConfig::LogNone: - break; - } -} - - bool RDConfig::provisioningCreateHost() const { return conf_provisioning_create_host; @@ -404,24 +321,6 @@ QString RDConfig::rnRmlGroup() const } -QString RDConfig::ripcdLogname() const -{ - return conf_ripcd_logname; -} - - -QString RDConfig::airplayLogname() const -{ - return conf_airplay_logname; -} - - -QString RDConfig::catchdLogname() const -{ - return conf_catchd_logname; -} - - int RDConfig::jackConnections() const { return conf_jack_ports[0].size(); @@ -488,12 +387,6 @@ gid_t RDConfig::rnRmlGid() const } -QString RDConfig::caeLogfile() const -{ - return conf_cae_logfile; -} - - bool RDConfig::enableMixerLogging() const { return conf_enable_mixer_logging; @@ -640,30 +533,14 @@ bool RDConfig::load() conf_create_table_postfix= RDConfig::createTablePostfix(conf_mysql_engine); - facility=profile->stringValue("Logs","Facility",DEFAULT_LOG_FACILITY).lower(); - if(facility=="syslog") { - conf_log_facility=RDConfig::LogSyslog; - } - if(facility=="file") { - conf_log_facility=RDConfig::LogFile; - } - conf_log_directory=profile->stringValue("Logs","LogDirectory",""); - conf_log_pattern=profile->stringValue("Logs","LogPattern", - DEFAULT_LOG_PATTERN); conf_log_xload_debug_data=profile-> boolValue("Logs","LogXloadDebugData",false); - conf_log_core_dump_directory= - profile->stringValue("Logs","CoreDumpDirectory", - DEFAULT_LOG_CORE_DUMP_DIRECTORY); conf_alsa_period_quantity= profile->intValue("Alsa","PeriodQuantity",RD_ALSA_DEFAULT_PERIOD_QUANTITY); conf_alsa_period_size= profile->intValue("Alsa","PeriodSize",RD_ALSA_DEFAULT_PERIOD_SIZE); conf_alsa_channels_per_pcm=profile->intValue("Alsa","ChannelsPerPcm",-1); - conf_ripcd_logname=profile->stringValue("Ripcd","Logfile",""); - conf_airplay_logname=profile->stringValue("RDAirPlay","Logfile",""); - conf_catchd_logname=profile->stringValue("RDCatchd","Logfile",""); conf_use_stream_meters=profile->boolValue("Hacks","UseStreamMeters",false); conf_disable_maint_checks= profile->boolValue("Hacks","DisableMaintChecks",false); @@ -693,7 +570,6 @@ bool RDConfig::load() conf_rn_rml_gid=groups->gr_gid; } - conf_cae_logfile=profile->stringValue("Caed","Logfile",""); conf_enable_mixer_logging=profile->boolValue("Caed","EnableMixerLogging"); conf_use_realtime=profile->boolValue("Tuning","UseRealtime",false); conf_realtime_priority=profile->intValue("Tuning","RealtimePriority",9); @@ -753,10 +629,6 @@ void RDConfig::clear() conf_mysql_heartbeat_interval=DEFAULT_MYSQL_HEARTBEAT_INTERVAL; conf_mysql_engine=DEFAULT_MYSQL_ENGINE; conf_create_table_postfix=""; - conf_log_facility=RDConfig::LogSyslog; - conf_log_directory=""; - conf_log_core_dump_directory=DEFAULT_LOG_CORE_DUMP_DIRECTORY; - conf_log_pattern=DEFAULT_LOG_PATTERN; conf_log_xload_debug_data=false; conf_provisioning_create_host=false; conf_provisioning_host_template=""; @@ -784,9 +656,6 @@ void RDConfig::clear() conf_audio_store_mount_options=RD_DEFAULT_AUDIO_STORE_MOUNT_OPTIONS; conf_audio_store_xport_hostname=""; conf_audio_store_cae_hostname=""; - conf_ripcd_logname=""; - conf_airplay_logname=""; - conf_catchd_logname=""; conf_jack_ports[0].clear(); conf_jack_ports[1].clear(); conf_use_stream_meters=false; @@ -798,7 +667,6 @@ void RDConfig::clear() conf_pypad_gid=65535; conf_rn_rml_uid=65535; conf_rn_rml_gid=65535; - conf_cae_logfile=""; conf_enable_mixer_logging=false; conf_use_realtime=false; conf_realtime_priority=9; diff --git a/lib/rdconfig.h b/lib/rdconfig.h index 62c06314..0843f28b 100644 --- a/lib/rdconfig.h +++ b/lib/rdconfig.h @@ -21,7 +21,6 @@ #ifndef RDCONFIG_H #define RDCONFIG_H -#include #include #include @@ -34,10 +33,6 @@ class RDConfig { public: - enum LogFacility {LogNone=0,LogSyslog=1,LogFile=2}; - enum LogPriority {LogEmerg=LOG_EMERG,LogAlert=LOG_ALERT,LogCrit=LOG_CRIT, - LogErr=LOG_ERR,LogWarning=LOG_WARNING,LogNotice=LOG_NOTICE, - LogInfo=LOG_INFO,LogDebug=LOG_DEBUG}; enum RDSelectExitCode {RDSelectOk=0,RDSelectInvalidArguments=1, RDSelectNoSuchConfiguration=2, RDSelectModulesActive=3, @@ -68,15 +63,7 @@ class RDConfig int mysqlHeartbeatInterval() const; QString mysqlEngine() const; QString createTablePostfix() const; - RDConfig::LogFacility logFacility() const; - void setLogFacility(RDConfig::LogFacility log_facility); - QString logDirectory() const; - void setLogDirectory(QString log_directory); - QString logCoreDumpDirectory() const; - QString logPattern() const; - void setLogPattern(QString log_pattern); bool logXloadDebugData() const; - void log(const QString &module,LogPriority prio,const QString &msg); bool provisioningCreateHost() const; QString provisioningHostTemplate() const; QHostAddress provisioningHostIpAddress() const; @@ -104,15 +91,11 @@ class RDConfig QString audioStoreMountOptions() const; QString audioStoreCaeHostname() const; QString audioStoreXportHostname() const; - QString ripcdLogname() const; - QString airplayLogname() const; - QString catchdLogname() const; int jackConnections() const; QString jackPort(int num,int endpt) const; bool useStreamMeters() const; bool disableMaintChecks() const; bool lockRdairplayMemory() const; - QString caeLogfile() const; bool enableMixerLogging() const; uid_t uid() const; gid_t gid() const; @@ -146,10 +129,6 @@ class RDConfig QString conf_mysql_engine; QString conf_create_table_postfix; int conf_mysql_heartbeat_interval; - RDConfig::LogFacility conf_log_facility; - QString conf_log_directory; - QString conf_log_core_dump_directory; - QString conf_log_pattern; bool conf_provisioning_create_host; QString conf_provisioning_host_template; QHostAddress conf_provisioning_host_ip_address; @@ -179,9 +158,6 @@ class RDConfig QString conf_audio_store_mount_options; QString conf_audio_store_xport_hostname; QString conf_audio_store_cae_hostname; - QString conf_ripcd_logname; - QString conf_airplay_logname; - QString conf_catchd_logname; bool conf_use_stream_meters; bool conf_disable_maint_checks; bool conf_lock_rdairplay_memory; @@ -192,7 +168,6 @@ class RDConfig gid_t conf_pypad_gid; uid_t conf_rn_rml_uid; gid_t conf_rn_rml_gid; - QString conf_cae_logfile; bool conf_enable_mixer_logging; bool conf_use_realtime; int conf_transcoding_delay; diff --git a/lib/rddb.cpp b/lib/rddb.cpp index 1ac549ed..7e5a62ca 100644 --- a/lib/rddb.cpp +++ b/lib/rddb.cpp @@ -21,6 +21,7 @@ #include #include +#include #include #include #include diff --git a/lib/rdlogplay.cpp b/lib/rdlogplay.cpp index 47c5b6b9..31e3f74b 100644 --- a/lib/rdlogplay.cpp +++ b/lib/rdlogplay.cpp @@ -1416,7 +1416,6 @@ void RDLogPlay::transTimerData() } else { if(logline==NULL) { - rda->config()->log("log engine",RDConfig::LogNotice," invalid logline"); SetTransTimer(); return; } @@ -1598,7 +1597,6 @@ void RDLogPlay::positionData(int id,int pos) return; } if(pos>logline->effectiveLength()) { - rda->config()->log("log engine",RDConfig::LogWarning,QString().sprintf("*** position out of bounds on signal: Line: %d Cart: %d Pos: %d ***",line,logline->cartNumber(),logline->playPosition())); return; } logline->setPlayPosition(pos); @@ -1897,9 +1895,9 @@ bool RDLogPlay::StartEvent(int line,RDLogLine::TransType trans_type, logline->setStatus(RDLogLine::Playing); playStateChangedData(playdeck->id(),RDPlayDeck::Finished); logline->setStatus(RDLogLine::Finished); - rda->config()->log("log engine",RDConfig::LogErr,QString(). - sprintf("RDLogPlay::StartEvent(): no audio,CUT=%s", - (const char *)logline->cutName())); + syslog(LOG_WARNING, + "log engine: RDLogPlay::StartEvent(): no audio,CUT=%s", + (const char *)logline->cutName().toUtf8()); rda->airplayConf()->setLogCurrentLine(play_id,nextLine()); return false; } @@ -1913,7 +1911,7 @@ bool RDLogPlay::StartEvent(int line,RDLogLine::TransType trans_type, playdeck->stream(), playdeck->port()); if((int)logline->playPosition()>logline->effectiveLength()) { - rda->config()->log("log engine",RDConfig::LogWarning,QString().sprintf("*** position out of bounds: Line: %d Cart: %d Pos: %d ***",line,logline->cartNumber(),logline->playPosition())); + syslog(LOG_DEBUG,"log engine: *** position out of bounds: Line: %d Cart: %d Pos: %d ***",line,logline->cartNumber(),logline->playPosition()); logline->setPlayPosition(0); } playdeck->play(logline->playPosition(),-1,-1,duck_length); @@ -1938,14 +1936,13 @@ bool RDLogPlay::StartEvent(int line,RDLogLine::TransType trans_type, */ emit channelStarted(play_id,playdeck->channel(), playdeck->card(),playdeck->port()); - rda->config()->log("log engine",RDConfig::LogInfo,QString().sprintf( - "started audio cart: Line: %d Cart: %u Cut: %u Pos: %d Card: %d Stream: %d Port: %d", - line,logline->cartNumber(), - playdeck->cut()->cutNumber(), - logline->playPosition(), - playdeck->card(), - playdeck->stream(), - playdeck->port())); + syslog(LOG_DEBUG,"log engine: started audio cart: Line: %d Cart: %u Cut: %u Pos: %d Card: %d Stream: %d Port: %d", + line,logline->cartNumber(), + playdeck->cut()->cutNumber(), + logline->playPosition(), + playdeck->card(), + playdeck->stream(), + playdeck->port()); // // Assign Next Event @@ -1994,16 +1991,15 @@ bool RDLogPlay::StartEvent(int line,RDLogLine::TransType trans_type, RDAirPlayConf::TrafficMacro,play_onair_flag); FinishEvent(line); emit transportChanged(); - rda->config()->log("log engine",RDConfig::LogInfo,QString(). - sprintf("asynchronously executed macro cart: Line: %d Cart: %u", - line,logline->cartNumber())); + syslog(LOG_DEBUG, + "log engine: asynchronously executed macro cart: Line: %d Cart: %u", + line,logline->cartNumber()); } else { play_macro_deck->load(logline->cartNumber()); play_macro_deck->setLine(line); - rda->config()->log("log engine",RDConfig::LogInfo,QString(). - sprintf("started macro cart: Line: %d Cart: %u", - line,logline->cartNumber())); + syslog(LOG_DEBUG,"log engine: started macro cart: Line: %d Cart: %u", + line,logline->cartNumber()); play_macro_deck->exec(); } break; @@ -2066,10 +2062,8 @@ bool RDLogPlay::StartEvent(int line,RDLogLine::TransType trans_type, } play_macro_deck->setLine(line); play_macro_deck->exec(); - rda->config()->log("log engine",RDConfig::LogInfo,QString(). - sprintf("chained to log: Line: %d Log: %s", - line, - (const char *)logline->markerLabel())); + syslog(LOG_DEBUG,"log engine: chained to log: Line: %d Log: %s", + line,(const char *)logline->markerLabel()); break; default: @@ -2145,17 +2139,15 @@ void RDLogPlay::CleanupEvent(int id) } playdeck=(RDPlayDeck *)logline->playDeck(); if(playdeck->cut()==NULL) { - rda->config()->log("log engine",RDConfig::LogErr,QString(). - sprintf("event failed: Line: %d Cart: %u",line, - logline->cartNumber())); + syslog(LOG_DEBUG,"log engine: event failed: Line: %d Cart: %u",line, + logline->cartNumber()); } else { - rda->config()->log("log engine",RDConfig::LogInfo,QString(). - sprintf("finished event: Line: %d Cart: %u Cut: %u Card: %d Stream: %d Port: %d", - line,logline->cartNumber(), - playdeck->cut()->cutNumber(), - playdeck->card(), - playdeck->stream(),playdeck->port())); + syslog(LOG_DEBUG,"log engine: finished event: Line: %d Cart: %u Cut: %u Card: %d Stream: %d Port: %d", + line,logline->cartNumber(), + playdeck->cut()->cutNumber(), + playdeck->card(), + playdeck->stream(),playdeck->port()); } RDLogLine *prev_logline; if((prev_logline=logLine(line-1))==NULL) { diff --git a/lib/rdpodcast.cpp b/lib/rdpodcast.cpp index 7f5a40f6..4943eb7d 100644 --- a/lib/rdpodcast.cpp +++ b/lib/rdpodcast.cpp @@ -18,6 +18,8 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // +#include + #include #include diff --git a/lib/rdripc.cpp b/lib/rdripc.cpp index aae4dd61..015ff461 100644 --- a/lib/rdripc.cpp +++ b/lib/rdripc.cpp @@ -19,6 +19,7 @@ // #include +#include #include #include @@ -197,8 +198,7 @@ void RDRipc::reloadHeartbeat() void RDRipc::errorData(QAbstractSocket::SocketError err) { - rda->log(RDConfig::LogWarning, - QString().sprintf("received socket error %d",err)); + syslog(LOG_WARNING,"received socket error %d",err); } diff --git a/lib/rdsound_panel.cpp b/lib/rdsound_panel.cpp index f705211a..59f2fd4f 100644 --- a/lib/rdsound_panel.cpp +++ b/lib/rdsound_panel.cpp @@ -301,12 +301,6 @@ void RDSoundPanel::setRmls(int outnum,const QString &start_rml, } -void RDSoundPanel::setLogName(const QString &logname) -{ - panel_logname=logname; -} - - void RDSoundPanel::setSvcName(const QString &svcname) { panel_svcname=svcname; @@ -314,12 +308,6 @@ void RDSoundPanel::setSvcName(const QString &svcname) } -void RDSoundPanel::setLogfile(QString filename) -{ - panel_logfile=filename; -} - - void RDSoundPanel::play(RDAirPlayConf::PanelType type,int panel, int row, int col,RDLogLine::StartSource src,int mport, bool pause_when_finished) @@ -569,12 +557,6 @@ void RDSoundPanel::acceptCartDrop(int row,int col,unsigned cartnum, void RDSoundPanel::changeUser() { - /* - if(panel_user!=NULL) { - delete panel_user; - } - panel_user=new RDUser(rda->ripc->user()); - */ panel_config_panels=rda->user()->configPanels(); LoadPanels(); panel_buttons[PanelOffset(panel_type,panel_number)]->show(); diff --git a/lib/rdsound_panel.h b/lib/rdsound_panel.h index 707dc502..63eecc8d 100644 --- a/lib/rdsound_panel.h +++ b/lib/rdsound_panel.h @@ -2,7 +2,7 @@ // // The sound panel widget // -// (C) Copyright 2002-2018 Fred Gleason +// (C) Copyright 2002-2019 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -66,7 +66,6 @@ class RDSoundPanel : public QWidget void setRmls(int outnum,const QString &start_rml,const QString &stop_rml); void setLogName(const QString &logname); void setSvcName(const QString &svcname); - void setLogfile(QString filename); void play(RDAirPlayConf::PanelType type,int panel,int row,int col, RDLogLine::StartSource src,int mport=-1,bool pause_when_finished=false); bool pause(RDAirPlayConf::PanelType type,int panel,int row,int col,int mport=-1); @@ -172,7 +171,6 @@ class RDSoundPanel : public QWidget bool panel_flash; int panel_flash_count; bool panel_flash_state; - QString panel_logname; QString panel_logfile; bool panel_timescaling_supported[PANEL_MAX_OUTPUTS]; bool panel_config_panels; diff --git a/rdairplay/globals.h b/rdairplay/globals.h index e7858306..36d30949 100644 --- a/rdairplay/globals.h +++ b/rdairplay/globals.h @@ -31,8 +31,6 @@ extern RDAudioPort *rdaudioport_conf; extern RDEventPlayer *rdevent_player; extern RDCartDialog *rdcart_dialog; -extern void LogLine(RDConfig::LogPriority prio,const QString &line); -extern QString logfile; #endif // GLOBALS_H diff --git a/rdairplay/rdairplay.cpp b/rdairplay/rdairplay.cpp index fa3920d9..8ddadaf4 100644 --- a/rdairplay/rdairplay.cpp +++ b/rdairplay/rdairplay.cpp @@ -74,11 +74,6 @@ RDHotkeys *rdhotkeys; // void SigHandler(int signo); -void MainWidget::logLine(RDConfig::LogPriority prio,const QString &s) -{ - LogLine(prio,s); -} - MainWidget::MainWidget(QWidget *parent) :QWidget(parent) { @@ -206,8 +201,6 @@ MainWidget::MainWidget(QWidget *parent) air_next_button=0; air_action_mode=StartButton::Play; - logfile=rda->config()->airplayLogname(); - str=QString("RDAirPlay")+" v"+VERSION+" - "+tr("Host:"); setWindowTitle(str+" "+rda->config()->stationName()); @@ -562,7 +555,6 @@ MainWidget::MainWidget(QWidget *parent) rda->airplayConf()->flashPanel(), rda->airplayConf()->buttonLabelTemplate(),false, rdevent_player,rdcart_dialog,this); - air_panel->setLogfile(rda->config()->airplayLogname()); air_panel->setGeometry(510,140,air_panel->sizeHint().width(), air_panel->sizeHint().height()); air_panel->setPauseEnabled(rda->airplayConf()->panelPauseEnabled()); @@ -804,7 +796,7 @@ MainWidget::MainWidget(QWidget *parent) } } - LogLine(RDConfig::LogInfo,"RDAirPlay started"); + syslog(LOG_INFO,"RDAirPlay started"); } @@ -1248,7 +1240,6 @@ void MainWidget::logRenamedData(int log) air_log_button[0]->setText(tr("Main Log")+"\n["+labelname+"]"); SetCaption(); if(air_panel) { - air_panel->setLogName(logname); } break; @@ -1275,7 +1266,8 @@ void MainWidget::logReloadedData(int log) switch(log) { case 0: air_log_button[0]->setText(tr("Main Log")+"\n["+labelname+"]"); - LogLine(RDConfig::LogInfo,"loaded log '"+air_log[0]->logName()+"' in Main Log"); + syslog(LOG_INFO,"loaded log '%s' in Main Log", + (const char *)air_log[0]->logName().toUtf8()); if(air_log[0]->logName().isEmpty()) { if(air_panel!=NULL) { air_panel->setSvcName(rda->airplayConf()->defaultSvc()); @@ -1290,12 +1282,14 @@ void MainWidget::logReloadedData(int log) case 1: air_log_button[1]->setText(tr("Aux 1 Log")+"\n["+labelname+"]"); - LogLine(RDConfig::LogInfo,"loaded log '"+air_log[1]->logName()+"' in Aux 1 Log"); + syslog(LOG_INFO,"loaded log '%s' in Aux 1 Log", + (const char *)air_log[1]->logName().toUtf8()); break; case 2: air_log_button[2]->setText(tr("Aux 2 Log")+"\n["+labelname+"]"); - LogLine(RDConfig::LogInfo,"loaded log '"+air_log[2]->logName()+"' in Aux 2 Log"); + syslog(LOG_INFO,"loaded log '%s' in Aux Log 2", + (const char *)air_log[2]->logName().toUtf8()); break; } SetCaption(); @@ -1339,7 +1333,8 @@ void MainWidget::logReloadedData(int log) void MainWidget::userData() { - LogLine(RDConfig::LogInfo,"user changed to '"+rda->ripc()->user()+"'"); + syslog(LOG_INFO,"user changed to '%s'", + (const char *)rda->ripc()->user().toUtf8()); SetCaption(); // @@ -2051,7 +2046,7 @@ void MainWidget::closeEvent(QCloseEvent *e) return; } rda->airplayConf()->setExitCode(RDAirPlayConf::ExitClean); - LogLine(RDConfig::LogInfo,"RDAirPlay exiting"); + syslog(LOG_INFO,"RDAirPlay exiting"); air_lock->unlock(); exit(0); } @@ -2065,7 +2060,7 @@ void MainWidget::closeEvent(QCloseEvent *e) delete air_log[i]; } rda->airplayConf()->setExitCode(RDAirPlayConf::ExitClean); - LogLine(RDConfig::LogInfo,"RDAirPlay exiting"); + syslog(LOG_INFO,"RDAirPlay exiting"); air_lock->unlock(); exit(0); } @@ -2161,8 +2156,7 @@ void MainWidget::SetManualMode(int mach) air_button_list->setOpMode(RDAirPlayConf::Manual); air_post_counter->setDisabled(true); } - LogLine(RDConfig::LogInfo, - QString().sprintf("log machine %d mode set to MANUAL",mach+1)); + syslog(LOG_INFO,"log machine %d mode set to MANUAL",mach+1); } @@ -2186,8 +2180,7 @@ void MainWidget::SetAutoMode(int mach) air_button_list->setOpMode(RDAirPlayConf::Auto); air_post_counter->setEnabled(true); } - LogLine(RDConfig::LogInfo, - QString().sprintf("log machine %d mode set to AUTO",mach+1)); + syslog(LOG_INFO,"log machine %d mode set to AUTO",mach+1); } @@ -2211,8 +2204,7 @@ void MainWidget::SetLiveAssistMode(int mach) air_button_list->setOpMode(RDAirPlayConf::LiveAssist); air_post_counter->setDisabled(true); } - LogLine(RDConfig::LogInfo, - QString().sprintf("log machine %d mode set to LIVE ASSIST",mach+1)); + syslog(LOG_INFO,"log machine %d mode set to LIVE ASSIST",mach+1); } @@ -2427,34 +2419,6 @@ int main(int argc,char *argv[]) QString logfile; -void LogLine(RDConfig::LogPriority prio,const QString &line) -{ - FILE *file; - - rda->config()->log("rdairplay",prio,line); - - if(logfile.isEmpty()) { - return; - } - - QDateTime current=QDateTime::currentDateTime(); - if((file=fopen(logfile,"a"))==NULL) { - return; - } - chmod(logfile,S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH); - fprintf(file,"%02d/%02d/%4d - %02d:%02d:%02d.%03d : %s\n", - current.date().month(), - current.date().day(), - current.date().year(), - current.time().hour(), - current.time().minute(), - current.time().second(), - current.time().msec(), - (const char *)line); - fclose(file); -} - - bool MainWidget::FirstPort(int index) { for(int i=0;iconfig()->log("RDCatch",prio,msg); -} - QSize MainWidget::sizeHint() const { return QSize(940,600); diff --git a/rdcatch/rdcatch.h b/rdcatch/rdcatch.h index 0759ecae..1b1c2265 100644 --- a/rdcatch/rdcatch.h +++ b/rdcatch/rdcatch.h @@ -82,7 +82,6 @@ class MainWidget : public QWidget QSizePolicy sizePolicy() const; private slots: - void log(RDConfig::LogPriority prio,const QString &msg); void resizeData(); void connectedData(int serial,bool state); void nextEventData(); diff --git a/rdcatchd/batch.cpp b/rdcatchd/batch.cpp index cd8fb6cb..c54841dc 100644 --- a/rdcatchd/batch.cpp +++ b/rdcatchd/batch.cpp @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -61,7 +62,7 @@ void MainObject::catchConnectedData(int serial,bool state) { if(!state) { - LogLine(RDConfig::LogErr,"unable to connect to rdcatchd(8) daemon"); + syslog(LOG_WARNING,"unable to connect to rdcatchd(8) daemon"); exit(256); } @@ -102,9 +103,7 @@ void MainObject::RunBatch(RDCmdSwitch *cmd) struct sched_param sp; memset(&sp,0,sizeof(sp)); if(sched_setscheduler(getpid(),SCHED_BATCH,&sp)!=0) { - LogLine(RDConfig::LogWarning, - QString().sprintf("unable to set batch permissions, %s", - strerror(errno))); + syslog(LOG_DEBUG,"unable to set batch permissions, %s",strerror(errno)); } // @@ -177,11 +176,10 @@ void MainObject::RunDownload(CatchEvent *evt) // Execute Download // evt->setTempName(BuildTempName(evt,"download")); - LogLine(RDConfig::LogInfo,QString(). - sprintf("starting download of %s to %s, id=%d", - (const char *)evt->resolvedUrl(), - (const char *)evt->tempName(), - evt->id())); + syslog(LOG_INFO,"starting download of %s to %s, id=%d", + (const char *)evt->resolvedUrl().toUtf8(), + (const char *)evt->tempName().toUtf8(), + evt->id()); RDDownload *conv=new RDDownload(rda->config(),this); conv->setSourceUrl(RDUrlEscape(evt->resolvedUrl())); @@ -196,22 +194,20 @@ void MainObject::RunDownload(CatchEvent *evt) switch((conv_err=conv->runDownload(url_username,url_password, rda->config()->logXloadDebugData()))) { case RDDownload::ErrorOk: - LogLine(RDConfig::LogInfo,QString(). - sprintf("finished download of %s to %s, id=%d", - (const char *)evt->tempName(), - (const char *)evt->resolvedUrl(), - evt->id())); + syslog(LOG_INFO,"finished download of %s to %s, id=%d", + (const char *)evt->tempName().toUtf8(), + (const char *)evt->resolvedUrl().toUtf8(), + evt->id()); break; case RDDownload::ErrorInternal: catch_connect->setExitCode(evt->id(),RDRecording::InternalError, RDDownload::errorText(conv_err)); qApp->processEvents(); - LogLine(RDConfig::LogWarning,QString(). - sprintf("download of %s returned an error: \"%s\", id=%d", - (const char *)evt->tempName(), - (const char *)RDDownload::errorText(conv_err), - evt->id())); + syslog(LOG_WARNING,"download of %s returned an error: \"%s\", id=%d", + (const char *)evt->tempName().toUtf8(), + (const char *)RDDownload::errorText(conv_err).toUtf8(), + evt->id()); delete conv; unlink(evt->tempName()); exit(0); @@ -220,11 +216,10 @@ void MainObject::RunDownload(CatchEvent *evt) catch_connect->setExitCode(evt->id(),RDRecording::ServerError, RDDownload::errorText(conv_err)); qApp->processEvents(); - LogLine(RDConfig::LogWarning,QString(). - sprintf("download of %s returned an error: \"%s\", id=%d", - (const char *)evt->tempName(), - (const char *)RDDownload::errorText(conv_err), - evt->id())); + syslog(LOG_WARNING,"download of %s returned an error: \"%s\", id=%d", + (const char *)evt->tempName().toUtf8(), + (const char *)RDDownload::errorText(conv_err).toUtf8(), + evt->id()); delete conv; unlink(evt->tempName()); exit(0); @@ -238,9 +233,8 @@ void MainObject::RunDownload(CatchEvent *evt) catch_connect->setExitCode(evt->id(),RDRecording::Ok,tr("OK")); qApp->processEvents(); } - LogLine(RDConfig::LogInfo,QString().sprintf("deleting file %s, id=%d", - (const char *)evt->tempName(), - evt->id())); + syslog(LOG_INFO,"deleting file %s, id=%d", + (const char *)evt->tempName().toUtf8(),evt->id()); unlink(evt->tempName()); } @@ -260,26 +254,21 @@ void MainObject::RunUpload(CatchEvent *evt) // evt->setTempName(BuildTempName(evt,"upload")); evt->setDeleteTempFile(true); - LogLine(RDConfig::LogInfo,QString(). - sprintf("started export of cut %s to %s, id=%d", - (const char *)evt->cutName(), - (const char *)evt->tempName(), - evt->id())); + syslog(LOG_INFO,"started export of cut %s to %s, id=%d", + (const char *)evt->cutName().toUtf8(), + (const char *)evt->tempName().toUtf8(),evt->id()); if(!Export(evt)) { - LogLine(RDConfig::LogWarning,QString(). - sprintf("export of cut %s returned an error, id=%d", - (const char *)evt->cutName(), - evt->id())); + syslog(LOG_WARNING,"export of cut %s returned an error, id=%d", + (const char *)evt->cutName().toUtf8(), + evt->id()); catch_connect->setExitCode(evt->id(),RDRecording::InternalError, tr("Export Error")); qApp->processEvents(); return; } - LogLine(RDConfig::LogInfo,QString(). - sprintf("finished export of cut %s to %s, id=%d", - (const char *)evt->cutName(), - (const char *)evt->tempName(), - evt->id())); + syslog(LOG_INFO,"finished export of cut %s to %s, id=%d", + (const char *)evt->cutName().toUtf8(), + (const char *)evt->tempName().toUtf8(),evt->id()); // // Load Podcast Parameters @@ -298,12 +287,10 @@ void MainObject::RunUpload(CatchEvent *evt) // // Execute Upload // - LogLine(RDConfig::LogInfo,QString(). - sprintf("starting upload of %s to %s, id=%d", - (const char *)evt->tempName(), - (const char *)evt-> - resolvedUrl(), - evt->id())); + syslog(LOG_INFO,"starting upload of %s to %s, id=%d", + (const char *)evt->tempName().toUtf8(), + (const char *)evt->resolvedUrl().toUtf8(), + evt->id()); RDUpload *conv=new RDUpload(this); conv->setSourceFile(evt->tempName()); conv->setDestinationUrl(evt->resolvedUrl()); @@ -319,33 +306,30 @@ void MainObject::RunUpload(CatchEvent *evt) case RDUpload::ErrorOk: catch_connect->setExitCode(evt->id(),RDRecording::Ok,tr("Ok")); qApp->processEvents(); - LogLine(RDConfig::LogInfo,QString(). - sprintf("finished upload of %s to %s, id=%d", - (const char *)evt->tempName(), - (const char *)evt->resolvedUrl(), - evt->id())); + syslog(LOG_INFO,"finished upload of %s to %s, id=%d", + (const char *)evt->tempName().toUtf8(), + (const char *)evt->resolvedUrl().toUtf8(), + evt->id()); break; case RDUpload::ErrorInternal: catch_connect->setExitCode(evt->id(),RDRecording::InternalError, RDUpload::errorText(conv_err)); qApp->processEvents(); - LogLine(RDConfig::LogWarning,QString(). - sprintf("upload of %s returned an error: \"%s\", id=%d", - (const char *)evt->tempName(), - (const char *)RDUpload::errorText(conv_err), - evt->id())); + syslog(LOG_WARNING,"upload of %s returned an error: \"%s\", id=%d", + (const char *)evt->tempName().toUtf8(), + (const char *)RDUpload::errorText(conv_err).toUtf8(), + evt->id()); break; default: catch_connect->setExitCode(evt->id(),RDRecording::ServerError, RDUpload::errorText(conv_err)); qApp->processEvents(); - LogLine(RDConfig::LogWarning,QString(). - sprintf("upload of %s returned an error: \"%s\", id=%d", - (const char *)evt->tempName(), - (const char *)RDUpload::errorText(conv_err), - evt->id())); + syslog(LOG_WARNING,"upload of %s returned an error: \"%s\", id=%d", + (const char *)evt->tempName().toUtf8(), + (const char *)RDUpload::errorText(conv_err).toUtf8(), + evt->id()); break; } delete conv; @@ -358,12 +342,10 @@ void MainObject::RunUpload(CatchEvent *evt) } if(evt->deleteTempFile()) { unlink(evt->tempName()); - LogLine(RDConfig::LogDebug,QString().sprintf("deleted file %s", - (const char *)evt->tempName())); + syslog(LOG_INFO,"deleted file %s",(const char *)evt->tempName().toUtf8()); } else { - chown(evt->tempName(),rda->config()->uid(), - rda->config()->gid()); + chown(evt->tempName(),rda->config()->uid(),rda->config()->gid()); } } @@ -375,9 +357,8 @@ bool MainObject::Export(CatchEvent *evt) RDCut *cut=new RDCut(evt->cutName()); if(!cut->exists()) { - LogLine(RDConfig::LogErr,QString().sprintf("Cut not found: %s, id: %d", - (const char *)evt->cutName(), - evt->id())); + syslog(LOG_WARNING,"cut not found: %s, id: %d", + (const char *)evt->cutName().toUtf8(),evt->id()); delete cut; return false; } @@ -407,10 +388,9 @@ bool MainObject::Export(CatchEvent *evt) break; default: - LogLine(RDConfig::LogErr, - QString().sprintf("Export error: %s, id: %d", - (const char *)RDAudioConvert::errorText(conv_err), - evt->id())); + syslog(LOG_WARNING,"export error: %s, id: %d", + (const char *)RDAudioConvert::errorText(conv_err).toUtf8(), + evt->id()); ret=false; break; } @@ -432,9 +412,8 @@ bool MainObject::Import(CatchEvent *evt) RDCut *cut=new RDCut(evt->cutName()); if(!cut->exists()) { - LogLine(RDConfig::LogErr, - QString().sprintf("Cut not found: %s, id: %d", - (const char *)evt->cutName(),evt->id())); + syslog(LOG_WARNING,"cut not found: %s, id: %d", + (const char *)evt->cutName().toUtf8(),evt->id()); catch_connect->setExitCode(evt->id(),RDRecording::NoCut,tr("No such cut")); qApp->processEvents(); delete cut; @@ -442,9 +421,8 @@ bool MainObject::Import(CatchEvent *evt) } RDWaveFile *wave=new RDWaveFile(evt->tempName()); if(!wave->openWave()) { - LogLine(RDConfig::LogErr, - QString().sprintf("Unknown file format: %s, id: %d", - (const char *)evt->cutName(),evt->id())); + syslog(LOG_ERR,"unknown file format: %s, id: %d", + (const char *)evt->cutName().toUtf8(),evt->id()); catch_connect->setExitCode(evt->id(),RDRecording::UnknownFormat, tr("Unknown Format")); qApp->processEvents(); @@ -477,11 +455,10 @@ bool MainObject::Import(CatchEvent *evt) settings->setSampleRate(rda->system()->sampleRate()); settings->setBitRate(evt->bitrate()); settings->setNormalizationLevel(evt->normalizeLevel()/100); - LogLine(RDConfig::LogInfo,QString(). - sprintf("started import of %s to cut %s, id=%d", - (const char *)evt->tempName(), - (const char *)evt->cutName(), - evt->id())); + syslog(LOG_INFO,"started import of %s to cut %s, id=%d", + (const char *)evt->tempName().toUtf8(), + (const char *)evt->cutName().toUtf8(), + evt->id()); conv->setDestinationSettings(settings); switch((conv_err=conv->convert())) { case RDAudioConvert::ErrorOk: @@ -490,10 +467,9 @@ bool MainObject::Import(CatchEvent *evt) break; case RDAudioConvert::ErrorFormatNotSupported: - LogLine(RDConfig::LogErr, - QString().sprintf("Import error: %s, id: %d", - (const char *)RDAudioConvert::errorText(conv_err), - evt->id())); + syslog(LOG_WARNING,"import error: %s, id: %d", + (const char *)RDAudioConvert::errorText(conv_err).toUtf8(), + evt->id()); catch_connect->setExitCode(evt->id(),RDRecording::UnknownFormat, RDAudioConvert::errorText(conv_err)); qApp->processEvents(); @@ -501,10 +477,9 @@ bool MainObject::Import(CatchEvent *evt) break; default: - LogLine(RDConfig::LogErr, - QString().sprintf("Import error: %s, id: %d", - (const char *)RDAudioConvert::errorText(conv_err), - evt->id())); + syslog(LOG_WARNING,"import error: %s, id: %d", + (const char *)RDAudioConvert::errorText(conv_err).toUtf8(), + evt->id()); catch_connect->setExitCode(evt->id(),RDRecording::InternalError, RDAudioConvert::errorText(conv_err)); qApp->processEvents(); @@ -515,16 +490,14 @@ bool MainObject::Import(CatchEvent *evt) cart->setMetadata(conv->sourceWaveData()); cut->setMetadata(conv->sourceWaveData()); } - LogLine(RDConfig::LogInfo,QString(). - sprintf("completed import of %s to cut %s, id=%d", - (const char *)evt->tempName(), - (const char *)evt->cutName(), - evt->id())); + syslog(LOG_INFO,"completed import of %s to cut %s, id=%d", + (const char *)evt->tempName().toUtf8(), + (const char *)evt->cutName().toUtf8(), + evt->id()); if(evt->deleteTempFile()) { unlink(evt->tempName()); - LogLine(RDConfig::LogDebug,QString(). - sprintf("deleted file %s", - (const char *)evt->tempName())); + syslog(LOG_DEBUG,"deleted file \"%s\"", + (const char *)evt->tempName().toUtf8()); } delete settings; delete conv; diff --git a/rdcatchd/local_macros.cpp b/rdcatchd/local_macros.cpp index 1ced5c87..8a35ddb2 100644 --- a/rdcatchd/local_macros.cpp +++ b/rdcatchd/local_macros.cpp @@ -18,6 +18,8 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // +#include + #include #include #include @@ -180,9 +182,8 @@ void MainObject::RunLocalMacros(RDMacro *rml) return; } else { - LogLine(RDConfig::LogWarning,QString(). - sprintf("unable to handle RS macro for deck %d: device busy", - chan)); + syslog(LOG_WARNING,"unable to handle RS macro for deck %d: device busy", + chan); if(rml->echoRequested()) { rml->acknowledge(false); rda->ripc()->sendRml(rml); diff --git a/rdcatchd/rdcatchd.cpp b/rdcatchd/rdcatchd.cpp index f515159b..758d5b45 100644 --- a/rdcatchd/rdcatchd.cpp +++ b/rdcatchd/rdcatchd.cpp @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include @@ -60,54 +61,24 @@ #include "rdcatchd.h" -// Logging function that works within and outside the MainObject. -void LogLine(RDConfig::LogPriority prio,const QString &line) -{ - FILE *logfile; - - rda->config()->log("rdcatchd",prio,line); - - if(rda->config()->catchdLogname().isEmpty()) { - return; - } - - QDateTime current=QDateTime::currentDateTime(); - logfile=fopen(rda->config()->catchdLogname(),"a"); - if(logfile==NULL) { - return; - } - chmod(rda->config()->catchdLogname(),S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH); - fprintf(logfile,"%02d/%02d/%4d - %02d:%02d:%02d.%03d : %s\n", - current.date().month(), - current.date().day(), - current.date().year(), - current.time().hour(), - current.time().minute(), - current.time().second(), - current.time().msec(), - (const char *)line); - fclose(logfile); -} - - void SigHandler(int signum) { pid_t local_pid; switch(signum) { - case SIGINT: - case SIGTERM: - LogLine(RDConfig::LogNotice,"rdcatchd exiting"); - exit(0); - break; + case SIGINT: + case SIGTERM: + syslog(LOG_INFO,"rdcatchd exiting"); + exit(0); + break; - case SIGCHLD: - local_pid=waitpid(-1,NULL,WNOHANG); - while(local_pid>0) { - local_pid=waitpid(-1,NULL,WNOHANG); - } - signal(SIGCHLD,SigHandler); - return; + case SIGCHLD: + local_pid=waitpid(-1,NULL,WNOHANG); + while(local_pid>0) { + local_pid=waitpid(-1,NULL,WNOHANG); + } + signal(SIGCHLD,SigHandler); + return; } } @@ -453,19 +424,13 @@ MainObject::MainObject(QObject *parent) sp.sched_priority=rda->config()->realtimePriority()-1; } if(sched_setscheduler(getpid(),SCHED_FIFO,&sp)!=0) { - LogLine(RDConfig::LogWarning, - QString().sprintf("unable to set realtime permissions, %s", - strerror(errno))); + syslog(LOG_DEBUG,"unable to set realtime permissions, %s", + strerror(errno)); } mlockall(MCL_CURRENT|MCL_FUTURE); } - LogLine(RDConfig::LogNotice,"rdcatchd started"); -} - -void MainObject::log(RDConfig::LogPriority prio,const QString &msg) -{ - LogLine(prio,msg); + syslog(LOG_INFO,"rdcatchd started"); } @@ -504,7 +469,7 @@ void MainObject::newConnectionData() catch_ready_mapper->setMapping(sock,i); connect(sock,SIGNAL(connectionClosed()),catch_kill_mapper,SLOT(map())); catch_kill_mapper->setMapping(sock,i); - rda->log(RDConfig::LogDebug,QString().sprintf("created connection %d",i)); + syslog(LOG_DEBUG,"created connection %d",i); } @@ -594,10 +559,9 @@ void MainObject::startTimerData(int id) BroadcastCommand(QString().sprintf("RE %d %d %d!", deck+1,catch_record_deck_status[deck], id)); - LogLine(RDConfig::LogInfo,QString(). - sprintf("gpi start window closes: event: %d, gpi: %d:%d", - id,catch_events[event].startMatrix(), - catch_events[event].startLine())); + syslog(LOG_DEBUG,"gpi start window closes: event: %d, gpi: %d:%d", + id,catch_events[event].startMatrix(), + catch_events[event].startLine()); } @@ -631,19 +595,15 @@ void MainObject::engineData(int id) // Ignore inactive or non-existent events // if(event<0) { - LogLine(RDConfig::LogDebug,QString(). - sprintf("cannot find event %d, ignoring!",id)); + syslog(LOG_DEBUG,"cannot find event %d, ignoring!",id); return; } if(!catch_events[event].isActive()) { - LogLine(RDConfig::LogDebug,QString(). - sprintf("event %d is marked inactive, ignoring",id)); + syslog(LOG_DEBUG,"event %d is marked inactive, ignoring",id); return; } if(!catch_events[event].dayOfWeek(date.dayOfWeek())) { - LogLine(RDConfig::LogDebug,QString(). - sprintf("event %d is not valid for this DOW, ignoring", - id)); + syslog(LOG_DEBUG,"event %d is not valid for this DOW, ignoring",id); return; } @@ -653,10 +613,9 @@ void MainObject::engineData(int id) if(catch_events[event].type()==RDRecording::Playout) { if(catch_playout_deck_status[catch_events[event].channel()-129]!= RDDeck::Idle) { - LogLine(RDConfig::LogWarning,QString(). - sprintf("playout deck P%d is busy for event %d, skipping", - catch_events[event].channel()-128, - catch_events[event].id())); + syslog(LOG_WARNING,"playout deck P%d is busy for event %d, skipping", + catch_events[event].channel()-128, + catch_events[event].id()); WriteExitCode(event,RDRecording::DeviceBusy); BroadcastCommand(QString().sprintf("RE 0 %d %d %s!",RDDeck::Recording, catch_events[event].id(), @@ -678,10 +637,9 @@ void MainObject::engineData(int id) catch_record_deck_status[catch_events[event]. channel()-1], catch_events[event].id())); - LogLine(RDConfig::LogWarning,QString(). - sprintf("record aborted: no such cut: %s, id: %d", - (const char *)catch_events[event].cutName(), - catch_events[event].id())); + syslog(LOG_WARNING,"record aborted: no such cut: %s, id: %d", + (const char *)catch_events[event].cutName(), + catch_events[event].id()); return; } catch_record_card[catch_events[event].channel()-1]=-1; @@ -716,9 +674,8 @@ void MainObject::engineData(int id) catch_swdelay[catch_events[event].channel()-1]=q->value(5).toInt(); } else { - LogLine(RDConfig::LogNotice,QString(). - sprintf("id %d specified non-existent record deck, ignored", - catch_events[event].id())); + syslog(LOG_DEBUG,"id %d specified non-existent record deck, ignored", + catch_events[event].id()); delete q; return; } @@ -750,10 +707,9 @@ void MainObject::engineData(int id) catch_record_deck_status[catch_events[event]. channel()-1], catch_events[event].id())); - LogLine(RDConfig::LogNotice,QString(). - sprintf("gpi start window opens: event: %d, gpi: %d:%d", - id,catch_events[event].startMatrix(), - catch_events[event].startLine())); + syslog(LOG_DEBUG,"gpi start window opens: event: %d, gpi: %d:%d", + id,catch_events[event].startMatrix(), + catch_events[event].startLine()); break; } break; @@ -767,10 +723,9 @@ void MainObject::engineData(int id) catch_playout_deck_status[catch_events[event]. channel()-129], catch_events[event].id())); - LogLine(RDConfig::LogNotice,QString(). - sprintf("playout aborted: no such cut: %s, id: %d", - (const char *)catch_events[event].cutName(), - catch_events[event].id())); + syslog(LOG_WARNING,"playout aborted: no such cut: %s, id: %d", + (const char *)catch_events[event].cutName().toUtf8(), + catch_events[event].id()); return; } catch_playout_card[catch_events[event].channel()-129]=-1; @@ -793,9 +748,8 @@ void MainObject::engineData(int id) q->value(2).toInt(); } else { - LogLine(RDConfig::LogDebug,QString(). - sprintf("id %d specified non-existent play deck, ignored", - catch_events[event].id())); + syslog(LOG_DEBUG,"id %d specified non-existent play deck, ignored", + catch_events[event].id()); delete q; return; } @@ -808,10 +762,9 @@ void MainObject::engineData(int id) WriteExitCode(event,RDRecording::NoCut); BroadcastCommand(QString(). sprintf("RE 0 0 %d!",catch_events[event].id())); - LogLine(RDConfig::LogDebug, - QString().sprintf("macro aborted: no such cart: %u, id: %d", - catch_events[event].macroCart(), - catch_events[event].id())); + syslog(LOG_WARNING,"macro aborted: no such cart: %u, id: %d", + catch_events[event].macroCart(), + catch_events[event].id()); return; } StartMacroEvent(event); @@ -826,10 +779,9 @@ void MainObject::engineData(int id) WriteExitCode(event,RDRecording::NoCut); BroadcastCommand(QString(). sprintf("RE 0 0 %d!",catch_events[event].id())); - LogLine(RDConfig::LogDebug,QString(). - sprintf("download aborted: no such cut: %s, id: %d", - (const char *)catch_events[event].cutName(), - catch_events[event].id())); + syslog(LOG_WARNING,"download aborted: no such cut: %s, id: %d", + (const char *)catch_events[event].cutName().toUtf8(), + catch_events[event].id()); return; } @@ -854,8 +806,7 @@ void MainObject::engineData(int id) catch_ripper_level=q->value(4).toInt(); } else { - LogLine(RDConfig::LogWarning, - "unable to load import audio configuration"); + syslog(LOG_WARNING,"unable to load import audio configuration"); delete q; return; } @@ -872,10 +823,9 @@ void MainObject::engineData(int id) WriteExitCode(event,RDRecording::NoCut); BroadcastCommand(QString(). sprintf("RE 0 0 %d!",catch_events[event].id())); - LogLine(RDConfig::LogNotice,QString(). - sprintf("upload aborted: no such cut: %s, id: %d", - (const char *)catch_events[event].cutName(), - catch_events[event].id())); + syslog(LOG_WARNING,"upload aborted: no such cut: %s, id: %d", + (const char *)catch_events[event].cutName().toUtf8(), + catch_events[event].id()); return; } StartUploadEvent(event); @@ -909,8 +859,7 @@ void MainObject::garbageData() if(catch_connections.at(i)->isClosing()) { delete catch_connections.at(i); catch_connections[i]=NULL; - rda->log(RDConfig::LogDebug, - QString().sprintf("closed connection %d",i)); + syslog(LOG_DEBUG,"closed connection %d",i); } } } @@ -920,8 +869,7 @@ void MainObject::garbageData() void MainObject::isConnectedData(bool state) { if(!state) { - LogLine(RDConfig::LogErr, - "aborting - unable to connect to Core AudioEngine"); + syslog(LOG_ERR,"aborting - unable to connect to Core AudioEngine"); exit(1); } } @@ -934,8 +882,7 @@ void MainObject::recordLoadedData(int card,int stream) BroadcastCommand(QString().sprintf("RE %d %d %d!", deck,catch_record_deck_status[deck-1], catch_record_id[deck-1])); - LogLine(RDConfig::LogDebug,QString(). - sprintf("Loaded - Card: %d Stream: %d\n",card,stream)); + syslog(LOG_DEBUG,"Loaded - Card: %d Stream: %d\n",card,stream); } @@ -979,18 +926,14 @@ void MainObject::recordUnloadedData(int card,int stream,unsigned msecs) { int deck=GetRecordDeck(card,stream); if(deck<1) { - LogLine(RDConfig::LogDebug,QString(). - sprintf("invalid record deck: Card: %d Stream: %d", - card,stream)); + syslog(LOG_DEBUG,"invalid record deck: Card: %d Stream: %d",card,stream); return; } int event=GetEvent(catch_record_id[deck-1]); if(event<0) { catch_record_deck_status[deck-1]=RDDeck::Idle; catch_record_aborting[deck-1]=false; - LogLine(RDConfig::LogDebug,QString(). - sprintf("invalid record event: Id: %d", - catch_record_id[deck-1])); + syslog(LOG_DEBUG,"invalid record event: Id: %d",catch_record_id[deck-1]); RunRmlRecordingCache(deck); return; } @@ -1003,15 +946,13 @@ void MainObject::recordUnloadedData(int card,int stream,unsigned msecs) StartBatch(catch_events[event].id()); } if(catch_record_aborting[deck-1]) { - LogLine(RDConfig::LogNotice,QString(). - sprintf("record aborted: cut %s", - (const char *)catch_record_name[deck-1])); + syslog(LOG_INFO,"record aborted: cut %s", + (const char *)catch_record_name[deck-1].toUtf8()); WriteExitCodeById(catch_record_id[deck-1],RDRecording::Interrupted); } else { - LogLine(RDConfig::LogInfo,QString(). - sprintf("record complete: cut %s", - (const char *)catch_record_name[deck-1])); + syslog(LOG_INFO,"record complete: cut %s", + (const char *)catch_record_name[deck-1].toUtf8()); WriteExitCodeById(catch_record_id[deck-1],RDRecording::Ok); } BroadcastCommand(QString().sprintf("RE %d %d %d!", @@ -1084,9 +1025,8 @@ void MainObject::playStoppedData(int handle) catch_playout_status[deck-129]=false; catch_playout_event_player[deck-129]->stop(); - LogLine(RDConfig::LogNotice,QString(). - sprintf("playout stopped: cut %s", - (const char *)catch_playout_name[deck-129])); + syslog(LOG_INFO,"playout stopped: cut %s", + (const char *)catch_playout_name[deck-129].toUtf8()); if(debug) { printf("Playout stopped - Card: %d Stream: %d\n", catch_playout_card[deck-129], @@ -1101,9 +1041,8 @@ void MainObject::playUnloadedData(int handle) { int deck=GetPlayoutDeck(handle); - LogLine(RDConfig::LogInfo,QString(). - sprintf("play complete: cut %s", - (const char *)catch_playout_name[deck-129])); + syslog(LOG_INFO,"play complete: cut %s", + (const char *)catch_playout_name[deck-129].toUtf8()); catch_playout_deck_status[deck-129]=RDDeck::Idle; WriteExitCodeById(catch_playout_id[deck-129],RDRecording::Ok); BroadcastCommand(QString().sprintf("RE %d %d %d!",deck, @@ -1155,15 +1094,12 @@ void MainObject::meterData() void MainObject::eventFinishedData(int id) { - LogLine(RDConfig::LogDebug,QString().sprintf("eventFinishedData(%d)",id)); if(catch_macro_event_id[id]>=0) { - LogLine(RDConfig::LogDebug,QString(). - sprintf("Clearing event_id: %d",catch_macro_event_id[id])); + syslog(LOG_DEBUG,"clearing event_id: %d",catch_macro_event_id[id]); if(catch_macro_event_id[id]exists()) { ExecuteMacroCart(cart); - LogLine(RDConfig::LogInfo,QString(). - sprintf("ran startup cart %06u",cartnum)); + syslog(LOG_INFO,"ran startup cart %06u",cartnum); } else { - LogLine(RDConfig::LogNotice,QString(). - sprintf("startup cart %06u was invalid",cartnum)); + syslog(LOG_WARNING,"startup cart %06u was invalid",cartnum); } delete cart; } @@ -1258,7 +1192,7 @@ bool MainObject::StartRecording(int event) QTime current_time=QTime::currentTime(); if((event<0)||(event>=(int)catch_events.size())) { - LogLine(RDConfig::LogDebug,"invalid event offset received, ignored"); + syslog(LOG_DEBUG,"invalid event offset received, ignored"); return false; } @@ -1272,9 +1206,8 @@ bool MainObject::StartRecording(int event) BroadcastCommand(QString().sprintf("RE %d %d %d!", deck,catch_record_deck_status[deck-1], catch_events[event].id())); - LogLine(RDConfig::LogWarning,QString(). - sprintf("invalid audio device for deck: %d, event: %d", - deck,catch_events[event].id())); + syslog(LOG_WARNING,"invalid audio device for deck: %d, event: %d", + deck,catch_events[event].id()); return false; } @@ -1287,9 +1220,9 @@ bool MainObject::StartRecording(int event) BroadcastCommand(QString().sprintf("RE %d %d %d!", deck,catch_record_deck_status[deck-1], catch_events[event].id())); - LogLine(RDConfig::LogNotice,QString(). - sprintf("device busy for deck: %d, event: %d | in use by event: %d", - deck,catch_events[event].id(),catch_record_id[deck-1])); + syslog(LOG_WARNING, + "device busy for deck: %d, event: %d | in use by event: %d", + deck,catch_events[event].id(),catch_record_id[deck-1]); return false; } @@ -1329,7 +1262,8 @@ bool MainObject::StartRecording(int event) QString str; str=rml->toString(); rda->ripc()->sendRml(rml); - LogLine(RDConfig::LogDebug,QString("sending switcher command: ")+str); + syslog(LOG_DEBUG,"sending switcher command: \"%s\"", + (const char *)str.toUtf8()); delete rml; } @@ -1369,7 +1303,7 @@ bool MainObject::StartRecording(int event) catch_record_card[deck-1], catch_record_stream[deck-1], (const char *)cut_name,length); - LogLine(RDConfig::LogInfo,str); + syslog(LOG_INFO,str); // // Cache Selected Fields @@ -1434,9 +1368,8 @@ void MainObject::StartPlayout(int event) { unsigned deck=catch_events[event].channel(); if((catch_playout_card[deck-129]<0)) { - LogLine(RDConfig::LogWarning,QString(). - sprintf("invalid audio device for deck: %d, event: %d", - deck,catch_events[event].id())); + syslog(LOG_WARNING, "invalid audio device for deck: %d, event: %d", + deck,catch_events[event].id()); return; } @@ -1476,14 +1409,12 @@ void MainObject::StartPlayout(int event) catch_playout_stream[deck-129]); catch_events[event].setStatus(RDDeck::Recording); - LogLine(RDConfig::LogDebug,QString(). - sprintf("playout started: deck: %d, event %d", - deck,catch_events[event].id())); - LogLine(RDConfig::LogDebug,QString(). - sprintf(" card %d, stream %d , cut=%s", - catch_playout_card[deck-129], - catch_playout_stream[deck-129], - (const char *)catch_events[event].cutName())); + syslog(LOG_DEBUG, + "playout started: deck: %d, event %d card %d, stream %d , cut=%s", + deck,catch_events[event].id(), + catch_playout_card[deck-129], + catch_playout_stream[deck-129], + (const char *)catch_events[event].cutName().toUtf8()); // // Cache Selected Fields @@ -1497,22 +1428,19 @@ void MainObject::StartMacroEvent(int event) { RDCart *cart=new RDCart(catch_events[event].macroCart()); if(!cart->exists()) { - LogLine(RDConfig::LogWarning,QString(). - sprintf("cart %u does not exist!", - catch_events[event].macroCart())); + syslog(LOG_WARNING,"cart %u does not exist!", + catch_events[event].macroCart()); delete cart; return; } if(cart->type()!=RDCart::Macro) { - LogLine(RDConfig::LogWarning,QString(). - sprintf("%u is not a macro cart!", - catch_events[event].macroCart())); + syslog(LOG_WARNING,"%u is not a macro cart!", + catch_events[event].macroCart()); delete cart; return; } if(ExecuteMacroCart(cart,catch_events[event].id(),event)) { - LogLine(RDConfig::LogInfo,QString(). - sprintf("executing macro cart: %u",catch_events[event].macroCart())); + syslog(LOG_INFO,"executing macro cart: %u",catch_events[event].macroCart()); } delete cart; } @@ -1529,7 +1457,7 @@ void MainObject::StartSwitchEvent(int event) rml->addArg(catch_events[event].switchInput()); rml->addArg(catch_events[event].switchOutput()); QString str=rml->toString(); - LogLine(RDConfig::LogInfo,QString("sent switch event, rml: ")+str); + syslog(LOG_INFO,"sent switch event, rml: \"%s\"",(const char *)str.toUtf8()); rda->ripc()->sendRml(rml); delete rml; if(catch_events[event].oneShot()) { @@ -1569,7 +1497,7 @@ bool MainObject::ExecuteMacroCart(RDCart *cart,int id,int event) { int event_id=GetFreeEvent(); if(event_id<0) { - LogLine(RDConfig::LogWarning,"unable to allocate event context!"); + syslog(LOG_WARNING,"unable to allocate event context, id=%d",id); return false; } if(event!=-1) { @@ -1900,7 +1828,7 @@ void MainObject::LoadEngine(bool adv_day) QString sql; catch_events.clear(); - LogLine(RDConfig::LogInfo,"rdcatchd engine load starts..."); + syslog(LOG_DEBUG,"rdcatchd engine load starts..."); sql=LoadEventSql()+QString(" where STATION_NAME=\"")+ RDEscapeString(rda->station()->name())+"\""; q=new RDSqlQuery(sql); @@ -1908,9 +1836,9 @@ void MainObject::LoadEngine(bool adv_day) catch_events.push_back(CatchEvent(rda->station(),RDConfiguration())); LoadEvent(q,&catch_events.back(),true); } - LogLine(RDConfig::LogInfo,QString().sprintf("loaded %d events",(int)catch_events.size())); + syslog(LOG_DEBUG,"loaded %d events",(int)catch_events.size()); delete q; - LogLine(RDConfig::LogInfo,"rdcatchd engine load ends"); + syslog(LOG_DEBUG,"rdcatchd engine load ends"); } @@ -2185,40 +2113,35 @@ bool MainObject::AddEvent(int id) LoadEvent(q,&catch_events.back(),true); switch((RDRecording::Type)q->value(2).toInt()) { case RDRecording::Recording: - LogLine(RDConfig::LogNotice,QString(). - sprintf("loading event %d, Type: recording, Cut: %s", - id,(const char *)q->value(4).toString())); + syslog(LOG_DEBUG,"loading event %d, Type: recording, Cut: %s", + id,(const char *)q->value(4).toString().toUtf8()); break; case RDRecording::Playout: - LogLine(RDConfig::LogNotice,QString(). - sprintf("loading event %d, Type: playout, Cut: %s", - id,(const char *)q->value(4).toString())); + syslog(LOG_DEBUG,"loading event %d, Type: playout, Cut: %s", + id,(const char *)q->value(4).toString().toUtf8()); break; case RDRecording::MacroEvent: - LogLine(RDConfig::LogNotice,QString(). - sprintf("loading event %d, Type: macro, Cart: %d", - id,q->value(23).toUInt())); + syslog(LOG_DEBUG,"loading event %d, Type: macro, Cart: %d", + id,q->value(23).toUInt()); break; case RDRecording::SwitchEvent: - LogLine(RDConfig::LogNotice,QString().sprintf( - "loading event %d, Type: switch, Matrix: %d, Source: %d Dest: %d", - id,q->value(3).toInt(),q->value(24).toInt(), - q->value(25).toInt())); + syslog(LOG_DEBUG, + "loading event %d, Type: switch, Matrix: %d, Source: %d Dest: %d", + id,q->value(3).toInt(),q->value(24).toInt(), + q->value(25).toInt()); break; case RDRecording::Download: - LogLine(RDConfig::LogNotice,QString(). - sprintf("loading event %d, Type: download, Cut: %s", - id,(const char *)q->value(4).toString())); + syslog(LOG_DEBUG,"loading event %d, Type: download, Cut: %s", + id,(const char *)q->value(4).toString().toUtf8()); break; case RDRecording::Upload: - LogLine(RDConfig::LogNotice,QString(). - sprintf("loading event %d, Type: upload, Cut: %s", - id,(const char *)q->value(4).toString())); + syslog(LOG_DEBUG,"loading event %d, Type: upload, Cut: %s", + id,(const char *)q->value(4).toString().toUtf8()); break; case RDRecording::LastType: @@ -2227,8 +2150,7 @@ bool MainObject::AddEvent(int id) delete q; return true; } - LogLine(RDConfig::LogDebug,QString(). - sprintf("event %d not found, not loaded",id)); + syslog(LOG_DEBUG,"event %d not found, not loaded",id); delete q; return false; } @@ -2238,50 +2160,42 @@ void MainObject::RemoveEvent(int id) { int event=GetEvent(id); if(event<0) { - LogLine(RDConfig::LogDebug,QString(). - sprintf("event %d not found, not removed",id)); + syslog(LOG_DEBUG,"event %d not found, not removed",id); return; } switch(catch_events[event].type()) { case RDRecording::Recording: - LogLine(RDConfig::LogDebug,QString(). - sprintf("removed event %d, Type: recording, Cut: %s", - id,(const char *)catch_events[event].cutName())); + syslog(LOG_DEBUG,"removed event %d, Type: recording, Cut: %s", + id,(const char *)catch_events[event].cutName().toUtf8()); break; case RDRecording::Playout: - LogLine(RDConfig::LogDebug,QString(). - sprintf("removed event %d, Type: playout, Cut: %s", - id, - (const char *)catch_events[event].cutName())); + syslog(LOG_DEBUG,"removed event %d, Type: playout, Cut: %s", + id,(const char *)catch_events[event].cutName().toUtf8()); break; case RDRecording::MacroEvent: - LogLine(RDConfig::LogDebug,QString(). - sprintf("removed event %d, Type: macro, Cart: %u", - id, - catch_events[event].macroCart())); + syslog(LOG_DEBUG,"removed event %d, Type: macro, Cart: %u", + id,catch_events[event].macroCart()); break; case RDRecording::SwitchEvent: - LogLine(RDConfig::LogDebug,QString().sprintf( - "removed event %d, Type: switch, Matrix: %d, Source: %d Dest: %d", - id, - catch_events[event].channel(), - catch_events[event].switchInput(), - catch_events[event].switchOutput())); + syslog(LOG_DEBUG, + "removed event %d, Type: switch, Matrix: %d, Source: %d Dest: %d", + id, + catch_events[event].channel(), + catch_events[event].switchInput(), + catch_events[event].switchOutput()); break; case RDRecording::Download: - LogLine(RDConfig::LogDebug,QString(). - sprintf("removed event %d, Type: download, Cut: %s", - id,(const char *)catch_events[event].cutName())); + syslog(LOG_DEBUG,"removed event %d, Type: download, Cut: %s", + id,(const char *)catch_events[event].cutName().toUtf8()); break; case RDRecording::Upload: - LogLine(RDConfig::LogDebug,QString(). - sprintf("removed event %d, Type: upload, Cut: %s", - id,(const char *)catch_events[event].cutName())); + syslog(LOG_DEBUG,"removed event %d, Type: upload, Cut: %s", + id,(const char *)catch_events[event].cutName().toUtf8()); break; case RDRecording::LastType: @@ -2320,47 +2234,42 @@ void MainObject::PurgeEvent(int event) BroadcastCommand(QString().sprintf("PE %d!",catch_events[event].id())); switch(catch_events[event].type()) { case RDRecording::Recording: - LogLine(RDConfig::LogDebug,QString(). - sprintf("purged event %d, Type: recording, Cut: %s", - catch_events[event].id(), - (const char *)catch_events[event].cutName())); + syslog(LOG_DEBUG,"purged event %d, Type: recording, Cut: %s", + catch_events[event].id(), + (const char *)catch_events[event].cutName().toUtf8()); break; case RDRecording::Playout: - LogLine(RDConfig::LogDebug,QString(). - sprintf("purged event %d, Type: playout, Cut: %s", - catch_events[event].id(), - (const char *)catch_events[event].cutName())); + syslog(LOG_DEBUG,"purged event %d, Type: playout, Cut: %s", + catch_events[event].id(), + (const char *)catch_events[event].cutName().toUtf8()); break; case RDRecording::MacroEvent: - LogLine(RDConfig::LogDebug,QString(). - sprintf("purged event %d, Type: macro, Cart: %u", - catch_events[event].id(), - catch_events[event].macroCart())); + syslog(LOG_DEBUG,"purged event %d, Type: macro, Cart: %u", + catch_events[event].id(), + catch_events[event].macroCart()); break; case RDRecording::SwitchEvent: - LogLine(RDConfig::LogDebug,QString().sprintf( - "purged event %d, Type: switch, Matrix: %d, Source: %d Dest: %d", - catch_events[event].id(), - catch_events[event].channel(), - catch_events[event].switchInput(), - catch_events[event].switchOutput())); + syslog(LOG_DEBUG, + "purged event %d, Type: switch, Matrix: %d, Source: %d Dest: %d", + catch_events[event].id(), + catch_events[event].channel(), + catch_events[event].switchInput(), + catch_events[event].switchOutput()); break; case RDRecording::Download: - LogLine(RDConfig::LogDebug,QString(). - sprintf("purged event %d, Type: download, Cut: %s", - catch_events[event].id(), - (const char *)catch_events[event].cutName())); + syslog(LOG_DEBUG,"purged event %d, Type: download, Cut: %s", + catch_events[event].id(), + (const char *)catch_events[event].cutName().toUtf8()); break; case RDRecording::Upload: - LogLine(RDConfig::LogDebug,QString(). - sprintf("purged event %d, Type: upload, Cut: %s", - catch_events[event].id(), - (const char *)catch_events[event].cutName())); + syslog(LOG_DEBUG,"purged event %d, Type: upload, Cut: %s", + catch_events[event].id(), + (const char *)catch_events[event].cutName().toUtf8()); break; case RDRecording::LastType: @@ -2572,7 +2481,6 @@ QString MainObject::GetFileExtension(QString filename) /* This is an overloaded virtual function to tell a session manager not to restart this daemon. */ void QApplication::saveState(QSessionManager &sm) { sm.setRestartHint(QSessionManager::RestartNever); - LogLine(RDConfig::LogDebug,"rdcatchd saveState(), set restart hint to Never"); return; }; @@ -2590,7 +2498,7 @@ bool MainObject::SendErrorMessage(CatchEvent *event,const QString &err_desc, // int event_id=GetFreeEvent(); if(event_id<0) { - LogLine(RDConfig::LogWarning,"unable to allocate event context!"); + syslog(LOG_WARNING,"unable to allocate event context, id=%d",event->id()); } catch_macro_event_id[event_id]=event->id()+RDCATCHD_ERROR_ID_OFFSET; catch_event_pool[event_id]= @@ -2600,9 +2508,8 @@ bool MainObject::SendErrorMessage(CatchEvent *event,const QString &err_desc, catch_event_mapper,SLOT(map())); bool res=catch_event_pool[event_id]->load(rml); catch_event_pool[event_id]->exec(); - LogLine(RDConfig::LogNotice,QString(). - sprintf("executed error rml: id=%d, rml=\"%s\", res=%d", - event->id(),(const char *)rml,res)); + syslog(LOG_INFO,"executed error rml: id=%d, rml=\"%s\", res=%d", + event->id(),(const char *)rml.toUtf8(),res); return true; } @@ -2718,9 +2625,8 @@ void MainObject::StartBatch(int id) execl(bin,(const char *)bin, (const char *)QString().sprintf("--event-id=%d",id), (char *)NULL); - LogLine(RDConfig::LogErr,QString(). - sprintf("failed to exec %s --event-id=%d: %s",(const char *)bin, - id,strerror(errno))); + syslog(LOG_ERR,"failed to exec %s --event-id=%d: %s",(const char *)bin, + id,strerror(errno)); exit(0); } } diff --git a/rdcatchd/rdcatchd.h b/rdcatchd/rdcatchd.h index baa74b42..d0e50d21 100644 --- a/rdcatchd/rdcatchd.h +++ b/rdcatchd/rdcatchd.h @@ -60,11 +60,6 @@ #define RDCATCHD_HEARTBEAT_INTERVAL 10000 #define RDCATCHD_ERROR_ID_OFFSET 1000000 -// -// Function Prototypes -// -void LogLine(RDConfig::LogPriority prio,const QString &line); - class ServerConnection { public: @@ -127,7 +122,6 @@ class MainObject : public QObject void sysHeartbeatData(); void updateXloadsData(); void startupCartData(); - void log(RDConfig::LogPriority prio,const QString &line); void notificationReceivedData(RDNotification *notify); // diff --git a/rdpadengined/rdpadengined.cpp b/rdpadengined/rdpadengined.cpp index 0b0fdb84..caa2a06a 100644 --- a/rdpadengined/rdpadengined.cpp +++ b/rdpadengined/rdpadengined.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include #include @@ -65,17 +66,13 @@ MainObject::MainObject(QObject *parent) // if(getuid()==0) { if(setgid(rda->config()->pypadGid())!=0) { - rda->log(RDConfig::LogErr, - QString().sprintf("unable to set GID to %d [", - rda->config()->pypadGid())+ - QString(strerror(errno))+"], exiting"); + syslog(LOG_ERR,"unable to set GID to %d [%s], exiting", + rda->config()->pypadGid(),strerror(errno)); exit(1); } if(setuid(rda->config()->pypadUid())!=0) { - rda->log(RDConfig::LogErr, - QString().sprintf("unable to set UID to %d [", - rda->config()->pypadUid())+ - QString(strerror(errno))+"], exiting"); + syslog(LOG_ERR,"unable to set UID to %d [%s], exiting", + rda->config()->pypadUid(),strerror(errno)); exit(1); } } @@ -85,9 +82,8 @@ MainObject::MainObject(QObject *parent) // for(unsigned i=0;icmdSwitch()->keys();i++) { if(!rda->cmdSwitch()->processed(i)) { - rda->log(RDConfig::LogErr, - QString("unknown command option \"")+rda->cmdSwitch()->key(i)+ - "\""); + syslog(LOG_ERR,"unknown command option \"%s\"", + (const char *)rda->cmdSwitch()->key(i).toUtf8()); exit(2); } } @@ -193,8 +189,7 @@ void MainObject::instanceFinishedData(int id) RDProcess *proc=pad_instances.value(id); if(proc->process()->exitStatus()!=QProcess::NormalExit) { - rda->log(RDConfig::LogWarning, - QString().sprintf("PyPAD script %d crashed\n",id)); + syslog(LOG_WARNING,"PyPAD script %d crashed\n",id); SetRunStatus(id,false,-1,proc->standardErrorData()); proc->deleteLater(); pad_instances.remove(id); @@ -212,9 +207,8 @@ void MainObject::instanceFinishedData(int id) } else { if(!global_pad_exiting) { - rda->log(RDConfig::LogWarning, - QString().sprintf("PyPAD script ID %d exited with code %d", - id,proc->process()->exitCode())); + syslog(LOG_WARNING,"PyPAD script ID %d exited with code %d", + id,proc->process()->exitCode()); SetRunStatus(id,false,proc->process()->exitCode(), proc->standardErrorData()); } @@ -258,8 +252,8 @@ void MainObject::StartScript(unsigned id,const QString &script_path) args.push_back(QString().sprintf("%u",RD_PAD_CLIENT_TCP_PORT)); args.push_back(QString().sprintf("$%u",id)); pad_instances.value(id)->start(RD_PYPAD_PYTHON_PATH,args); - rda->log(RDConfig::LogInfo,"starting: "+proc->program()+" "+ - proc->arguments().join(" ").toUtf8()); + syslog(LOG_INFO,"starting: "+proc->program()+" "+ + proc->arguments().join(" ").toUtf8()); } diff --git a/rdpanel/rdpanel.cpp b/rdpanel/rdpanel.cpp index f3b8efe0..03c17da4 100644 --- a/rdpanel/rdpanel.cpp +++ b/rdpanel/rdpanel.cpp @@ -162,7 +162,6 @@ MainWidget::MainWidget(QWidget *parent) rda->panelConf()->flashPanel(), rda->panelConf()->buttonLabelTemplate(),true, panel_player,panel_cart_dialog,this); - panel_panel->setLogfile(rda->config()->airplayLogname()); panel_panel->setGeometry(10,10,panel_panel->sizeHint().width(), panel_panel->sizeHint().height()); panel_panel->setPauseEnabled(rda->panelConf()->panelPauseEnabled()); diff --git a/rdrepld/citadelxds.cpp b/rdrepld/citadelxds.cpp index 7f673cd1..bfb565b2 100644 --- a/rdrepld/citadelxds.cpp +++ b/rdrepld/citadelxds.cpp @@ -2,7 +2,7 @@ // // Replicator implementation for the Citadel XDS Portal // -// (C) Copyright 2010-2018 Fred Gleason +// (C) Copyright 2010-2019 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -21,6 +21,7 @@ #include #include #include +#include #include #include @@ -100,9 +101,8 @@ void CitadelXds::CheckIsciXreference() } } else { - rda->config()->log("rdrepld",RDConfig::LogErr, - QString().sprintf("unable to load ISCI cross reference file \"%s\"", - (const char *)rda->system()->isciXreferencePath())); + syslog(LOG_WARNING,"unable to load ISCI cross reference file \"%s\"", + (const char *)rda->system()->isciXreferencePath().toUtf8()); } delete fi; } @@ -122,10 +122,9 @@ bool CitadelXds::LoadIsciXreference(const QString &filename) unsigned linenum=3; if((f=fopen(filename,"r"))==NULL) { - rda->config()->log("rdrepld",RDConfig::LogErr, - QString().sprintf("unable to load ISCI cross reference file \"%s\" [%s]", - (const char *)rda->system()->isciXreferencePath(), - strerror(errno))); + syslog(LOG_WARNING,"unable to load ISCI cross reference file \"%s\" [%s]", + (const char *)rda->system()->isciXreferencePath().toUtf8(), + strerror(errno)); return false; } @@ -173,33 +172,30 @@ bool CitadelXds::LoadIsciXreference(const QString &filename) delete q; } else { - rda->config()->log("rdrepld",RDConfig::LogWarning,QString(). - sprintf("invalid date in line %d of \"%s\"", - linenum,(const char *)filename)); + syslog(LOG_WARNING,"invalid date in line %d of \"%s\"", + linenum,(const char *)filename.toUtf8()); } } else { - rda->config()->log("rdrepld",RDConfig::LogWarning,QString(). - sprintf("invalid FILENAME field \"%s\" in line %d of \"%s\"", - (const char *)fields[8],linenum,(const char *)filename)); + syslog(LOG_WARNING, + "invalid FILENAME field \"%s\" in line %d of \"%s\"", + (const char *)fields[8].toUtf8(),linenum, + (const char *)filename.toUtf8()); } } else { - rda->config()->log("rdrepld",RDConfig::LogWarning,QString(). - sprintf("invalid date in line %d of \"%s\"", - linenum,(const char *)filename)); + syslog(LOG_WARNING,"invalid date in line %d of \"%s\"", + linenum,(const char *)filename.toUtf8()); } } else { - rda->config()->log("rdrepld",RDConfig::LogDebug,QString(). - sprintf("missing/invalid cart number in line %d of \"%s\"", - linenum,(const char *)filename)); + syslog(LOG_DEBUG,"missing/invalid cart number in line %d of \"%s\"", + linenum,(const char *)filename.toUtf8()); } } else { - rda->config()->log("rdrepld",RDConfig::LogWarning,QString(). - sprintf("line %d malformed in \"%s\"", - linenum,(const char *)filename)); + syslog(LOG_WARNING,"line %d malformed in \"%s\"", + linenum,(const char *)filename.toUtf8()); } linenum++; } @@ -207,9 +203,8 @@ bool CitadelXds::LoadIsciXreference(const QString &filename) // // Clean Up // - rda->config()->log("rdrepld",RDConfig::LogInfo, - QString().sprintf("loaded ISCI cross reference file \"%s\"", - (const char *)rda->system()->isciXreferencePath())); + syslog(LOG_INFO,"loaded ISCI cross reference file \"%s\"", + (const char *)rda->system()->isciXreferencePath().toUtf8()); fclose(f); return true; } @@ -353,10 +348,9 @@ bool CitadelXds::PostCut(const QString &cutname,const QString &filename) break; default: - rda->config()->log("rdrepld",RDConfig::LogErr, - QString().sprintf("CitadelXds: audio conversion failed: %s, cutname: %s", - (const char *)RDAudioConvert::errorText(conv_err), - (const char *)cutname)); + syslog(LOG_WARNING,"CitadelXds: audio conversion failed: %s, cutname: %s", + (const char *)RDAudioConvert::errorText(conv_err).toUtf8(), + (const char *)cutname.toUtf8()); delete conv; delete settings; return false; @@ -377,20 +371,18 @@ bool CitadelXds::PostCut(const QString &cutname,const QString &filename) break; default: - rda->config()->log("rdrepld",RDConfig::LogErr, - QString().sprintf("CitadelXds: audio upload failed: %s", - (const char *)RDUpload::errorText(upload_err))); + syslog(LOG_WARNING,"CitadelXds: audio upload failed: %s", + (const char *)RDUpload::errorText(upload_err).toUtf8()); unlink(tempfile); delete upload; return false; } unlink(tempfile); delete upload; - rda->config()->log("rdrepld",RDConfig::LogInfo, - QString().sprintf("CitadelXds: uploaded cut %s to %s/%s", - (const char *)cutname, - (const char *)config()->url(), - (const char *)filename)); + syslog(LOG_INFO,"CitadelXds: uploaded cut %s to %s/%s", + (const char *)cutname.toUtf8(), + (const char *)config()->url().toUtf8(), + (const char *)filename.toUtf8()); return true; } @@ -431,17 +423,15 @@ void CitadelXds::PurgeCuts() q->value(0).toInt()); q2=new RDSqlQuery(sql); delete q2; - rda->config()->log("rdrepld",RDConfig::LogInfo, - QString().sprintf("purged \"%s\" for replicator \"%s\"", - (const char *)url.toString(), - (const char *)config()->name())); + syslog(LOG_INFO,"purged \"%s\" for replicator \"%s\"", + (const char *)url.toString().toUtf8(), + (const char *)config()->name().toUtf8()); } else { - rda->config()->log("rdrepld",RDConfig::LogErr, - QString().sprintf("unable to delete \"%s\" for replicator \"%s\" [%s]", - (const char *)url.toString(), - (const char *)config()->name(), - (const char *)RDDelete::errorText(conv_err))); + syslog(LOG_WARNING,"unable to delete \"%s\" for replicator \"%s\" [%s]", + (const char *)url.toString().toUtf8(), + (const char *)config()->name().toUtf8(), + (const char *)RDDelete::errorText(conv_err).toUtf8()); } delete conv; } diff --git a/rdrepld/rdrepld.cpp b/rdrepld/rdrepld.cpp index 04d6392b..ca84152e 100644 --- a/rdrepld/rdrepld.cpp +++ b/rdrepld/rdrepld.cpp @@ -19,6 +19,7 @@ // #include +#include #include #include @@ -118,7 +119,7 @@ MainObject::MainObject(QObject *parent) connect(repl_loop_timer,SIGNAL(timeout()),this,SLOT(mainLoop())); repl_loop_timer->start(RD_RDREPL_SCAN_INTERVAL,true); - rda->config()->log("rdrepld",RDConfig::LogNotice,"started"); + syslog(LOG_INFO,"started"); } @@ -131,12 +132,6 @@ void MainObject::mainLoop() } -void MainObject::log(RDConfig::LogPriority prio,const QString &msg) -{ - rda->config()->log("rdrepld",prio,msg); -} - - void MainObject::ProcessCarts() { QString sql; diff --git a/rdrepld/rdrepld.h b/rdrepld/rdrepld.h index fdb31810..e2377ee2 100644 --- a/rdrepld/rdrepld.h +++ b/rdrepld/rdrepld.h @@ -42,7 +42,6 @@ class MainObject : public QObject private slots: void mainLoop(); - void log(RDConfig::LogPriority prio,const QString &line); private: void ProcessCarts(); diff --git a/rdservice/maint_routines.cpp b/rdservice/maint_routines.cpp index a9529367..709b8d4b 100644 --- a/rdservice/maint_routines.cpp +++ b/rdservice/maint_routines.cpp @@ -19,6 +19,7 @@ // #include +#include #include #include @@ -87,7 +88,7 @@ void MainObject::RunSystemMaintRoutine() RunEphemeralProcess(RDSERVICE_PURGECASTS_ID, QString(RD_PREFIX)+"/bin/rdpurgecasts",args); - rda->log(RDConfig::LogInfo,"ran system-wide maintenance routines"); + syslog(LOG_INFO,"ran system-wide maintenance routines"); } @@ -96,7 +97,7 @@ void MainObject::RunLocalMaintRoutine() RunEphemeralProcess(RDSERVICE_LOCALMAINT_ID, QString(RD_PREFIX)+"/bin/rdmaint",QStringList()); - rda->log(RDConfig::LogInfo,"ran local maintenance routines"); + syslog(LOG_INFO,"ran local maintenance routines"); } @@ -118,7 +119,7 @@ void MainObject::RunEphemeralProcess(int id,const QString &program, if(!svc_processes[id]->process()->waitForStarted()) { QString err_msg=tr("unable to start")+"\""+program+"\": "+ svc_processes[id]->errorText(); - rda->log(RDConfig::LogWarning,err_msg); + syslog(LOG_WARNING,"%s",(const char *)err_msg.toUtf8()); delete svc_processes[id]; svc_processes.remove(id); } diff --git a/rdservice/rdservice.cpp b/rdservice/rdservice.cpp index f1570fe0..d7e31711 100644 --- a/rdservice/rdservice.cpp +++ b/rdservice/rdservice.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include #include @@ -128,7 +129,7 @@ MainObject::MainObject(QObject *parent) svc_maint_timer->start(interval); } else { - rda->log(RDConfig::LogInfo,"maintenance checks disabled on this host!"); + syslog(LOG_INFO,"maintenance checks disabled on this host"); } if(!RDWritePid(RD_PID_DIR,"rdservice.pid",getuid())) { diff --git a/rdservice/startup.cpp b/rdservice/startup.cpp index 4a8b644b..bdefd020 100644 --- a/rdservice/startup.cpp +++ b/rdservice/startup.cpp @@ -19,6 +19,7 @@ // #include +#include #include #include diff --git a/rdvairplayd/local_macros.cpp b/rdvairplayd/local_macros.cpp index e4cf03c5..e3bdc87a 100644 --- a/rdvairplayd/local_macros.cpp +++ b/rdvairplayd/local_macros.cpp @@ -19,6 +19,7 @@ // #include +#include #include #include @@ -60,8 +61,7 @@ void MainObject::rmlReceivedData(RDMacro *rml) } if(rml->argQuantity()==1) { // Clear Log air_logs[index]->clear(); - rda->log(RDConfig::LogInfo,QString().sprintf("unloaded log machine %d", - rml->arg(0).toInt())); + syslog(LOG_INFO,"unloaded log machine %d",rml->arg(0).toInt()); } else { // Load Log logname=rml->arg(1); @@ -74,21 +74,20 @@ void MainObject::rmlReceivedData(RDMacro *rml) } air_logs[index]->setLogName(logname); air_logs[index]->load(); - rda->log(RDConfig::LogInfo,"loaded log \""+logname+"\" into log machine"+ - QString().sprintf(" %d",rml->arg(0).toInt())); + syslog(LOG_INFO,"loaded log \"%s\" into log machine %d", + (const char *)logname.toUtf8(), + rml->arg(0).toInt()); } if(rml->argQuantity()==3) { // Start Log if(rml->arg(2).toInt()size()) { if(rml->arg(2).toInt()>=0) { // Unconditional start if(air_logs[index]->play(rml->arg(2).toInt(),RDLogLine::StartMacro)) { - rda->log(RDConfig::LogInfo,QString(). - sprintf("started log machine %d at line %d", - rml->arg(0).toInt(),rml->arg(2).toInt())); + syslog(LOG_INFO,"started log machine %d at line %d", + rml->arg(0).toInt(),rml->arg(2).toInt()); } else { - rda->log(RDConfig::LogWarning,QString(). - sprintf("1 log machine %d failed to start", - rml->arg(0).toInt())); + syslog(LOG_WARNING,"log machine %d failed to start", + rml->arg(0).toInt()); if(rml->echoRequested()) { rml->acknowledge(false); rda->ripc()->sendRml(rml); @@ -112,14 +111,12 @@ void MainObject::rmlReceivedData(RDMacro *rml) case RDLogLine::Play: case RDLogLine::Segue: if(air_logs[index]->play(0,RDLogLine::StartMacro)) { - rda->log(RDConfig::LogInfo,QString(). - sprintf("started log machine %d at line 0", - rml->arg(0).toInt())); + syslog(LOG_INFO,"started log machine %d at line 0", + rml->arg(0).toInt()); } else { - rda->log(RDConfig::LogWarning,QString(). - sprintf("2 log machine %d failed to start", - rml->arg(0).toInt())); + syslog(LOG_WARNING,"log machine %d failed to start", + rml->arg(0).toInt()); if(rml->echoRequested()) { rml->acknowledge(false); rda->ripc()->sendRml(rml); @@ -166,8 +163,8 @@ void MainObject::rmlReceivedData(RDMacro *rml) return; } air_logs[index]->append(logname); - rda->log(RDConfig::LogInfo,QString("appended log \"")+logname+ - QString().sprintf("\" into log machine %d",rml->arg(0).toInt())); + syslog(LOG_INFO,"appended log \"%s\" into log machine %d", + (const char *)logname.toUtf8(),rml->arg(0).toInt()); break; case RDMacro::MN: // Make Next @@ -194,9 +191,8 @@ void MainObject::rmlReceivedData(RDMacro *rml) return; } air_logs[index]->makeNext(rml->arg(1).toInt()); - rda->log(RDConfig::LogInfo, - QString().sprintf("made line %d next in log machine %d", - rml->arg(1).toInt(),rml->arg(0).toInt())); + syslog(LOG_INFO,"made line %d next in log machine %d", + rml->arg(1).toInt(),rml->arg(0).toInt()); if(rml->echoRequested()) { rml->acknowledge(true); rda->ripc()->sendRml(rml); @@ -228,14 +224,12 @@ void MainObject::rmlReceivedData(RDMacro *rml) } if(!air_logs[index]->running()) { if(air_logs[index]->play(rml->arg(1).toInt(),RDLogLine::StartMacro)) { - rda->log(RDConfig::LogInfo,QString(). - sprintf("started log machine %d at line %d", - rml->arg(0).toInt(),rml->arg(2).toInt())); + syslog(LOG_INFO,"started log machine %d at line %d", + rml->arg(0).toInt(),rml->arg(2).toInt()); } else { - rda->log(RDConfig::LogWarning,QString(). - sprintf("3 log machine %d failed to start", - rml->arg(0).toInt())); + syslog(LOG_WARNING,"log machine %d failed to start", + rml->arg(0).toInt()); if(rml->echoRequested()) { rml->acknowledge(false); rda->ripc()->sendRml(rml); @@ -243,9 +237,8 @@ void MainObject::rmlReceivedData(RDMacro *rml) return; } } - rda->log(RDConfig::LogInfo,QString(). - sprintf("started log machine %d at line %d", - rml->arg(0).toInt(),rml->arg(1).toInt())); + syslog(LOG_INFO,"started log machine %d at line %d", + rml->arg(0).toInt(),rml->arg(1).toInt()); if(rml->echoRequested()) { rml->acknowledge(true); rda->ripc()->sendRml(rml); @@ -345,9 +338,8 @@ void MainObject::rmlReceivedData(RDMacro *rml) if(rml->argQuantity()==1) { if(!air_logs[index]-> play(air_logs[index]->nextLine(),RDLogLine::StartMacro)) { - rda->log(RDConfig::LogWarning,QString(). - sprintf("4 log machine %d failed to start", - rml->arg(0).toInt())); + syslog(LOG_WARNING,"log machine %d failed to start", + rml->arg(0).toInt()); if(rml->echoRequested()) { rml->acknowledge(false); rda->ripc()->sendRml(rml); @@ -360,9 +352,8 @@ void MainObject::rmlReceivedData(RDMacro *rml) if(!air_logs[index]->play(air_logs[index]->nextLine(), RDLogLine::StartMacro, rml->arg(1).toInt()-1)) { - rda->log(RDConfig::LogWarning,QString(). - sprintf("5 log machine %d failed to start", - rml->arg(0).toInt())); + syslog(LOG_WARNING,"log machine %d failed to start", + rml->arg(0).toInt()); if(rml->echoRequested()) { rml->acknowledge(false); rda->ripc()->sendRml(rml); @@ -374,9 +365,8 @@ void MainObject::rmlReceivedData(RDMacro *rml) if(!air_logs[index]-> play(air_logs[index]->nextLine(),RDLogLine::StartMacro, rml->arg(1).toInt()-1,rml->arg(2).toInt())) { - rda->log(RDConfig::LogWarning,QString(). - sprintf("6 log machine %d failed to start", - rml->arg(0).toInt())); + syslog(LOG_WARNING,"log machine %d failed to start", + rml->arg(0).toInt()); if(rml->echoRequested()) { rml->acknowledge(false); rda->ripc()->sendRml(rml); @@ -385,9 +375,8 @@ void MainObject::rmlReceivedData(RDMacro *rml) } } } - rda->log(RDConfig::LogInfo,QString(). - sprintf("started log machine %d at line %d", - rml->arg(0).toInt(),next_line)); + syslog(LOG_INFO,"started log machine %d at line %d", + rml->arg(0).toInt(),next_line); } if(rml->echoRequested()) { rml->acknowledge(true); @@ -419,7 +408,7 @@ void MainObject::rmlReceivedData(RDMacro *rml) for(int i=0;istop(true,0,fade); } - rda->log(RDConfig::LogInfo,"stopped all logs"); + syslog(LOG_INFO,"stopped all logs"); } else { if(rml->argQuantity()==3) { @@ -428,8 +417,7 @@ void MainObject::rmlReceivedData(RDMacro *rml) else { air_logs[index]->stop(true,0,fade); } - rda->log(RDConfig::LogInfo,QString().sprintf("stopped log machine %d", - rml->arg(0).toInt())); + syslog(LOG_INFO,"stopped log machine %d",rml->arg(0).toInt()); break; } if(rml->echoRequested()) { @@ -458,9 +446,8 @@ void MainObject::rmlReceivedData(RDMacro *rml) for(int i=0;iduckVolume(rml->arg(1).toInt()*100,rml->arg(2).toInt()); } - rda->log(RDConfig::LogInfo,QString(). - sprintf("set volumne of all log machines to %d dBFS", - rml->arg(1).toInt())); + syslog(LOG_INFO,"set volumne of all log machines to %d dBFS", + rml->arg(1).toInt()); } else { if(rml->argQuantity()==3) { @@ -471,10 +458,9 @@ void MainObject::rmlReceivedData(RDMacro *rml) air_logs[index]->duckVolume(rml->arg(1).toInt()*100, rml->arg(2).toInt(),rml->arg(3).toInt()); } - rda->log(RDConfig::LogInfo,QString(). - sprintf("set volumne of log machine %d to %d dBFS", - rml->arg(0).toInt(), - rml->arg(1).toInt())); + syslog(LOG_INFO,"set volumne of log machine %d to %d dBFS", + rml->arg(0).toInt(), + rml->arg(1).toInt()); break; } if(rml->echoRequested()) { @@ -503,18 +489,16 @@ void MainObject::rmlReceivedData(RDMacro *rml) if(air_logs[index]->nextLine()>=0) { air_logs[index]->insert(air_logs[index]->nextLine(), rml->arg(1).toUInt(),RDLogLine::Play); - rda->log(RDConfig::LogInfo,QString(). - sprintf("inserted cart %06u at line %d on log machine %d", - rml->arg(1).toUInt(),next_line,rml->arg(0).toInt())); + syslog(LOG_INFO,"inserted cart %06u at line %d on log machine %d", + rml->arg(1).toUInt(),next_line,rml->arg(0).toInt()); } else { air_logs[index]->insert(air_logs[index]->size(), rml->arg(1).toUInt(),RDLogLine::Play); air_logs[index]->makeNext(air_logs[index]->size()-1); - rda->log(RDConfig::LogInfo,QString(). - sprintf("inserted cart %06u at line %d on log machine %d", - rml->arg(1).toUInt(),air_logs[index]->size()-1, - rml->arg(0).toInt())); + syslog(LOG_INFO,"inserted cart %06u at line %d on log machine %d", + rml->arg(1).toUInt(),air_logs[index]->size()-1, + rml->arg(0).toInt()); } if(rml->echoRequested()) { rml->acknowledge(true); @@ -545,8 +529,7 @@ void MainObject::rmlReceivedData(RDMacro *rml) return; } else { - rda->log(RDConfig::LogInfo,QString().sprintf("refreshed log machine %d", - rml->arg(0).toInt())); + syslog(LOG_INFO,"refreshed log machine %d",rml->arg(0).toInt()); } if(rml->echoRequested()) { rml->acknowledge(true); @@ -586,15 +569,13 @@ void MainObject::rmlReceivedData(RDMacro *rml) } if(rml->arg(0).lower()=="now") { air_logs[index]->setNowCart(rml->arg(2).toUInt()); - rda->log(RDConfig::LogInfo,QString(). - sprintf("set default \"now\" cart to %06u on log machine %d", - rml->arg(2).toUInt(),rml->arg(1).toInt())); + syslog(LOG_INFO,"set default \"now\" cart to %06u on log machine %d", + rml->arg(2).toUInt(),rml->arg(1).toInt()); } else { air_logs[index]->setNextCart(rml->arg(2).toUInt()); - rda->log(RDConfig::LogInfo,QString(). - sprintf("set default \"next\" cart to %06u on log machine %d", - rml->arg(2).toUInt(),rml->arg(1).toInt())); + syslog(LOG_INFO,"set default \"next\" cart to %06u on log machine %d", + rml->arg(2).toUInt(),rml->arg(1).toInt()); } if(rml->echoRequested()) { rml->acknowledge(true); diff --git a/rdvairplayd/rdvairplayd.cpp b/rdvairplayd/rdvairplayd.cpp index bfefba1e..b186b458 100644 --- a/rdvairplayd/rdvairplayd.cpp +++ b/rdvairplayd/rdvairplayd.cpp @@ -22,6 +22,7 @@ #include #include #include +#include #include #include @@ -237,8 +238,8 @@ void MainObject::ripcConnectedData(bool state) rda->ripc()->sendRml(&rml); } else { - rda->log(RDConfig::LogWarning,QString().sprintf("vlog %d: ",mach+1)+ - "log \""+air_start_lognames[i]+"\" doesn't exist"); + syslog(LOG_WARNING,"vlog %d: log \"%s\" doesn't exist",mach+1, + (const char *)air_start_lognames[i].toUtf8()); } delete q; } @@ -286,9 +287,9 @@ void MainObject::logReloadedData(int log) } } else { - rda->log(RDConfig::LogWarning,QString().sprintf("vlog %d: ",mach+1)+ - QString().sprintf("line %d doesn't exist ",air_start_lines[log])+ - "in log \""+air_start_lognames[log]+"\""); + syslog(LOG_WARNING,"vlog %d: line %d doesn't exist in log \"%s\"",mach+1, + air_start_lines[log], + (const char *)air_start_lognames[log].toUtf8()); } air_start_lognames[log]=""; } @@ -301,7 +302,7 @@ void MainObject::exitData() delete air_logs[i]; } rda->airplayConf()->setVirtualExitCode(RDAirPlayConf::ExitClean); - rda->log(RDConfig::LogInfo,"exiting"); + syslog(LOG_INFO,"exiting"); exit(0); } } @@ -310,27 +311,24 @@ void MainObject::exitData() void MainObject::SetAutoMode(int index) { air_logs[index]->setOpMode(RDAirPlayConf::Auto); - rda->log(RDConfig::LogInfo, - QString().sprintf("log machine %d mode set to AUTOMATIC", - index+RD_RDVAIRPLAY_LOG_BASE+1)); + syslog(LOG_INFO,"log machine %d mode set to AUTOMATIC", + index+RD_RDVAIRPLAY_LOG_BASE+1); } void MainObject::SetLiveAssistMode(int index) { air_logs[index]->setOpMode(RDAirPlayConf::LiveAssist); - rda->log(RDConfig::LogInfo, - QString().sprintf("log machine %d mode set to LIVE ASSIST", - index+RD_RDVAIRPLAY_LOG_BASE+1)); + syslog(LOG_INFO,"log machine %d mode set to LIVE ASSIST", + index+RD_RDVAIRPLAY_LOG_BASE+1); } void MainObject::SetManualMode(int index) { air_logs[index]->setOpMode(RDAirPlayConf::Manual); - rda->log(RDConfig::LogInfo, - QString().sprintf("log machine %d mode set to MANUAL", - index+RD_RDVAIRPLAY_LOG_BASE+1)); + syslog(LOG_INFO,"log machine %d mode set to MANUAL", + index+RD_RDVAIRPLAY_LOG_BASE+1); } diff --git a/ripcd/btadms4422.cpp b/ripcd/btadms4422.cpp index 108a5b78..82cf2b92 100644 --- a/ripcd/btadms4422.cpp +++ b/ripcd/btadms4422.cpp @@ -19,6 +19,7 @@ // #include +#include #include @@ -64,8 +65,8 @@ BtAdms4422::BtAdms4422(RDMatrix *matrix,QObject *parent) writeBlock(QString().sprintf("*%uUM0\r\n",BTADMS4422_UNIT_ID),7); } else { - rda->config()->log("ripcd",RDConfig::LogWarning, - "failed to open port \""+tty->port()+"\""); + syslog(LOG_WARNING,"failed to open port \"%s\"", + (const char *)tty->port().toUtf8()); } } delete tty; diff --git a/ripcd/btgpi16.cpp b/ripcd/btgpi16.cpp index ed0bc661..90a6241c 100644 --- a/ripcd/btgpi16.cpp +++ b/ripcd/btgpi16.cpp @@ -19,6 +19,7 @@ // #include +#include #include @@ -56,7 +57,8 @@ BtGpi16::BtGpi16(RDMatrix *matrix,QObject *parent) bt_device->setWordLength(tty->dataBits()); bt_device->setParity(tty->parity()); if(!bt_device->open(QIODevice::Unbuffered|QIODevice::ReadWrite)) { - LogLine(RDConfig::LogWarning,"unable to open serial device \""+tty->port()+"\"."); + syslog(LOG_WARNING,"unable to open serial device \"%s\"", + (const char *)tty->port().toUtf8()); } } delete tty; diff --git a/ripcd/btsentinel4web.cpp b/ripcd/btsentinel4web.cpp index 8a88b569..f8faff3a 100644 --- a/ripcd/btsentinel4web.cpp +++ b/ripcd/btsentinel4web.cpp @@ -19,6 +19,7 @@ // #include +#include #include #include @@ -133,8 +134,8 @@ void BtSentinel4Web::processCommand(RDMacro *cmd) void BtSentinel4Web::connectedData() { bt_socket->writeBlock("*0U",3); - rda->config()->log("ripcd",RDConfig::LogInfo,"connected to BT Sentinel4Web device at "+ - bt_socket->peerAddress().toString()); + syslog(LOG_INFO,"connected to BT Sentinel4Web device at %s", + (const char *)bt_socket->peerAddress().toString().toUtf8()); } @@ -157,8 +158,8 @@ void BtSentinel4Web::readyReadData() void BtSentinel4Web::watchdogData() { - rda->config()->log("ripcd",RDConfig::LogWarning,"lost connection to BT Sentinel4Web device at "+ - bt_socket->peerAddress().toString()); + syslog(LOG_WARNING,"lost connection to BT Sentinel4Web device at %s", + (const char *)bt_socket->peerAddress().toString().toUtf8()); bt_watchdog_reset_timer->start(BTSENTINEL4WEB_WATCHDOG_INTERVAL,true); } diff --git a/ripcd/globals.h b/ripcd/globals.h index 47f3c8f1..b412e7de 100644 --- a/ripcd/globals.h +++ b/ripcd/globals.h @@ -30,7 +30,6 @@ // Global Objects // extern QString ripcd_active_locks[MAX_MATRICES]; -extern void LogLine(RDConfig::LogPriority prio,const QString &line); #endif // GLOBALS_H diff --git a/ripcd/harlond.cpp b/ripcd/harlond.cpp index 1b0c85d5..c67b3792 100644 --- a/ripcd/harlond.cpp +++ b/ripcd/harlond.cpp @@ -2,7 +2,7 @@ // // A Rivendell switcher driver for the Harlond Virtual Mixer // -// (C) Copyright 2002-2012,2016 Fred Gleason +// (C) Copyright 2002-2019 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -18,6 +18,8 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // +#include + #include #include "globals.h" @@ -201,10 +203,10 @@ void Harlond::socketConnectedData() void Harlond::socketDisconnectedData() { bt_watchdog_timer->start(HARLOND_RECONNECT_INTERVAL,true); - LogLine(RDConfig::LogWarning,tr("connection to harlond device at ")+ - bt_ip_address.toString()+ - QString().sprintf(":%d ",bt_tcp_port)+ - tr("closed unexpectedly, attempting reconnect")); + syslog(LOG_WARNING, + "connection to harlond device at %s:%d closed, attempting reconnect", + (const char *)bt_ip_address.toString().toUtf8(), + bt_tcp_port); if(bt_stop_cart>0) { executeMacroCart(bt_stop_cart); } @@ -234,16 +236,18 @@ void Harlond::socketErrorData(int err) bt_watchdog_timer->start(HARLOND_RECONNECT_INTERVAL,true); switch(err) { case Q3Socket::ErrConnectionRefused: - LogLine(RDConfig::LogWarning,tr("connection to harlond device at ")+ - bt_ip_address.toString()+QString().sprintf(":%d ",bt_tcp_port)+ - tr("refused, attempting reconnect")); + syslog(LOG_WARNING, + "connection to harlond device at %s:%d refused, attempting reconnect", + (const char *)bt_ip_address.toString().toUtf8(), + bt_tcp_port); break; default: - LogLine(RDConfig::LogWarning,tr("received network error")+ - QString().sprintf(" %d ",err)+tr("from harlond device at ")+ - bt_ip_address.toString()+QString().sprintf(":%d ",bt_tcp_port)+", "+ - tr("attempting reconnect")); + syslog(LOG_WARNING, + "received network error %d from harlond device at %s:%d, attempting reconnect", + err, + (const char *)bt_ip_address.toString().toUtf8(), + bt_tcp_port); break; } } @@ -265,16 +269,18 @@ void Harlond::ProcessResponse(const QString &str) if(cmds[0]=="PW") { if(cmds.size()==2) { if(cmds[1]=="+") { - LogLine(RDConfig::LogInfo,tr("connection to harlond device at ")+ - bt_ip_address.toString()+QString().sprintf(":%d ",bt_tcp_port)+ - tr("established")); + syslog(LOG_INFO, + "connection to harlond device at %s:%d established", + (const char *)bt_ip_address.toString().toUtf8(), + bt_tcp_port); bt_socket->writeBlock("SS!",3); return; } } - LogLine(RDConfig::LogInfo,tr("connection to harlond device at ")+ - bt_ip_address.toString()+QString().sprintf(":%d ",bt_tcp_port)+ - tr("refused, invalid password")); + syslog(LOG_WARNING, + "connection to harlond device at %s:%d refused, invalid password", + (const char *)bt_ip_address.toString().toUtf8(), + bt_tcp_port); } if(cmds[0]=="ON") { @@ -375,7 +381,7 @@ bool Harlond::TakeCrosspoint(int input,int output) for(int i=1;i +// (C) Copyright 2002-2019 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -19,6 +19,7 @@ // #include +#include #include #include @@ -167,9 +168,9 @@ void LiveWireLwrpAudio::processCommand(RDMacro *cmd) void LiveWireLwrpAudio::nodeConnectedData(unsigned id) { - LogLine(RDConfig::LogInfo,QString(). - sprintf("connection established to LiveWire node at \"%s\"", - (const char *)livewire_nodes[id]->hostname())); + syslog(LOG_INFO, + "connection established to LiveWire node at \"%s\"", + (const char *)livewire_nodes[id]->hostname().toUtf8()); } @@ -232,5 +233,5 @@ void LiveWireLwrpAudio::destinationChangedData(unsigned id,RDLiveWireDestination void LiveWireLwrpAudio::watchdogStateChangedData(unsigned id,const QString &msg) { - LogLine(RDConfig::LogNotice,msg); + syslog(LOG_WARNING,msg); } diff --git a/ripcd/local_audio.cpp b/ripcd/local_audio.cpp index 5376a52e..e551e8af 100644 --- a/ripcd/local_audio.cpp +++ b/ripcd/local_audio.cpp @@ -2,7 +2,7 @@ // // A Rivendell switcher driver for local audio cards. // -// (C) Copyright 2002-2018 Fred Gleason +// (C) Copyright 2002-2019 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -19,6 +19,7 @@ // #include +#include #include #include diff --git a/ripcd/local_macros.cpp b/ripcd/local_macros.cpp index e833cccf..ac699e9d 100644 --- a/ripcd/local_macros.cpp +++ b/ripcd/local_macros.cpp @@ -2,7 +2,7 @@ // // Local RML Macros for the Rivendell Interprocess Communication Daemon // -// (C) Copyright 2002-2018 Fred Gleason +// (C) Copyright 2002-2019 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -20,6 +20,7 @@ #include #include +#include #include #include @@ -36,10 +37,10 @@ void MainObject::gpiChangedData(int matrix,int line,bool state) { if(state) { - LogLine(RDConfig::LogInfo,QString().sprintf("GPI %d:%d ON",matrix,line+1)); + syslog(LOG_DEBUG,"GPI %d:%d ON",matrix,line+1); } else { - LogLine(RDConfig::LogInfo,QString().sprintf("GPI %d:%d OFF",matrix,line+1)); + syslog(LOG_DEBUG,"GPI %d:%d OFF",matrix,line+1); } ripcd_gpi_state[matrix][line]=state; BroadcastCommand(QString().sprintf("GI %d %d %d %d!",matrix,line,state, @@ -57,10 +58,10 @@ void MainObject::gpiChangedData(int matrix,int line,bool state) void MainObject::gpoChangedData(int matrix,int line,bool state) { if(state) { - LogLine(RDConfig::LogInfo,QString().sprintf("GPO %d:%d ON",matrix,line+1)); + syslog(LOG_DEBUG,"GPO %d:%d ON",matrix,line+1); } else { - LogLine(RDConfig::LogInfo,QString().sprintf("GPO %d:%d OFF",matrix,line+1)); + syslog(LOG_DEBUG,"GPO %d:%d OFF",matrix,line+1); } ripcd_gpo_state[matrix][line]=state; BroadcastCommand(QString().sprintf("GO %d %d %d %d!",matrix,line,state, @@ -174,9 +175,9 @@ void MainObject::LoadLocalMacros() q=new RDSqlQuery(sql); while(q->next()) { if(!LoadSwitchDriver(q->value(0).toInt())) { - LogLine(RDConfig::LogErr,QString(). - sprintf("attempted to load unknown switcher driver for matrix %d", - q->value(0).toInt())); + syslog(LOG_WARNING, + "attempted to load unknown switcher driver for matrix %d", + q->value(0).toInt()); } } delete q; @@ -242,8 +243,9 @@ void MainObject::RunLocalMacros(RDMacro *rml_in) RDMatrix::GpioType gpio_type; QByteArray data; - rda->log(RDConfig::LogInfo,QString("received rml: \'")+rml_in->toString()+ - "\' from "+rml_in->address().toString()); + syslog(LOG_DEBUG,"received rml: \"%s\" from %s", + (const char *)rml_in->toString().toUtf8(), + (const char *)rml_in->address().toString().toUtf8()); RDMacro *rml=new RDMacro(); *rml=ForwardConvert(*rml_in); @@ -316,8 +318,6 @@ void MainObject::RunLocalMacros(RDMacro *rml_in) BroadcastCommand(QString().sprintf("GC %d %d %d %d!",matrix_num,gpi, ripcd_gpi_macro[matrix_num][gpi][0], ripcd_gpi_macro[matrix_num][gpi][1])); - LogLine(RDConfig::LogWarning,QString().sprintf("cart: %u", - ripcd_gpi_macro[matrix_num][gpi][rml->arg(3).toInt()])); break; case RDMatrix::GpioOutput: @@ -485,18 +485,16 @@ void MainObject::RunLocalMacros(RDMacro *rml_in) if(fork()==0) { if(getuid()==0) { if(setegid(rda->config()->gid())<0) { - LogLine(RDConfig::LogWarning,QString(). - sprintf("unable to set group id %d for RDPopup", - rda->config()->gid())); + syslog(LOG_WARNING,"unable to set group id %d for RDPopup", + rda->config()->gid()); if(rml->echoRequested()) { rml->acknowledge(false); sendRml(rml); } } if(seteuid(rda->config()->uid())<0) { - LogLine(RDConfig::LogWarning,QString(). - sprintf("unable to set user id %d for RDPopup", - rda->config()->uid())); + syslog(LOG_WARNING,"unable to set user id %d for RDPopup", + rda->config()->uid()); if(rml->echoRequested()) { rml->acknowledge(false); sendRml(rml); @@ -508,7 +506,7 @@ void MainObject::RunLocalMacros(RDMacro *rml_in) (const char *)rml->arg(0), (const char *)rml->arg(1), (const char *)RDEscapeString(rml->rollupArgs(2))))<0) { - LogLine(RDConfig::LogWarning,"RDPopup returned an error"); + syslog(LOG_WARNING,"RDPopup returned an error"); } exit(0); } @@ -805,9 +803,9 @@ void MainObject::RunLocalMacros(RDMacro *rml_in) // Startup the new // if(!LoadSwitchDriver(matrix_num)) { - LogLine(RDConfig::LogErr,QString(). - sprintf("attempted to load unknown switcher driver for matrix %d", - matrix_num)); + syslog(LOG_WARNING, + "attempted to load unknown switcher driver for matrix %d", + matrix_num); } break; @@ -822,11 +820,11 @@ void MainObject::RunLocalMacros(RDMacro *rml_in) } if((rml->arg(0).toInt()==0)&&ripc_onair_flag) { BroadcastCommand("TA 0!"); - LogLine(RDConfig::LogInfo,"onair flag OFF"); + syslog(LOG_DEBUG,"onair flag OFF"); } if((rml->arg(0).toInt()==1)&&(!ripc_onair_flag)) { BroadcastCommand("TA 1!"); - LogLine(RDConfig::LogInfo,"onair flag ON"); + syslog(LOG_DEBUG,"onair flag ON"); } ripc_onair_flag=rml->arg(0).toInt(); if(rml->echoRequested()) { @@ -861,9 +859,8 @@ void MainObject::RunLocalMacros(RDMacro *rml_in) str+=(rml->arg(i)+" "); } str+=rml->arg(rml->argQuantity()-1); - LogLine(RDConfig::LogDebug,QString(). - sprintf("Sending \"%s\" to %s:%d",(const char *)str, - (const char *)addr.toString(),rml->arg(1).toInt())); + syslog(LOG_DEBUG,"sending \"%s\" to %s:%d",(const char *)str.toUtf8(), + (const char *)addr.toString().toUtf8(),rml->arg(1).toInt()); data=RDStringToData(str); ripcd_rml_send->writeDatagram(data,addr,(Q_UINT16)(rml->arg(1).toInt())); if(rml->echoRequested()) { diff --git a/ripcd/modemlines.cpp b/ripcd/modemlines.cpp index ac359cc5..65bdd7ab 100644 --- a/ripcd/modemlines.cpp +++ b/ripcd/modemlines.cpp @@ -2,7 +2,7 @@ // // A Rivendell switcher driver for using TTY modem lines for GPIO // -// (C) Copyright 2015-2018 Fred Gleason +// (C) Copyright 2015-2019 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -20,6 +20,7 @@ #include #include +#include #include #include #include @@ -58,7 +59,8 @@ ModemLines::ModemLines(RDMatrix *matrix,QObject *parent) // gpio_tty=new RDTty(rda->station()->name(),matrix->port(RDMatrix::Primary)); if((gpio_fd=open(gpio_tty->port(),O_RDONLY))<0) { - syslog(LOG_ERR,"unable to open tty \"%s\"",(const char *)gpio_tty->port()); + syslog(LOG_WARNING,"unable to open tty \"%s\"", + (const char *)gpio_tty->port()); return; } for(int i=0;i +// (C) Copyright 2002-2019 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -19,6 +19,7 @@ // #include +#include #include @@ -192,19 +193,18 @@ void Quartz1::ipConnect(int conn) void Quartz1::connectedData(int conn) { - LogLine(RDConfig::LogInfo,QString(). - sprintf("Connection to Quartz1 device at %s:%d established", - (const char *)sas_ipaddress[conn].toString(), - sas_ipport[conn])); + syslog(LOG_INFO,"connection to Quartz1 device at %s:%d established", + (const char *)sas_ipaddress[conn].toString().toUtf8(), + sas_ipport[conn]); } void Quartz1::connectionClosedData(int conn) { - LogLine(RDConfig::LogNotice,QString(). - sprintf("Connection to Quartz1 device at %s:%d closed unexpectedly, attempting reconnect", - (const char *)sas_ipaddress[conn].toString(), - sas_ipport[conn])); + syslog(LOG_WARNING, + "connection to Quartz1 device at %s:%d closed unexpectedly, attempting reconnect", + (const char *)sas_ipaddress[conn].toString().toUtf8(), + sas_ipport[conn]); sas_reconnect_timer[conn]->start(QUARTZ1_RECONNECT_INTERVAL,true); } @@ -213,25 +213,25 @@ void Quartz1::errorData(int conn,int err) { switch((Q3Socket::Error)err) { case Q3Socket::ErrConnectionRefused: - LogLine(RDConfig::LogNotice,QString().sprintf( - "Connection to Quartz1 device at %s:%d refused, attempting reconnect", - (const char *)sas_ipaddress[conn].toString(), - sas_ipport[conn])); + syslog(LOG_NOTICE, + "connection to Quartz1 device at %s:%d refused, attempting reconnect", + (const char *)sas_ipaddress[conn].toString().toUtf8(), + sas_ipport[conn]); sas_reconnect_timer[conn]->start(QUARTZ1_RECONNECT_INTERVAL,true); break; case Q3Socket::ErrHostNotFound: - LogLine(RDConfig::LogWarning,QString().sprintf( - "Error on connection to Quartz1 device at %s:%d: Host Not Found", - (const char *)sas_ipaddress[conn].toString(), - sas_ipport[conn])); + syslog(LOG_WARNING, + "error on connection to Quartz1 device at %s:%d: Host Not Found", + (const char *)sas_ipaddress[conn].toString().toUtf8(), + sas_ipport[conn]); break; case Q3Socket::ErrSocketRead: - LogLine(RDConfig::LogWarning,QString().sprintf( - "Error on connection to Quartz1 device at %s:%d: Socket Read Error", - (const char *)sas_ipaddress[conn].toString(), - sas_ipport[conn])); + syslog(LOG_WARNING, + "error on connection to Quartz1 device at %s:%d: Socket Read Error", + (const char *)sas_ipaddress[conn].toString().toUtf8(), + sas_ipport[conn]); break; } } diff --git a/ripcd/ripcd.cpp b/ripcd/ripcd.cpp index 722a77e6..9f6240d7 100644 --- a/ripcd/ripcd.cpp +++ b/ripcd/ripcd.cpp @@ -18,6 +18,8 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // +#include + #include #include #include @@ -106,7 +108,7 @@ MainObject::MainObject(QObject *parent) connect(ripcd_kill_mapper,SIGNAL(mapped(int)),this,SLOT(killData(int))); server=new QTcpServer(this); if(!server->listen(QHostAddress::Any,RIPCD_TCP_PORT)) { - rda->log(RDConfig::LogErr,"unable to bind ripc port"); + syslog(LOG_ERR,"unable to bind ripc port"); exit(1); } connect(server,SIGNAL(newConnection()),this,SLOT(newConnectionData())); @@ -186,7 +188,7 @@ MainObject::MainObject(QObject *parent) ripcd_garbage_timer=new QTimer(this); connect(ripcd_garbage_timer,SIGNAL(timeout()),this,SLOT(garbageData())); - LogLine(RDConfig::LogInfo,"started"); + syslog(LOG_INFO,"started"); } @@ -196,11 +198,6 @@ MainObject::~MainObject() delete ripcd_db; } -void MainObject::log(RDConfig::LogPriority prio,const QString &msg) -{ - LogLine(prio,msg); -} - void MainObject::newConnectionData() { @@ -222,7 +219,7 @@ void MainObject::newConnectionData() ripcd_kill_mapper->setMapping(ripcd_conns[i]->socket(),i); connect(ripcd_conns[i]->socket(),SIGNAL(connectionClosed()), ripcd_kill_mapper,SLOT(map())); - rda->log(RDConfig::LogDebug,QString().sprintf("added new connection %d",i)); + syslog(LOG_DEBUG,"added new connection %d",i); } @@ -231,11 +228,9 @@ void MainObject::notificationReceivedData(const QString &msg, { RDNotification *notify=new RDNotification(); - syslog(LOG_NOTICE,"recv: %s\n",(const char *)msg.toUtf8()); - if(!notify->read(msg)) { - LogLine(RDConfig::LogWarning, - "Invalid notification received from "+addr.toString()); + syslog(LOG_DEBUG,"invalid notification received from %s", + (const char *)addr.toString().toUtf8()); delete notify; return; } @@ -323,8 +318,7 @@ void MainObject::killData(int conn_id) { ripcd_conns[conn_id]->close(); ripcd_garbage_timer->start(1,true); - rda->log(RDConfig::LogDebug,QString().sprintf("closed connection %d", - conn_id)); + syslog(LOG_DEBUG,"closed connection %d",conn_id); } @@ -343,7 +337,7 @@ void MainObject::exitTimerData() delete ripcd_switcher[i]; } } - LogLine(RDConfig::LogInfo,"ripcd exiting normally"); + syslog(LOG_INFO,"ripcd exiting normally"); exit(0); } } @@ -356,8 +350,7 @@ void MainObject::garbageData() if(ripcd_conns[i]->isClosing()) { delete ripcd_conns[i]; ripcd_conns[i]=NULL; - rda->log(RDConfig::LogDebug, - QString().sprintf("cleaned up connection %d",i)); + syslog(LOG_DEBUG,"cleaned up connection %d",i); } } } @@ -514,7 +507,7 @@ bool MainObject::DispatchCommand(RipcdConnection *conn) msg=msg.left(msg.length()-1); RDNotification *notify=new RDNotification(); if(!notify->read(msg)) { - LogLine(RDConfig::LogWarning,"invalid notification processed"); + syslog(LOG_DEBUG,"invalid notification processed"); delete notify; return true; } @@ -579,9 +572,8 @@ void MainObject::ReadRmlSocket(QUdpSocket *sock,RDMacro::Role role, } } else { - LogLine(RDConfig::LogDebug, - QString("rejected rml: \"")+QString(buffer)+ - "\": on-air flag not active"); + syslog(LOG_DEBUG, + "rejected rml: \"%s\": on-air flag not active",buffer); break; } } @@ -601,11 +593,10 @@ void MainObject::ReadRmlSocket(QUdpSocket *sock,RDMacro::Role role, } } else { - LogLine(RDConfig::LogWarning, - QString().sprintf("received malformed rml: \"%s\" from %s:%u", - buffer, - (const char *)sock->peerAddress().toString(), - sock->peerPort())); + syslog(LOG_DEBUG,"received malformed rml: \"%s\" from %s:%u", + buffer, + (const char *)sock->peerAddress().toString().toUtf8(), + sock->peerPort()); if(echo) { macro.setRole(RDMacro::Reply); macro.setCommand(RDMacro::NN); @@ -740,42 +731,6 @@ void MainObject::SendGpoCart(int ch,int matrix) } -void LogLine(RDConfig::LogPriority prio,const QString &line) -{ - FILE *logfile; - - rda->config()->log("ripcd",prio,line); - - if((!rda->config()) || rda->config()->ripcdLogname().isEmpty()) { - return; - } - - QDateTime current=QDateTime::currentDateTime(); - logfile=fopen(rda->config()->ripcdLogname(),"a"); - if(logfile==NULL) { - return; - } - chmod(rda->config()->ripcdLogname(),S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH); - fprintf(logfile,"%02d/%02d/%4d - %02d:%02d:%02d.%03d : %s\n", - current.date().month(), - current.date().day(), - current.date().year(), - current.time().hour(), - current.time().minute(), - current.time().second(), - current.time().msec(), - (const char *)line.utf8()); - fclose(logfile); -} - -/* This is an overloaded virtual function to tell a session manager not to restart this daemon. */ -void QApplication::saveState(QSessionManager &sm) { - sm.setRestartHint(QSessionManager::RestartNever); - LogLine(RDConfig::LogDebug,"ripcd saveState(), set restart hint to Never"); - return; -}; - - int main(int argc,char *argv[]) { QApplication a(argc,argv,false); diff --git a/ripcd/ripcd.h b/ripcd/ripcd.h index 515604fa..7373f493 100644 --- a/ripcd/ripcd.h +++ b/ripcd/ripcd.h @@ -64,7 +64,6 @@ class MainObject : public QObject private slots: void newConnectionData(); void notificationReceivedData(const QString &msg,const QHostAddress &addr); - void log(RDConfig::LogPriority prio,const QString &msg); void sendRml(RDMacro *rml); void rmlEchoData(); void rmlNoechoData(); diff --git a/ripcd/rossnkscp.cpp b/ripcd/rossnkscp.cpp index 2ac11cd6..a7803dfa 100644 --- a/ripcd/rossnkscp.cpp +++ b/ripcd/rossnkscp.cpp @@ -2,7 +2,7 @@ // // A Rivendell switcher driver for the Ross NK switchers via the SCP/A // -// (C) Copyright 2002-2018 Fred Gleason +// (C) Copyright 2002-2019 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -19,6 +19,7 @@ // #include +#include #include diff --git a/ripcd/sas16000.cpp b/ripcd/sas16000.cpp index 8e900f86..4003566e 100644 --- a/ripcd/sas16000.cpp +++ b/ripcd/sas16000.cpp @@ -2,7 +2,7 @@ // // A Rivendell switcher driver for the SAS USI Protocol (2 digit) // -// (C) Copyright 2002-2018 Fred Gleason +// (C) Copyright 2002-2019 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -19,6 +19,7 @@ // #include +#include #include #include @@ -116,7 +117,7 @@ void Sas16000::processCommand(RDMacro *cmd) void Sas16000::SendCommand(char *str) { - LogLine(RDConfig::LogDebug,QString().sprintf("sending USI cmd: %s",(const char *)PrettifyCommand(str))); + syslog(LOG_DEBUG,"sending USI cmd: %s",(const char *)PrettifyCommand(str)); sas_device->writeBlock(str,strlen(str)); } diff --git a/ripcd/sasusi.cpp b/ripcd/sasusi.cpp index cfc28e77..6a68b5c7 100644 --- a/ripcd/sasusi.cpp +++ b/ripcd/sasusi.cpp @@ -2,7 +2,7 @@ // // A Rivendell switcher driver for the SAS USI Protocol // -// (C) Copyright 2002-2018 Fred Gleason +// (C) Copyright 2002-2019 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -19,6 +19,7 @@ // #include +#include #include #include @@ -339,10 +340,10 @@ void SasUsi::ipConnect() void SasUsi::connectedData() { - LogLine(RDConfig::LogInfo,QString(). - sprintf("Connection to SasUsi device at %s:%d established", - (const char *)sas_ipaddress.toString(), - sas_ipport)); + syslog(LOG_INFO, + "connection to SasUsi device at %s:%d established", + (const char *)sas_ipaddress.toString().toUtf8(), + sas_ipport); if(sas_start_cart>0) { ExecuteMacroCart(sas_start_cart); } @@ -351,10 +352,10 @@ void SasUsi::connectedData() void SasUsi::connectionClosedData() { - LogLine(RDConfig::LogNotice,QString(). - sprintf("Connection to SasUsi device at %s:%d closed unexpectedly, attempting reconnect", - (const char *)sas_ipaddress.toString(), - sas_ipport)); + syslog(LOG_WARNING, + "connection to SasUsi device at %s:%d closed unexpectedly, attempting reconnect", + (const char *)sas_ipaddress.toString().toUtf8(), + sas_ipport); if(sas_stop_cart>0) { ExecuteMacroCart(sas_stop_cart); } @@ -390,25 +391,25 @@ void SasUsi::errorData(int err) { switch((Q3Socket::Error)err) { case Q3Socket::ErrConnectionRefused: - LogLine(RDConfig::LogNotice,QString().sprintf( - "Connection to SasUsi device at %s:%d refused, attempting reconnect", - (const char *)sas_ipaddress.toString(), - sas_ipport)); + syslog(LOG_WARNING, + "connection to SasUsi device at %s:%d refused, attempting reconnect", + (const char *)sas_ipaddress.toString().toUtf8(), + sas_ipport); sas_reconnect_timer->start(SASUSI_RECONNECT_INTERVAL,true); break; case Q3Socket::ErrHostNotFound: - LogLine(RDConfig::LogWarning,QString().sprintf( - "Error on connection to SasUsi device at %s:%d: Host Not Found", - (const char *)sas_ipaddress.toString(), - sas_ipport)); + syslog(LOG_WARNING, + "error on connection to SasUsi device at %s:%d: Host Not Found", + (const char *)sas_ipaddress.toString().toUtf8(), + sas_ipport); break; case Q3Socket::ErrSocketRead: - LogLine(RDConfig::LogWarning,QString().sprintf( - "Error on connection to SasUsi device at %s:%d: Socket Read Error", - (const char *)sas_ipaddress.toString(), - sas_ipport)); + syslog(LOG_WARNING, + "error on connection to SasUsi device at %s:%d: Socket Read Error", + (const char *)sas_ipaddress.toString().toUtf8(), + sas_ipport); break; } } @@ -416,7 +417,7 @@ void SasUsi::errorData(int err) void SasUsi::SendCommand(char *str) { - LogLine(RDConfig::LogDebug,QString().sprintf("sending USI cmd: %s",(const char *)PrettifyCommand(str))); + syslog(LOG_DEBUG,"sending USI cmd: %s",(const char *)PrettifyCommand(str)); switch(sas_porttype) { case RDMatrix::TtyPort: sas_device->writeBlock(str,strlen(str)); @@ -473,7 +474,8 @@ void SasUsi::DispatchCommand() } } - LogLine(RDConfig::LogDebug,QString().sprintf("received USI cmd: %s",(const char *)PrettifyCommand(sas_buffer))); + syslog(LOG_DEBUG,"received USI cmd: %s", + (const char *)PrettifyCommand(sas_buffer)); // @@ -562,7 +564,6 @@ void SasUsi::DispatchCommand() for(unsigned i=0;i +// (C) Copyright 2002-2019 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -19,6 +19,7 @@ // #include +#include #include @@ -166,10 +167,10 @@ void SoftwareAuthority::connectedData() void SoftwareAuthority::connectionClosedData() { - LogLine(RDConfig::LogNotice,QString(). - sprintf("Connection to SoftwareAuthority device at %s:%d closed unexpectedly, attempting reconnect", - (const char *)swa_ipaddress.toString(), - swa_ipport)); + syslog(LOG_WARNING, + "connection to SoftwareAuthority device at %s:%d closed unexpectedly, attempting reconnect", + (const char *)swa_ipaddress.toString().toUtf8(), + swa_ipport); if(swa_stop_cart>0) { ExecuteMacroCart(swa_stop_cart); } @@ -206,25 +207,25 @@ void SoftwareAuthority::errorData(int err) { switch((Q3Socket::Error)err) { case Q3Socket::ErrConnectionRefused: - LogLine(RDConfig::LogNotice,QString().sprintf( - "Connection to SoftwareAuthority device at %s:%d refused, attempting reconnect", - (const char *)swa_ipaddress.toString(), - swa_ipport)); + syslog(LOG_WARNING, + "connection to SoftwareAuthority device at %s:%d refused, attempting reconnect", + (const char *)swa_ipaddress.toString().toUtf8(), + swa_ipport); swa_reconnect_timer->start(SWAUTHORITY_RECONNECT_INTERVAL,true); break; case Q3Socket::ErrHostNotFound: - LogLine(RDConfig::LogWarning,QString().sprintf( - "Error on connection to SoftwareAuthority device at %s:%d: Host Not Found", - (const char *)swa_ipaddress.toString(), - swa_ipport)); + syslog(LOG_WARNING, + "error on connection to SoftwareAuthority device at %s:%d: Host Not Found", + (const char *)swa_ipaddress.toString().toUtf8(), + swa_ipport); break; case Q3Socket::ErrSocketRead: - LogLine(RDConfig::LogWarning,QString().sprintf( - "Error on connection to SoftwareAuthority device at %s:%d: Socket Read Error", - (const char *)swa_ipaddress.toString(), - swa_ipport)); + syslog(LOG_WARNING, + "error on connection to SoftwareAuthority device at %s:%d: Socket Read Error", + (const char *)swa_ipaddress.toString().toUtf8(), + swa_ipport); break; } } @@ -268,10 +269,10 @@ void SoftwareAuthority::DispatchCommand() return; } if(section=="login failure") { - LogLine(RDConfig::LogWarning,QString().sprintf( - "Error on connection to SoftwareAuthority device at %s:%d: Login Failure", - (const char *)swa_ipaddress.toString(), - swa_ipport)); + syslog(LOG_WARNING, + "error on connection to SoftwareAuthority device at %s:%d: Login Failure", + (const char *)swa_ipaddress.toString().toUtf8(), + swa_ipport); swa_socket->close(); return; } @@ -347,10 +348,10 @@ void SoftwareAuthority::DispatchCommand() q=new RDSqlQuery(sql); delete q; - LogLine(RDConfig::LogInfo,QString(). - sprintf("Connection to SoftwareAuthority device at %s:%d established", - (const char *)swa_ipaddress.toString(), - swa_ipport)); + syslog(LOG_INFO, + "connection to SoftwareAuthority device at %s:%d established", + (const char *)swa_ipaddress.toString().toUtf8(), + swa_ipport); if(swa_start_cart>0) { ExecuteMacroCart(swa_start_cart); } diff --git a/ripcd/vguest.cpp b/ripcd/vguest.cpp index 616eaa09..618ca654 100644 --- a/ripcd/vguest.cpp +++ b/ripcd/vguest.cpp @@ -2,7 +2,7 @@ // // A Rivendell switcher driver for the Logitek vGuest Protocol // -// (C) Copyright 2002-2005,2016-2018 Fred Gleason +// (C) Copyright 2002-2019 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -19,6 +19,7 @@ // #include +#include #include @@ -315,7 +316,7 @@ void VGuest::processCommand(RDMacro *cmd) (cmd->arg(1).toUInt()>vguest_displays_engine_nums.size())) { cmd->acknowledge(false); emit rmlEcho(cmd); - LogLine(RDConfig::LogWarning,"*** not enough vGuest arguments ***"); + syslog(LOG_WARNING,"*** not enough vGuest arguments ***"); return; } if((vguest_displays_engine_nums[cmd->arg(1).toInt()-1]<0)|| @@ -323,7 +324,7 @@ void VGuest::processCommand(RDMacro *cmd) (vguest_displays_surface_nums[cmd->arg(1).toInt()-1]<0)) { cmd->acknowledge(false); emit rmlEcho(cmd); - LogLine(RDConfig::LogWarning,"*** invalid vGuest hex parameters ***"); + syslog(LOG_WARNING,"*** invalid vGuest hex parameters ***"); return; } label=cmd->rollupArgs(5).left(VGUEST_MAX_TEXT_LENGTH); @@ -460,10 +461,10 @@ void VGuest::connectionClosedData(int id) { int interval=GetHoldoff(); if(!vguest_error_notified[id]) { - LogLine(RDConfig::LogNotice,QString(). - sprintf("Connection to vGuest device at %s:%d closed, attempting reconnect", - (const char *)vguest_ipaddress[id].toString(), - vguest_ipport[id])); + syslog(LOG_WARNING, + "connection to vGuest device at %s:%d closed, attempting reconnect", + (const char *)vguest_ipaddress[id].toString().toUtf8(), + vguest_ipport[id]); vguest_error_notified[id]=true; } if(vguest_stop_cart[id]>0) { @@ -540,10 +541,10 @@ void VGuest::errorData(int err,int id) case Q3Socket::ErrConnectionRefused: interval=GetHoldoff(); if(!vguest_error_notified[id]) { - LogLine(RDConfig::LogNotice,QString().sprintf( - "Connection to vGuest device at %s:%d refused, attempting reconnect", - (const char *)vguest_ipaddress[id].toString(), - vguest_ipport[id])); + syslog(LOG_WARNING, + "connection to vGuest device at %s:%d refused, attempting reconnect", + (const char *)vguest_ipaddress[id].toString().toUtf8(), + vguest_ipport[id]); vguest_error_notified[id]=true; } vguest_reconnect_timer[id]->start(interval,true); @@ -551,20 +552,20 @@ void VGuest::errorData(int err,int id) case Q3Socket::ErrHostNotFound: if(!vguest_error_notified[id]) { - LogLine(RDConfig::LogWarning,QString().sprintf( - "Error on connection to vGuest device at %s:%d: Host Not Found", - (const char *)vguest_ipaddress[id].toString(), - vguest_ipport[id])); + syslog(LOG_WARNING, + "error on connection to vGuest device at %s:%d: Host Not Found", + (const char *)vguest_ipaddress[id].toString().toUtf8(), + vguest_ipport[id]); vguest_error_notified[id]=true; } break; case Q3Socket::ErrSocketRead: if(!vguest_error_notified[id]) { - LogLine(RDConfig::LogWarning,QString().sprintf( - "Error on connection to vGuest device at %s:%d: Socket Read Error", - (const char *)vguest_ipaddress[id].toString(), - vguest_ipport[id])); + syslog(LOG_WARNING, + "error on connection to vGuest device at %s:%d: Socket Read Error", + (const char *)vguest_ipaddress[id].toString().toUtf8(), + vguest_ipport[id]); vguest_error_notified[id]=true; } break; @@ -595,7 +596,7 @@ void VGuest::pingResponseData(int id) { vguest_socket[id]->clearPendingData(); vguest_socket[id]->close(); - LogLine(RDConfig::LogWarning,"vGuest connection to "+ + syslog(LOG_WARNING,"vGuest connection to "+ vguest_ipaddress[id].toString()+" timed out, restarting connection"); } @@ -649,10 +650,10 @@ void VGuest::DispatchCommand(char *cmd,int len,int id) switch(0xFF&cmd[3]) { case 0x0A: // Valid connection case 0x14: - LogLine(RDConfig::LogInfo,QString().sprintf( - "connection to vGuest device at %s:%d established", - (const char *)vguest_ipaddress[id].toString(), - vguest_ipport[id])); + syslog(LOG_INFO, + "connection to vGuest device at %s:%d established", + (const char *)vguest_ipaddress[id].toString().toUtf8(), + vguest_ipport[id]); vguest_error_notified[id]=false; if(vguest_start_cart[id]>0) { ExecuteMacroCart(vguest_start_cart[id]); @@ -667,40 +668,40 @@ void VGuest::DispatchCommand(char *cmd,int len,int id) case 0x0B: // Invalid Username case 0x15: - LogLine(RDConfig::LogWarning,QString().sprintf( - "connection to vGuest device at %s:%d refused: username invalid", - (const char *)vguest_ipaddress[id].toString(), - vguest_ipport[id])); + syslog(LOG_WARNING, + "connection to vGuest device at %s:%d refused: username invalid", + (const char *)vguest_ipaddress[id].toString().toUtf8(), + vguest_ipport[id]); vguest_socket[id]->close(); connectionClosedData(id); break; case 0x0C: // Invalid Password case 0x16: - LogLine(RDConfig::LogWarning,QString().sprintf( - "connection to vGuest device at %s:%d refused: password invalid", - (const char *)vguest_ipaddress[id].toString(), - vguest_ipport[id])); + syslog(LOG_WARNING, + "connection to vGuest device at %s:%d refused: password invalid", + (const char *)vguest_ipaddress[id].toString().toUtf8(), + vguest_ipport[id]); vguest_socket[id]->close(); connectionClosedData(id); break; case 0x0D: // No vGuest Permission case 0x17: - LogLine(RDConfig::LogWarning,QString().sprintf( - "connection to vGuest device at %s:%d refused: no vGuest permission", - (const char *)vguest_ipaddress[id].toString(), - vguest_ipport[id])); + syslog(LOG_WARNING, + "connection to vGuest device at %s:%d refused: no vGuest permission", + (const char *)vguest_ipaddress[id].toString().toUtf8(), + vguest_ipport[id]); vguest_socket[id]->close(); connectionClosedData(id); break; case 0x0E: // No Profile case 0x18: - LogLine(RDConfig::LogWarning,QString().sprintf( - "connection to vGuest device at %s:%d refused: no profile assigned", - (const char *)vguest_ipaddress[id].toString(), - vguest_ipport[id])); + syslog(LOG_WARNING, + "connection to vGuest device at %s:%d refused: no profile assigned", + (const char *)vguest_ipaddress[id].toString().toUtf8(), + vguest_ipport[id]); vguest_socket[id]->close(); connectionClosedData(id); break; @@ -714,9 +715,9 @@ void VGuest::DispatchCommand(char *cmd,int len,int id) emit gpoChanged(vguest_matrix,linenum,true); } else { - LogLine(RDConfig::LogDebug,QString(). - sprintf("unhandled vGuest command received: %s", - (const char *)RenderCommand(cmd,len))); + syslog(LOG_DEBUG, + "unhandled vGuest command received: %s", + (const char *)RenderCommand(cmd,len).toUtf8()); } break; @@ -727,9 +728,9 @@ void VGuest::DispatchCommand(char *cmd,int len,int id) emit gpoChanged(vguest_matrix,linenum,false); } else { - LogLine(RDConfig::LogDebug,QString(). - sprintf("unhandled vGuest command received: %s", - (const char *)RenderCommand(cmd,len))); + syslog(LOG_DEBUG, + "unhandled vGuest command received: %s", + (const char *)RenderCommand(cmd,len).toUtf8()); } break; @@ -743,9 +744,8 @@ void VGuest::DispatchCommand(char *cmd,int len,int id) break; default: - LogLine(RDConfig::LogDebug,QString(). - sprintf("unrecognized vGuest command received: %s", - (const char *)RenderCommand(cmd,len))); + syslog(LOG_DEBUG,"unrecognized vGuest command received: %s", + (const char *)RenderCommand(cmd,len).toUtf8()); break; } } @@ -759,9 +759,9 @@ void VGuest::MetadataCommand(char *cmd,int len,int id) vguest_ping_response_timer[id]->stop(); } else { - LogLine(RDConfig::LogDebug,"vGuest system at "+ - vguest_ipaddress[id].toString()+ - " understands ping, activating timeout monitoring"); + syslog(LOG_DEBUG, + "vGuest system at %s understands ping, activating timeout monitoring", + (const char *)vguest_ipaddress[id].toString().toUtf8()); } vguest_ping_timer[id]->start(VGUEST_PING_INTERVAL,true); break; diff --git a/utils/rddbconfig/rddbconfig.cpp b/utils/rddbconfig/rddbconfig.cpp index 15d4da57..79860a74 100644 --- a/utils/rddbconfig/rddbconfig.cpp +++ b/utils/rddbconfig/rddbconfig.cpp @@ -3,7 +3,7 @@ // A Qt-based application to configure, backup, and restore // the Rivendell database. // -// (C) Copyright 2009-2018 Fred Gleason +// (C) Copyright 2009-2019 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -20,6 +20,7 @@ // #include +#include #include #include @@ -205,8 +206,7 @@ void MainWidget::mismatchData() QMessageBox::information(this,"Database Modified Successfully", QString().sprintf("Modified database to version %d", RD_VERSION_DATABASE)); } - rd_config->log("rddbconfig",RDConfig::LogInfo, - QString().sprintf("Modified database to version %d", RD_VERSION_DATABASE)); + syslog(LOG_INFO,"modified database to version %d",RD_VERSION_DATABASE); emit dbChanged(); } @@ -330,10 +330,9 @@ void MainWidget::backupData() QString().sprintf("Backed up %s database to %s", (const char *)rd_config->mysqlDbname(), (const char *)filename)); - rd_config->log("rddbconfig",RDConfig::LogInfo, - QString().sprintf("Backed up %s database to %s", - (const char *)rd_config->mysqlDbname(), - (const char *)filename)); + syslog(LOG_INFO,"backed up %s database to %s", + (const char *)rd_config->mysqlDbname(), + (const char *)filename); } } } @@ -381,10 +380,9 @@ void MainWidget::restoreData() QString().sprintf("Restored %s database from %s", (const char *)rd_config->mysqlDbname(), (const char *)filename)); - rd_config->log("rddbconfig",RDConfig::LogInfo, - QString().sprintf("Restored %s database from %s", - (const char *)rd_config->mysqlDbname(), - (const char *)filename)); + syslog(LOG_INFO,"restored %s database from %s", + (const char *)rd_config->mysqlDbname(), + (const char *)filename); } emit updateLabels(); startDaemons(); diff --git a/utils/rddelete/rddelete.cpp b/utils/rddelete/rddelete.cpp index 11a345ff..4a867ecb 100644 --- a/utils/rddelete/rddelete.cpp +++ b/utils/rddelete/rddelete.cpp @@ -175,12 +175,6 @@ void MainObject::userData() } -void MainObject::log(RDConfig::LogPriority prio,const QString &msg) -{ - rda->config()->log("rddelete",prio,msg); -} - - void MainObject::DeleteCarts() { unsigned cartnum=0; diff --git a/utils/rddelete/rddelete.h b/utils/rddelete/rddelete.h index f131723f..3a53ab03 100644 --- a/utils/rddelete/rddelete.h +++ b/utils/rddelete/rddelete.h @@ -2,7 +2,7 @@ // // A Batch Deleter for Rivendell. // -// (C) Copyright 2013,2016-2018 Fred Gleason +// (C) Copyright 2013-2019 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -44,7 +44,6 @@ class MainObject : public QObject private slots: void userData(); - void log(RDConfig::LogPriority prio,const QString &line); private: void DeleteCarts(); diff --git a/utils/rdimport/rdimport.cpp b/utils/rdimport/rdimport.cpp index 05c4da99..db3425e0 100644 --- a/utils/rdimport/rdimport.cpp +++ b/utils/rdimport/rdimport.cpp @@ -18,16 +18,17 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include +#include +#include +#include #include -#include +#include #include +#include +#include +#include #include #include -#include -#include -#include -#include #include #include @@ -110,7 +111,7 @@ MainObject::MainObject(QObject *parent) // Read Command Options // if(rda->cmdSwitch()->keys()<2) { - Log(RDConfig::LogErr,QString().sprintf("\n%s\n",RDIMPORT_USAGE)); + Log(LOG_ERR,QString().sprintf("\n%s\n",RDIMPORT_USAGE)); exit(2); } for(unsigned i=0;icmdSwitch()->keys()-2;i++) { @@ -133,11 +134,11 @@ MainObject::MainObject(QObject *parent) if(rda->cmdSwitch()->key(i)=="--to-cart") { import_cart_number=rda->cmdSwitch()->value(i).toUInt(&ok); if((!ok)||(import_cart_number<1)||(import_cart_number>999999)) { - Log(RDConfig::LogErr,QString("rdimport: invalid cart number\n")); + Log(LOG_ERR,QString("rdimport: invalid cart number\n")); exit(2); } if(import_use_cartchunk_cutid) { - Log(RDConfig::LogErr,QString("rdimport: '--to-cart' and '--use-cartchunk-cutid' are mutually exclusive\n")); + Log(LOG_ERR,QString("rdimport: '--to-cart' and '--use-cartchunk-cutid' are mutually exclusive\n")); exit(2); } import_single_cart=true; @@ -145,7 +146,7 @@ MainObject::MainObject(QObject *parent) } if(rda->cmdSwitch()->key(i)=="--use-cartchunk-cutid") { if(import_cart_number!=0) { - Log(RDConfig::LogErr,QString("rdimport: '--to-cart' and '--use-cartchunk-cutid' are mutually exclusive\n")); + Log(LOG_ERR,QString("rdimport: '--to-cart' and '--use-cartchunk-cutid' are mutually exclusive\n")); exit(2); } import_use_cartchunk_cutid=true; @@ -154,7 +155,7 @@ MainObject::MainObject(QObject *parent) if(rda->cmdSwitch()->key(i)=="--cart-number-offset") { import_cart_number_offset=rda->cmdSwitch()->value(i).toInt(&ok); if(!ok) { - Log(RDConfig::LogErr,QString("rdimport: invalid --cart-number-offset\n")); + Log(LOG_ERR,QString("rdimport: invalid --cart-number-offset\n")); exit(2); } rda->cmdSwitch()->setProcessed(i,true); @@ -174,7 +175,7 @@ MainObject::MainObject(QObject *parent) if(rda->cmdSwitch()->key(i)=="--startdate-offset") { import_startdate_offset=rda->cmdSwitch()->value(i).toInt(&ok); if(!ok) { - Log(RDConfig::LogErr,QString("rdimport: invalid startdate-offset\n")); + Log(LOG_ERR,QString("rdimport: invalid startdate-offset\n")); exit(2); } rda->cmdSwitch()->setProcessed(i,true); @@ -182,7 +183,7 @@ MainObject::MainObject(QObject *parent) if(rda->cmdSwitch()->key(i)=="--enddate-offset") { import_enddate_offset=rda->cmdSwitch()->value(i).toInt(&ok); if(!ok) { - Log(RDConfig::LogErr,QString("rdimport: invalid enddate-offset\n")); + Log(LOG_ERR,QString("rdimport: invalid enddate-offset\n")); exit(2); } rda->cmdSwitch()->setProcessed(i,true); @@ -194,52 +195,52 @@ MainObject::MainObject(QObject *parent) if(rda->cmdSwitch()->key(i)=="--set-datetimes") { QStringList f0=rda->cmdSwitch()->value(i).split(","); if(f0.size()!=2) { - Log(RDConfig::LogErr,QString("rdimport: invalid argument to --set-datetimes\n")); + Log(LOG_ERR,QString("rdimport: invalid argument to --set-datetimes\n")); exit(2); } for(unsigned j=0;j<2;j++) { if((f0[j].length()!=15)||(f0[j].mid(8,1)!="-")) { - Log(RDConfig::LogErr,QString("rdimport: invalid argument to --set-datetimes\n")); + Log(LOG_ERR,QString("rdimport: invalid argument to --set-datetimes\n")); exit(2); } unsigned year=f0[j].left(4).toUInt(&ok); if(!ok) { - Log(RDConfig::LogErr,QString("rdimport: invalid year argument to --set-datetimes\n")); + Log(LOG_ERR,QString("rdimport: invalid year argument to --set-datetimes\n")); exit(2); } unsigned month=f0[j].mid(4,2).toUInt(&ok); if((!ok)||(month>12)) { - Log(RDConfig::LogErr,QString("rdimport: invalid month argument to --set-datetimes\n")); + Log(LOG_ERR,QString("rdimport: invalid month argument to --set-datetimes\n")); exit(2); } unsigned day=f0[j].mid(6,2).toUInt(&ok); if((!ok)||(day>31)) { - Log(RDConfig::LogErr,QString("rdimport: invalid day argument to --set-datetimes\n")); + Log(LOG_ERR,QString("rdimport: invalid day argument to --set-datetimes\n")); exit(2); } unsigned hour=f0[j].mid(9,2).toUInt(&ok); if((!ok)||(hour>23)) { - Log(RDConfig::LogErr,QString("rdimport: invalid hour argument to --set-datetimes\n")); + Log(LOG_ERR,QString("rdimport: invalid hour argument to --set-datetimes\n")); exit(2); } unsigned min=f0[j].mid(11,2).toUInt(&ok); if((!ok)||(min>59)) { - Log(RDConfig::LogErr,QString("rdimport: invalid minute argument to --set-datetimes\n")); + Log(LOG_ERR,QString("rdimport: invalid minute argument to --set-datetimes\n")); exit(2); } unsigned sec=f0[j].right(2).toUInt(&ok); if((!ok)||(sec>59)) { - Log(RDConfig::LogErr,QString("rdimport: invalid seconds argument to --set-datetimes\n")); + Log(LOG_ERR,QString("rdimport: invalid seconds argument to --set-datetimes\n")); exit(2); } import_datetimes[j]=QDateTime(QDate(year,month,day), QTime(hour,min,sec)); if(!import_datetimes[j].isValid()) { - Log(RDConfig::LogErr,QString("rdimport: invalid argument to --set-datetimes\n")); + Log(LOG_ERR,QString("rdimport: invalid argument to --set-datetimes\n")); } } if(import_datetimes[0]>=import_datetimes[1]) { - Log(RDConfig::LogErr,QString("rdimport: datetime cannot end before it begins\n")); + Log(LOG_ERR,QString("rdimport: datetime cannot end before it begins\n")); exit(2); } rda->cmdSwitch()->setProcessed(i,true); @@ -247,33 +248,33 @@ MainObject::MainObject(QObject *parent) if(rda->cmdSwitch()->key(i)=="--set-daypart-times") { QStringList f0=rda->cmdSwitch()->value(i).split(","); if(f0.size()!=2) { - Log(RDConfig::LogErr,QString("rdimport: invalid argument to --set-daypart-times\n")); + Log(LOG_ERR,QString("rdimport: invalid argument to --set-daypart-times\n")); exit(2); } for(unsigned j=0;j<2;j++) { if(f0[j].length()!=6) { - Log(RDConfig::LogErr,QString("rdimport: invalid argument to --set-daypart-times\n")); + Log(LOG_ERR,QString("rdimport: invalid argument to --set-daypart-times\n")); exit(2); } unsigned hour=f0[j].left(2).toUInt(&ok); if((!ok)||(hour>23)) { - Log(RDConfig::LogErr,QString("rdimport: invalid hour argument to --set-daypart-times\n")); + Log(LOG_ERR,QString("rdimport: invalid hour argument to --set-daypart-times\n")); exit(2); } unsigned min=f0[j].mid(2,2).toUInt(&ok); if((!ok)||(min>59)) { - Log(RDConfig::LogErr,QString("rdimport: invalid minute argument to --set-daypart-times\n")); + Log(LOG_ERR,QString("rdimport: invalid minute argument to --set-daypart-times\n")); exit(2); } unsigned sec=f0[j].right(2).toUInt(&ok); if((!ok)||(sec>59)) { - Log(RDConfig::LogErr,QString("rdimport: invalid seconds argument to --set-daypart-times\n")); + Log(LOG_ERR,QString("rdimport: invalid seconds argument to --set-daypart-times\n")); exit(2); } import_dayparts[j].setHMS(hour,min,sec); } if(import_dayparts[0]>=import_dayparts[1]) { - Log(RDConfig::LogErr,QString("rdimport: daypart cannot end before it begins\n")); + Log(LOG_ERR,QString("rdimport: daypart cannot end before it begins\n")); exit(2); } rda->cmdSwitch()->setProcessed(i,true); @@ -304,7 +305,7 @@ MainObject::MainObject(QObject *parent) if(rda->cmdSwitch()->key(i)=="--metadata-pattern") { import_metadata_pattern=rda->cmdSwitch()->value(i); if(!VerifyPattern(import_metadata_pattern)) { - Log(RDConfig::LogErr,QString("rdimport: invalid metadata pattern\n")); + Log(LOG_ERR,QString("rdimport: invalid metadata pattern\n")); exit(2); } rda->cmdSwitch()->setProcessed(i,true); @@ -316,7 +317,7 @@ MainObject::MainObject(QObject *parent) if(rda->cmdSwitch()->key(i)=="--persistent-dropbox-id") { import_persistent_dropbox_id=rda->cmdSwitch()->value(i).toInt(&ok); if(!ok) { - Log(RDConfig::LogErr,QString("rdimport: invalid persistent dropbox id\n")); + Log(LOG_ERR,QString("rdimport: invalid persistent dropbox id\n")); exit(2); } rda->cmdSwitch()->setProcessed(i,true); @@ -324,7 +325,7 @@ MainObject::MainObject(QObject *parent) if(rda->cmdSwitch()->key(i)=="--create-startdate-offset") { import_create_startdate_offset=rda->cmdSwitch()->value(i).toInt(&ok); if(!ok) { - Log(RDConfig::LogErr,QString("rdimport: invalid create-startddate-offset\n")); + Log(LOG_ERR,QString("rdimport: invalid create-startddate-offset\n")); exit(2); } import_create_dates=true; @@ -334,7 +335,7 @@ MainObject::MainObject(QObject *parent) import_create_enddate_offset=rda->cmdSwitch()->value(i).toInt(&ok); if((!ok) || (import_create_startdate_offset > import_create_enddate_offset )) { - Log(RDConfig::LogErr,QString("rdimport: invalid create-enddate-offset\n")); + Log(LOG_ERR,QString("rdimport: invalid create-enddate-offset\n")); exit(2); } import_create_dates=true; @@ -355,7 +356,7 @@ MainObject::MainObject(QObject *parent) if(rda->cmdSwitch()->key(i)=="--set-string-bpm") { import_string_bpm=rda->cmdSwitch()->value(i).toInt(&ok); if(!ok) { - Log(RDConfig::LogErr,QString("rdimport: invalid value for --set-string-bpm\n")); + Log(LOG_ERR,QString("rdimport: invalid value for --set-string-bpm\n")); exit(255); } rda->cmdSwitch()->setProcessed(i,true); @@ -394,7 +395,7 @@ MainObject::MainObject(QObject *parent) } if(rda->cmdSwitch()->key(i)=="--set-string-title") { if(rda->cmdSwitch()->value(i).isEmpty()) { - Log(RDConfig::LogErr,QString("rdimport: title field cannot be empty\n")); + Log(LOG_ERR,QString("rdimport: title field cannot be empty\n")); exit(255); } import_string_title=rda->cmdSwitch()->value(i); @@ -407,7 +408,7 @@ MainObject::MainObject(QObject *parent) if(rda->cmdSwitch()->key(i)=="--set-string-year") { import_string_year=rda->cmdSwitch()->value(i).toInt(&ok); if(!ok) { - Log(RDConfig::LogErr,QString("rdimport: invalid value for --set-string-year\n")); + Log(LOG_ERR,QString("rdimport: invalid value for --set-string-year\n")); exit(255); } rda->cmdSwitch()->setProcessed(i,true); @@ -422,43 +423,30 @@ MainObject::MainObject(QObject *parent) // Sanity Checks // if(import_datetimes[0].isValid()&&import_clear_datetimes) { - Log(RDConfig::LogErr,QString("rdimport: --set-datetimes and --clear-datetimes are mutually exclusive\n")); + Log(LOG_ERR,QString("rdimport: --set-datetimes and --clear-datetimes are mutually exclusive\n")); exit(255); } if((!import_dayparts[1].isNull())&&import_clear_dayparts) { - Log(RDConfig::LogErr,QString("rdimport: --set-daypart-times and --clear-daypart-times are mutually exclusive\n")); + Log(LOG_ERR,QString("rdimport: --set-daypart-times and --clear-daypart-times are mutually exclusive\n")); exit(255); } if((!import_metadata_pattern.isEmpty())&&import_xml) { - Log(RDConfig::LogErr,QString().sprintf("rdimport: --metadata-pattern and --xml are mutually exclusive\n")); + Log(LOG_ERR,QString().sprintf("rdimport: --metadata-pattern and --xml are mutually exclusive\n")); exit(255); } if((!import_log_directory.isEmpty())&&import_log_filename.isEmpty()) { - Log(RDConfig::LogErr,QString().sprintf("rdimport: --log-directory requires --log-filename\n")); + Log(LOG_ERR,QString().sprintf("rdimport: --log-directory requires --log-filename\n")); exit(255); } if((!import_log_filename.isEmpty())&&import_log_directory.isEmpty()) { - Log(RDConfig::LogErr,QString().sprintf("rdimport: --log-filename requires --log-directory\n")); + Log(LOG_ERR,QString().sprintf("rdimport: --log-filename requires --log-directory\n")); exit(255); } if((!import_log_filename.isEmpty())&&import_log_syslog) { - Log(RDConfig::LogErr,QString().sprintf("rdimport: --log-filename and --log-syslog are mutually exclusive\n")); + Log(LOG_ERR,QString().sprintf("rdimport: --log-filename and --log-syslog are mutually exclusive\n")); exit(255); } - // - // Set Logging - // - if(import_log_syslog) { - rda->config()->setLogFacility(RDConfig::LogSyslog); - } - else if((!import_log_filename.isEmpty())&&!import_log_directory.isEmpty()) { - rda->config()->setLogDirectory(import_log_directory); - rda->config()->setLogPattern(import_log_filename); - rda->config()->setLogFacility(RDConfig::LogFile); - import_log_file=true; - } - import_cut_markers=new MarkerSet(); import_cut_markers->loadMarker(rda->cmdSwitch(),"cut"); import_talk_markers=new MarkerSet(); @@ -486,7 +474,7 @@ MainObject::MainObject(QObject *parent) if(rda->cmdSwitch()->key(i).left(2)!="--") { import_group=new RDGroup(rda->cmdSwitch()->key(i)); if(!import_group->exists()) { - Log(RDConfig::LogErr,QString().sprintf("rdimport: invalid group specified\n")); + Log(LOG_ERR,QString().sprintf("rdimport: invalid group specified\n")); delete import_group; exit(2); } @@ -495,12 +483,12 @@ MainObject::MainObject(QObject *parent) } } if(import_group==NULL) { - Log(RDConfig::LogErr,QString().sprintf("rdimport: invalid group specified\n")); + Log(LOG_ERR,QString().sprintf("rdimport: invalid group specified\n")); exit(2); } if(import_cart_number>0) { if(!import_group->cartNumberValid(import_cart_number)) { - Log(RDConfig::LogErr,QString().sprintf("rdimport: invalid cart number for group\n")); + Log(LOG_ERR,QString().sprintf("rdimport: invalid cart number for group\n")); delete import_group; exit(2); } @@ -511,7 +499,7 @@ MainObject::MainObject(QObject *parent) // for(unsigned i=0;icmdSwitch()->setProcessed(i,true); @@ -548,7 +536,7 @@ MainObject::MainObject(QObject *parent) import_autotrim_level=100*n; } else { - Log(RDConfig::LogErr,QString("rdimport: invalid autotrim level\n")); + Log(LOG_ERR,QString("rdimport: invalid autotrim level\n")); exit(2); } rda->cmdSwitch()->setProcessed(i,true); @@ -559,7 +547,7 @@ MainObject::MainObject(QObject *parent) import_segue_level=n; } else { - Log(RDConfig::LogErr,QString("rdimport: invalid segue level\n")); + Log(LOG_ERR,QString("rdimport: invalid segue level\n")); exit(2); } rda->cmdSwitch()->setProcessed(i,true); @@ -570,7 +558,7 @@ MainObject::MainObject(QObject *parent) import_segue_length=n; } else { - Log(RDConfig::LogErr,QString("rdimport: invalid segue length\n")); + Log(LOG_ERR,QString("rdimport: invalid segue length\n")); exit(2); } rda->cmdSwitch()->setProcessed(i,true); @@ -581,7 +569,7 @@ MainObject::MainObject(QObject *parent) } if((!rda->cmdSwitch()->processed(i))&& (rda->cmdSwitch()->key(i).left(2)=="--")) { - Log(RDConfig::LogErr,QString().sprintf("rdimport: unknown command option \"%s\"\n", + Log(LOG_ERR,QString().sprintf("rdimport: unknown command option \"%s\"\n", (const char *)rda->cmdSwitch()->key(i))); exit(2); } @@ -594,168 +582,168 @@ MainObject::MainObject(QObject *parent) // Print Status Messages // if(import_verbose) { - Log(RDConfig::LogInfo,QString("rdimport started\n")); + Log(LOG_INFO,QString("rdimport started\n")); - Log(RDConfig::LogInfo,QString().sprintf("RDImport v%s\n",VERSION)); + Log(LOG_INFO,QString().sprintf("RDImport v%s\n",VERSION)); if(import_to_mono) { - Log(RDConfig::LogInfo,QString(" Force to Mono is ON\n")); + Log(LOG_INFO,QString(" Force to Mono is ON\n")); } else { - Log(RDConfig::LogInfo,QString(" Force to Mono is OFF\n")); + Log(LOG_INFO,QString(" Force to Mono is OFF\n")); } if(import_normalization_level==0) { - Log(RDConfig::LogInfo,QString(" Normalization is OFF\n")); + Log(LOG_INFO,QString(" Normalization is OFF\n")); } else { - Log(RDConfig::LogInfo,QString().sprintf(" Normalization level = %d dB\n",import_normalization_level/100)); + Log(LOG_INFO,QString().sprintf(" Normalization level = %d dB\n",import_normalization_level/100)); } if(import_autotrim_level==0) { - Log(RDConfig::LogInfo,QString(" AutoTrim is OFF\n")); + Log(LOG_INFO,QString(" AutoTrim is OFF\n")); } else { - Log(RDConfig::LogInfo,QString().sprintf(" AutoTrim level = %d dB\n",import_autotrim_level/100)); + Log(LOG_INFO,QString().sprintf(" AutoTrim level = %d dB\n",import_autotrim_level/100)); } if(import_cart_number==0) { if(import_use_cartchunk_cutid) { - Log(RDConfig::LogInfo,QString(" Destination cart is taken from CartChunk CutID\n")); + Log(LOG_INFO,QString(" Destination cart is taken from CartChunk CutID\n")); } else { - Log(RDConfig::LogInfo,QString(" Destination cart is AUTO\n")); + Log(LOG_INFO,QString(" Destination cart is AUTO\n")); } } else { - Log(RDConfig::LogInfo,QString().sprintf(" Destination cart is %06u\n",import_cart_number)); + Log(LOG_INFO,QString().sprintf(" Destination cart is %06u\n",import_cart_number)); } if(import_single_cart) { - Log(RDConfig::LogInfo,QString(" Single cart mode is ON\n")); + Log(LOG_INFO,QString(" Single cart mode is ON\n")); } else { - Log(RDConfig::LogInfo,QString(" Single cart mode is OFF\n")); + Log(LOG_INFO,QString(" Single cart mode is OFF\n")); } if(import_title_from_cartchunk_cutid) { - Log(RDConfig::LogInfo,QString(" Destination cart title is taken from CartChunk CutID\n")); + Log(LOG_INFO,QString(" Destination cart title is taken from CartChunk CutID\n")); } if(import_cart_number_offset!=0) { - Log(RDConfig::LogInfo,QString().sprintf(" Cart number offset is %d\n",import_cart_number_offset)); + Log(LOG_INFO,QString().sprintf(" Cart number offset is %d\n",import_cart_number_offset)); } if(import_delete_source) { - Log(RDConfig::LogInfo,QString(" Delete source mode is ON\n")); + Log(LOG_INFO,QString(" Delete source mode is ON\n")); } else { - Log(RDConfig::LogInfo,QString(" Delete source mode is OFF\n")); + Log(LOG_INFO,QString(" Delete source mode is OFF\n")); } if(import_delete_cuts) { - Log(RDConfig::LogInfo,QString(" Delete cuts mode is ON\n")); + Log(LOG_INFO,QString(" Delete cuts mode is ON\n")); } else { - Log(RDConfig::LogInfo,QString(" Delete cuts mode is OFF\n")); + Log(LOG_INFO,QString(" Delete cuts mode is OFF\n")); } if(import_drop_box) { - Log(RDConfig::LogInfo,QString(" DropBox mode is ON\n")); + Log(LOG_INFO,QString(" DropBox mode is ON\n")); } else { - Log(RDConfig::LogInfo,QString(" DropBox mode is OFF\n")); + Log(LOG_INFO,QString(" DropBox mode is OFF\n")); } if(import_add_scheduler_codes.size()>0) { - Log(RDConfig::LogInfo,QString(" Adding Scheduler Code(s):\n")); + Log(LOG_INFO,QString(" Adding Scheduler Code(s):\n")); for(unsigned i=0;i=0) { - Log(RDConfig::LogInfo,QString().sprintf(" Persistent DropBox ID = %d\n",import_persistent_dropbox_id)); + Log(LOG_INFO,QString().sprintf(" Persistent DropBox ID = %d\n",import_persistent_dropbox_id)); } if(!import_string_agency.isNull()) { - Log(RDConfig::LogInfo,QString().sprintf(" Agency set to: %s\n",(const char *)import_string_agency)); + Log(LOG_INFO,QString().sprintf(" Agency set to: %s\n",(const char *)import_string_agency)); } if(!import_string_album.isNull()) { - Log(RDConfig::LogInfo,QString().sprintf(" Album set to: %s\n",(const char *)import_string_album)); + Log(LOG_INFO,QString().sprintf(" Album set to: %s\n",(const char *)import_string_album)); } if(!import_string_artist.isNull()) { - Log(RDConfig::LogInfo,QString().sprintf(" Artist set to: %s\n",(const char *)import_string_artist)); + Log(LOG_INFO,QString().sprintf(" Artist set to: %s\n",(const char *)import_string_artist)); } if(import_string_bpm!=0) { - Log(RDConfig::LogInfo,QString().sprintf(" BPM set to: %d\n",import_string_bpm)); + Log(LOG_INFO,QString().sprintf(" BPM set to: %d\n",import_string_bpm)); } if(!import_string_client.isNull()) { - Log(RDConfig::LogInfo,QString().sprintf(" Client set to: %s\n",(const char *)import_string_client)); + Log(LOG_INFO,QString().sprintf(" Client set to: %s\n",(const char *)import_string_client)); } if(!import_string_composer.isNull()) { - Log(RDConfig::LogInfo,QString().sprintf(" Composer set to: %s\n",(const char *)import_string_composer)); + Log(LOG_INFO,QString().sprintf(" Composer set to: %s\n",(const char *)import_string_composer)); } if(!import_string_conductor.isNull()) { - Log(RDConfig::LogInfo,QString().sprintf(" Conductor set to: %s\n",(const char *)import_string_conductor)); + Log(LOG_INFO,QString().sprintf(" Conductor set to: %s\n",(const char *)import_string_conductor)); } if(!import_string_description.isNull()) { - Log(RDConfig::LogInfo,QString().sprintf(" Description set to: %s\n", + Log(LOG_INFO,QString().sprintf(" Description set to: %s\n", (const char *)import_string_description)); } if(!import_string_label.isNull()) { - Log(RDConfig::LogInfo,QString().sprintf(" Label set to: %s\n",(const char *)import_string_label)); + Log(LOG_INFO,QString().sprintf(" Label set to: %s\n",(const char *)import_string_label)); } if(!import_string_outcue.isNull()) { - Log(RDConfig::LogInfo,QString().sprintf(" Outcue set to: %s\n",(const char *)import_string_outcue)); + Log(LOG_INFO,QString().sprintf(" Outcue set to: %s\n",(const char *)import_string_outcue)); } if(!import_string_publisher.isNull()) { - Log(RDConfig::LogInfo,QString().sprintf(" Publisher set to: %s\n",(const char *)import_string_publisher)); + Log(LOG_INFO,QString().sprintf(" Publisher set to: %s\n",(const char *)import_string_publisher)); } if(!import_string_song_id.isNull()) { - Log(RDConfig::LogInfo,QString().sprintf(" Song ID set to: %s\n",(const char *)import_string_song_id)); + Log(LOG_INFO,QString().sprintf(" Song ID set to: %s\n",(const char *)import_string_song_id)); } if(!import_string_title.isNull()) { - Log(RDConfig::LogInfo,QString().sprintf(" Title set to: %s\n",(const char *)import_string_title)); + Log(LOG_INFO,QString().sprintf(" Title set to: %s\n",(const char *)import_string_title)); } if(!import_string_user_defined.isNull()) { - Log(RDConfig::LogInfo,QString().sprintf(" User Defined set to: %s\n", + Log(LOG_INFO,QString().sprintf(" User Defined set to: %s\n", (const char *)import_string_user_defined)); } if(import_string_year!=0) { - Log(RDConfig::LogInfo,QString().sprintf(" Year set to: %d\n",import_string_year)); + Log(LOG_INFO,QString().sprintf(" Year set to: %d\n",import_string_year)); } if(import_xml) { - Log(RDConfig::LogInfo,QString().sprintf(" Importing RDXML metadata from external file\n")); + Log(LOG_INFO,QString().sprintf(" Importing RDXML metadata from external file\n")); } import_cut_markers->dump(); import_talk_markers->dump(); @@ -763,9 +751,9 @@ MainObject::MainObject(QObject *parent) import_segue_markers->dump(); import_fadedown_marker->dump(); import_fadeup_marker->dump(); - Log(RDConfig::LogInfo,QString(" Files to process:\n")); + Log(LOG_INFO,QString(" Files to process:\n")); for(unsigned i=import_file_key;icmdSwitch()->keys();i++) { - Log(RDConfig::LogInfo,QString().sprintf(" \"%s\"\n",(const char *)rda->cmdSwitch()->key(i))); + Log(LOG_INFO,QString().sprintf(" \"%s\"\n",(const char *)rda->cmdSwitch()->key(i))); } } @@ -789,7 +777,7 @@ void MainObject::userData() // Verify Permissions // if(!rda->user()->editAudio()) { - Log(RDConfig::LogErr, + Log(LOG_ERR, QString().sprintf("rdimport: user \"%s\" has no edit audio permission\n", (const char *)rda->user()->name())); exit(256); @@ -860,7 +848,7 @@ void MainObject::userData() // delete import_cmd; if(import_verbose) { - Log(RDConfig::LogInfo,QString("rdimport finished\n")); + Log(LOG_INFO,QString("rdimport finished\n")); } exit(0); @@ -911,7 +899,7 @@ void MainObject::RunDropBox() sleep(RDIMPORT_DROPBOX_SCAN_INTERVAL); } while(import_run); if(import_verbose) { - Log(RDConfig::LogInfo,QString("rdimport stopped\n")); + Log(LOG_INFO,QString("rdimport stopped\n")); } } @@ -940,7 +928,7 @@ void MainObject::ProcessFileEntry(const QString &entry) while((globbuf.gl_pathc==RDIMPORT_GLOB_SIZE)||(gflags==GLOB_MARK)) { glob(RDEscapeString(entry),gflags,NULL,&globbuf); if((globbuf.gl_pathc==0)&&(gflags==GLOB_MARK)&&(!import_drop_box)) { - Log(RDConfig::LogErr,QString().sprintf(" Unable to open \"%s\", skipping...\n", + Log(LOG_WARNING,QString().sprintf(" Unable to open \"%s\", skipping...\n", (const char *)entry)); globfree(&globbuf); } @@ -984,15 +972,15 @@ MainObject::Result MainObject::ImportFile(const QString &filename, else { if(import_fix_broken_formats) { if(import_verbose) { - Log(RDConfig::LogWarning,QString().sprintf(" File \"%s\" appears to be malformed, trying workaround ... ", + Log(LOG_WARNING,QString().sprintf(" File \"%s\" appears to be malformed, trying workaround ... ", (const char *)RDGetBasePart(filename).utf8())); } delete wavefile; if((wavefile=FixFile(filename,wavedata))==NULL) { if(import_verbose) { - Log(RDConfig::LogWarning,QString().sprintf("failed.\n")); + Log(LOG_WARNING,QString().sprintf("failed.\n")); } - Log(RDConfig::LogWarning,QString().sprintf( + Log(LOG_WARNING,QString().sprintf( " File \"%s\" is not readable or not a recognized format, skipping...\n", (const char *)RDGetBasePart(filename).utf8())); delete wavefile; @@ -1009,12 +997,12 @@ MainObject::Result MainObject::ImportFile(const QString &filename, return MainObject::FileBad; } if(import_verbose) { - Log(RDConfig::LogWarning,QString().sprintf("success.\n")); + Log(LOG_WARNING,QString().sprintf("success.\n")); } effective_filename=import_temp_fix_filename; } else { - Log(RDConfig::LogWarning,QString().sprintf( + Log(LOG_WARNING,QString().sprintf( " File \"%s\" is not readable or not a recognized format, skipping...\n", (const char *)RDGetBasePart(filename).utf8())); delete wavefile; @@ -1035,7 +1023,7 @@ MainObject::Result MainObject::ImportFile(const QString &filename, found_cart=RunPattern(import_metadata_pattern,RDGetBasePart(filename), wavedata,&groupname); if(wavedata->validateDateTimes()) { - Log(RDConfig::LogErr,QString().sprintf( + Log(LOG_WARNING,QString().sprintf( " File \"%s\": End date/time cannot be prior to start date/time, ignoring...\n", (const char *)filename.utf8())); } @@ -1043,7 +1031,7 @@ MainObject::Result MainObject::ImportFile(const QString &filename, delete effective_group; effective_group=new RDGroup(groupname); if(!effective_group->exists()) { - Log(RDConfig::LogErr,QString().sprintf(" Specified group \"%s\" from file \"%s\" does not exist, using default group...\n", + Log(LOG_WARNING,QString().sprintf(" Specified group \"%s\" from file \"%s\" does not exist, using default group...\n", (const char *)groupname,(const char *)filename.utf8())); delete effective_group; effective_group=new RDGroup(import_group->name()); @@ -1065,7 +1053,7 @@ MainObject::Result MainObject::ImportFile(const QString &filename, if((*cartnum==0)||(*cartnum>999999)|| (effective_group->enforceCartRange()&& (!effective_group->cartNumberValid(*cartnum)))) { - Log(RDConfig::LogErr,QString().sprintf( + Log(LOG_WARNING,QString().sprintf( " File \"%s\" has an invalid or out of range Cart Number, skipping...\n", (const char *)RDGetBasePart(filename).utf8())); wavefile->closeWave(); @@ -1079,7 +1067,7 @@ MainObject::Result MainObject::ImportFile(const QString &filename, *cartnum=effective_group->nextFreeCart(); } if(*cartnum==0) { - Log(RDConfig::LogErr,QString().sprintf("rdimport: no free carts available in specified group\n")); + Log(LOG_ERR,QString().sprintf("rdimport: no free carts available in specified group\n")); wavefile->closeWave(); delete wavefile; delete wavedata; @@ -1110,7 +1098,7 @@ MainObject::Result MainObject::ImportFile(const QString &filename, int cutnum= cart->addCut(import_format,import_bitrate,import_channels); if(cutnum<0) { - Log(RDConfig::LogErr,QString().sprintf("rdimport: no free cuts available in cart %06u\n",*cartnum)); + Log(LOG_WARNING,QString().sprintf("rdimport: no free cuts available in cart %06u\n",*cartnum)); delete cart; return MainObject::NoCut; } @@ -1136,18 +1124,18 @@ MainObject::Result MainObject::ImportFile(const QString &filename, conv->setUseMetadata(cart_created); if(import_verbose) { if(wavedata->title().length()==0 || ( (wavedata->title().length()>0) && (wavedata->title()[0] == '\0')) ) { - Log(RDConfig::LogInfo,QString().sprintf(" Importing file \"%s\" to cart %06u ... ", + Log(LOG_INFO,QString().sprintf(" Importing file \"%s\" to cart %06u ... ", (const char *)RDGetBasePart(filename).utf8(),*cartnum)); } else { if(import_string_title.isNull()) { - Log(RDConfig::LogInfo,QString().sprintf(" Importing file \"%s\" [%s] to cart %06u ... ", + Log(LOG_INFO,QString().sprintf(" Importing file \"%s\" [%s] to cart %06u ... ", (const char *)RDGetBasePart(filename).utf8(), (const char *)wavedata->title().stripWhiteSpace().utf8(), *cartnum)); } else { - Log(RDConfig::LogInfo,QString().sprintf(" Importing file \"%s\" [%s] to cart %06u ... ", + Log(LOG_INFO,QString().sprintf(" Importing file \"%s\" [%s] to cart %06u ... ", (const char *)RDGetBasePart(filename).utf8(), (const char *)import_string_title.stripWhiteSpace().utf8(), *cartnum)); @@ -1159,12 +1147,12 @@ MainObject::Result MainObject::ImportFile(const QString &filename, &audio_conv_err)) { case RDAudioImport::ErrorOk: if(import_verbose) { - Log(RDConfig::LogInfo,QString().sprintf("done.\n")); + Log(LOG_INFO,QString().sprintf("done.\n")); } break; default: - Log(RDConfig::LogNotice,QString().sprintf(" %s, skipping %s...\n", + Log(LOG_INFO,QString().sprintf(" %s, skipping %s...\n", (const char *)RDAudioImport::errorText(conv_err,audio_conv_err), (const char *)filename.utf8())); if(cart_created) { @@ -1369,7 +1357,7 @@ MainObject::Result MainObject::ImportFile(const QString &filename, if(import_delete_source) { unlink(filename.utf8()); if(import_verbose) { - Log(RDConfig::LogInfo,QString().sprintf(" Deleted file \"%s\"\n",(const char *)RDGetBasePart(filename).utf8())); + Log(LOG_INFO,QString().sprintf(" Deleted file \"%s\"\n",(const char *)RDGetBasePart(filename).utf8())); } } if(!import_run) { @@ -1900,7 +1888,7 @@ bool MainObject::VerifyPattern(const QString &pattern) void MainObject::DeleteCuts(unsigned cartnum) { if(import_verbose) { - Log(RDConfig::LogInfo,QString().sprintf(" Deleting cuts from cart %06u\n",cartnum)); + Log(LOG_INFO,QString().sprintf(" Deleting cuts from cart %06u\n",cartnum)); } unsigned dev; RDCart *cart=new RDCart(cartnum); @@ -1991,7 +1979,7 @@ void MainObject::ReadXmlFile(const QString &basename,RDWaveData *wavedata) const } xmlname+="xml"; if(import_verbose) { - Log(RDConfig::LogInfo,QString().sprintf(" Reading xml metadata from \"%s\": ",(const char *)xmlname)); + Log(LOG_INFO,QString().sprintf(" Reading xml metadata from \"%s\": ",(const char *)xmlname)); } // @@ -2000,12 +1988,12 @@ void MainObject::ReadXmlFile(const QString &basename,RDWaveData *wavedata) const wavedata->clear(); if((f=fopen(xmlname,"r"))==NULL) { if(import_verbose) { - Log(RDConfig::LogErr,QString().sprintf("failed [%s]\n",strerror(errno))); + Log(LOG_WARNING,QString().sprintf("failed [%s]\n",strerror(errno))); return; } } if(import_verbose) { - Log(RDConfig::LogInfo,QString("success\n")); + Log(LOG_INFO,QString("success\n")); } while(fgets(line,1024,f)!=NULL) { xml+=line; @@ -2032,15 +2020,15 @@ void MainObject::SendNotification(RDNotification::Action action, } -void MainObject::Log(RDConfig::LogPriority prio,const QString &msg) const +void MainObject::Log(int prio,const QString &msg) const { QString m=msg; if (import_drop_box||import_log_syslog||import_log_file) { - rda->log(prio,m.replace(QRegExp("^rdimport: "),"").simplified()); + syslog(prio,m.replace(QRegExp("^rdimport: "),"").simplified()); } else { - if(prio==RDConfig::LogErr) { + if(prio==LOG_ERR) { fprintf(stderr,"%s",(const char *)msg); fflush(stderr); } diff --git a/utils/rdimport/rdimport.h b/utils/rdimport/rdimport.h index 19519ec7..7bf8019b 100644 --- a/utils/rdimport/rdimport.h +++ b/utils/rdimport/rdimport.h @@ -73,7 +73,7 @@ class MainObject : public QObject void WriteTimestampCache(const QString &filename,const QDateTime &dt); bool SchedulerCodeExists(const QString &code) const; void ReadXmlFile(const QString &basename,RDWaveData *wavedata) const; - void Log(RDConfig::LogPriority prio,const QString &msg) const; + void Log(int prio,const QString &msg) const; void SendNotification(RDNotification::Action action,unsigned cartnum); unsigned import_file_key; RDGroup *import_group; diff --git a/utils/rdmaint/rdmaint.cpp b/utils/rdmaint/rdmaint.cpp index 6b263813..7f607cff 100644 --- a/utils/rdmaint/rdmaint.cpp +++ b/utils/rdmaint/rdmaint.cpp @@ -2,7 +2,7 @@ // // A Utility for running periodic system maintenance. // -// (C) Copyright 2008-2018 Fred Gleason +// (C) Copyright 2008-2019 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -18,14 +18,15 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include +#include +#include #include -#include +#include #include +#include +#include #include #include -#include -#include #include #include @@ -165,15 +166,12 @@ void MainObject::PurgeCuts() RDCart *cart=new RDCart(q1->value(0).toUInt()); if(cart->removeCut(rda->station(),rda->user(),q1->value(1).toString(), rda->config())) { - rda->config()-> - log("rdmaint",RDConfig::LogInfo,QString().sprintf("purged cut %s", - (const char *)q1->value(1).toString())); + syslog(LOG_INFO,"purged cut %s", + (const char *)q1->value(1).toString().toUtf8()); } else { - rda->config()-> - log("rdmaint",RDConfig::LogErr,QString(). - sprintf("unable to purge cut %s: audio deletion error", - (const char *)q1->value(1).toString())); + syslog(LOG_WARNING,"unable to purge cut %s: audio deletion error", + (const char *)q1->value(1).toString().toUtf8()); } if(q->value(2).toString()=="Y") { // Delete Empty Cart sql=QString("select CUT_NAME from CUTS where ")+ @@ -181,9 +179,7 @@ void MainObject::PurgeCuts() q2=new RDSqlQuery(sql); if(!q2->first()) { cart->remove(rda->station(),rda->user(),rda->config()); - rda->config()-> - log("rdmaint",RDConfig::LogInfo,QString(). - sprintf("deleted purged cart %06u",cart->number())); + syslog(LOG_INFO,"deleted purged cart %06u",cart->number()); } delete q2; } @@ -207,9 +203,8 @@ void MainObject::PurgeLogs() "(PURGE_DATE<\""+dt.date().toString("yyyy-MM-dd")+"\")"; q=new RDSqlQuery(sql); while(q->next()) { - rda->config()-> - log("rdmain",RDConfig::LogInfo,QString().sprintf("purged log %s", - (const char *)q->value(0).toString())); + syslog(LOG_INFO,"purged log %s", + (const char *)q->value(0).toString().toUtf8()); RDLog *log=new RDLog(q->value(0).toString()); log->remove(rda->station(),rda->user(),rda->config()); delete log; @@ -368,11 +363,9 @@ void MainObject::RehashCuts() if((err=RDRehash::rehash(rda->station(),rda->user(),rda->config(), RDCut::cartNumber(q->value(0).toString()), RDCut::cutNumber(q->value(0).toString())))!=RDRehash::ErrorOk) { - rda->config()-> - log("rdmaint", - RDConfig::LogErr,QString().sprintf("failed to rehash cut %s [%s]", - (const char *)q->value(0).toString(), - (const char *)RDRehash::errorText(err))); + syslog(LOG_WARNING,"failed to rehash cut %s [%s]", + (const char *)q->value(0).toString().toUtf8(), + (const char *)RDRehash::errorText(err).toUtf8()); } else { diff --git a/utils/rdmetadata/rdmetadata.cpp b/utils/rdmetadata/rdmetadata.cpp index 25ee6cf6..50644f34 100644 --- a/utils/rdmetadata/rdmetadata.cpp +++ b/utils/rdmetadata/rdmetadata.cpp @@ -188,9 +188,6 @@ void MainObject::userChangedData() fprintf(stderr,"%s", qPrintable(QString("rdmetadata: user \"%1\" has no modify carts permission\n") .arg(rda->user()->name()))); - rda->log(RDConfig::LogErr, - QString("rdmetadata: user \"%1\" has no modify carts permission\n") - .arg(rda->user()->name())); exit(256); } diff --git a/utils/sas_shim/sas_shim.cpp b/utils/sas_shim/sas_shim.cpp index 668b5191..30998073 100644 --- a/utils/sas_shim/sas_shim.cpp +++ b/utils/sas_shim/sas_shim.cpp @@ -101,7 +101,7 @@ MainObject::MainObject(QObject *parent) // // Detach // - RDDetach(rda->config()->logCoreDumpDirectory()); + RDDetach(""); FILE *pidfile=fopen("/var/run/sas_shim.pid","w"); fprintf(pidfile,"%d",getpid()); fclose(pidfile); diff --git a/web/rdxport/deleteaudio.cpp b/web/rdxport/deleteaudio.cpp index 6cd0dd1b..6347fdf5 100644 --- a/web/rdxport/deleteaudio.cpp +++ b/web/rdxport/deleteaudio.cpp @@ -2,7 +2,7 @@ // // Rivendell web service portal -- DeleteAudio service // -// (C) Copyright 2010-2018 Fred Gleason +// (C) Copyright 2010-2019 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -19,6 +19,7 @@ // #include +#include #include #include #include diff --git a/web/rdxport/rdxport.cpp b/web/rdxport/rdxport.cpp index 72215bb7..07b985ab 100644 --- a/web/rdxport/rdxport.cpp +++ b/web/rdxport/rdxport.cpp @@ -2,7 +2,7 @@ // // Rivendell web service portal // -// (C) Copyright 2010,2016-2018 Fred Gleason +// (C) Copyright 2010-2019 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -18,14 +18,15 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // +#include +#include +#include +#include +#include +#include #include #include #include -#include -#include -#include -#include -#include #include @@ -448,8 +449,9 @@ void Xport::XmlExit(const QString &str,int code,const QString &srcfile, delete xport_post; } if(code>=400) { - rda->log(RDConfig::LogErr,QString().sprintf("%s '%s' %s",(const char *)str,(const char *)srcfile, - (srcline>0)?(const char *)QString().sprintf("line %d",srcline):"")); + syslog(LOG_WARNING,"%s '%s' %s", + (const char *)str.toUtf8(),(const char *)srcfile.toUtf8(), + (srcline>0)?(const char *)QString().sprintf("line %d",srcline).toUtf8():""); } #ifdef RDXPORT_DEBUG if(srcline>0) { diff --git a/web/rdxport/tests.cpp b/web/rdxport/tests.cpp index 9fe03f83..ea09b18c 100644 --- a/web/rdxport/tests.cpp +++ b/web/rdxport/tests.cpp @@ -2,7 +2,7 @@ // // Rivendell web service portal -- save string test // -// (C) Copyright 2018 Fred Gleason +// (C) Copyright 2018-2019 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -18,11 +18,12 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // +#include +#include #include +#include #include #include -#include -#include #include #include