蓄电池监控管理平台线程监控管理程序;兼容Linux版本
添加Log4J打印配置避免平台安装包打印日志过长,占用服务器磁盘,以及添加服务器C盘清理功能
5个文件已添加
15个文件已修改
178 ■■■■ 已修改文件
BattMonitor_FBS9100S_ListenSystemForLinux/.classpath 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_ListenSystemForLinux/ServerRestart.bat 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_ListenSystemForLinux/bin/com/del/TmpFileUtil$1.class 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_ListenSystemForLinux/bin/com/del/TmpFileUtil.class 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_ListenSystemForLinux/bin/com/listen/ListenSystem_SQL.class 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_ListenSystemForLinux/bin/com/listen/ListenSystem_Thread.class 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_ListenSystemForLinux/bin/com/sql/Sql_Mysql.class 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_ListenSystemForLinux/bin/com/version_inf/version_inf.txt 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_ListenSystemForLinux/bin/main/main_FBS9100S_ListenSystem.class 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_ListenSystemForLinux/fbs9100s_listensystem_x64_logs/error.log 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_ListenSystemForLinux/fbs9100s_listensystem_x64_logs/info.log 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_ListenSystemForLinux/lib/log4j-api-2.15.0.jar 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_ListenSystemForLinux/lib/log4j-core-2.15.0.jar 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_ListenSystemForLinux/log4j2_fbs9100s_listensystem_x64.xml 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_ListenSystemForLinux/src/com/del/TmpFileUtil.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_ListenSystemForLinux/src/com/listen/ListenSystem_SQL.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_ListenSystemForLinux/src/com/listen/ListenSystem_Thread.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_ListenSystemForLinux/src/com/sql/Sql_Mysql.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_ListenSystemForLinux/src/com/version_inf/version_inf.txt 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_ListenSystemForLinux/src/main/main_FBS9100S_ListenSystem.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_FBS9100S_ListenSystemForLinux/.classpath
@@ -21,5 +21,7 @@
    <classpathentry kind="lib" path="lib/spring-context-2.5.5.jar"/>
    <classpathentry kind="lib" path="lib/spring-core-2.5.5.jar"/>
    <classpathentry kind="lib" path="lib/sqljdbc4.jar"/>
    <classpathentry kind="lib" path="lib/log4j-api-2.15.0.jar"/>
    <classpathentry kind="lib" path="lib/log4j-core-2.15.0.jar"/>
    <classpathentry kind="output" path="bin"/>
</classpath>
BattMonitor_FBS9100S_ListenSystemForLinux/ServerRestart.bat
@@ -8,14 +8,4 @@
net start BMS_FBSDEV_BADBATT
net stop BMS_FBSDEV_PLAN
net start BMS_FBSDEV_PLAN
net stop BMS_FBS61850_BATT
net start BMS_FBS61850_BATT
net stop BMS_BATT_LOADUPDATE
net start BMS_BATT_LOADUPDATE
net stop BMS_BATT_FGCD_A059
net start BMS_BATT_FGCD_A059
net stop BMS_PEAK_SUPPRESSION_PLAN
net start BMS_PEAK_SUPPRESSION_PLAN
net stop WEB_PLATFORM_SERVER
net start WEB_PLATFORM_SERVER
exit
BattMonitor_FBS9100S_ListenSystemForLinux/bin/com/del/TmpFileUtil$1.class
Binary files differ
BattMonitor_FBS9100S_ListenSystemForLinux/bin/com/del/TmpFileUtil.class
Binary files differ
BattMonitor_FBS9100S_ListenSystemForLinux/bin/com/listen/ListenSystem_SQL.class
Binary files differ
BattMonitor_FBS9100S_ListenSystemForLinux/bin/com/listen/ListenSystem_Thread.class
Binary files differ
BattMonitor_FBS9100S_ListenSystemForLinux/bin/com/sql/Sql_Mysql.class
Binary files differ
BattMonitor_FBS9100S_ListenSystemForLinux/bin/com/version_inf/version_inf.txt
@@ -3,6 +3,7 @@
V1.103    at 2023-04-15
    1.修复自身程序服务重启后及一直重启自身服务
    2.添加log4j日志打印配置
    
