最近我公司的数据流量过大,导致数据库爆掉!
所以,数据库压力增大!
一般来说!
数据库压力增大,可以通过建立中间表,或者log表,通过一个job执行!一步步查!
又或者分离表,见一个很大的表分成很多小表!查询的时候,要更加明确!也可以通过多表查询得到结果!
还有一种就是直接得到日志!
我用的是直接用tomcat创建一个Log日志文件!
首先在config.properties中配置下
加
epg.video.logfile.dir =E:/job/log
然后在spring配置中配置下!也就是启动和退出的时候才启动日志!
<bean id="runtimeService" class="com.viewtoo.epg.service.RuntimeService" init-method="init"
destroy-method="destroy">
<property name="manager">
<ref local="manager"/>
</property>
<property name="epgVideoDrLogFileDir" value="${epg.video.logfile.dir}"/>
</bean>
然后在com.viewtoo.epg.service.RuntimeService类里面配置一个set方法!这个我就不贴代码了!
下面是我的java代码
/**
* 定义log的输出格式,已经存储区域的命名
* @param pathName
* @return Log
*/
private Logger _getLogger(String pathName) {
Logger logs = (Logger)logHandlerMap.get(pathName);
try {
if (logs == null) {
logs = Logger.getLogger("com.viewtoo.epg.logservice." + pathName);
Layout layout = new PatternLayout("%d{yyyy-MM-dd HH:mm:ss}%m%n"); //输出格式
String filePath = this.epgVideoDrLogFileDir + pathName + "_" + DateUtils.formatDate(new Date(), "yyyy-MM-dd") + ".log";
String datePattern = ".yyyy-MM-dd"; //每天
DailyRollingFileAppender appender = new DailyRollingFileAppender(layout, filePath, datePattern);
logs.setLevel(Level.INFO);
logs.addAppender(appender);
logHandlerMap.put(pathName,logs);
}
return logs;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
logHandlerMap 这个我定义的是全局!因为如果不这么定义,会导致log重复输出!
所以!
这么定义方便事例和查找!我debug了也找不到问题!网上找了很多资料!但是,大多数,都无法与我想的逻辑匹配!
所以!这么定义方便!
/**
*
* @param obj
* @param pathName
*/
private void _log2File(Object obj, String pathName) {
Logger logs = this._getLogger(pathName.trim());
if("EpDr".equals(pathName.trim())){
EpDr epDr = (EpDr)obj;
logs.info(epDr.toString());
}
}
上面这么写!是为了方便以后拓展!还有就是!我在EpDr 这个entity中自定义了一个toString方法!
还有,就是该,在创建日志文件的时候,要记得!输出的顺序,要跟数据库的一样!
因为,这样方便查询!而且,也方便以后再DB端操作!
分享到:
相关推荐
通过以上步骤,Tomcat服务器将使用Log4j来管理catalina.out日志,这不但解决了日志文件过大和格式不统一的问题,而且提供了更丰富的日志管理功能,例如,可以利用Log4j强大的过滤、路由和格式化等功能,将日志管理得...
默认情况下,Tomcat的主要日志输出文件是`catalina.out`,它记录了服务器启动、运行和关闭过程中的所有标准输出和错误信息。然而,随着服务器运行时间的增长,`catalina.out`可能会变得非常大,导致日志查找和分析变...
本工程基于Eclipse IDE,配置了一个简单的Log4j设置,实现了每天自动将日志输出到一个特定命名格式的文件中,即“XXX_年月日时分.log”。下面我们将详细解析这个配置及其工作原理。 1. **Log4j介绍**: Log4j是一...
1. **配置文件**:创建一个`log4j.properties`或`log4j.xml`配置文件,定义日志记录的级别、格式和目的地。 2. **引入依赖**:将Log4j的JAR文件添加到Tomcat的`lib`目录,确保Tomcat能识别并加载这个库。 3. **初始...
接下来,我们需要在`Tomcat`的`conf`目录下创建或修改`logging.properties`文件,指定使用`Logback`作为日志处理器。添加以下内容: ``` handlers = 1.org.apache.juli.FileHandler, ch.qos.logback.classic....
`catalina.out`是Tomcat默认的日志文件,它记录了Tomcat启动、运行以及错误信息,对开发者和管理员来说非常重要。然而,如果不进行适当管理,这个日志文件可能会无限制增长,占用大量磁盘空间,甚至可能导致服务器...
2. **Tomcat日志配置文件** - 主要的配置文件位于`$CATALINA_BASE/conf/logging.properties`,这个文件使用Java Logging API(java.util.logging)的配置语法。 - 另外,`server.xml`文件中也可以配置一些基本的...
`rotatable`若设为`true`,Tomcat会根据`fileDateFormat`每天创建新的日志文件。若设为`false`,所有日志都会写入同一文件,可能导致文件过大。 `fileDateFormat`定义了日志文件名的时间格式,如`"yyyy-MM-dd"`表示...
通过 log4j,开发人员可以方便地控制日志消息的级别(如 debug、info、warn 等)、输出格式、以及日志消息的去向(控制台、文件等)。 #### 二、log4j 的核心组件 log4j 主要包含三个核心组件:`Logger`、`...
Log4J的配置文件是其核心部分,因为它定义了日志信息如何被记录、输出以及格式化。以下是关于Log4J配置文件的详细说明。 1. **配置文件基本结构** Log4J的配置文件采用键值对或者XML格式来设定日志行为。一个简单...
- `org.apache.log4j.DailyRollingFileAppender`:每天创建新的日志文件。 - `org.apache.log4j.RollingFileAppender`:文件大小达到指定大小时创建新文件。 - `org.apache.log4j.WriterAppender`:将日志信息写入...
- log4j-x.x.x.jar (日志库) ##### 3. 配置Hibernate - 创建`WEB-INF/classes/`目录下的`hibernate.cfg.xml`文件,内容如下: ```xml <!-- 数据库连接信息 --> <property name="connection.username">sa ...
9. **日志记录**: 使用如Log4j或SLF4J的日志框架,记录系统运行状态和错误信息,便于故障排查和性能优化。 10. **文档说明**: `使用说明.txt`文件包含了项目如何部署、配置和使用的指南,对于用户和运维人员非常...
- **发布与启动**:项目开发完成后,可以通过 Tomcat 或 Nginx 等服务器将应用部署上线,并确保所有必要的资源文件都已正确配置。 #### 4. 代码生成器详解 - **配置与使用**:首先需要配置好代码生成器的相关参数...
本文主要介绍了如何在Eclipse环境下配置Weblogic与Tomcat服务器,以便于调试并打印出执行中的SQL语句,这对于初学者来说是非常有用的。 #### 二、准备工作 为了实现这一目标,首先需要准备几个关键组件: 1. **SQL ...
在logback中,Appender负责将日志信息输出到特定的目标,如ConsoleAppender将日志打印到控制台,FileAppender写入文件。而Layout则定义了日志信息的格式,如PatternLayout可以自定义输出模式。 **7. 日志级别管理**...
Logback 是一个高效、强大的日志处理框架,它是对经典的日志组件log4j的升级和改进版本。在Java世界中,日志记录是应用程序必不可少的一部分,它用于追踪程序运行时的状态,帮助开发者调试和诊断问题。Logback由Ceki...
这个简单的流程包括一个起始节点 (`<start>`),一个序列 (`<sequence>`),以及一个消息处理 (`<onMessage>`),它接收一个消息并打印出 “Hello World!” 的文本。 3. **编译 BPEL 文件** 编写完BPEL文件后,通过...
当开发者使用SLF4J记录日志时,日志框架会根据配置的日志级别决定是否打印日志信息。此外,Spring Boot还支持对日志进行文件滚动、多文件输出等功能。 ### Spring Boot自定义日志 除了Spring Boot提供的基本日志...