java日志打印建议

java日志打印建议

  
在action中catch到Exception的时候用以下语句将异常记录到日志文件中,以下写法可以保证异常堆栈的信息被记录到日志文件中,方便排查问题

错误写法:log.error("查询异常:" + e);
2012-10-12 09:52:52.921 ERROR [http-8080-6](MaLogAction.java:49) - 查询异常:java.lang.NullPointerException

正确写法:log.error("查询异常:", e);
2012-10-12 09:52:52.921 ERROR [http-8080-6](MaLogAction.java:49) - 查询异常:
java.lang.NullPointerException
atcom.xmair.rams.manager.system.domain.MaLog.getTablename(MaLog.java:50)
atcom.xmair.rams.manager.system.service.MaLogService.getMaLogListPs(MaLogService.java:68)
atcom.xmair.rams.manager.system.service.MaLogService$$FastClassByCGLIB$$9f2f5029.invoke()
atnet.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
atorg.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)
atorg.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
atcom.xmair.common.cache.ehcache.CacheFindInterceptor.invoke(CacheFindInterceptor.java:60)
atorg.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
atorg.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
atorg.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
atorg.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)
atcom.xmair.rams.manager.system.service.MaLogService$$EnhancerByCGLIB$$6915a2f2.getMaLogListPs()
atcom.xmair.rams.manager.system.action.MaLogAction.list(MaLogAction.java:46)
atcom.xmair.rams.manager.system.action.MaLogAction.init(MaLogAction.java:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)
atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
atcom.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)

0

<think>好的,用户想知道如何在IntelliJ IDEA中正确配置并打印Java日志文件。首先,我需要回顾一下相关的知识,特别是关于日志框架的配置和IDEA的设置步骤。 首先,Java常用的日志框架有Log4j2、Logback和java.util.logging。用户的问题可能涉及这些框架中的一种,所以需要分别说明配置方法。另外,IDEA本身也提供了日志查看的工具,比如控制台输出和日志文件监控,这部分也需要涵盖进去。 接下来,根据引用[2]和[3],IDEA中的运行配置可以设置环境变量、JVM参数等,这些可能影响日志文件的输出路径和级别。例如,用户可能需要通过修改运行配置来指定日志配置文件的位置或者调整日志级别。 然后,具体步骤可能包括:添加日志依赖(比如Maven或Gradle中的依赖)、创建日志配置文件(如logback.xml或log4j2.xml)、在代码中获取Logger并记录日志,以及在IDEA中配置运行参数来指定日志配置文件的位置。此外,还需要指导用户如何在IDEA中实时查看日志,比如使用内置的终端或配置日志文件监控。 还要注意用户可能遇到的常见问题,比如配置文件未被正确加载、日志级别设置不当、日志路径权限问题等,需要给出相应的检查建议。例如,检查运行配置的Working Directory是否正确,或者查看控制台是否有配置错误的信息。 最后,生成相关问题时要围绕日志配置的其他方面,比如调整日志级别、输出格式,或者与其他工具集成,如SLF4J。同时,确保引用正确,引用[2]和[3]主要涉及运行配置,可以关联到设置环境变量或JVM参数来影响日志行为。</think>### 如何在 IntelliJ IDEA 中配置并打印 Java 日志文件 #### 1. **配置日志框架** Java 常用日志框架包括 Log4j2、Logback 或 java.util.logging。以 Logback 为例: - **添加依赖**(Maven): ```xml <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.11</version> </dependency> ``` - **创建配置文件**:在 `src/main/resources` 下新建 `logback.xml`,示例内容: ```xml <configuration> <appender name="FILE" class="ch.qos.logback.core.FileAppender"> <file>application.log</file> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <root level="INFO"> <appender-ref ref="FILE" /> </root> </configuration> ``` 此配置会将日志输出到项目根目录的 `application.log` 文件中[^2]。 #### 2. **代码中记录日志** ```java import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class Main { private static final Logger logger = LoggerFactory.getLogger(Main.class); public static void main(String[] args) { logger.info("Application started"); logger.error("Test error message"); } } ``` #### 3. **IDEA 运行配置调整** - 在运行配置中设置 **Working Directory** 为项目根目录(确保日志文件路径正确)[^3]。 - 如需指定自定义配置文件路径,可在 **VM options** 中添加: ``` -Dlogback.configurationFile=/path/to/logback.xml ``` #### 4. **实时查看日志** - **控制台输出**:运行程序后,日志会默认输出到 IDEA 的 **Run** 窗口。 - **文件监控**:通过 **Tools → Log File Watcher** 添加 `application.log` 文件,实时追踪日志变化。 #### 5. **常见问题排查** - 若日志文件未生成,检查: 1. 配置文件是否在 `src/main/resources` 目录下; 2. 文件权限是否允许写入; 3. 日志级别是否设置为 `INFO` 或更低(如 `DEBUG`)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值