V1.102
BattMonitor_FBS9100S_ListenSystemForLinux/bin/main/main_FBS9100S_ListenSystem.class
Binary files differ
BattMonitor_FBS9100S_ListenSystemForLinux/fbs9100s_listensystem_x64_logs/error.log
BattMonitor_FBS9100S_ListenSystemForLinux/fbs9100s_listensystem_x64_logs/info.log
New file
@@ -0,0 +1,11 @@
2024-07-19 10:46:00.201 [main] [INFO] main.main_FBS9100S_ListenSystem - /****************************************************************
2024-07-19 10:46:00.203 [main] [INFO] main.main_FBS9100S_ListenSystem - *****************************************************************
2024-07-19 10:46:00.203 [main] [INFO] main.main_FBS9100S_ListenSystem - ****************************************************************/
2024-07-19 10:46:00.204 [main] [INFO] main.main_FBS9100S_ListenSystem - Welcome To Use ListenSystem V1.103 RC_20170505 app_for_fbs_free_only
2024-07-19 10:46:00.205 [main] [INFO] main.main_FBS9100S_ListenSystem - ListenSystem Server Start At...2024-07-19 10:46:00
2024-07-19 10:46:00.205 [main] [INFO] main.main_FBS9100S_ListenSystem - Waiting For MySQL_FBSDEV Start ...
2024-07-19 10:46:00.229 [main] [INFO] main.main_FBS9100S_ListenSystem - IP:127.0.0.1port3360
2024-07-19 10:46:00.543 [main] [INFO] main.main_FBS9100S_ListenSystem - 开始监测2024-07-19 10:46:00
2024-07-19 10:46:00.716 [main] [INFO] main.main_FBS9100S_ListenSystem - 获取数据库连接成功
2024-07-19 10:46:00.733 [Thread-5] [INFO] com.listen.ListenSystem_Thread - Thread-5 - ListenSystem_Thread Started at 2024-07-19 10:46:00
2024-07-19 10:47:00.430 [Thread-5] [INFO] com.listen.ListenSystem_Thread - 重启4个服务:BMS_FBSDEV,BMS_FBSDEV_ALARM,BMS_FBSDEV_BADBATT,BMS_FBSDEV_PLAN;停止0个服务:;2024-07-19 10:47:00
BattMonitor_FBS9100S_ListenSystemForLinux/lib/log4j-api-2.15.0.jar
Binary files differ
BattMonitor_FBS9100S_ListenSystemForLinux/lib/log4j-core-2.15.0.jar
Binary files differ
BattMonitor_FBS9100S_ListenSystemForLinux/log4j2_fbs9100s_listensystem_x64.xml
New file
@@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30">
    <properties>
        <Property name="PATTERN_LAYOUT">%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] [%level] %logger{36} - %msg%n</Property>
        <property name="LOG_HOME">fbs9100s_listensystem_x64_logs</property>
    </properties>
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="${PATTERN_LAYOUT}" />
        </Console>
        <!--warn及以下日志-->
        <RollingFile name="INFO" fileName="${LOG_HOME}/info.log" filePattern="${LOG_HOME}/info-%d{yyyyMMdd}-%i.log.gz">
            <PatternLayout pattern="${PATTERN_LAYOUT}"/>
            <Filters>
                <!--如果是error级别拒绝-->
                <ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>
                <!--如果是info\warn输出-->
                <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
            <Policies>
                <TimeBasedTriggeringPolicy />
                <!--单个文件大小-->
                <SizeBasedTriggeringPolicy size="20MB"/>
            </Policies>
            <!--保存日志文件个数-->
            <DefaultRolloverStrategy max="15">
                <Delete basePath="${LOG_HOME}/" maxDepth="2">
                    <IfFileName glob="*.log.gz" >
                        <IfAny>
                          <IfAccumulatedFileCount exceeds="14" />
                        </IfAny>
                    </IfFileName>
                    <!--!Note: 这里的age必须和filePattern协调, 后者是精确到dd, 这里就要写成xd, xD就不起作用,另外, 数字最好>2, 否则可能造成删除的时候, 最近的文件还处于被占用状态,导致删除不成功!-->
                    <!--30天-->
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>
        <!--error级别日志输出-->
        <RollingFile name="ERROR" fileName="${LOG_HOME}/error.log" filePattern="${LOG_HOME}/error-%d{yyyyMMdd}-%i.log.gz">
            <PatternLayout pattern="${PATTERN_LAYOUT}"/>
            <Filters>
                <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="20MB"/>
            </Policies>
            <DefaultRolloverStrategy max="15">
                <Delete basePath="${LOG_HOME}/" maxDepth="2">
                    <IfFileName glob="*.log.gz" >
                        <IfAny>
                          <IfAccumulatedFileCount exceeds="14" />
                        </IfAny>
                    </IfFileName>
                    <!--!Note: 这里的age必须和filePattern协调, 后者是精确到dd, 这里就要写成xd, xD就不起作用,另外, 数字最好>2, 否则可能造成删除的时候, 最近的文件还处于被占用状态,导致删除不成功!-->
                    <!--30天-->
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="trace">
            <AppenderRef ref="Console" />
            <appenderRef ref="INFO" />
            <appenderRef ref="ERROR" />
        </Root>
    </Loggers>
</Configuration>
BattMonitor_FBS9100S_ListenSystemForLinux/src/com/del/TmpFileUtil.java
@@ -8,6 +8,9 @@
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
//import org.apache.logging.log4j.LogManager;
//import org.apache.logging.log4j.Logger;
//
@@ -19,10 +22,10 @@
 *
 */
public class TmpFileUtil {
    private static Logger logger;
    
    public static void delTmpFile() {
        //Logger logger = LogManager.getLogger(main_MonitorServer_CKPower.class);
        logger = LogManager.getLogger(TmpFileUtil.class);
        
        String OS = System.getProperty("os.name").toLowerCase();
        //System.out.println(OS);
@@ -47,7 +50,7 @@
                        try {
                            Files.delete(file);
                        } catch (Exception e) {
                            //logger.error(e.toString(), e);
                            logger.error(e.toString(), e);
                        }
//                      }
                      return FileVisitResult.CONTINUE;
@@ -66,7 +69,7 @@
                              try {
                                Files.delete(dir);
                            } catch (Exception e) {
                                //logger.error(e.toString(), e);
                                logger.error(e.toString(), e);
                            }
                          } else {
                              throw exc;
BattMonitor_FBS9100S_ListenSystemForLinux/src/com/listen/ListenSystem_SQL.java
@@ -49,7 +49,7 @@
                System.out.println("tb_process_survey create OK!");
            }
        } catch (SQLException e) {
            e.printStackTrace();
            sql.logger.error(e.toString(), e);
        } finally{
            sql.close_con();
        }
@@ -82,14 +82,14 @@
                list.add(p);
            }
        } catch (SQLException e) {
            e.printStackTrace();
            sql.logger.error(e.toString(), e);
        } finally{
            try {
                if(rs != null){
                    rs.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
                sql.logger.error(e.toString(), e);
            }
            sql.close_con();
        }
@@ -115,7 +115,7 @@
                sql.sqlMysqlUseDB(Sql_Mysql.WEB_Site);
                sql.makeManualCommit(sqls);
            } catch (SQLException e) {
                e.printStackTrace();
                sql.logger.error(e.toString(), e);
            } finally{
                sql.close_con();
            }            
@@ -149,7 +149,7 @@
                sql.sqlMysqlUseDB(Sql_Mysql.WEB_Site);
                sql.makeManualCommit(sqls);
            } catch (SQLException e) {
                e.printStackTrace();
                sql.logger.error(e.toString(), e);
            } finally{
                sql.close_con();
            }            
