[Esapi-user] Console Logging

Chris Schmidt chris.schmidt at owasp.org
Fri Dec 3 12:58:51 EST 2010


Jim ­ I don¹t think making the logSpecial methods protected is complex at
all and provides the most flexibility.


On 12/3/10 10:54 AM, "Springett Steven" <sspringett at us.axway.com> wrote:

>    Thanks Jim and Chris.
>  
>  Chris, your second solution would solve all of my current requirements
> without having to hack up my code too much.
>  
>  Jim, redrecting System.out does work, but I only want to redirect it for
> uninitialized esapi calls, not for my calls to System.out. As a workaround
> this is what I'm currently doing; and it's ugly...
>  
>  - record default printstream for System.out and System.err to static
> variables.
>  - redirect System.out and System.err to log4j
>  - load and initialize esapi
>  - put the original System.out & System.err printstreams back
>  
>   
> 
> From: Jim Manico <jim.manico at owasp.org> <mailto:jim.manico at owasp.org>
>  Sent: Fri, 3 Dec 2010 11:42:55 -0600
>  To: Chris Schmidt <chris.schmidt at owasp.org> <mailto:chris.schmidt at owasp.org>
>  Cc: Springett Steven <sspringett at us.axway.com>
> <mailto:sspringett at us.axway.com> , ESAPI Users <esapi-user at lists.owasp.org>
> <mailto:esapi-user at lists.owasp.org>
>  Subject: Re: [Esapi-user] Console Logging
>  
>   
>>  
>> Chris,
>>  
>>  
>>  
>> This is overly complex. In the short term, I'd recommend just redirecting
>> System.out and System.err to your logger. You can do this without touching
>> the ESAPI code. In fact, I think this is the final solution so we can close
>> this issue. See:
>>  
>> 
>>  
>>  http://edivad.wordpress.com/2007/02/26/systemout-and-systemerr-over-log4j/
>> 
>>  
>>  
>> For more information.
>>  
>> 
>>  -Jim Manico 
>> http://manico.net
>>  
>>  
>> 
>>  On Dec 3, 2010, at 11:24 AM, Chris Schmidt <chris.schmidt at owasp.org>
>> <mailto:chris.schmidt at owasp.org>  wrote:
>>  
>>  
>>  
>>>  
>>>  There is no mechanism for doing this at the current time, however ­ it
>>> would seem this would be a fairly standard request (at least to just be able
>>> to disable the console logging at startup)
>>>  
>>>  Would it be acceptable to disable console logging with an option passed
>>> into such as 
>>>  
>>>  -Desapi.logspecial.enabled=false
>>>  
>>>  I think we will want this enabled by default, but I agree that there should
>>> be a means to turn it off.
>>>  
>>>  As for redirecting the output to another logger ­ it would be possible but
>>> it would have to be code that you wrote. Since the logSpecial methods are
>>> currently private you would have to write your own implementation. However,
>>> it would probably make sense to make the logSpecial methods protected so
>>> that a custom implementation could be written which redirects logSpecial
>>> calls to some other logger.
>>>  
>>>  You could do something like this:
>>>  
>>>  Public class MySecurityConfiguration extends DefaultSecurityConfiguration {
>>>     @Override
>>>     protected void logSpecial(String message) {
>>>        MyLogger.logMessage(message);
>>>     }
>>>  
>>>     @Override
>>>     protected void logSpecial(String message, Exception e) {
>>>        MyLogger.logError(e, message);
>>>     }
>>>  }
>>>  
>>>  This would be a simple change to make ­ but like I said, it is dependent on
>>> the logSpecial methods being changed to protected scope since they are
>>> currently private.
>>>  
>>>  Either way, to implement this will require changes to the ESAPI
>>> DefaultSecurityConfiguration class ­ can you add your request to the google
>>> code issue tracker so we can vote and discuss there?
>>>  
>>>  On 12/3/10 9:49 AM, "Springett Steven" <sspringett at us.axway.com> wrote:
>>>  
>>>   
>>>>    I'm having an issue with logging in esapi.
>>>>   
>>>>   When my application is starting up, it initializes it's logging and does
>>>> other things, then it loads esapi. The esapi logger is not initialized yet
>>>> so it dumps a bunch of logging messages to System.out via the logSpecial()
>>>> method.
>>>>   
>>>>   What I would like is a way to configure esapi to disable console logging
>>>> or to redirect console logging to another type of object which then could
>>>> be used by my application that already has it's loggings system
>>>> initialized.
>>>>   
>>>>   This is the issue that I'm currently having. My server is a console-based
>>>> app. Startup should look like this:
>>>>   
>>>>   
>>>>   MyApp Service Starting
>>>>     License successfully validated
>>>>     Loading database schemas
>>>>       Database schema being created or updated for MyApp
>>>>     Finished loading database schemas
>>>>   MyApp Service Started
>>>>   
>>>>   Instead, it looks like this:
>>>>   
>>>>   MyApp Service Starting
>>>>     License successfully validated
>>>>     Loading database schemas
>>>>       Database schema being created or updated for MyApp
>>>>     Finished loading database schemas
>>>>   Attempting to load ESAPI.properties via file io.
>>>>   Attempting to load ESAPI.properties via file io.
>>>>   Found in 'org.owasp.esapi.resources' directory:
>>>> C:\MyApp\conf\esapi\ESAPI.properties
>>>>   Loaded 'ESAPI.properties' properties file
>>>>   Attempting to load validation.properties via file io.
>>>>   Attempting to load validation.properties via file io.
>>>>   Found in 'org.owasp.esapi.resources' directory:
>>>> C:\MyApp\conf\esapi\validation.properties
>>>>   Loaded 'validation.properties' properties file
>>>>   MyApp Service Started
>>>>   
>>>>   
>>>>   Redirecting System.out and System.err to log4j (what my app uses) prior
>>>> to esapi loading solves this issue, the problem then is that the last line
>>>> "MyApp Service Started" never appears, which is critical.
>>>>   
>>>>   --Steve
>>>>   
>>>> 
>>>> _______________________________________________
>>>>  Esapi-user mailing list
>>>>  Esapi-user at lists.owasp.org
>>>>  https://lists.owasp.org/mailman/listinfo/esapi-user
>>>>  
>>>  
>>>  Chris Schmidt
>>>  ESAPI Project Manager (http://www.esapi.org)
>>>  ESAPI4JS Project Owner (http://bit.ly/9hRTLH)
>>>  Blog: http://yet-another-dev.blogspot.com
>>>  
>>>   
>>>  
>>  
>>>  
>>> _______________________________________________
>>>  Esapi-user mailing list
>>>  Esapi-user at lists.owasp.org
>>>  https://lists.owasp.org/mailman/listinfo/esapi-user
>>>  
>>>  
>>  
>  

Chris Schmidt
ESAPI Project Manager (http://www.esapi.org)
ESAPI4JS Project Owner (http://bit.ly/9hRTLH)
Blog: http://yet-another-dev.blogspot.com


-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.owasp.org/pipermail/esapi-user/attachments/20101203/3bd170ab/attachment.html 


More information about the Esapi-user mailing list