CN103984621B - 日志分离方法和系统 - Google Patents
日志分离方法和系统 Download PDFInfo
- Publication number
- CN103984621B CN103984621B CN201410129614.XA CN201410129614A CN103984621B CN 103984621 B CN103984621 B CN 103984621B CN 201410129614 A CN201410129614 A CN 201410129614A CN 103984621 B CN103984621 B CN 103984621B
- Authority
- CN
- China
- Prior art keywords
- journal file
- daily record
- complete trails
- pid
- application program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种日志分离方法和系统,其方法包括步骤:修改应用程序日志的输出位置到指定位置;调用预设的启动脚本,由所述启动脚本接收进程标识,启动应用程序并根据所述进程标识生成与所述进程标识对应的日志文件全路径;根据所述日志文件全路径对所述指定位置的日志进行重定向,得到所述启动应用程序后对应的运行进程的日志文件,实现了同一应用程序多个运行进程日志分离,并节约存储空间且便于程序升级等变更操作。
Description
技术领域
本发明涉及云技术领域,特别是涉及一种日志分离方法和系统。
背景技术
云计算是网格计算、分布式计算、并行计算、效用计算、网络存储、虚拟化、负载均衡等传统计算机技术和网络技术发展融合的产物。它旨在通过网络把多个成本相对较低的计算实体整合成一个具有强大计算能力的完美系统,并借助SaaS(Software-as-a-service,软件即服务)、PaaS(Platform-as-a-Service,平台即服务)、IaaS(Infrastructure as a Service,基础设施即服务)、MSP(Managed Service Provider,管理服务供应商)等先进的商业模式把这强大的计算能力分布到终端用户手中。
在实际应用中,云计算平台中的虚拟机共享其宿主物理机的存储设备,通过云平台对各虚拟机的存储内容进行严格区分,使得虚拟机之间数据独立,从虚拟机的角度看,各机器拥有各自独立的存储空间。然而在某些情况下,多个虚拟机的功能完全一致,无需独立的存储空间,因此采用共享文件系统的形式。在这种情况下,多个虚拟机同时运行共享文件系统中的应用程序时,应用程序产生的日志将被记录在同一日志文件中,不便于分析和跟踪问题。
传统的方式是为每个运行进程创建一个运行目录,用于存放程序文件及日志文件,则同样的程序文件存储了多份,浪费存储空间,且如果程序需要升级或修改配置,需要逐一操作所有程序文件。
发明内容
本发明的目的在于提供一种日志分离方法和系统,既实现了日志的分离,又可以避免浪费存储空间的问题。
本发明的目的通过如下技术方案实现:
一种日志分离方法,包括如下步骤:
修改应用程序日志的输出位置到指定位置;
调用预设的启动脚本,由所述启动脚本接收进程标识,启动应用程序并根据所述进程标识生成与所述进程标识对应的日志文件全路径;
根据所述日志文件全路径对所述指定位置的日志进行重定向,得到所述启动应用程序后对应的运行进程的日志文件。
一种日志分离系统,包括:
修改模块,用于修改应用程序日志的输出位置到指定位置;
生成模块,用于调用预设的启动脚本,由所述启动脚本接收进程标识,启动应用程序并根据所述进程标识生成与所述进程标识对应的日志文件全路径;
重定向模块,用于根据所述日志文件全路径对所述指定位置的日志进行重定向,得到所述启动应用程序后对应的运行进程的日志文件。
依据上述本发明的方案,其是将应用程序日志的输出位置修改到指定位置,调用预设的启动脚本,由该启动脚本接收进程标识,启动应用程序并根据该进程标识生成与该进程标识对应的日志文件全路径,根据所述日志文件全路径对所述指定位置的日志进行重定向,得到所述启动应用程序后对应的运行进程的日志文件,由于日志文件是基于进程标识确定的,实现了同一应用程序多个运行进程日志分离,由于不需要为每个运行进程创建独立的程序目录,节约存储空间且便于程序升级等变更操作。
附图说明
图1为本发明的日志分离方法实施例的流程示意图;
图2为本发明的日志分离系统在其中一个实施例的结构示意图;
图3为本发明的日志分离系统在另一个实施例的结构示意图;
图4为本发明的日志分离系统在第三个实施例的结构示意图。
具体实施方式
下面结合实施例及附图对本发明作进一步阐述,但本发明的实现方式不限于此。
参见图1所示,为本发明的日志分离方法实施例的流程示意图。如图1所示,本实施例中的日志分离方法包括如下步骤:
步骤S101:修改应用程序日志的输出位置到指定位置;
修改应用程序日志的输出位置是为了实现对日志的重定向,该指定位置可以根据实际需要设定,指定位置可以包括控制台、文件、数据库等,例如,对于linux(一种、计算机操作系统)系统,日志输出到linux系统控制台后,才可通过系统指令对其进行重定向,也就是说,需要先将应用程序日志的输出位置修改为控制台;
可以通过修改配置文件的方式修改应用程序日志的输出位置,例如,对于采用log4j的应用程序,可通过修改log4j.properities的配置文件log4j.rootLogger=console实现,对于其他应用程序,可以由程序开发者采用与该应用程序对应的技术实现;
对于同一应用程序,只需要预先执行一次本步骤即可,也就是说,不同运行进程对应同一指定位置,这是因为,还需要对输出到该指定位置的日志根据运行进程的不同而进行重定向;
步骤S102:调用预设的启动脚本,由所述启动脚本接收进程标识,启动应用程序并根据所述进程标识生成与所述进程标识对应的日志文件全路径;
预先为所述应用程序编写启动脚本,如在linux系统中编写shell脚本或在windows系统中编写bat脚本,该启动脚本包括一个输入参数,在实际执行时,可以由用户输入,在本实施例中,是将进程标识作为输入参数输入到启动脚本中;
进程标识与运行进程一一对应,进程标识一般是一个标识串,例如,可以是系统ID,启动应用程序后就对应一个运行进程;
步骤S103:根据所述日志文件全路径对所述指定位置的日志进行重定向,得到所述启动应用程序后对应的运行进程的日志文件;
由于日志文件全路径是基于进程标识对应生成的,则不同运行进程的日志被输出到了不同的日志文件中,实现了日志文件的分离;
若要保持同一个系统的运行进程每次重启后,日志均存储在一个日志文件中,每次调用启动脚本时作为参数输入的进程标识需保持一致。
据此,依据上述本实施例的方案,其是将应用程序日志的输出位置修改到指定位置,调用预设的启动脚本,由所述启动脚本接收进程标识,启动应用程序并根据所述进程标识生成与所述进程标识对应的日志文件全路径,根据该日志文件全路径对所述指定位置的日志进行重定向,得到所述启动应用程序后对应的运行进程的日志文件,由于日志文件是基于进程标识确定的,不同的进程标识可以对应不同的日志文件,实现了同一应用程序多个运行进程日志分离,由于不需要为每个运行进程创建独立的程序目录,节约存储空间且便于程序升级等变更操作。
考虑到,在某些情况下,由于用户权限或者误操作等原因,会导致在所述日志文件全路径下未生成日志文件的情况,因而不能成功实现日志分离,为了解决这种问题,在其中一个实施例中,还可以包括步骤:在所述日志文件全路径对应目录下查询日志文件;若未查询到日志文件,则检查是否有在所述日志文件全路径对应目录下创建文件的权限,若没有,则获取创建文件的权限或者更改所述日志文件全路径;
其中可以通过在该目录路径下执行创建文件操作,若不能创建文件,则说明没有在所述日志文件全路径对应目录下创建文件的权限;
更改所述日志文件全路径,是指将所述日志文件全路径更改成一个有在其对应目录下创建文件的权限的日志文件全路径;
采用本实施例中方式,简便易行,易于实现。
另外,还可能出现一种情况就是日志文件中未写入日志,也应该对这种问题进行解决,为此,在其中一个实施例中,还可以包括步骤:查询所述日志文件是否有日志写入,若没有,则检查所述日志文件全路径对应目录是否有写文件权限,若有写文件权限,则查询所述应用程序是否正常启动,或者重启所述应用程序后检查所述日志是否成功输入到所述指定位置;
可以通过在所述日志文件中写日志方式检查所述日志文件全路径对应目录是否有写文件权限,如不能写,能说明没有写文件的权限;
采用本实施例中方式,简便易行,又可以全面查询各种没有日志写入的原因。
此外,对于上述实施例,进程标识往往需要用户手动输入,而且重启系统应用进行都需要输入,操作繁琐,效率低,而且用户需要对进程标识进行记忆,可能会出现用户忘记该进程标识而不能顺利进行日志分离的情况,为此,在其中一个实施例中,还可以包括步骤:获取系统ID,根据所述ID生成所述进程标识,将生成的进程标识输入到所述启动脚本。由于是系统ID唯一的,可以由该系统ID直接作为进程标识输入到启动脚本中,也可以是对该系统ID作某种变化之后生成进行标识,但生成的进程标识也需要保持唯一性。将生成的进程标识输入到所述启动脚本;一方面不需要用户输入进程标识,提高了效率,而且也可以保证同一系统的运行进程的日志存放在同一日志文件中。
根据上述本发明的日志分离方法,本发明还提供一种日志分离系统,以下就本发明的日志分离系统的实施例进行详细说明。图2中示出了本发明的日志分离系统的实施例的结构示意图。为了便于说明,在图2中只示出了与相关的部分。
本发明实施例的日志分离系统,包括修改模块201、生成模块202、重定向模块203:
修改模块201,用于修改应用程序日志的输出位置到指定位置;
生成模块202,用于调用预设的启动脚本,由所述启动脚本接收进程标识,启动应用程序并根据所述进程标识生成与所述进程标识对应的日志文件全路径;
重定向模块203,用于根据所述日志文件全路径对所述指定位置的日志进行重定向,得到所述启动应用程序后对应的运行进程的日志文件。
在其中一个实施例中,如图3所示,本发明的日志分离系统还可以包括第一验证模块204;
第一验证模块204,用于在所述日志文件全路径对应目录下查询日志文件,若未查询到日志文件,则检查是否有在所述日志文件全路径对应目录下创建文件的权限,若没有,则获取创建文件的权限或者更改所述日志文件全路径。
在其中一个实施例中,如图3所示,本发明的日志分离系统还可以包括第二验证模块205。
第二验证模块205,用于查询所述日志文件是否有日志写入,若没有,则检查所述日志文件全路径对应目录是否有写文件权限,若有写文件权限,则查询所述应用程序是否正常启动,或者重启所述应用程序后检查所述日志是否成功输入到所述指定位置。
上述实施例中的输出位置可以包括控制台、文件、数据库。
在其中一个实施例中,如图4所示,本发明的日志分离系统还可以标识获取模块206:
标识获取模块206,用于获取系统ID,根据所述ID生成所述进程标识,将所述进程标识输入到所述启动脚本。
本发明的日志分离系统与本发明的日志分离方法一一对应,在上述日志分离方法的实施例阐述的技术特征及其有益效果均适用于日志分离系统的实施例中,特此声明。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种日志分离方法,其特征在于,包括如下步骤:
修改应用程序的日志的输出位置到指定位置,所述指定位置包括控制台、文件或者数据库;
调用预设的启动脚本,由所述启动脚本接收进程标识,启动应用程序并根据所述进程标识生成与所述进程标识对应的日志文件全路径;
根据所述日志文件全路径对所述指定位置的日志进行重定向,得到所述启动应用程序后对应的运行进程的日志文件。
2.根据权利要求1所述的日志分离方法,其特征在于,还包括步骤:
在所述日志文件全路径对应目录下查询日志文件;
若未查询到日志文件,则检查是否有在所述日志文件全路径对应目录下创建文件的权限,若没有,则获取创建文件的权限或者更改所述日志文件全路径。
3.根据权利要求1所述的日志分离方法,其特征在于,还包括步骤:
查询所述日志文件是否有日志写入,若没有,则检查所述日志文件全路径对应目录是否有写文件权限,若有写文件权限,则查询所述应用程序是否正常启动,或者重启所述应用程序后检查所述日志是否成功输入到所述指定位置。
4.根据权利要求1所述的日志分离方法,其特征在于,还包括步骤:
获取系统ID,根据所述ID生成所述进程标识,将所述进程标识输入到所述启动脚本。
5.一种日志分离系统,其特征在于,包括:
修改模块,用于修改应用程序日志的输出位置到指定位置,所述指定位置包括控制台、文件或者数据库;
生成模块,用于调用预设的启动脚本,由所述启动脚本接收进程标识,启动应用程序并根据所述进程标识生成与所述进程标识对应的日志文件全路径;
重定向模块,用于根据所述日志文件全路径对所述指定位置的日志进行重定向,得到所述启动应用程序后对应的运行进程的日志文件。
6.根据权利要求5所述的日志分离系统,其特征在于,还包括:
第一验证模块,用于在所述日志文件全路径对应目录下查询日志文件,若未查询到日志文件,则检查是否有在所述日志文件全路径对应目录下创建文件的权限,若没有,则获取创建文件的权限或者更改所述日志文件全路径。
7.根据权利要求5所述的日志分离系统,其特征在于,还包括:
第二验证模块,用于查询所述日志文件是否有日志写入,若没有,则检查所述日志文件全路径对应目录是否有写文件权限,若有写文件权限,则查询所述应用程序是否正常启动,或者重启所述应用程序后检查所述日志是否成功输入到所述指定位置。
8.根据权利要求5所述的日志分离系统,其特征在于,还包括:
标识获取模块,用于获取系统ID,根据所述ID生成所述进程标识,将所述进程标识输入到所述启动脚本。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410129614.XA CN103984621B (zh) | 2014-04-01 | 2014-04-01 | 日志分离方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410129614.XA CN103984621B (zh) | 2014-04-01 | 2014-04-01 | 日志分离方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103984621A CN103984621A (zh) | 2014-08-13 |
CN103984621B true CN103984621B (zh) | 2017-08-11 |
Family
ID=51276611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410129614.XA Active CN103984621B (zh) | 2014-04-01 | 2014-04-01 | 日志分离方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103984621B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104869022B (zh) * | 2015-05-27 | 2019-01-11 | 北京京东尚科信息技术有限公司 | 一种日志采集方法及系统 |
CN106802858B (zh) * | 2017-01-16 | 2020-09-29 | Oppo广东移动通信有限公司 | 一种日志动态配置方法、装置及系统 |
CN110096440B (zh) * | 2019-04-26 | 2023-04-18 | 厦门网宿有限公司 | 一种日志处理方法及装置 |
CN112217899A (zh) * | 2020-10-19 | 2021-01-12 | 政采云有限公司 | 容器故障排查系统及方法 |
CN113672465A (zh) * | 2021-08-23 | 2021-11-19 | 一飞(海南)科技有限公司 | 进程名生成进程日志系统的方法、系统、介质、终端、无人机 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6754890B1 (en) * | 1997-12-12 | 2004-06-22 | International Business Machines Corporation | Method and system for using process identifier in output file names for associating profiling data with multiple sources of profiling data |
CN1567248A (zh) * | 2003-07-01 | 2005-01-19 | 华为技术有限公司 | 应用程序日志记录方法及系统 |
CN103577310A (zh) * | 2012-07-20 | 2014-02-12 | 腾讯科技(深圳)有限公司 | 记录软件调试日志的方法以及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6539501B1 (en) * | 1999-12-16 | 2003-03-25 | International Business Machines Corporation | Method, system, and program for logging statements to monitor execution of a program |
JP2006323721A (ja) * | 2005-05-20 | 2006-11-30 | Fuji Xerox Co Ltd | データ管理システム及びデータサーバ及びデータ管理方法 |
CN101916224A (zh) * | 2010-08-20 | 2010-12-15 | 迈普通信技术股份有限公司 | 测试进程异常检测方法以及自动化测试控制装置 |
CN102521114B (zh) * | 2011-11-30 | 2014-08-27 | 华中科技大学 | 一种虚拟化环境下的文件系统日志存储系统 |
CN103198007A (zh) * | 2012-01-06 | 2013-07-10 | 腾讯科技(深圳)有限公司 | 多进程的日志输出方法及系统 |
CN105868391B (zh) * | 2012-09-25 | 2019-06-04 | 北京奇虎科技有限公司 | 一种日志记录的方法和装置 |
CN103617283B (zh) * | 2013-12-11 | 2017-10-27 | 北京京东尚科信息技术有限公司 | 一种存储日志的方法及装置 |
-
2014
- 2014-04-01 CN CN201410129614.XA patent/CN103984621B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6754890B1 (en) * | 1997-12-12 | 2004-06-22 | International Business Machines Corporation | Method and system for using process identifier in output file names for associating profiling data with multiple sources of profiling data |
CN1567248A (zh) * | 2003-07-01 | 2005-01-19 | 华为技术有限公司 | 应用程序日志记录方法及系统 |
CN103577310A (zh) * | 2012-07-20 | 2014-02-12 | 腾讯科技(深圳)有限公司 | 记录软件调试日志的方法以及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103984621A (zh) | 2014-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103826215B (zh) | 一种在终端设备上进行Root权限管理的方法和装置 | |
CN103984621B (zh) | 日志分离方法和系统 | |
CN102402446A (zh) | 应用软件的安装方法和应用软件的安装装置 | |
CN113079200A (zh) | 一种数据处理的方法、装置及系统 | |
CN108073423B (zh) | 一种加速器加载方法、系统和加速器加载装置 | |
CN104915224A (zh) | 一种关联应用程序的处理方法及装置 | |
CN104113576A (zh) | 一种客户端的更新方法及装置 | |
CN105704188A (zh) | 应用与服务的部署方法和装置 | |
CN105320578A (zh) | 一种备份和恢复app的方法及装置 | |
CN105446772A (zh) | 一种系统升级的方法和装置 | |
WO2020093976A1 (zh) | 一种资源变更的方法及装置、设备、存储介质 | |
US20160062757A1 (en) | Virtual appliance deployment | |
US20180150365A1 (en) | Disaster Recover of Managed Systems | |
CN105591778A (zh) | 一种分布式系统更新配置文件的方法及系统 | |
CN105867962A (zh) | 系统升级的方法和装置 | |
US10635523B2 (en) | Fast recovery from failures in a chronologically ordered log-structured key-value storage system | |
CN107656796B (zh) | 一种虚拟机冷迁移方法、系统及设备 | |
CN105912369A (zh) | 一种系统升级方法和装置 | |
CN107391028B (zh) | 一种虚拟卷权限的控制方法及装置 | |
CN104111862A (zh) | 云计算平台中获取虚拟机ip地址方法与系统 | |
CN107291524B (zh) | 一种远程命令的处理方法和装置 | |
CN111683091A (zh) | 一种访问云主机控制台方法、装置、设备及存储介质 | |
CN114239098A (zh) | Cad图纸的处理方法、装置、存储介质及处理器 | |
CN114610443A (zh) | 一种基于k8s容器集群的多服务部署方法、装置及电子设备 | |
CN109324931B (zh) | 在重复数据删除系统中实现vmware挂载恢复的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |