diff options
Diffstat (limited to 'LogParser/src/main/java/org/onap/xacml/parser/CleanUpSystemLogDB.java')
-rw-r--r-- | LogParser/src/main/java/org/onap/xacml/parser/CleanUpSystemLogDB.java | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/LogParser/src/main/java/org/onap/xacml/parser/CleanUpSystemLogDB.java b/LogParser/src/main/java/org/onap/xacml/parser/CleanUpSystemLogDB.java new file mode 100644 index 000000000..9d3189ca3 --- /dev/null +++ b/LogParser/src/main/java/org/onap/xacml/parser/CleanUpSystemLogDB.java @@ -0,0 +1,86 @@ +/*- + * ============LICENSE_START======================================================= + * LogParser + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + + +package org.onap.xacml.parser; + +import java.text.Format; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.TimerTask; +import java.sql.Connection; +import java.sql.SQLException; + + +import org.onap.policy.common.logging.flexlogger.FlexLogger; + +public class CleanUpSystemLogDB extends TimerTask{ + + private static org.onap.policy.common.logging.flexlogger.Logger logger = FlexLogger.getLogger(CleanUpSystemLogDB.class.getName()); + Connection localConnect = null; + int timeFrame = 5; //default + public CleanUpSystemLogDB(Connection dbConnect, int argTimeFrame) { + localConnect = dbConnect; + if(argTimeFrame > 0){ + timeFrame = argTimeFrame; + } + } + String className = this.getClass().getSimpleName(); + + @Override + public void run() { + + Date date = new Date(); + Format formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + logger.debug("cleanLogDBTableEntries:Cleanup systemlogdb starts on date:" + formatter.format(date)); + try { + cleanLogDBTableEntries(localConnect, timeFrame); + } catch (SQLException e) { + logger.error(e); + } + + logger.debug(className + " Cleanup systemlogdb done"); + } + + public static void cleanLogDBTableEntries(Connection dbConnect, int timeFrame) throws SQLException { + + Connection connect = dbConnect; + if(dbConnect == null || dbConnect.isClosed()) { + connect = ParseLog.getDbConnection(); + } + try ( + java.sql.PreparedStatement statement = connect + .prepareStatement("DELETE FROM SYSTEMLOGDB WHERE date < DATE_SUB(CURDATE(), INTERVAL ? DAY)"); + ){ + + statement.setInt(1, timeFrame); + + int records = statement.executeUpdate(); + + logger.debug("cleanLogDBTableEntries:deleting Log files ended with " + records + " deleted."); + statement.close(); + + } catch (Exception e) { + logger.error("Failed to create SQLContainer for System Log Database", e); + } finally{ + connect.close(); + } + } +} |