After reading what has been said in this thread, I'm trying to summarize the use of the per-deployment flag:
1. 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. 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 <one or more transitive dependencies> Which does not make it easy to track down the missing dependency.
|Retrieving data ...|