How to enable the JVM's java.io.serialization logging when running JBoss EAP?

Posted on

Hello,

I am doing some testing regarding the Serialization Filtering security feature of Java for an application running in JBoss EAP. When I use -Djdk.serialFilter=!* to set a very restrictive filter, my application server does not start, which is to be expected. So now I am trying to allow the minimum list of packages that I need. According to the JDK documentation, I can use the JVM logging.properties file to enable log messages that will tell me what classes are being blocked.

I've edited the logging.properties file in my JDK's installation folder and it works for my Java applications running outside of JBoss but when I start my JBoss container, the JVM does not produce the expected log file.

Amy help getting the logging to work would be greatly appreciated.

I am using the JDK version 1.8.0_271 and JBoss EAP 7.2.6.2. Below is the content of my logging.properties file:

############################################################
#       Default Logging Configuration File
#
# You can use a different file by specifying a filename
# with the java.util.logging.config.file system property.  
# For example java -Djava.util.logging.config.file=myfile
############################################################

############################################################
#       Global properties
############################################################

# "handlers" specifies a comma separated list of log Handler 
# classes.  These handlers will be installed during VM startup.
# Note that these classes must be on the system classpath.
# By default we only configure a ConsoleHandler, which will only
# show messages at the INFO and above levels.
handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler

# To also add the FileHandler, use the following line instead.
#handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler

# Default global logging level.
# This specifies which kinds of events are logged across
# all loggers.  For any given facility this global level
# can be overriden by a facility specific level
# Note that the ConsoleHandler also has a separate level
# setting to limit messages printed to the console.
.level= INFO

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

# default file output is in user's home directory.
java.util.logging.FileHandler.pattern = %h/java%u.log
java.util.logging.FileHandler.limit = 999999999
java.util.logging.FileHandler.count = 999
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter

# Limit the message that are printed on the console to INFO and above.
java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

# Example to customize the SimpleFormatter output format 
# to print one-line log message like this:
#     <level>: <log message> [<date/time>]
#
# java.util.logging.SimpleFormatter.format=%4$s: %5$s [%1$tc]%n

############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################

# For example, set the com.xyz.foo logger to only log SEVERE
# messages:
java.io.serialization.level = FINEST