Ние правим програма, която се състои от няколко вградени буркана. Всеки буркан изисква индивидуален лог файл. Проблемът е, че когато се опитваме да влезем в основния jar файл, лог съобщенията се записват в лог файловете на другите буркани.
Това е кодът на основния jar файл.
static Logger logCore = LogManager.getLogger(); //log file created
public static void main(String[] args)
{
LoggerContext context = (org.apache.logging.log4j.core.LoggerContext) LogManager.getContext(false);
org.apache.logging.log4j.core.selector.BasicContextSelector
File file = new File("/home/pi/NetBeansProjects/CoreService/dist/log4j2.xml");
context.setConfigLocation(file.toURI());
logCore.info("Core Service initiated"); //Log here is done in the lof od the Core jar as expected
//Run methods of another jar (DBcontrollers)
try
{
SmartBoxSN = DBControllers.DeviceSetupController.GetOwnDeviceSetupFieldNameID(3).Value;
}
catch(SQLException | ClassNotFoundException ex)
{
}
logCore.info("Core Service initiated"); //Log here is wrongly done in the log file of DBControllers
}
Как можем да изберем лог файла, в който искаме да влезем?