[wildfly-dev] Reading Logs from Web Console

Jaikiran Pai jpai at redhat.com
Wed Sep 25 03:34:22 EDT 2013


On Wednesday 25 September 2013 09:25 AM, Ondrej Zizka wrote:
> 1) Could it have a "read-log-file()" without name= specified, which 
> would read the "current" log file?
Given the way logger categories and appenders/handlers interact, within 
a logging framework, I don't think there's any notion of "current log 
file". It's a very valid scenario where a single logging category can be 
backed by different appenders (some of themfile appenders) with 
different attributes and each such appender writing out to a different 
file.So having a name of the log file you want to view, becomes necessary.

-Jaikiran

> 2) Regarding security - what, besides logs, do we expect to be in the 
> log dir? Could the admin block it by setting write-only rights?
>
> Ondra
>
> On 25.9.2013 02:40, James R. Perkins wrote:
>> I'm replying to this old thread to reopen this conversation about 
>> reading log files. I've complete some work [1] on reading log files 
>> via an operation. This is not exactly like the JIRA suggests where it 
>> would only read the last 10 error messages. All this change allows is 
>> the raw contents of the file to be read. The idea is this could be 
>> used to read the entire contents of the log file as a whole, or in 
>> chunks.
>>
>> What I've done is added two new operations list-log-files and 
>> read-log-file.
>>
>> The list-log-files simply lists all files in the 
>> jboss.server.log.dir. This may or may not be a good idea really. I 
>> can see some potential security risks here mainly just seeing files 
>> that may contain sensitive data. One way I've thought of to get 
>> around that is read the logging subsystem model and only show files 
>> from known types like the file-handlers. The main issue with that is 
>> there is no good way to get this to work for custom-handlers.
>>
>> The read-log-file simple does what it says and reads the contents of 
>> a log file line by line. Reading line by line should work for the 
>> most part unless the an non-standard line delimiter is used. There 
>> are 5 options for this option;
>>
>>   * name (required): the name of the log file to read
>>   * encoding: the encoding for the log file
>>   * lines: the number of lines to read, defaults to 10
>>   * skip: the number of lines to skip before adding the results
>>   * tail: true to read from the bottom up, default is true
>>
>> The result of this is just a list of lines with the \n or \r\n 
>> stripped. Just to clarify too a line means a line in the file, not a 
>> log record e.g. stack traces are generally composed of multiple lines.
>>
>> So this begs the question, will this work for what we want? What 
>> concerns does anyone else have?
>>
>> I have not yet submitted a PR yet as I wanted to get some feedback 
>> before we bake it in.
>>
>>
>> [1]: https://github.com/jamezp/wildfly/compare/WFLY-280-read
>>
>>
>> On 08/14/2013 10:03 AM, James R. Perkins wrote:
>>> I had posted this to another list, but this is a more appropriate 
>>> place for it. I think there needs to be a general discussion around 
>>> this as it's been mentioned, at least to me, a few times here and 
>>> there and I know Heiko raised the issue some time a go now.
>>>
>>> The original JIRA, WFLY-280[1], is to display the last 10 error 
>>> messages only. To be honest I wouldn't find that very useful. To me 
>>> if I'm looking for logs I want to see all logs, but that's not 
>>> always so easy. Like the syslog-handler which doesn't log to a file 
>>> so there is no way to read those messages back.
>>>
>>> The current plan for the last 10 error messages is we store messages 
>>> in a queue that can be accessed via an operation. This works fine 
>>> until the error message you're interested in is 11 or you want to 
>>> see warning messages.
>>>
>>> Another option I had come up with is reading back the contents of 
>>> the file, for example the server.log. This could be problematic too 
>>> in that there is no way to filter information like only see error 
>>> messages or only see warning messages. To solve this I have 
>>> considered creating a JSON formatter so the results could be 
>>> queried, but I don't think it should be a default which would mean 
>>> it's not reliable for the console to assume it's getting back JSON.
>>>
>>> I've also thought about, haven't tested this and it may not work at 
>>> all, creating a handler that uses websockets to send messages. I'm 
>>> not sure how well this would work and it's possible it may not even 
>>> work for bootstrap logging.
>>>
>>> With regards to audit logging, we're probably going to have to do 
>>> something totally different from what we'll do in the logging 
>>> subsystem since it doesn't use standard logging.
>>>
>>> I guess the bottom line is what does the console want to see? Do you 
>>> want to see all raw text log messages? Do you want all messages but 
>>> in a format like JSON that you can query/filter? Do you really want 
>>> only the last 10 error messages only? All or none of these might be 
>>> possible, but I really need to understand the needs before I can 
>>> explore more in depth what the best option would be.
>>>
>>> [1]: https://issues.jboss.org/browse/WFLY-280
>>> -- 
>>> James R. Perkins
>>> Red Hat JBoss Middleware
>>
>> -- 
>> James R. Perkins
>> Red Hat JBoss Middleware
>>
>>
>> _______________________________________________
>> wildfly-dev mailing list
>> wildfly-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/wildfly-dev
>
>
>
> _______________________________________________
> wildfly-dev mailing list
> wildfly-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/wildfly-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/wildfly-dev/attachments/20130925/b16f30f1/attachment-0001.html 


More information about the wildfly-dev mailing list