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.  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. 
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).


Thanks,
Bernd
_______________________________________________________
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