I have a structure as follows: Class A is started via main method Class A
starts Class B using ProcessBuilder (via main method of course) Class B starts
Class C using its Constructor
I want each class to have its own log and to use a single log4j2.xml file.
Appender has the following:
<RollingFile
name="file"
fileName="${sys:loggingFileName}.log"
…
</RollingFile>
Each Class has code similar to this:
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.LoggerContext;
import org.slf4j.LoggerFactory;
private static final Logger log = LoggerFactory.getLogger (A.class);
System.setProperty ("loggingFileName", “A”);
LoggerContext context = (LoggerContext) LogManager.getContext (false);
If there were only these classes involved, everything would work, but there are
many other classes that do logging.
For example, Class D is referenced by Classes A, B, and C and only has this
code:
private static final Logger log = LoggerFactory.getLogger (D.class);
I would like the output from Class D referenced from Class A to be in log A,
but it may wind up in log A, B, or C.
Is there a way to construct the logs so that output for Class D winds up in:
log A when referenced from A log B when referenced from B log C when referenced
from C.
--
Gerard Gagliano
505-792-3331 Office
505-463-3999 Mobile
Prodentity
Corrales, NM 87048-6935
http://www.prodentity.com <http://www.prodentity.com/>