BattMonitor_FBS9100S_ListenSystemForLinux/src/com/listen/ListenSystem_Thread.java
@@ -11,6 +11,8 @@
import java.util.List;
import org.apache.ftpserver.util.OS;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import com.base.Com;
import com.sql.MysqlConnPool;
@@ -29,7 +31,11 @@
    
    private List<String> Servers;            //定时启动的服务
    
    private Logger logger;
    public ListenSystem_Thread(MysqlConnPool con_pool) {
        logger = LogManager.getLogger(ListenSystem_Thread.class);
        this.con_pool = con_pool;
        ServerRestartPath = System.getProperty("user.dir")+"/ServerRestart.bat"; 
        BASEBAT = new ArrayList<String>();
@@ -38,7 +44,7 @@
        
        //识别服务器的系统类型
        String OS = System.getProperty("os.name").toLowerCase();
        System.out.println(OS);
        //System.out.println(OS);
        if(OS.contains("window")) {
            DEV_TYPE = HOST_TYPE_WINDOWS;
        }else {
@@ -53,7 +59,7 @@
        try {                
            ListenSystem_SQL.CreateProcessSurvey(con_pool);                                            //创建线程监测的表格
            updateListenSystem_StartTime(con_pool,"V"+main_FBS9100S_ListenSystem.m_VersionNum);        //更新启动时间和版本号
            System.out.println(this.getName() + " - ListenSystem_Thread Started at "
            logger.info(this.getName() + " - ListenSystem_Thread Started at "
                    + Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
            while(true){                
                try {
@@ -141,7 +147,7 @@
                                    boolean isSuccess = callCmd(ServerRestartPath);
                                    //System.out.println(isSuccess+"&&&&&&&&&&&&&&&&&&&&&&");
                                    if(isSuccess){
                                        System.err.println("重启"+relist.size()+"个服务:"+restr+";停止"+stlist.size()+"个服务:"+ststr+";"+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
                                        logger.info("重启"+relist.size()+"个服务:"+restr+";停止"+stlist.size()+"个服务:"+ststr+";"+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
                                        //System.out.println("重启成功");
                                        ListenSystem_SQL.updateMonitorStatueByServer(con_pool, relist);
                                    }
@@ -168,7 +174,7 @@
                }
            }
        } catch (Exception e){
            System.err.println("线程监控程序结束....");
            logger.error("线程监控程序结束....",e);
            e.printStackTrace();
        }        
    }
BattMonitor_FBS9100S_ListenSystemForLinux/src/com/sql/Sql_Mysql.java
@@ -6,6 +6,9 @@
import java.sql.Statement;
import java.util.ArrayList;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import com.base.Com;
/**
@@ -121,12 +124,15 @@
    public final static String Tb_AnnounceTable = WEB_Site+".tb_announce";                                //公告信息表
    //--------------------------------------------------------------------------------------------//
    public Connection mysql_con;
    public Logger logger;
    
    public Sql_Mysql(Connection conn)
    {
        mysql_con = conn;
        logger = LogManager.getFormatterLogger();
    }
    
    /*
    public static Connection getConnection() throws SQLException, java.lang.ClassNotFoundException{
        String url = "jdbc:mysql://192.168.48.128:3306/studentinfo";
BattMonitor_FBS9100S_ListenSystemForLinux/src/com/version_inf/version_inf.txt
@@ -3,6 +3,7 @@
V1.103    at 2023-04-15
    1.修复自身程序服务重启后及一直重启自身服务
    2.添加log4j日志打印配置
    
V1.102
BattMonitor_FBS9100S_ListenSystemForLinux/src/main/main_FBS9100S_ListenSystem.java
@@ -4,6 +4,9 @@
import java.util.Date;
import java.util.TimeZone;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import com.base.Com;
import com.config.AppConfig;
import com.config.AppParam;
@@ -70,9 +73,17 @@
    
    private static MysqlConnPool GB_MysqlConnPool;
    public static AppParam GB_App_Param;
    private static Logger logger;
    static {
        System.setProperty("log4j.configurationFile", "log4j2_fbs9100s_listensystem_x64.xml");
    //    System.setProperty("contextSelector", "org.apache.logging.log4j.core.async.AsyncLoggerContextSelector");
    }
    /*********************************************************************************************/
    /*********************************************************************************************/
    public static void main(String[] args) {
        logger = LogManager.getLogger(main_FBS9100S_ListenSystem.class);
        TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
        
        /*//BasicConfigurator.configure();*/
@@ -109,12 +120,12 @@
            FTP_Server_Port = DEF_FTP_ServerFBO_Port;
        }
        //System.out.println(ver+"%%%%%%%%%%%%%");
        System.out.println("/****************************************************************");
        System.out.println("*****************************************************************");
        System.out.println("****************************************************************/");
        System.out.println(ver);
        System.out.println("ListenSystem Server Start At..."+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
        System.out.println("Waiting For MySQL_FBSDEV Start ...");
        logger.info("/****************************************************************");
        logger.info("*****************************************************************");
        logger.info("****************************************************************/");
        logger.info(ver);
        logger.info("ListenSystem Server Start At..."+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
        logger.info("Waiting For MySQL_FBSDEV Start ...");
        //创建config.xml文件
        m_AppConfig = new AppConfig();
        
@@ -124,7 +135,7 @@
        //创建tb_app_param表,并且设置表中的数据
        //GB_App_Param = new AppParam(GB_MysqlConnPool);
        
//        System.out.println( "------------------- AppConfig start -----------------------------------\n"
//        logger.info( "------------------- AppConfig start -----------------------------------\n"
//                            + "MysqlServerIp=" + m_AppConfig.getMysqlServerIp() + "\n"
//                            + "SybaseServerIp=" + m_AppConfig.getSourceSQLServerIp() + "\n"
//                            + "MysqlConnCountMax=" + m_AppConfig.getMysqlConnCountMax() + "\n"
@@ -139,7 +150,7 @@
//                            + "BattResStoreDayInterval=" + m_AppConfig.getBattResStoreDayInterval() + "\n"
//                            + "------------------- AppConfig end -----------------------------------\n");
//                            
//        System.out.println( "--------------------- App_Param start---------------------------------\n"
//        logger.info( "--------------------- App_Param start---------------------------------\n"
//                            + "Discharge_TestTimeLongMinimum=" 
//                            + GB_App_Param.getTestTimeLongMinimum(AppParam.AppParam_Discharge) + "\n"
//                            + "Discharge_SaveDataTimeInterval=" 
@@ -202,7 +213,7 @@
                
                Thread.sleep(2000);
            } catch (Exception e) {
                //logger.error(e.toString(), e);
                logger.error(e.toString(), e);
            }
        }
    }
@@ -210,29 +221,29 @@
    
    public static void checkingMySQLServerStart(){
        //MysqlServer_Port = 3306;
        System.out.println("IP:"+m_AppConfig.getMysqlServerIp()+"port"+MysqlServer_Port);
        logger.info("IP:"+m_AppConfig.getMysqlServerIp()+"port"+MysqlServer_Port);
        //初始化连接池中的各种参数信息        m_AppConfig.getMysqlServerIp()
        GB_MysqlConnPool = new MysqlConnPool(m_AppConfig.getMysqlServerIp(), MysqlServer_Port, 5);
        while(true){
            Connection conn = null;
            try {
                System.out.println("开始监测"+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
                logger.info("开始监测"+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
                conn =  GB_MysqlConnPool.getConn();
                if(conn != null){
                    System.out.println("获取数据库连接成功");
                    logger.info("获取数据库连接成功");
                    break;
                }
                //System.out.println("监测完成"+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
                Thread.sleep(1000);
                //System.out.println("等待一次");
            } catch (Exception e) {
                System.out.println("MySQL_FBSDEV not Start ...");
                logger.error("MySQL_FBSDEV not Start ...",e);
            } finally {
                if(conn != null) {
                    try {
                        conn.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                        logger.error(e.toString(), e);
                    }
                }
            }