log4j与Spring集成

Spring Boot Starter Log4j2 是一个用于集成 Log4j2 日志框架的 Spring Boot 启动器 通过添加这个启动器依赖,开发者可以快速地在项目中配置和使用 Log4j2,而无需手动添加和管理相关的依赖和配置文件。Log4j2 是一个功能强大且灵活的日志记录库,它提供了丰富的功能和配置选项,适用于各种规模的应用程序。通过以上步骤,你就可以在 Spring Boot 项目中使用 Log4j2 进行日志记录了。Log4j2 提供了丰富的功能,如异步日志、文件日志、滚动日志等,可以根据需要进行进一步的配置和扩展。有关以编程方式配置Log4j的信息,可以在扩展Log4j 2和编程Log4j配置中找到。 阅读详情

log4j简介
简单的说log4j就是帮助开发人员进行日志输出管理的API类库。它最重要的特点就
可以配置文件灵活的设置日志信息的优先级、日志信息的输出目的地以及日志信息的输出格式。
Log4j除了可以记录程序运行日志信息外还有一重要的功能就是用来显示调试信息。程序员经常会遇到脱离java ide环境调试程序的情况,这时大多数人会选择使用System.out.println语句输出某个变量值的方法进行调试。这样会带来一个非常麻烦的问题:一旦哪天程序员决定不要显示这些System.out.println的东西了就只能一行行的把这些垃圾语句注释掉。若哪天又需调试变量值,则只能再一行行去掉这些注释恢复System.out.println语句。使用log4j可以很好的处理类似情况。
log4j使用方法
下面介绍的是log4j一些理论方面的知识,读者觉得枯燥的话可以跳过本节直接阅读第三节实例部分。
  1、定义配置文件
  首先使用配置文件将使我们的应用程序更加灵活配置log日志输出方式包括输出优先级、输出目的地、输出格式。Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件log4j.properties(键=值)。下面将介绍使用log4j.properties文件作为配置文件的方法:
  ①配置根Logger,其语法为:0
  log4j.rootLogger = [ level ] , appenderName, appenderName, …
  其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。 appenderName就是指定日志信息输出到哪个地方。可同时指定多个输出目的地。
  ②配置日志信息输出目的地Appender,其语法为:
log4j.appender.appenderName = fully.qualified.name.of.appender.class 
  log4j.appender.appenderName.option1 = value1 
  … 
  log4j.appender.appenderName.option = valueN 
  其中,Log4j提供的appender有以下几种: 
  org.apache.log4j.ConsoleAppender(控制台), 
  org.apache.log4j.FileAppender(文件), 
  org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
  org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件), 
  org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方) 
  ③配置日志信息的格式(布局),其语法为:
  log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class 
  log4j.appender.appenderName.layout.option1 = value1 
  … 
  log4j.appender.appenderName.layout.option = valueN 
  其中,Log4j提供的layout有以下几种: 
  org.apache.log4j.HTMLLayout(以HTML表格形式布局), 
  org.apache.log4j.PatternLayout(可以灵活地指定布局模式), 
  org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串), 
  org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息) 
  Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,打印参数如下: %m 输出代码中指定的消息
  %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL 
  %r 输出自应用启动到输出该log信息耗费的毫秒数 
  %c 输出所属的类目,通常就是所在类的全名 
  %t 输出产生该日志事件的线程名 
  %n 输出一个回车换行符,Windows平台为“ ”,Unix平台为“ ” 
  %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d...{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921 
  %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10) 
    
2、在代码中使用Log4j
  ①得到记录器
  使用Log4j,第一步就是获取日志记录器,这个记录器将负责控制日志信息。其语法为:
  public static Logger getLogger( String name)
  通过指定的名字获得记录器,如果必要的话,则为这个名字创建一个新的记录器。Name一般取本类的名字,比如:
  static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName () )
  ②读取配置文件
  当获得了日志记录器之后,第二步将配置Log4j环境,其语法为:
BasicConfigurator.configure (): 自动快速地使用缺省Log4j环境。
  PropertyConfigurator.configure ( String configFilename) :读取使用Java的特性文件编写的配置文件。
例:PropertyConfigurator.configure(".\\src\\log4j.properties")
  DOMConfigurator.configure ( String filename ) :读取XML形式的配置文件。
  ③插入记录信息(格式化日志信息)
  当上两个必要步骤执行完毕,就可轻松地使用不同优先级别的日志记录语句插入到您想记录日志的任何地方,其语法如下:
  Logger.debug ( Object message ) ;
  Logger.info ( Object message ) ;
  Logger.warn ( Object message ) ;
  Logger.error ( Object message ) ;
