Argument to start JVM in "quiet" mode?

I’ve tried to Google for this, but I’m not seeing anything that I understand (with my skill level on server management). We’re currently running Lucee CFML from this base image:

FROM lucee/lucee:5.3.7.47-light-nginx-tomcat9.0-jdk8-openjdk

And, when it starts-up, the JVM dumps thousands of lines of output to the console, which then get slurped into our log aggregation. Is there a JVM / JAVA_OPTIONS way for me to start the JVM up in “quiet mode” or “silent mode”, so that it only outputs errors not general informational values.

For example, I’ll see loads of stuff like this:

INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.1.1d 10 Sep 2019]
INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.2.25] using APR version [1.6.5].

I’d love to not have those show up in my logs. Not only is this noisy, but it also costs money (log volume).

I should also mention that I think we start the JVM with supervisor:

[program:lucee]
command=/usr/local/tomcat/bin/catalina.sh run

Any suggestions?

Those come from Tomcat, so I’d check the docs there. Another good way to get rid of all that Tomcat output is to use the ortussolutions/commandbox image. We have full control over the servlet container (CommandBox/JBoss Undertow) and our ‘quiet mode’ is on by default :slight_smile:

Yeah, trying to hone in the right Google keywords has been tricky since this is quite a bit below (in the stack) my level of understanding. As far as CommandBox, that ship may have sailed - if no other reason, I’m not technical enough with the server stuff to understand all the ramifications. But, will keep that in mind.

I’m a little confused as you seem to have figured out how to use the Lucee image just fine, and IMO it’s more difficult to configure and customize than the CommandBox one. Like, you’ve literally taken the harder road here and figured it out just fine, so I personally have faith in your ability to do even better with the CommandBox container :slight_smile: The CommandBox image is going to do whatever the Lucee image does, but with

  • CFConfig baked in
  • dotenv baked in
  • easier to add fusionreactor (just add the module)
  • easier to add elastic APM (just add the module)
  • Full env var support for all CFConfig settings
  • full env var support for all server settings

What you don’t see is the frantic legs just below the surface of the water :smiley: Heck, even with CommandBox locally, I usually have to stop and start it a few times and try “forgetting” various servers before the right server even starts. That’s not a knock on CommandBox - only a demonstration of how comfortable I an in the code vs. getting the server started.

@bennadel

in path to lucee install usually /opt/lucee

you have in /tomcat/conf/logging.properties

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.AsyncFileHandler

change the INFO to WARN or ERROR
restart tomcat / lucee

2 Likes

@Terry_Whitney I see a logging.properties file at:

/usr/local/tomcat/conf/logging.properties

… but, I am not sure what you are saying about /opt/lucee? Are you saying I should create a copy of that file in /opt/lucee and then modify it?

hi @bennadel

where and how do you have lucee installed, as it Catalina that is causing all your logs to explode.

If you are not sure my guess based upon your given command is

/usr/local/tomcat/

so you would type in
cd /usr/local/tomcat

from there type in
ls

you should see something that says conf
cd conf
now type in ls
you should see something that says “logging.properties”

if you are not familiar with VI you can try vim, or pico

:slight_smile:

1 Like

Sorry, to be clear, I do see the logging.properties file in the tomcat/conf folder. I was just unclear if you were saying I should edit that file directly; or, create a copy of it that would act as an override somewhere. It sounds like you are saying I should edit that directly.

Thanks!!

1 Like

I always make a backup copy of conf files, just in case

cp filename file.sav just in case something goes horribly wrong, and it can

Totally. In this case, I’ll actually be copying it into a Docker Image as part of the build process. So, if something goes wrong, I can just comment that line out and the old file will be left in place. I’m not great at Docker, really, but there’s already some Tomcat config stuff in the Dockerfile, so I’m just gonna follow what they do.

1 Like