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(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
--
With kind regards,
Geoffrey De Smet