log4j范例程序
下面将使用一个最简单的范例程序来进一步说明log4j的使用方法。程序代码如下:

复制代码
 1 import org.apache.log4j.*;
2
3 public class LogTest ...{
4
5
6 static Logger logger = Logger.getLogger(LogTest.class.getName());
7
8 public static void main(String[] args) ...{
9
10 PropertyConfigurator.configure ( “.\srclog4j.properties”);
11 logger.debug("Debug ...");
12
13 logger.info("Info ...");
14
15 logger.warn("Warn ...");
16
17 logger.error("Error ...");
18
19 }
20 }
复制代码

程序说明:
① static Logger logger = Logger.getLogger(LogTest.class.getName());就是创建一个属于LogTest类的Logger对象,创建时要告知Logger你当前的Class是什么。
② PropertyConfigurator.configure ( “log4j.properties”)就是说使用当前工程目录下的src文件夹中的log4j.properties文件作为配置文件。若将log4j.properties放在工程根目录下也可不写此句,程序会自动找到配置文件。
③ logger.debug就是输出debug的信息,logger.info就是输出提示信息,logger.warn就是显示警告信息,logger.error就是显示错误信息。

下面是配置文件log4j.properties的内容:

程序说明:
1. log4j.rootCategory=DEBUG, stdout,R
就是说我要显示所有优先权等於和高于Debug的信息。
"stdout",”R”表示我定义了两个输出端(随便什么名字都好)。
2 .下面的三行说stdout输出端其实是标准输出Console,也就是屏幕。输出的格式是PatternLayout。转换方式是%5p (%F:%L) - %m%n,即前五格用来显示优先权,再显示当前的文件名,加当前的行数。最后是logger.debug()或logger.info()或logger.warn()或logger.error()里的信息。%n表示回车空行。
3 . 再加上下面六行则log信息不光显示在屏幕上,而且将被保存在一个叫"log.txt"的文件里,文件最大为100KB。如果文件大小超过100KB,文件会被备份成"log.txt.1",新的"log.txt"继续记录log信息。
接下来我们可以改变log4j.properties,而不需重新编译就可以控制log信息是否显示、log信息的输出端类型、输出方式、输出格式,
等等。举例如下:
1. 在log4j.properties文件里把"log4j.rootCategory=DEBUG,stdout,R"改写成"log4j.rootCategory=OFF, stdout,R",这样所有的log信息都不会显示了;解决了本文开始提出的问题。

2 . 在log4j.properties文件里把"log4j.rootCategory=DEBUG,stdout,R"改写成"log4j.rootCategory=INFO, stdout,R",这样只显示INFO, WARN, ERROR的log信息,而DEBUG信息不会被显示;

在web程序中使用log4j注意问题
1、 由于jsp或servlet在执行状态时没有当前路径概念,所有使用PropertyConfigurator.configure (String)语句找log4j.properties文件时要给出相对于当前jsp或servlet的路径转化成为一个绝对的文件系统路径。方法是使用servletcontext.getrealpath(string)语句。例:
//得到当前jsp路径
String prefix = getServletContext().getRealPath("/");
//读取log4j.properties
PropertyConfigurator.configure(prefix+\\WEB-INF\\log4j.properties);
2、相应的log4j.properties设置某个属性时也要在程序中设置绝对路径。例:
log4j.appender.R.File属性设置日志文件存放位置。我们可以用读写.properties配置文件的方法进行灵活设置。

log4e使用说明
在了解了log4j的功能后,我们肯定会我们的程序中编写一些Log4j日志记录。对于使用Eclipse的程序员Log4e将是我们最得力的log4j日志编写助手,现在开始Log4e之旅。
Log4e是一个免费的Eclipse Plugin,它可帮助你在你的Java工程中快速加入Log;我们可以在http://log4e.jayefem.de/index.php/Download网站上下载Log4e最新版本。下载后将相应文件夹拷贝到Eclipse的插件目录下,重新Eclipse,在首选项中会多出一个Log4e选项。
Log4e可以有多个插入Log为一个方法、类,当然也可以在当前位置插入Log,同时其也可以把Sysout.out.println()的转换为log;所有的这一切只需要你点点鼠标或者按一次快捷键,

在Spring的项目中配置Log4j

1.在classpath的根目录下面不放置log4j.properties
在用junit本地测试的时候会提示:

log4j:WARN No appenders could be found for logger (org.springframework.beans.factory.access.SingletonBeanFactoryLocator).
log4j:WARN Please initialize the log4j system properly.

