[rules-users] log4j has no logging, but setup according to documentation

Geoffrey De Smet ge0ffrey.spam at gmail.com
Thu Aug 2 10:34:09 EDT 2012


Drools Planner logs to slf4j, from which you can configure logging with 
log4j or logback (and others) to log to whatever and however you need it.

Drools Expert (the rule engine itself) does not log to anything by default.
A) You can add KnowledgeRuntimeLoggerFactory.newFileLogger(...) but that 
will not give you the flexibility of a logging framework (such as 
rolling files, backup files, controlling verbosity by package, 
controlling verbosity by INFO/DEBUG/TRACE, log pattern configuration, ...).
B) You can implement your own WorkingMemoryLogger and pipe that to 
slf4j, but WorkingMemoryLogger will probably not log anything of other 
drools expert systems, such as the KnowledgeAgent, changeset problems, 
xls to rules converstion, ... Those messages will still be send to 
System.out.
C) If you want Drools Expert to log to slf4j by default, vote for this 
issue: https://issues.jboss.org/browse/JBRULES-3551

Op 02-08-12 11:07, Tom Eugelink schreef:
> I'm still pretty new to drools (5.4.0 final) and I would like to see 
> what Drools does; rules validation, MVEL expression evaluation, etc.
>
> There is a webpage that says that in order to activate logging I need 
> to add a line to my log4j.xml:
> /http://docs.jboss.org/drools/release/5.4.0.Final/drools-planner-docs/html_single/index.html#d0e2947
> /
> First remark is that the XML is old style log4j; the current XML uses 
> loggers and levels instead of category and priority. Beside that, it 
> does not seem to work. After I've added /<logger 
> name="org.drools"><level value="debug" /></logger>/ to my xml, nothing 
> is logged. I know for sure that log4j via slf4j is working:
>
> /log4j: Trying to find [log4j.xml] using context classloader 
> sun.misc.Launcher$AppClassLoader at 1c672d0.
> log4j: Using URL 
> [file:/C:/Documents%20and%20Settings/User/My%20Documents/frozn/components/engine/_build/log4j.xml] 
> for automatic log4j configuration.
> ...
> 2012-08-02 10:55:04,400 INFO 
> nl.o837.frozn.engine.drools.test.DroolsExcelTrial.main(DroolsExcelTrial.java:49) 
> running trail
> ...
> /
> However there is no Drools logging output on the console, only the 
> print statements I've placed in the entity models. If I add this line 
> to the code:
> /KnowledgeRuntimeLoggerFactory.newConsoleLogger(sessionObject);/
>
> Then there is some logging output:
> /OBJECT ASSERTED 
> value:nl.o837.frozn.bm.Application at f664ec&ApplicationId=1 factId: 1
> ACTIVATION CREATED rule:PassportValidation_20 
> activationId:PassportValidation_20 [2] declarations: 
> p=nl.o837.frozn.bm.Passport at 5e29e5&PassportId=2(2)
> OBJECT ASSERTED value:nl.o837.frozn.bm.Passport at 5e29e5&PassportId=2 
> factId: 2
> BEFORE ACTIVATION FIRED rule:PassportValidation_20 
> activationId:PassportValidation_20 [2] declarations: 
> p=nl.o837.frozn.bm.Passport at 5e29e5&PassportId=2(2)
> /
> So Drools actually is producing logging information.
>
> Is the documentation on the webpage incorrect? How do I get the 
> logging information I would like?
>
> Tom
>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users


-- 
With kind regards,
Geoffrey De Smet

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20120802/d2045458/attachment.html 


More information about the rules-users mailing list