Hi,

On Mon, Nov 15, 2010 at 03:42:21PM +0100, Bernd Schubert wrote:
> On Friday, November 12, 2010, Lars Ellenberg wrote:
> > On Fri, Nov 12, 2010 at 05:04:41PM +0100, [email protected] wrote:
> > > # HG changeset patch
> > > # User Bernd Schubert <[email protected]>
> > > # Date 1289577717 -3600
> > > # Node ID 975046c034e72b7edcdc5fcd2f14edcca83fe937
> > > # Parent  b4cf81f29f57fa7b6afe1f6dfbf8efaa6511accd
> > > cl_log: Always print the common log entity to syslog messages
> > > 
> > > Pacemaker logs a lot of messages to system logs and always
> > > with different entities. As different entities are difficult
> > > to filter out with a generic rule, we always add the common
> > > log entity for syslog messages. That allows to write a simple
> > > filter rules.
> > > 
> > > Using local log facilities also often does not work out, as
> > > those can freely taken by any daemon. Especially when one relies
> > > on that to filter out messages from the generic log file
> > > (usually /var/log/messages), relying on a local facility might have
> > > unwanted side effects.
> > > 
> > > Signed-off-by: Bernd Schubert <[email protected]>
> > > 
> > > diff --git a/lib/clplumbing/cl_log.c b/lib/clplumbing/cl_log.c
> > > --- a/lib/clplumbing/cl_log.c
> > > +++ b/lib/clplumbing/cl_log.c
> > > @@ -531,7 +531,7 @@ cl_direct_log(int priority, const char*
> > > 
> > >   int     needprivs = !cl_have_full_privs();
> > >   
> > >   if (entity == NULL){
> > > 
> > > -         entity =cl_log_entity;
> > > +         entity = cl_log_entity;
> > > 
> > >   }
> > >   
> > >   pristr = use_priority_str ? prio2str(priority) : "";
> > > 
> > > @@ -541,13 +541,10 @@ cl_direct_log(int priority, const char*
> > > 
> > >   }
> > >   
> > >   if (syslog_enabled) {
> > > 
> > > -         if (entity) {
> > > -                 strncpy(common_log_entity, entity, MAXENTITY);
> > > -         } else {
> > > -                 strncpy(common_log_entity, DFLT_ENTITY, MAXENTITY);
> > > -         }
> > > -
> > > -         common_log_entity[MAXENTITY-1] = '\0';
> > > +         if (!entity)
> > > +                 entity = "";
> > > +         snprintf(common_log_entity, MAXENTITY, "%s %s",
> > > +                  cl_log_entity, entity);
> > 
> > This may truncate entity, and of course breaks existing filtering setups
> > that trigger on it.

Right. So, this needs to be optional.

> >  Are we sure that adding in the "cl_log_entity" to
> > the "entity" is worth it?
> > Alternatives (may be worse, I don't know):
> > rather prepend it to the message?
> > make sure cl_log_entity is very short?
> > Or does it fit for all practical purposes, anyways?
> 
> In loggingdaemon.h:
> 
> /* Messages sent to the logging daemon */
> #define       LD_LOGIT        2
> #define MAXENTITY     32
> 
> 
> I don't think there is a risk to get above that. But I have no objections to 
> increase it. 

Probably not though one never knows.

> As I wrote in the patch comment, filter rules based on localX are not optimal 
> and filtering on "localX *and* a-single-word" does not work, as there is no 
> common-log entity so far (I always found that quite annoying).

Don't worry, some will get annoyed by the new format. BTW, can
you show what would a message look like?

Cheers,

Dejan

> Thanks,
> Bernd
> _______________________________________________________
> Linux-HA-Dev: [email protected]
> http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
> Home Page: http://linux-ha.org/
_______________________________________________________
Linux-HA-Dev: [email protected]
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/

Reply via email to