然后我们是看不到spring加载bean的配置信息的。
在classpath路径下加入:log4j.properties,则能够显示bean的加载信息

2. 在web应用中为Spring配置log4j
Spring的做法是使用一个Servlet Listener,在Web Container启动时把ROOT的绝对路径写到系统变量里,这样log4j的配置文件里就可以用${myAppfuse.root}来表示刚刚设进去的系统变量:log4j.appender.logfile.File=${myAppfuse.root}/logs/mylog.log
在Web.xml中配置语句如下:

复制代码
 1  <!--如果不设,默认为web.root,但最好设置,以免项目间冲突 -->
2 <context-param>
3 <param-name>webAppRootKey</param-name>
4 <param-value>myappfuse.root</param-value>
5 </context-param>
6 <context-param>
7 <param-name>log4jConfigLocation</param-name>
8 <param-value>/WEB-INF/classes/log4j.properties</param-value>
9 </context-param>
10 <listener>
11 <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
12 </listener>
13 <!--这里配置了一个listener,也可以配置servlet -->
14 <servlet>
15 <servlet-name>log4j</servlet-name>
16 <servlet-class>
17 org.springframework.web.util.Log4jConfigServlet
18 </servlet-class>
19 <load-on-startup>1</load-on-startup>
20 </servlet>
复制代码

配置好了以后我们就可以在当前应用的logs目录下找到日志记录文件:mylog.log
属性log4jConfigLocation的值建议还是设置为:/WEB-INF/classes/log4j.properties,这样我们在不启动web应用的时候,做一些测试这能够正确地记录日志信息。 

Spring Boot集成Log4j详解:从入门到精通 追踪程序执行流程诊断和调试问题监控系统运行状态记录用户操作行为// 简单的日志记录示例logger.info("开始创建订单,订单ID:" + order.getId());try {// 业务逻辑logger.debug("订单处理中...");logger.error("创建订单失败", e);logger.info("订单创建完成");特性Log4j2Logback性能高中低配置方式XML/GroovyProperties异步日志支持支持。 阅读详情

相关推荐

Log4j2在Spring项目中的集成与应用

Log4j2作为Log4j的升级版本,提供了更强大的功能和更高的性能。在实际开发中,你可以根据项目的需要进一步定制日志配置,例如将日志输出到文件、数据库或其他日志服务器。在这个类中,我们通过@Bean注解将MyBean注册为一个Spring Bean,并在main方法中启动Spring容器,获取MyBean的实例并调用其doSomething方法。在这个类中,我们通过LogManager.getLogger获取了一个Logger实例,并在doSomething方法中记录了一条info级别的日志。

2501_90323865的博客 1164

Log4j的使用以及在Spring中集成(转)

[size=18][color=darkred]log4j简介[/color][/size] 简单的说log4j就是帮助开发人员进行日志输出管理的API类库。它最重要的特点就 可以配置文件灵活的设置日志信息的优先级、日志信息的输出目的地以及日志信息的输出格式。 Log4j除了可以记录程序运行日志信息外还有一重要的功能就是用来显示调试信息。程序员经常会遇到脱离java ide环境调试程序的情况...

We all have our style! 193

SLF4J与Spring集成实战:替代JCL并绑定Log4j

在Java开发中,日志框架的选择和集成一直是一个重要的环节。在上述代码中,我们通过@Configuration注解定义了一个Spring配置类,并通过@Bean注解声明了一个MyBean的Bean。在上述代码中,我们通过LoggerFactory.getLogger(MyBean.class)获取了一个与MyBean类绑定的日志实例,并在doSomething方法中记录了一条INFO级别的日志。从输出结果可以看出,Spring的日志和MyBean的日志都通过SLF4J和Log4j正确输出,并且格式一致。

2501_90323865的博客 986

spring整合log4j日志

Log4j是Apache的一个开放源代码项目,通过使用Log4j,控制日志信息输送的目的地可以为控制台、文件、数据库、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;可以控制每一条日志的信息内容和信息输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程;甚至还可以在不需要修改业务逻辑代码、重启web服务,只需要通过一个修改配置文件就可以实...

qq_35240226的博客 7779

手把手教你调试RTL8201F:从芯片手册解读到LWIP驱动移植

本文详细解析了RTL8201F PHY芯片的开发流程,从寄存器配置到LWIP驱动移植,重点介绍了RMII模式下的特殊配置要点和调试技巧。通过实战案例和高级调试方法,帮助工程师解决网络性能问题,实现与FreeRTOS+LWIP协议栈的稳定集成。

