我正在编写一个将在 tomcat 服务器上运行的应用程序。该应用程序为我们服务的每个客户实例化多次。
我正在向应用程序介绍 Log4j。将创建一个客户端文件并将日志输出写入其中。
我面临的问题是每次创建新实例时,其他客户端的日志输出都会写入新的客户端日志文件。
在应用程序中,我像这样为每个日志实例化记录器:
private static final Logger logger = Logger.getLogger(name_of_class.class);
我如何确保应用程序的先前实例只会记录到它自己的文件,而不会溢出到其他客户端?
最佳答案
所以我设法解决了它。
问题在于在记录器所在的类之后命名记录器。我所做的是将记录器声明移动到其他类调用的方法。
当调用该方法时,它会实例化一个以客户端命名的记录器,即
Logger.getLogger("客户端名称");
这样输出总是只写入客户端文件,即使类被实例化,客户端记录器被调用。
感谢您帮助我完成思考过程。
关于java - Log4j 每个实例写入一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25669574/