After reading what has been said in this thread, I’m trying to
summarize the use of the per-deployment flag:
1.0 When per-deployment is true (default):
1.1 AS7.1.2 is scanning for logging configuration files in your deployment (WAR), If a configuration file is found then that
deployment will get its own log context and be configured via the
configuration file.
1.2 Once the properties file is found, it will be read and the application logging will go to wherever it has been specified to log
(with the corresponding handler).
1.3 Logging jars don’t need to be included with the application.
2.0 Setting the flag to false disables this feature, and the deployment scanner will not look for these files. Therefore:
2.1 You have to use the jboss-deployment-structure.xml to exclude the AS server’s logging dependencies you are using and include them into
your deployment.
2.2 Logging functionality is left up to the application. The application should have all the configuration files and required
libraries (That’s why the server’s libraries have to be excluded)
2.3 If the application had, for example, a log4j.xml but no log4j dependency. The application will stop logging.
Personally, I’m using -Dorg.jboss.as.logging.per-deployment=false when
I get missing dependencies errors at during deployment so that it
displays in the console the stack trace for the missing class.
Otherwise the only error we get in AS7’s console (and server.log) is:
Services with missing/unavailable dependencies Which does not make it easy to track down the missing
dependency.