ik678901234的博客 972

手把手教你使用ESM-2进行蛋白质结构预测:从安装到实战

本文详细介绍了如何使用ESM-2蛋白质语言模型进行蛋白质结构预测,从环境准备、模型安装到实战应用。通过逐步指导,读者可以掌握ESM-2的配置、单序列预测、结果可视化及高级优化技巧,适用于生物信息学研究和药物开发。

weixin_29306875的博客 533

Java学习笔记——Log4j配置与Spring中使用Log4j

Java日志记录 一、简介 在开发过程中做好日志记录是必不可少的一部分。在线上追踪问题,分析业务逻辑快速定位错误原因,精准解决问题必离不开日志。Java中实现这一功能的狂爱很多,目前常用的有Log4j1、Log4j2、Commons Logging、Slf4j等等。 1、常用框架简介 Log4j:Log4j是Apache的一个开源项目,通过Log4j,可以通过配置文件精...

DivingKitten Coding驿站 2701

反向代理的隐形陷阱:为何你的HTTPS请求会降级为HTTP?

本文深入探讨了Nginx反向代理中HTTPS降级为HTTP的隐形陷阱及其安全风险,分析了五大降级诱因,包括协议信息丢失、重定向配置错误等,并提供了完整的防御性配置方案和实战指南,帮助开发者确保Web应用的安全性。

kotlin6android的博客 453

Log4j的使用和怎么在spring中集成log4j

  log4j简介简单的说log4j就是帮助开发人员进行日志输出管理的API类库。它最重要的特点就可以配置文件灵活的设置日志信息的优先级、日志信息的输出目的地以及日志信息的输出格式。Log4j除了可以记录程序运行日志信息外还有一重要的功能就是用来显示调试信息。程序员经常会遇到脱离java ide环境调试程序的情况,这时大多数人会选择使用System.out.println语

Sonic 的技术博客 2万+

ADS2020实战:村田电感.s2p与.mod文件导入全流程对比(附仿真结果差异分析)

本文详细对比了ADS2020中村田电感的.s2p与.mod文件导入流程及仿真结果差异,重点分析了两种模型在低频段和高频段的精度表现。通过实际案例展示.s2p文件在高频仿真中的优势,以及.mod文件在低频和非线性特性模拟中的准确性,为射频电路设计提供模型选择策略和混合仿真技巧。

weixin_29289821的博客 519

基于python+flask框架的基于微信小程序的CR公司建设项目信息管理系统-前台(开题+程序+论文) 计算机毕设

特别是随着移动互联网技术的普及,企业对便捷、高效的信息管理系统的需求日益迫切。另一方面,该系统集成了仓管、物料、财务、人事、供应商等多个模块,实现了数据的集中管理和信息共享,有助于企业实现精细化管理,降低运营成本,提升决策效率。:深入调研CR公司的业务需求,明确系统应具备的功能模块,包括仓管员管理模块(物料信息、退回记录、申请信息、仓库信息管理)、财务员管理模块(资金信息管理、采购与租赁款项处理)、人事管理模块、供应商管理模块、项目管理模块(项目信息、设备采购、物料采购、设备租赁)、以及考勤打卡模块等。

zhihao503的博客 960

Spring学习笔记—Spring集成log4j

目录 Log4j概念和优点 log4j2配置 log4j的日志级别 日志打印实现 Log4j概念和优点 Log4j是Apache的一个开源日志项目,通过log4j,开发人员可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是远程服务器。可以通过配置文件来灵活配置日志输出格式和日志生成级别,不需要修改应用程序代码,大大降低了对应用程序的侵入性。 log4j2配置 log4j2是通过xml进行配置,一般命名为log4j2.xml。 ...

u012455675的博客 541

openEuler 22.03 安装及配置Gitlab容器

在 openEuler 22.03 上安装及配置Gitlab容器

轻步玉阶 3314

Spring MVC 集成log4j

Spring web项目开发 一、Spring MVC 项目搭建 二、Spring MVC 集成 MyBatis 三、Spring MVC 实现CRUD功能 四、Spring MVC 集成log4j POM依赖 <dependency> <groupId>org.slf4j</groupId> &...

不务正业的野猴子 1059

【Burp入门第三十三篇】BurpSuite+Proxifier安装配置,实现微信小程序抓包

本文介绍Burp+Proxifier安装配置,实现微信小程序抓包

等风来 5873

大模型新闻摘要生成质量评估工具

