<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=iso-8859-1"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><title>Logging to stderr and stdout</title><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:3.0cm 2.0cm 3.0cm 2.0cm;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1351564756;
        mso-list-type:hybrid;
        mso-list-template-ids:206611958 -43894396 67502083 67502085 67502081 67502083 67502085 67502081 67502083 67502085;}
@list l0:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:"Times New Roman";}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body bgcolor=white lang=DA link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><a name="_MailEndCompose"><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>The question is who needs to read what and when.  There is a vast difference between what a normal user needs to see, and what a developer needing to do forensic analysis needs to know. <o:p></o:p></span></a></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>You may want to do something like this:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoListParagraph style='text-indent:-18.0pt;mso-list:l0 level1 lfo1'><![if !supportLists]><span lang=EN-US style='font-size:11.0pt;font-family:Symbol;color:#1F497D'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>         </span></span></span><![endif]><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Anything at level INFO or above is intended to be seen by a normal user, and the log message should be written to reflect that.  You may want to raise the threshold to WARN depending on your users.  The output for normal users go to standard error (since this is messages, not program output which can be piped further on to other programs).<o:p></o:p></span></p><p class=MsoListParagraph style='text-indent:-18.0pt;mso-list:l0 level1 lfo1'><![if !supportLists]><span lang=EN-US style='font-size:11.0pt;font-family:Symbol;color:#1F497D'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>         </span></span></span><![endif]><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Two log files are kept in parallel – one for anything at level INFO or above, and one for level DEBUG or above.  The first one is used by the initial technical worker called in for triaging the situation, and the second one for the developer responsible for investigating.  In an emergency situation the last one may even be generated for TRACE and above.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>So to answer your question I would suggest you log at INFO or WARN and above depending on what the users need to see, and do so to standard error.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>/Thorbjørn<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> logback-user-bounces@qos.ch [mailto:logback-user-bounces@qos.ch] <b>On Behalf Of </b>Steve Ramage<br><b>Sent:</b> 21. oktober 2012 00:30<br><b>To:</b> logback-user@qos.ch<br><b>Subject:</b> [logback-user] Logging to stderr and stdout<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>I had a question about the conventions of logging. We have an application scientific in nature, and basically it runs some process for some amount of time, and then finishes with it's output. All output in the program is driven by logback, and we generally hide the complexity of logback from our users, and support very limited configuration as needed.<o:p></o:p></span></p><p><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'> <o:p></o:p></span></p><p><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>One issue is where error and warning messages should go for users.<o:p></o:p></span></p><p><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'> <o:p></o:p></span></p><p><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>One argument is that they should go to stderr.  stdout should have INFO, DEBUG, and TRACE. There doesn't seem to be an easy way to do this in logback.<o:p></o:p></span></p><p><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'> <o:p></o:p></span></p><p><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>Another argument is that they should go to stderr. stdout should also have them, but also INFO, DEBUG, and TRACE. If the user is running directly then both get spammed together.<o:p></o:p></span></p><p><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'> <o:p></o:p></span></p><p><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>A final option is they should all go to stdout, as these are all log messages, and there is no need to split them<o:p></o:p></span></p><p><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'> <o:p></o:p></span></p><p><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>Now this isn't so much a religious argument,  we are just more wondering what the conventions were, as we would like to follow them as much possible.<o:p></o:p></span></p><p><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'> <o:p></o:p></span></p><p><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>Thanks,<o:p></o:p></span></p><p><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'> <o:p></o:p></span></p><p><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>Steve Ramage<o:p></o:p></span></p><p><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'> <o:p></o:p></span></p></div></body></html>