Quoting Dwight Engen (dwight.en...@oracle.com):
> +/*
> + * Build the path to the log file
> + * @name     : the name of the container
> + * @lxcpath  : the lxcpath to use as a basename or NULL to use LOGPATH
> + * Returns malloced path on sucess, or NULL on failure
> + */
> +static char *build_log_path(const char *name, const char *lxcpath)
>  {
>       char *p;
>       int len, ret;
>  
>       /*
> -      * '$logpath' + '/' + '$name' + '.log' + '\0'
> -      * or
> +      * If USE_CONFIGPATH_LOGS is true the resulting path will be:
>        * '$logpath' + '/' + '$name' + '/' + '$name' + '.log' + '\0'
> -      * sizeof(LOGPATH) includes its \0
> +      *
> +      * If USE_CONFIGPATH_LOGS is false the resulting path will be:
> +      * '$logpath' + '/' + '$name' + '.log' + '\0'
>        */
> -     len = sizeof(LOGPATH) + strlen(name) + 6;
> +     len = strlen(name) + 6; /* 6 == '/' + '.log' + '\0' */
> +     if (!lxcpath)
> +             lxcpath = LOGPATH;
>  #if USE_CONFIGPATH_LOGS
> -     len += strlen(name) + 1;  /* add "/$container_name/" */
> +     len += strlen(lxcpath) + 1 + strlen(name) + 1;  /* add 
> "/$container_name/" */
> +#else
> +     len += strlen(lxcpath) + 1;
>  #endif
>       p = malloc(len);
>       if (!p)
>               return p;
>  #if USE_CONFIGPATH_LOGS
> -     ret = snprintf(p, len, "%s/%s/%s.log", LOGPATH, name, name);
> +     ret = snprintf(p, len, "%s/%s/%s.log", lxcpath, name, name);
>  #else
> -     ret = snprintf(p, len, "%s/%s.log", LOGPATH, name);
> +     ret = snprintf(p, len, "%s/%s.log", lxcpath, name);

Hi Dwight,

I've pushed this patch to staging, but I do notice an oddity when
USE_CONFIGPATH_LOGS=n (as on ubuntu).  When I now start a container
with an lxcpath, i.e. lxc-start -n c1 -P /home/serge/lxcbase,
then the logfile is at /home/serge/lxcbase/dir1.log, not
/home/serge/lxcbase/dir1/dir1.log.  I think it would be better to have
something like

 #if USE_CONFIGPATH_LOGS
        ret = snprintf(p, len, "%s/%s/%s.log", lxcpath, name, name);
 #else
        if (lxcpath == default_lxc_path())
                ret = snprintf(p, len, "%s/%s.log", lxcpath, name);
        else
                ret = snprintf(p, len, "%s/%s/%s.log", lxcpath, name, name);
 #endif

Well, that or we use $lxcpath/logs/$name.log, but I prefer to keep the
rule: we either use $LOGPATH/$name.log, or else
$lxcpath/$name/$name.log, always.

Thoughts?

thanks,
-serge

------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Lxc-devel mailing list
Lxc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-devel

Reply via email to