本发明专利技术提供一种日志分离方法和系统,其方法包括步骤:修改应用程序日志的输出位置到指定位置;调用预设的启动脚本,由所述启动脚本接收进程标识,启动应用程序并根据所述进程标识生成与所述进程标识对应的日志文件全路径;根据所述日志文件全路径对所述指定位置的日志进行重定向,得到所述启动应用程序后对应的运行进程的日志文件,实现了同一应用程序多个运行进程日志分离,并节约存储空间且便于程序升级等变更操作。
【技术实现步骤摘要】
日志分离方法和系统
本专利技术涉及云
,特别是涉及一种日志分离方法和系统。
技术介绍
云计算是网格计算、分布式计算、并行计算、效用计算、网络存储、虚拟化、负载均衡等传统计算机技术和网络技术发展融合的产物。它旨在通过网络把多个成本相对较低的计算实体整合成一个具有强大计算能力的完美系统,并借助SaaS (Software-as-a-service,软件即服务)、PaaS (Platform-as-a-Service,平台即服务)、IaaS (Infrastructure as a Service,基础设施即服务)、MSP (Managed ServiceProvider,管理服务供应商)等先进的商业模式把这强大的计算能力分布到终端用户手中。在实际应用中,云计算平台中的虚拟机共享其宿主物理机的存储设备,通过云平台对各虚拟机的存储内容进行严格区分,使得虚拟机之间数据独立,从虚拟机的角度看,各机器拥有各自独立的存储空间。然而在某些情况下,多个虚拟机的功能完全一致,无需独立的存储空间,因此采用共享文件系统的形式。在这种情况下,多个虚拟机同时运行共享文件系统中的应用程序时,应用程序产生的日志将被记录在同一日志文件中,不便于分析和跟踪问题。传统的方式是为每个运行进程创建一个运行目录,用于存放程序文件及日志文件,则同样的程序文件存储了多份,浪费存储空间,且如果程序需要升级或修改配置,需要逐一操作所有程序文件。
技术实现思路
本专利技术的目的在于提供一种日志分离方法和系统,既实现了日志的分离,又可以避免浪费存储空间的问题。本专利技术的目的通过如下技术方案实现:一种日志分离方法,包括如下步骤:修改应用程序日志的输出位置到指定位置;调用预设的启动脚本,由所述启动脚本接收进程标识,启动应用程序并根据所述进程标识生成与所述进程标识对应的日志文件全路径;根据所述日志文件全路径对所述指定位置的日志进行重定向,得到所述启动应用程序后对应的运行进程的日志文件。—种日志分离系统,包括:修改模块,用于修改应用程序日志的输出位置到指定位置;生成模块,用于调用预设的启动脚本,由所述启动脚本接收进程标识,启动应用程序并根据所述进程标识生成与所述进程标识对应的日志文件全路径;重定向模块,用于根据所述日志文件全路径对所述指定位置的日志进行重定向,得到所述启动应用程序后对应的运行进程的日志文件。依据上述本专利技术的方案,其是将应用程序日志的输出位置修改到指定位置,调用预设的启动脚本,由该启动脚本接收进程标识,启动应用程序并根据该进程标识生成与该进程标识对应的日志文件全路径,根据所述日志文件全路径对所述指定位置的日志进行重定向,得到所述启动应用程序后对应的运行进程的日志文件,由于日志文件是基于进程标识确定的,实现了同一应用程序多个运行进程日志分离,由于不需要为每个运行进程创建独立的程序目录,节约存储空间且便于程序升级等变更操作。【附图说明】图1为本专利技术的日志分离方法实施例的流程示意图;图2为本专利技术的日志分离系统在其中一个实施例的结构示意图;图3为本专利技术的日志分离系统在另一个实施例的结构示意图;图4为本专利技术的日志分离系统在第三个实施例的结构示意图。【具体实施方式】下面结合实施例及附图对本专利技术作进一步阐述,但本专利技术的实现方式不限于此。参见图1所示,为本专利技术的日志分离方法实施例的流程示意图。如图1所示,本实施例中的日志分离方法包括如下步骤:步骤SlOl:修改应用程序日志的输出位置到指定位置;修改应用程序日志的输出位置是为了实现对日志的重定向,该指定位置可以根据实际需要设定,指定位置可以包括控制台、文件、数据库等,例如,对于Iinux(—种、计算机操作系统)系统,日志输出到Iinux系统控制台后,才可通过系统指令对其进行重定向,也就是说,需要先将应用程序日志的输出位置修改为控制台;可以通过修改配置文件的方式修改应用程序日志的输出位置,例如,对于采用log4j的应用程序,可通过修改log4j.properities的配置文件log4j.rootLogger =console实现,对于其他应用程序,可以由程序开发者采用与该应用程序对应的技术实现;对于同一应用程序,只需要预先执行一次本步骤即可,也就是说,不同运行进程对应同一指定位置,这是因为,还需要对输出到该指定位置的日志根据运行进程的不同而进行重定向;步骤S102:调用预设的启动脚本,由所述启动脚本接收进程标识,启动应用程序并根据所述进程标识生成与所述进程标识对应的日志文件全路径;预先为所述应用程序编写启动脚本,如在Iinux系统中编写shell脚本或在windows系统中编写bat脚本,该启动脚本包括一个输入参数,在实际执行时,可以由用户输入,在本实施例中,是将进程标识作为输入参数输入到启动脚本中;进程标识与运行进程一一对应,进程标识一般是一个标识串,例如,可以是系统ID,启动应用程序后就对应一个运行进程;步骤S103:根据所述日志文件全路径对所述指定位置的日志进行重定向,得到所述启动应用程序后对应的运行进程的日志文件;由于日志文件全路径是基于进程标识对应生成的,则不同运行进程的日志被输出到了不同的日志文件中,实现了日志文件的分离;若要保持同一个系统的运行进程每次重启后,日志均存储在一个日志文件中,每次调用启动脚本时作为参数输入的进程标识需保持一致。据此,依据上述本实施例的方案,其是将应用程序日志的输出位置修改到指定位置,调用预设的启动脚本,由所述启动脚本接收进程标识,启动应用程序并根据所述进程标识生成与所述进程标识对应的日志文件全路径,根据该日志文件全路径对所述指定位置的日志进行重定向,得到所述启动应用程序后对应的运行进程的日志文件,由于日志文件是基于进程标识确定的,不同的进程标识可以对应不同的日志文件,实现了同一应用程序多个运行进程日志分离,由于不需要为每个运行进程创建独立的程序目录,节约存储空间且便于程序升级等变更操作。考虑到,在某些情况下,由于用户权限或者误操作等原因,会导致在所述日志文件全路径下未生成日志文件的情况,因而不能成功实现日志分离,为了解决这种问题,在其中一个实施例中,还可以包括步骤:在所述日志文件全路径对应目录下查询日志文件;若未查询到日志文件,则检查是否有在所述日志文件全路径对应目录下创建文件的权限,若没有,则获取创建文件的权限或者更改所述日志文件全路径;其中可以通过在该目录路径下执行创建文件操作,若不能创建文件,则说明没有在所述日志文件全路径对应目录下创建文件的权限;更改所述日志文件全路径,是指将所述日志文件全路径更改成一个有在其对应目录下创建文件的权限的日志文件全路径;采用本实施例中方式,简便易行,易于实现。另外,还可能出现一种情况就是日志文件中未写入日志,也应该对这种问题进行解决,为此,在其中一个实施例中,还可以包括步骤:查询所述日志文件是否有日志写入,若没有,则检查所述日志文件全路径对应目录是否有写文件权限,若有写文件权限,则查询所述应用程序是否正常启动,或者重启所述应用程序后检查所述日志是否成功输入到所述指定位置;可以通过在所述日志文件中写日志方式检查所述日志文件全路径对应目录是否有写文件权限,如不能写,能说明没有写文件的权限;采用本实施例中方式,简便易行,又可以本文档来自技高网...
【技术保护点】
一种日志分离方法,其特征在于,包括如下步骤:修改应用程序的日志的输出位置到指定位置;调用预设的启动脚本,由所述启动脚本接收进程标识,启动应用程序并根据所述进程标识生成与所述进程标识对应的日志文件全路径;根据所述日志文件全路径对所述指定位置的日志进行重定向,得到所述启动应用程序后对应的运行进程的日志文件。
【技术特征摘要】
1.一种日志分离方法,其特征在于,包括如下步骤: 修改应用程序的日志的输出位置到指定位置; 调用预设的启动脚本,由所述启动脚本接收进程标识,启动应用程序并根据所述进程标识生成与所述进程标识对应的日志文件全路径; 根据所述日志文件全路径对所述指定位置的日志进行重定向,得到所述启动应用程序后对应的运行进程的日志文件。2.根据权利要求1所述的日志分离方法,其特征在于,还包括步骤: 在所述日志文件全路径对应目录下查询日志文件; 若未查询到日志文件,则检查是否有在所述日志文件全路径对应目录下创建文件的权限,若没有,则获取创建文件的权限或者更改所述日志文件全路径。3.根据权利要求1所述的日志分离方法,其特征在于,还包括步骤: 查询所述日志文件是否有日志写入,若没有,则检查所述日志文件全路径对应目录是否有写文件权限,若有写文件权限,则查询所述应用程序是否正常启动,或者重启所述应用程序后检查所述日志是否成功输入到所述指定位置。4.根据权利要求1所述的日志分离方法,其特征在于,所述输出位置包括控制台、文件、数据库。5.根据权利要求1所述的日志分离方法,其特征在于,还包括步骤: 获取系统ID,根据所述ID生成所述进程标识,将所述进程标识输入到所述启动脚本。6.—种日志分离系统,其特征在于,包...
【专利技术属性】
技术研发人员:陈家川,
申请(专利权)人:广州杰赛科技股份有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。