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@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@f664ec&ApplicationId=1
factId: 1
ACTIVATION CREATED rule:PassportValidation_20
activationId:PassportValidation_20 [2] declarations:
p=nl.o837.frozn.bm.Passport@5e29e5&PassportId=2(2)
OBJECT ASSERTED
value:nl.o837.frozn.bm.Passport@5e29e5&PassportId=2 factId:
2
BEFORE ACTIVATION FIRED rule:PassportValidation_20
activationId:PassportValidation_20 [2] declarations:
p=nl.o837.frozn.bm.Passport@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@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
--
With kind regards,
Geoffrey De Smet