大模型新闻摘要生成质量评估工具 关键词:大模型、新闻摘要、质量评估、自然语言处理、算法 摘要:本文将探讨大模型新闻摘要生成质量评估工具的设计与应用。首先介绍大模型新闻摘要生成的背景和问题,然后深入分析质量评估的难点和重要性,接着介绍大模型的

AI天才研究院 828

Spring5集成Log4j2日志

Spring已经升级到5.X版本,最近在用Spring5.X集成Log4j2+Slf4j日志时,遇到了版本升级问题的困扰。按照Spring4.X的方式添加jar包,从网上查到的Maven依赖如下, <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactI...

zjh2016的博客 3104

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Spring 如何集成Log4J呢?

Spring 集成Log4J的方法分享,如下所示

qq_25073223的博客 514

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Spring集成log4j,日志初始化过程详解

以前研究过slf4j-log4j的使用,但具体初始化过程不是很清楚,今天闲下来,翻了一下源码,一探究竟。 日志组件介绍:[url]http://www.blogjava.net/daiyongzhi/archive/2014/04/13/412364.html[/url] Log4j包使用说明:[url]http://www.360doc.com/content/10/1224/19/5731...

Donald_Draper 1158

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Spring MVC集成 Log4j

环境及工具: Log4j 2.6.2 Spring 4.3.2.RELEASE Maven 3 Tomcat 8(idea中tomcat配,参考:http://blog.youkuaiyun.com/jiankunking/article/details/51921092) IntelliJ IDEA 15.0.6(开启maven自动导入) 默认情况下,Spring(spring-core)是使用

勿忘初心 3950

Spring集成Log4j和Slf4j

Log4j的集成 Slf4j的集成 Log4j的集成Spring项目中集成Log4j 1. 下载好log4j的jar包(例如:log4j-1.2.11.jar) 2. web.xml<!--log4j配置文件加载--> <context-param> <param-name>log4jConfigLocation</param-name> <param

chen1218chen的专栏 3103

Spring集成log4j2

Spring集成log4j2参考文档配置文件解析Java配置 参考文档 log4j2官方文档: http://logging.apache.org/log4j/2.x/manual/appenders.html#JDBCAppender Log4j2简明教程:内含各种环境变量的用法 https://www.cnblogs.com/lzb1096101803/p/5796849.html 配置文件解析 关键配置文件:module1/conf/log4j2_module1.xml 关键行: 配置自定义日志输出格

weixin_38370441的博客 818

Spring MVC集成Log4j

以下示例显示如何使用Spring Web MVC框架集成LOG4J。首先使用Eclipse IDE,并按照以下步骤使用Spring Web Framework开发基于动态表单的Web应用程序: 创建一个名称为 IntegrateLog4j 的动态WEB项目。 在 com.yiibai.springmvc 包下创建一个Java类:HelloController 。 从maven存储库页面下载...

学亮编程手记 676

Spring集成log4j

第一步:添加log4j的相关包,这个步骤对于spring环境可以省了,应该已经有了。 第二步:在spring的环境中添加log4j的配置: 在web应用中为Spring配置log4j   Spring的做法是使用一个Servlet Listener,在Web Container启动时把ROOT的绝对路径写到系统变量里,这样log4j的配置文件里就可以用${myAppfuse.root

Jor_rosen的技术博客 686

Spring Boot中Log4j 2集成与优化实践指南

在大型项目中,不同模块可能需要不同的日志级别。例如,某些核心模块可能需要更详细的DEBUG级别日志,以便开发人员能够深入分析其内部逻辑;而其他辅助模块则保持INFO级别即可,以避免日志文件过于庞大。Log4j 2允许我们通过配置文件灵活地为不同的包或类设置日志级别,这种灵活性使得日志管理更加精准,能够满足不同模块的个性化需求。

1278

在spring中集成log4j

在spring中集成log4j 1 下载相关jar 下载commons-logging-1.1.1.jar和log4j-1.2.14.jar 2 创建log4j.properties,放在classes目录下 log4j.rootLogger=info,file,console #log4j.logger.console=info log4j.appender.console=org

牵挂著你是那颗我的心 飘呀飘地在你面前捉摸不定 牵挂著你是那份我的情 吹呀吹到你的眼前我的心 我不愿看到你那湿润的眼睛 怕我会忍不住疼你怕你伤心 我不愿听见你说寂寞的声音 怕我会忍不自你说我的真感情 611
上一篇: 安装和使用memcached
下一篇: Hibernate中outerjoin、fetch join的使用
lb8607
博客等级 码龄18年 17粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值