On Fri, Mar 18, 2011 at 10:22, Jerome Velociter <[email protected]> wrote:
> On Fri, Mar 18, 2011 at 9:39 AM, Vincent Massol <[email protected]> wrote:
>> Hi,
>>
>> Right now logs go to a file on the filesystem. However this is not right 
>> since most logs are application logs and should be visible to wiki 
>> developers. For ex, if I use a deprecated API, I need to see it. It 
>> shouldn't go to admins only and shouldn't "pollute" the system logs.
>>
>> Hence I believe we need a Log Console available somewhere (we could make it 
>> avail in the Admin UI FTM).
>>
>> I'd like to discuss an implementation idea I've had this morning:
>>
>> * Send application logs as Observation Events and make the available in the 
>> Activity Stream (AS)
>>
>> Pros:
>> * Infrastructure already in place
>> * Fits the AS goal: temporary information and is purged regularly
>> * (Of course the Activity gadget would not display them)
>> * They can be sent remotely as remote events in the future; this allows 
>> implementing a remote console to monitor an XE or XEM from a distance
>>
>> Cons:
>> * We need to assess the performance risk and more generally we need to make 
>> the AS scalable (I don't think it is now).
>> * 2 ideas for scaling up the Observation/AS:
>> 1) Have the Observation Manager save events to be notified into a Queue and 
>> have one or several separate threads take those events and send them to 
>> listeners. Right now if one listener takes time in its onEvent() method it 
>> slows down the whole chain since they are called serially. Note that if we 
>> want even better scalability, the Queue could be stored externally to XWiki 
>> (a JMS queue for ex) and scalability can be achieved by app server instances 
>> listening to this queue to process it.
>> 2) Have a way to tell the AS what storage to use for specific Event Types. 
>> For example the AS could use an in-memory storage for Log Events while using 
>> a DB storage for other events. This would be useful since I don't think we 
>> really need to store logs in the DB. Note that the cache could be indexed on 
>> the message so only one instance of each log message is preserved (no need 
>> for dups), possibly with a counter to mention how many of them there were 
>> (that's an optimization).
>>
>> I believe 2) might be enough for performances in a first implementation of 
>> the log console.
>>
>> WDYT?
>
> That could be the occasion to introducte a mecanism that enables comet
> communication between the server and the client. [1]
>
> This way logs could be displayed live, without having to refresh the
> UI every now and then.
>
> Note that the comet communication is likely something that the
> extension manager UI could leverage too (to display installation
> progress for example)

Yep that's planned ;) I was thinking of it mostly for question/answer
from the install/uninstall handlers and later install/uninstall
scripts.

>
> Jerome
>
> [1] http://en.wikipedia.org/wiki/Comet_%28programming%29
>
>>
>> Thanks
>> -Vincent
>>
>> _______________________________________________
>> devs mailing list
>> [email protected]
>> http://lists.xwiki.org/mailman/listinfo/devs
>>
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
>



-- 
Thomas Mortagne
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to