Я делаю простой демонстрационный проект в Servlet 3.0 и Tomcat
Я принимаю запрос JSON от Почтальона и предоставляю ответ JSON.
Теперь я также хочу войти в свой проект.
Так что я должен использовать log4j2
Используемые банки : -
log4j-1.2.12.jar,
jackson-databind-2.6.3.jar,
jackson-core-2.6.3.jar
Код сервлета: -
@WebServlet("/StatusServlet")
public class TestingServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
Logger logger = Logger.getLogger(TestingServlet.class);
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
BasicConfigurator.configure();
String requestData = request.getReader().lines().collect(Collectors.joining());
System.out.println(requestData);
// 2. initiate jackson mapper
ObjectMapper mapper = new ObjectMapper();
TestingPojo pojo = mapper.readValue(requestData, TestingPojo.class);
logger.info("status "+pojo.getStatus());
PrintWriter out = response.getWriter();
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
mapper.writeValue(out, pojo.getStatus());
out.flush();
}
Каталог моих проектов: -
Webservice
|-src
|- com
|-test
TestingPojo.java
TestingServlet.java
log4j2.xml
Мой log4j.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<Configuration status="TRACE">
<Properties>
<Property name="logPath">/tmp</Property>
<!-- <Property name="patternInfo">%d{dd/MMM/yyyy HH:mm:ss,SSS} %F : %C
: %M() : THREAD[%t] : LINE[%L] : [%m]%n</Property> -->
<Property name="patternInfo">%d{dd/MMM/yyyy HH:mm:ss,SSS} %m%n</Property>
</Properties>
<Appenders>
<RollingFile name="RollingFile" fileName="${logPath}/i-am.log"
filePattern="${logPath}/webservice-%d{yyyy-MM-dd}-%i.log">
<PatternLayout pattern="${patternInfo}" />
<Policies>
<SizeBasedTriggeringPolicy size="10MB" />
<TimeBasedTriggeringPolicy interval="1"
modulate="true" />
</Policies>
<!-- <DefaultRolloverStrategy max="10 MB"/> -->
</RollingFile>
</Appenders>
<Loggers>
<Logger name="root" level="debug" additivity="false">
<appender-ref ref="RollingFile" level="debug" />
</Logger>
<Root level="TRACE" additivity="false">
<AppenderRef ref="RollingFile" />
</Root>
</Loggers>
</Configuration>
Когда я запускаю код в eclipse, я получаю журналы в консоли в формате шаблона.
Но когда я развертываю код на удаленном сервере, я не получаю журналы по указанному пути Rolling File Appender. Файл не создается.
Что-то не так с моими конфигурациями?
Также я использовал Basic Configurator.configure (), есть ли другой способ?