<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi Kirk,<br>
    <br>
    I'm CC'ing serviceability on this since this is really their JEP and
    discussions around it should go on the serviceability list, even
    though it seems you are mainly interested in GC logging at this
    point.<br>
    <br>
    I understand what you want and I see that the logging level won't
    help us get there. I don't agree that the logging we have today
    can't fit nicely into a hierarchical scheme though, it just needs to
    be more fine grained to achieve what you want.<br>
    <br>
    We can be pretty generous with modules and in principal have one
    module for each verbose flag that exists today. Personally I don't
    think that is a good idea, but it certainly is possible. I would
    rather like to propose a different solution.<br>
    <br>
    How about we have a gc module that can be filtered based on
    different sub modules. The sub modules could be fairly close to the
    existing verbose flags that exists today if that turns out to be a
    good way to divide information. It could look like this<br>
    <br>
    -Xverbose:gc=info,gc.tenuring=debug<br>
    <br>
    to set regular gc verbose to info level (I would say that is close
    to PrintGC) and turn on more detailed logging for tenuring. Or<br>
    <br>
    -Xverbose:gc.tenuring<br>
    <br>
    that could be equal to what that flag prints today. Let's see what
    the serviceability team thinks since they are the ones who will
    actually implement this in the end.<br>
    <br>
    Another solution that I don't really like but guess is easier to
    implement is to add the current verbose flag to the actual message
    so that the logs can be filtered based on that. But this will
    clutter the messages and we would still have the problem to decide
    on which level things should get logged.<br>
    /Jesper<br>
    <br>
    <br>
    On 2012-06-20 07:28, Kirk Pepperdine wrote:
    <blockquote
      cite="mid:1BC2C076-7066-406A-87B2-A6F4618B7ECC@kodewerk.com"
      type="cite">Hi Jesper,
      <div><br>
      </div>
      <div>I did read the spec and I do like the ability to specify the
        "component" that you'd like to log information from. So I feel
        that is a great improvement over the (broken) pattern
        established in every major logging Java framework. I'm going to
        stick to GC logging just because I've spent so much time
        puzzling over them and adjusting my parser to deal with all the
        changes that have continuously crept into them. While 'm
        certainly not going to argue for keeping the current GC logging
        framework what I will say is that it's not all bad in that the
        flags that have been provided to me are almost always
        semantically meaningful in that they tell me what I'm going to
        see. In this spirit I'd like to see a category like
        TenuringDetails for example. Is this information INFO, DEBUG, or
        TRACE? hard to say but it's clearly TenuringDetails and so this
        is a subcategory that I'd like to define and it's clearly not a
        subcategory that you'd want to define a generalize logging
        framework. And it is here that this specification over-reaches.
        It tries to define logging categories that are not only are
        devoid of meaning, they assume a hierarchical structure to them.
        Going back to GC logging I would argue that while there is some
        hierarchy in there, most of the messages don't nicely fit into
        this imposed hierarchical developer centric list of categories.</div>
      <div><br>
      </div>
      <div>I think we could easily both agree that it would be
        ridiculous for me to ask that you add PrintTunuring to the list
        of levels yet that is exactly what I want. So I guess what I'm
        asking is, what would the spec look like if you removed the log
        levels from it and allowed me to define my own or to not even
        use levels at all.</div>
      <div><br>
      </div>
      <div>Regards,</div>
      <div>Kirk</div>
      <div><br>
      </div>
      <div>On 2012-06-20, at 1:03 AM, Jesper Wilhelmsson wrote:</div>
      <div>
        <div><br class="Apple-interchange-newline">
          <blockquote type="cite">
            <meta content="text/html; charset=ISO-8859-1"
              http-equiv="Content-Type">
            <div bgcolor="#FFFFFF" text="#000000"> Hi Kirk,<br>
              <br>
              To select what should be logged there should be logging
              modules. A module could be for example class loading, gc,
              jit compiler etc. The logging level is just a way to
              control how much logging you want. Setting gc=info would
              give you some basic gc logging while gc=debug would give
              you more detailed info.<br>
              <br>
              A typical command line could look like<br>
              <pre><code>
