我正在Servlet 3.0和Tomcat中做一个简单的演示项目
我接受邮递员的JSON请求并提供JSON响应。
现在我也想在我的项目中做日志记录。
所以我使用log4j2
罐子使用:-
log4j-1.2.12.jar,
jackson-databind-2.6.3.jar,
jackson-core-2.6.3.jar
Servlet代码:-
@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中运行代码时,我会在控制台中以模式格式获取日志
但是,当我在远程服务器中部署代码时,在提到的滚动文件附件路径中没有日志。没有创建任何文件。
我的配置有什么问题吗
我还使用了基本配置程序。configure(),还有其他方法吗?
我为你找到了同样的文章。您需要更改目录log4j2.xml)
点击这里!
有两种解释,
这不可能是OP的问题,但我希望你能提醒我。
>
请考虑重用ObjectMapper: Jackson性能, javadoc
在中有一个,可以将日志写入到。 我需要在中使用相同的功能,但我还没有找到这样做的选项。有人知道如何使用实现同样的效果吗?
理想情况下,我想在localhost上记录开发过程中的一切,只记录实时服务器上的错误。我在我的开发平台(Windows 10,JavaWicket)上无法登录文件。 log4j2.xml 我已经设法得到一些日志写入我tomcat的文件夹。 只有我的一些信息出现了。我不知道什么符号有意义,什么符号没有意义。 可公开访问页面的基页记录子类。 [信息]2017-10-19 17:07:13.208[ht
我在Spring Boot应用程序中使用log4j2来简化日志记录。这是我的配置log4j2-dev.xml 我在项目中的基本类 以下是我如何编写日志: 它在正常情况下工作正常。但是,如果我使用Jmetter发送大量请求(总计:7996,平均:98条消息/秒),我会发现日志记录速度太慢,在停止发送请求大约1.5分钟后,日志记录仍在继续,日志文件的容量仍在增加。 我已经搜索了很多,但仍然不知道如何加
问题内容: 我习惯在普通的log4j上使用。现在,我切换到,无法使附加程序正常工作。 下面的附加程序可以正常工作。但是永远不会创建的日志文件。为什么? 问题答案: 该标记缺少属性。
我正在使用log4j2。 我想创建一个RollingFileAppender,它每天旋转日志文件。在应用程序启动之前,日志文件的名称是未知的(日志文件名是从应用程序配置组装而来的)。 这就是为什么我需要在运行时添加RollingFileAppender。 我有以下代码: 问题是这段代码完全没有改变什么。未向配置中添加追加器和记录器。以编程方式创建的“文件记录器”不可用。 执行上述代码后,我使用此代
我使用的是log4j2 2.7版本,并且我配置了log4j2附加器,该附加器应每分钟滚动一次: 但由于一些未知的原因,我在日志翻转期间收到以下异常: 但如果我将%I更新为C://ssvp-api.log//api.%d{yyyymmdd.hhmm}-%I.log,则一切正常,但我不想在日志文件名中添加其他文件号(例如API.20180606.1448-1.log) 有没有机会避免在日志文件名中有文