Сделайте это первым из кода Javaзатемнастроить log4j в приложение,
ПРИМЕЧАНИЕ: ручка или улов требуется. Исключение при выполнении кода ниже.
// step-1 : set hostName into System's property, which will use by log4j
System.setProperty("hostName", InetAddress.getLocalHost().getHostName());
//step - 2 : set currentDate into System's property, which will use by log4j
System.setProperty("currentDate", new SimpleDateFormat("dd-MMM-yyyy").format(new Date()));
//step - 3 : now configure/load log4j into Application , if it's not still loaded earlier then.
org.apache.log4j.Logger LOG = Logger.getLogger(YourJavaClassName.class); // ALERT : before this step above 2-step must needs to be execute, otherwise file-name won't appear as you required.
//LOG.debug("anything whatever programmer what to log");
ОБНОВЛЕНО:
Если приложение веб-приложение, то необходимо настроить свойство, которое мы хотим здесь после tomcat-server
начала и до любого application
перспективе,
для этого создать один класс ApplicationConfiguration
, в котором реализован интерфейс ServletContextListener
, который помогает здесь запускать сначала до запуска любого приложения.
сделать то же самое,
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class ApplicationConfiguration implements ServletContextListener{
@Override
public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
try {
// step-1 : set hostName into System's property, which will use by log4j
System.setProperty("hostName", InetAddress.getLocalHost().getHostName());
//step - 2 : set currentDate into System's property, which will use by log4j
System.setProperty("currentDate", new SimpleDateFormat("dd-MMM-yyyy").format(new Date()));
} catch (UnknownHostException e) {
System.out.println("Error Message : " + e.getMessage());
//e.printStackTrace();
}
}
}
......
Установите файл log4j.xml Аналогично,
<appender name="applog" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="${path}/app_${hostName}.${currentDate}.log" />
<param name="MaxFileSize" value="1MB" />
<param name="DatePattern" value=".dd-MM-yyyy" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%d{dd-MM-yyyy HH:mm:ss}] [%-5p] %m%n"/>
</layout>
</appender>
пожалуйста, веб-обновления. xml-файл соответственно,
<web-app ...>
<listener>
<listener-class>
com.pck1.ApplicationConfiguration
</listener-class>
</listener>
</web-app>
Эта конфигурация должны применяться в web.xml
, потому что приложение при запуске, с помощью этой конфигурации она будет следовать за ним, как Контекст-слушателя.
UPDATE 2:
<logger name="packageName.AAA" additivity="false" >
<level value="INFO" />
<appender-ref ref="applog"/>
</logger>
рассмотрите использование 'logback' или' log4j2'. начните с 'SiftingAppender журнала ' – Nati
@ Nati. Пожалуйста, будьте более конкретными. Если возможно, с помощью кода snippet –