Note that there are some explanatory texts on larger screens.

plurals
  1. POStrange Log4J error calling grails war w/ Grails 2.1
    primarykey
    data
    text
    <p>When I am executing <code>grails -skipTests -verbose -plainOutput war</code> on the command line it tries to configure logging for production environment. However, I do not want any app logging while building the war. Does anybody know why Grails tries to do that and how to avert it? Thanks.</p> <p>The directory where it tries to log to does not exist on the BuildAgent. But this is the point. There is no app running, I just want to build a war.</p> <p>My log config:</p> <pre><code>// log4j configuration log4j = { appenders { def logDir = '/someDirectory/' if (Environment.getCurrentEnvironment() in [Environment.DEVELOPMENT, Environment.TEST]) { logDir = 'log/' } def logFile = "${logDir}someLog.log" def stacktraceLogFile = "${logDir}stacktrace.log" appender new org.apache.log4j.DailyRollingFileAppender(name: "file", layout: pattern(conversionPattern: "%d{[ dd.MM.yy HH:mm:ss.SSS]} [%t] %-5p %c %x - %m%n"), file: logFile, datePattern: "'.'yyyy-MM-dd") appender new org.apache.log4j.DailyRollingFileAppender(name: "stacktrace", layout: pattern(conversionPattern: "%d{[ dd.MM.yy HH:mm:ss.SSS]} [%t] %-5p %c %x - %m%n"), file: stacktraceLogFile, datePattern: "'.'yyyy-MM-dd") } error 'org.codehaus.groovy.grails.web.servlet', // controllers 'org.codehaus.groovy.grails.web.pages', // GSP 'org.codehaus.groovy.grails.web.sitemesh', // layouts 'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping 'org.codehaus.groovy.grails.web.mapping', // URL mapping 'org.codehaus.groovy.grails.commons', // core / classloading 'org.codehaus.groovy.grails.plugins', // plugins 'org.springframework' root { warn 'stdout', 'file' environments { production { error 'stdout', 'file' } } } } </code></pre> <p>My stacktrace:</p> <pre><code>java.io.FileNotFoundException: /someDirectory/stacktrace.log (No such file or directory) at java.io.FileOutputStream.openAppend(Native Method) at java.io.FileOutputStream.&lt;init&gt;(FileOutputStream.java:192) at java.io.FileOutputStream.&lt;init&gt;(FileOutputStream.java:116) at org.apache.log4j.FileAppender.setFile(FileAppender.java:294) ... at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:226) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:52) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:145) at gant.Gant.executeTargets(Gant.groovy:590) at org.codehaus.groovy.grails.cli.GrailsScriptRunner.executeWithGantInstance(GrailsScriptRunner.java:748) at org.codehaus.groovy.grails.cli.GrailsScriptRunner.executeScriptFile(GrailsScriptRunner.java:551) at org.codehaus.groovy.grails.cli.GrailsScriptRunner.executeScriptWithCaching(GrailsScriptRunner.java:452) at org.codehaus.groovy.grails.cli.GrailsScriptRunner.callPluginOrGrailsScript(GrailsScriptRunner.java:396) at org.codehaus.groovy.grails.cli.GrailsScriptRunner.executeCommand(GrailsScriptRunner.java:371) at org.codehaus.groovy.grails.cli.GrailsScriptRunner.main(GrailsScriptRunner.java:232) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.groovy.grails.cli.support.GrailsStarter.rootLoader(GrailsStarter.java:234) at org.codehaus.groovy.grails.cli.support.GrailsStarter.main(GrailsStarter.java:262) </code></pre> <p><em><strong>Update</em></strong></p> <p>I just noticed that this exception is exposed only when verbose logging is enabled with Grails (i.e. on my Jenkins build agent). To me it seems like an undesirable behavior that is hidden by normal stdout logging.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload