log4j使用;将log4j日志同时输出到控制台和文件中
1、引入依赖: log4j.jar
<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>
2、 在src/main/resources下创建log4.properties文件
# Define the root logger with file appender log4j.rootLogger = DEBUG,FILE,STDOUT # Define the file appender log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender log4j.appender.FILE.File=logs/run.log log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n log4j.appender.FILE.DatePattern='_'yyyy-MM-dd # 输出目的地详细设置: #定义对应输出目的地:log4j.appender.appenderName = fully.qualified.name.of.appender.class. #### ConsoleAppender:控制台输出 #### log4j.appender.STDOUT = org.apache.log4j.ConsoleAppender # 输出到控制台 log4j.appender.STDOUT.Target = System.out # 指定控制台输出日志级别 log4j.appender.STDOUT.Threshold = INFO # 默认值是 true, 表示是否立即输出 log4j.appender.STDOUT.ImmediateFlush = true # 设置编码方式 log4j.appender.STDOUT.Encoding = UTF-8 # 日志输出布局 log4j.appender.STDOUT.layout = org.apache.log4j.PatternLayout # 如果日志输出布局为PatternLayout 自定义级别,需要使用ConversionPattern指定输出格式 log4j.appender.STDOUT.layout.ConversionPattern =[%d{yyyy-MM-dd HH:mm:ss,SSS}]-[%p] -%c -%r -%l.%M(%L) | %m%n

# consoleAppender和saveFile可以自己定义,但下文中配置名称必须你定义的保持一致 log4j.rootLogger=DEBUG,ERROR,consoleAppender,saveFile # ConsoleAppender 输出 log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout log4j.appender.consoleAppender.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%l]-[%p] %m%n ##文件输出:RollingFileAppender log4j.appender.saveFile=org.apache.log4j.RollingFileAppender #保存log文件路径 log4j.appender.saveFile.File=D:\\file\\logs\\interfaceAuto.log # 默认为true,添加到末尾,false在每次启动时进行覆盖 log4j.appender.saveFile.Append=true # 一个log文件的大小,超过这个大小就又会生成1个日志 # KB ,MB,GB log4j.appender.saveFile.MaxFileSize=10MB #如果log4j.appender.file.ImmediateFlush=true,意味着输出流会立即输出,不会缓冲,设置为false的话,输出流不会立即输出;我这里设置为false后,发现日志没有存到文件中 log4j.appender.saveFile.ImmediateFlush=true # 最多保存20个文件备份 log4j.appender.saveFile.MaxBackupIndex=20 # MaxBackupIndex 最大记录的文件数为1 超过删除较早的。 #log4j.appender.RFA.MaxBackupIndex=10 # 输出文件的格式 log4j.appender.saveFile.layout=org.apache.log4j.PatternLayout log4j.appender.saveFile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n # Druid #log4j.logger.druid.sql=ERROR,consoleAppender,saveFile,DEBUG #log4j.logger.druid.sql.DataSource=INFO,DEBUG,consoleAppender,saveFile #log4j.logger.druid.sql.Connection=INFO,DEBUG,consoleAppender,saveFile #log4j.logger.druid.sql.Statement=INFO,DEBUG,consoleAppender,saveFile #log4j.logger.druid.sql.ResultSet=INFO,DEBUG,consoleAppender,saveFile
3、在类中使用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~