-Xverbose:gc=debug,finalizer=info,compiler,alloc,cookies=trace</code></pre>
              /Jesper<br>
              <br>
              <br>
              On 2012-06-19 23:44, Kirk Pepperdine wrote:
              <blockquote
                cite="mid:25BA359D-58E7-48F3-9575-E555A31FE3C2@kodewerk.com"
                type="cite">Hi,
                <div><br>
                </div>
                <div>I see the logging framework JEP finally was
                  published. This is great news.</div>
                <div><br>
                </div>
                <div>I'd like to comment on this quality</div>
                <div><br>
                </div>
                <div><span style="color: rgb(0, 0, 0); font-family:
                    'Bitstream Vera Sans', 'Luxi Sans', Verdana, Arial,
                    Helvetica; font-size: 14px; font-style: normal;
                    font-variant: normal; font-weight: normal;
                    letter-spacing: normal; line-height: 13px; orphans:
                    2; text-align: -webkit-auto; text-indent: 0px;
                    text-transform: none; white-space: normal; widows:
                    2; word-spacing: 0px; -webkit-text-size-adjust:
                    auto; -webkit-text-stroke-width: 0px; display:
                    inline !important; float: none; ">"Logging is
                    performed at different levels: error, warning, info,
                    debug, trace"</span></div>
                <div><span style="color: rgb(0, 0, 0); font-family:
                    'Bitstream Vera Sans', 'Luxi Sans', Verdana, Arial,
                    Helvetica; font-size: 14px; font-style: normal;
                    font-variant: normal; font-weight: normal;
                    letter-spacing: normal; line-height: 13px; orphans:
                    2; text-align: -webkit-auto; text-indent: 0px;
                    text-transform: none; white-space: normal; widows:
                    2; word-spacing: 0px; -webkit-text-size-adjust:
                    auto; -webkit-text-stroke-width: 0px; display:
                    inline !important; float: none; "><br>
                  </span></div>
                <div><span style="color: rgb(0, 0, 0); font-family:
                    'Bitstream Vera Sans', 'Luxi Sans', Verdana, Arial,
                    Helvetica; font-size: 14px; font-style: normal;
                    font-variant: normal; font-weight: normal;
                    letter-spacing: normal; line-height: 13px; orphans:
                    2; text-align: -webkit-auto; text-indent: 0px;
                    text-transform: none; white-space: normal; widows:
                    2; word-spacing: 0px; -webkit-text-size-adjust:
                    auto; -webkit-text-stroke-width: 0px; display:
                    inline !important; float: none; "><span
                      class="Apple-style-span" style="font-family:
                      Helvetica; line-height: normal; font-size: medium;
                      ">If we accept the problems associated with level
                      based logging, these name work for generic
                      frameworks such as Log4J and JDK logging. However,
                      the names are meaningless in that they carry no
                      semantic context with what would be logged. The
                      nice thing about the current set of flags is they
                      convey the information that will be printed.</span></span></div>
                <div><span style="color: rgb(0, 0, 0); font-family:
                    'Bitstream Vera Sans', 'Luxi Sans', Verdana, Arial,
                    Helvetica; font-size: 14px; font-style: normal;
                    font-variant: normal; font-weight: normal;
                    letter-spacing: normal; line-height: 13px; orphans:
                    2; text-align: -webkit-auto; text-indent: 0px;
                    text-transform: none; white-space: normal; widows:
                    2; word-spacing: 0px; -webkit-text-size-adjust:
                    auto; -webkit-text-stroke-width: 0px; display:
                    inline !important; float: none; "><span
                      class="Apple-style-span" style="font-family:
                      Helvetica; line-height: normal; font-size: medium;
                      "><br>
                    </span></span></div>
                <div><span style="color: rgb(0, 0, 0); font-family:
                    'Bitstream Vera Sans', 'Luxi Sans', Verdana, Arial,
                    Helvetica; font-size: 14px; font-style: normal;
                    font-variant: normal; font-weight: normal;
                    letter-spacing: normal; line-height: 13px; orphans:
                    2; text-align: -webkit-auto; text-indent: 0px;
                    text-transform: none; white-space: normal; widows:
                    2; word-spacing: 0px; -webkit-text-size-adjust:
                    auto; -webkit-text-stroke-width: 0px; display:
                    inline !important; float: none; "><span
                      class="Apple-style-span" style="font-family:
                      Helvetica; line-height: normal; font-size: medium;
                      ">On the question of log levels. I was hoping that
                      we would have learned from the follies of using
                      level based logging instead of a digital or tag
                      based system. IOWs a on or off different aspects
                      without having to eat the whole elephant of
                      records that some developer arbitrarily decided
                      should be dumped at a particular log level. One
                      can level tags.. but you can't get tags or digital
                      behaviour from levels.</span></span></div>
                <div><span style="color: rgb(0, 0, 0); font-family:
                    'Bitstream Vera Sans', 'Luxi Sans', Verdana, Arial,
                    Helvetica; font-size: 14px; font-style: normal;
                    font-variant: normal; font-weight: normal;
                    letter-spacing: normal; line-height: 13px; orphans:
                    2; text-align: -webkit-auto; text-indent: 0px;
                    text-transform: none; white-space: normal; widows:
                    2; word-spacing: 0px; -webkit-text-size-adjust:
                    auto; -webkit-text-stroke-width: 0px; display:
                    inline !important; float: none; "><span
                      class="Apple-style-span" style="font-family:
                      Helvetica; line-height: normal; font-size: medium;
                      "><br>
                    </span></span></div>
                <div><span style="color: rgb(0, 0, 0); font-family:
                    'Bitstream Vera Sans', 'Luxi Sans', Verdana, Arial,
                    Helvetica; font-size: 14px; font-style: normal;
                    font-variant: normal; font-weight: normal;
                    letter-spacing: normal; line-height: 13px; orphans:
                    2; text-align: -webkit-auto; text-indent: 0px;
                    text-transform: none; white-space: normal; widows:
                    2; word-spacing: 0px; -webkit-text-size-adjust:
                    auto; -webkit-text-stroke-width: 0px; display:
                    inline !important; float: none; "><span
                      class="Apple-style-span" style="font-family:
                      Helvetica; line-height: normal; font-size: medium;
                      ">Kind regards,</span></span></div>
                <div><span style="color: rgb(0, 0, 0); font-family:
                    'Bitstream Vera Sans', 'Luxi Sans', Verdana, Arial,
                    Helvetica; font-size: 14px; font-style: normal;
                    font-variant: normal; font-weight: normal;
                    letter-spacing: normal; line-height: 13px; orphans:
                    2; text-align: -webkit-auto; text-indent: 0px;
                    text-transform: none; white-space: normal; widows:
                    2; word-spacing: 0px; -webkit-text-size-adjust:
                    auto; -webkit-text-stroke-width: 0px; display:
                    inline !important; float: none; "><span
                      class="Apple-style-span" style="font-family:
                      Helvetica; line-height: normal; font-size: medium;
                      ">Kirk Pepperdine</span></span></div>
              </blockquote>
            </div>
            <span><jesper_wilhelmsson.vcf></span></blockquote>
        </div>
        <br>
      </div>
    </blockquote>
  </body>
</html>