package org.drools.core.command.runtime.rule; import org.drools.core.command.impl.ExecutableCommand; import org.drools.core.command.impl.RegistryContext; import org.kie.api.KieServices; import org.kie.api.runtime.KieSession; import org.kie.api.runtime.Context; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlRootElement; import java.io.File; @XmlRootElement @XmlAccessorType( XmlAccessType.NONE ) public class EnableAuditLogCommand implements ExecutableCommand<Void> { private static final long serialVersionUID = -2615993429554597508L; @XmlAttribute( required = true ) private String directory; @XmlAttribute( required = true ) private String filename; private String auditLogFile; public EnableAuditLogCommand( String directory, String filename ) { this.directory = directory; this.filename = filename; if ( directory != null ) { auditLogFile = directory + File.separator + filename; } } @Override public Void execute( Context context ) { KieSession ksession = ((RegistryContext) context).lookup( KieSession.class ); KieServices.Factory.get().getLoggers().newFileLogger( ksession, auditLogFile ); return null; } @Override public String toString() { return "KieServices.Factory.get().getLoggers().newFileLogger( ksession, " + auditLogFile + " )"; } }