一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种日志存储方法及装置和智能音箱及云端服务器与流程

2021-11-17 19:25:00 来源:中国专利 TAG:
1.本技术涉及但不限于数据处理技术,尤指一种日志存储方法及装置和智能音箱及云端服务器。
背景技术
::2.一般,嵌入式设备都需要利用离线日志来进行问题分析。3.传统的日志存储方法是直接将日志字符串写入文本,比如,对于字符串"tmallgeniesysteminitsuccessfully",需要占用37个字节的存储空间,这种日志存储方法会占用较大的存储空间。4.或者,进一步采用压缩工具对生成的日志文件进行压缩处理后存储,但是,增加算法压缩需要消耗较多的计算力,会影响嵌入式设备的正常应用功能。技术实现要素:5.本技术提供一种日志存储方法及装置和智能音箱及云端服务器,能够简单、高效地实现对日志的存储。6.本发明实施例提供了一种日志存储方法,包括:7.通过对应用程序的调试获取日志信息;8.根据调试得到的日志信息,建立日志信息包括的日志字符串与唯一标识的对应关系;9.根据建立的对应关系中日志字符串对应的唯一标识存储日志。10.在一种示例性实例中,所述建立日志信息包括的日志字符串与唯一标识的对应关系,包括:11.在所述应用程序的编译过程中,根据所述调试得到的日志信息对编译后的可执行文件进行处理获取可执行文件中的日志字符串;12.为获得的可执行文件中的每个日志字符串分配唯一标识;13.存储可执行文件中的每个日志字符串与其唯一标识的所述对应关系。14.在一种示例性实例中,所述根据调试得到的日志信息对编译后的可执行文件进行处理,包括:15.比较所述调试得到的日志信息和所述可执行文件中的日志信息,从所述可执行文件中的日志信息抽取出与所述调试过程中得到的日志信息中的日志字符串相同的日志字符串,抽取出的日志字符串为所述获取的可执行文件中的日志字符串。16.在一种示例性实例中,所述建立日志信息包括的日志字符串与唯一标识的对应关系,包括:17.在所述应用程序的运行中,将日志接口中获得的日志信息中的格式控制字符串的地址指针作为日志信息包括的日志字符串的所述唯一标识;18.建立日志信息包括的日志字符串与唯一标识的所述对应关系。19.在一种示例性实例中,所述根据建立的对应关系中日志字符串对应的唯一标识存储日,包括:20.在所述应用程序的运行中,根据建立的所述对应关系,将日志接口中获得的日志信息中的格式控制字符串替换为对应的所述唯一标识写入日志文件。21.在一种示例性实例中,所述方法还包括:22.在日志查看时,根据建立的所述对应关系,将存储的所述唯一标识转换为日志字符串。23.在一种示例性实例中,所述唯一标识为用于区分不同日志字符串的符号,包括:数字、字符组合、数字与字符的组合、地址指针。24.本技术还提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述任一项所述的日志存储方法。25.本技术又提供了一种实现构建高精度地图的装置,包括存储器和处理器,其中,存储器中存储有以下可被处理器执行的指令:用于执行上述任一项所述的日志存储方法的步骤。26.本技术还提供了一种日志存储方法,包括:27.智能音箱通过对应用程序的调试获取日志信息;28.根据调试得到的日志信息,建立日志信息包括的日志字符串与唯一标识的对应关系;29.根据建立的对应关系中日志字符串对应的唯一标识存储日志;30.在日志查看时,根据建立的所述对应关系,将存储的所述唯一标识转换为日志字符串。31.在一种示例性实例中,所述方法还包括:32.所述智能音箱确定自身存储空间不足,根据所述唯一标识将自身的日志信息转发存储在与所述智能音箱属于同一账户的一个或一个以上智能音箱。33.在一种示例性实例中,所述将自身的日志信息转发存储在与所述智能音箱属于同一账户的一个或一个以上智能音箱,包括:34.所述智能音箱将自身的日志信息随机转发给与所述智能音箱自身属于同一账户的一个或一个以上智能音箱。35.在一种示例性实例中,所述将自身的日志信息转发给与自身属于同一账户的一个或一个以上智能音箱,包括:36.所述智能音箱从云端服务器获取与所述智能音箱属于同一账户下的智能音箱的存储空间的使用情况;37.从所述与所述智能音箱属于同一账户下的智能音箱中选择存储空间剩余多的一个或多个智能音箱;38.所述智能音箱根据所述唯一标识将所述智能音箱自身的日志信息转发存储在选择出的一个或多个智能音箱。39.在一种示例性实例中,所述方法还包括:40.所述智能音箱周期性将自身的日志信息的存储空间信息反馈给云端服务器。41.本技术又提供了一种智能音箱,包括存储器和处理器,其中,存储器中存储有以下可被处理器执行的指令:用于执行上述任一项所述的日志存储方法的步骤。42.本技术还提供了一种日志存储方法,包括:43.智能音箱接收来自与自身属于同一账户的智能音箱的基于根据唯一标识得到的日志信息;44.存储接收到的日志信息。45.在一种示例性实例中,所述方法还包括:46.所述智能音箱周期性将自身的日志信息的存储空间信息反馈给云端服务器。47.本技术再提供了一种智能音箱,包括存储器和处理器,其中,存储器中存储有以下可被处理器执行的指令:用于执行上述任一项日志存储方法的步骤。48.本技术还提供了一种日志存储方法,包括:49.云端服务器接收并存储来自智能音箱周期性反馈的智能音箱自身的日志信息的存储空间信息;50.在接收到来自智能音箱的请求,将与发起请求的智能音箱属于同一账户下的智能音箱的存储空间的使用情况发送给发起请求的智能音箱。51.在一种示例性实例中,所述方法还包括:52.所述云端服务器接收并存储来自智能音箱的基于根据唯一标识得到的日志信息。53.本技术又提供了一种云端服务器,包括存储器和处理器,其中,存储器中存储有以下可被处理器执行的指令:用于执行上述任一项日志存储方法的步骤。54.本技术再提供了一种日志存储装置,包括:调试模块、建立模块、存储处理模块;其中,55.调试模块,用于通过对应用程序的调试获取日志信息;56.建立模块,用于根据调试得到的日志信息,建立日志信息包括的日志字符串与唯一标识的对应关系;57.存储处理模块,用于根据建立的对应关系中日志字符串对应的唯一标识存储日志。58.本技术实施例在存储日志文件时,存储的仅仅是与日志字符串对应的简短的唯一标识,因此,大大节省了存储空间,而且,不会额外消耗计算力。本技术提供的日志存储方法,简单、高效地实现了对日志的存储。59.并且,本技术实施例中建立的对应关系,其中的日志字符串不会重复出现,因此,对应关系仅会占用很小的存储空间。60.本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。附图说明61.附图用来提供对本技术技术方案的进一步理解,并且构成说明书的一部分,与本技术的实施例一起用于解释本技术的技术方案,并不构成对本技术技术方案的限制。62.图1为本技术日志存储方法的实施例的流程图;63.图2为本技术日志存储方法的应用场景实施例的示意图;64.图3为本技术日志存储装置的组成结构示意图。具体实施方式65.为使本技术的目的、技术方案和优点更加清楚明白,下文中将结合附图对本技术的实施例进行详细说明。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互任意组合。66.在本技术一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。67.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。68.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。69.在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。70.对于linux方案的项目(128mb到256mb闪存(flash)),相关技术中提供的日志存储方法还可以满足存储要求。但是,对于实时操作系统(rtos)项目,本技术发明人发现,系统总的存储空间只有8mb到16mb,留给日志系统的空间非常有限,一般只有几百kb,而rtos一般计算力有限,并不适合运行复杂的压缩算法,因此,需要一种更简单、高效的日志存储方法,也就是说,既不需要复杂压缩处理过程又具有较好压缩效果的日志存储方法。71.图1为本技术日志存储方法的实施例的流程图,如图1所示,包括:72.步骤100:通过对应用程序的调试获取日志信息。73.在一种示例性实例中,本步骤可以包括:74.在应用程序的调试中,通过日志接口调用,将应用程序(也称为应用代码)写成日志文件以获取所述日志信息。75.在一种示例性实例中,日志接口可以包括如各种各样的开源日志系统、私有系统自定义的日志接口等。76.步骤101:根据调试得到的日志信息,建立日志信息包括的日志字符串与唯一标识的对应关系。77.在一种示例性实例中,步骤101可以包括:78.在应用程序的编译过程中,根据调试得到的日志信息对编译后的可执行文件进行处理获取可执行文件中的日志字符串;79.为获得的可执行文件中的每个日志字符串分配唯一标识;80.存储可执行文件中的每个日志字符串与其唯一标识的对应关系。81.在一种示例性实例中,根据调试得到的日志信息对编译后的可执行文件进行处理,可以包括:82.比较调试得到的日志信息和可执行文件中的日志信息,从可执行文件中的日志信息抽取出与调试过程中得到的日志信息中的日志字符串相同的日志字符串。83.在一种示例性实例中,步骤101可以包括:84.在应用程序的运行中,将日志接口中获得的日志信息中的格式控制字符串的地址指针作为日志信息包括的日志字符串的唯一标识;85.建立日志信息包括的日志字符串与唯一标识的对应关系。86.本技术中的唯一标识可以是任何形式的能够用于区分不同日志字符串的符号,比如:数字、字符组合、数字与字符的组合、地址指针等。唯一标识的表现形式越简单越能节省存储空间。87.在一种示例性实例中,唯一标识可以根据应用场景需求动态扩展,提升了本技术日志存储方法的适应性。88.本技术实施例中建立的对应关系,其中的日志字符串不会重复出现,因此,对应关系金辉占用很小的存储空间。89.步骤102:根据建立的对应关系中日志字符串对应的唯一标识存储日志。90.在一种示例性实例中,步骤102可以包括:91.在应用程序的运行中,根据建立的对应关系,将日志接口中获得的日志信息中的格式控制字符串替换为对应的唯一标识写入日志文件。92.本技术实施例存储日志文件时,存储的仅仅是与日志字符串对应的简短的唯一标识,因此,大大节省了存储空间,而且,不会额外消耗计算力。93.本技术提供的日志存储方法,简单、高效地实现了对日志的存储。94.在一种示例性实例中,对于多个智能设备互动的应用场景,日志可以存储到本地存储空间,并采用定期上传到云端的方式,减少了云端访问压力。95.在一种示例性实例中,本技术还可以包括:96.在日志查看时,根据建立的对应关系,将存储的唯一标识转换为日志字符串。97.以智能音箱为例,智能音箱系统总的存储空间通常只有8mb到16mb,其中留给日志系统的空间非常有限,一般只有几百kb,比如500kb。对于用于实时交互的智能音箱,一般计算力都有限,并不适合运行复杂的压缩算法来对日志信息进行处理,但是,本技术实施例提供的日志存储方法,既不需要复杂压缩处理过程又具有较好压缩效果,而且简单,非常适合智能音箱的应用环境。本技术发明人通过实验证明,对于这样的智能音箱,如果采用相关技术中的压缩算法来存储日志信息,留给日志系统的空间可以相当于能扩大大约原来的10倍,但是,如果采用本技术实施例提供的日志存储方法,即存储日志文件时,存储的仅仅是与日志字符串对应的简短的唯一标识的方式,留给日志系统的空间可以相当于能扩大大约原来的20倍。98.本技术还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述任一项的日志存储方法。99.本技术再提供一种实现日志存储的装置,包括存储器和处理器,其中,存储器中存储有以下可被处理器执行的指令:用于执行上任一项所述的日志存储方法的步骤。100.以在应用程序的编译过程中,建立日志信息包括的日志字符串与唯一标识的对应关系为例,可以包括:101.首先,通过日志接口调用,在应用代码中调用某开源日志系统接口获取日志信息;102.接着,采用空的str2id表如table.c编译生成origin.elf文件,可以利用脚本解析抽取origin.elf中的字符串表,并根据通过调用某开源日志系统接口获取的日志信息,去除origin.elf中的非日志字符串的日志信息,为字符串表中剩下的每个日志字符串分别分配各自的id并生成存储日志字符串与唯一标识的对应关系的str2id表;将生成的str2id表中的键值对放入str2id.c并编译成table.o文件,用新的table.o替换空的table.o后整体链接成final.elf文件。其中,elf文件是一种用于二进制文件、可执行文件、目标代码、共享库和核心转储的文件格式。103.然后,运行final.elf文件,通过查表将某开源日志系统接口中获得的日志信息中的格式控制string替换成对应的id,将获得的日志信息中的数值和静态string参数的指针按固定格式附加在id后面,再存储到文件,举例来看,对于某开源日志系统接口中获得的日志信息("tmallgeniesysteminitsuccessfully:%d",8),按照上述方法会转换成"1-8"写入文件。104.这样,在查看日志时,根据建立的日志字符串与唯一标识的对应关系将读出的日志转换成原始日志,即可得到:tmallgeniesysteminitsuccessfully:8。105.以在应用程序的运行中,建立日志信息包括的日志字符串与唯一标识的对应关系为例,可以包括:106.首先,通过日志接口调用,在应用代码中调用某开源日志系统接口获取日志信息;107.接着,在应用程序运行中,将某开源日志系统接口中获得的日志信息中的格式控制string的指针作为该格式控制字符串的唯一标识并存储,将获得的日志信息中的数值和静态string参数的指针附加在唯一标识后面,并存储为一行。举例来看,对于某开源日志系统接口中获得的日志信息("tmallgeniesysteminitsuccessfully:%d",8),按照上述方法会转换成"200022008"写入二进制文件,其中,20002200为格式控制string的地址指针,可以在elf文件中查看。108.这样,在查看日志时,根据建立的日志字符串与唯一标识的对应关系和elf文件,将读出的日志转换成原始日志,即可得到:tmallgeniesysteminitsuccessfully:8。109.下面以嵌入式设备如智能音箱应用本技术实施例提供的日志存储方法为例,为了更高效的存储智能音箱的日志信息,处理如下:110.代码开发阶段,在智能音箱的应用程序的调试中,通过日志接口调用获取日志信息,比如aglog("tmallgeniesystemreceivemessagefromvoip:消息内容....."),其中,消息内容的长度根据语音输入的实际情况可能不一样,最长可能达上千字节,消息内容占用的字节越长,那么,本技术实施例提供的日志存储方法就更能显示出其节省存储空间的优势。本实施例中,假设通过日志接口调用获得的日志信息即消息内容的长度为200字节;111.代码编译阶段,在智能音箱的应用程序的编译过程中,根据调试得到的日志信息,为编译后获得的可执行文件中的每个日志字符串分配唯一标识,并存储可执行文件中的每个日志字符串与其唯一标识的对应关系。本实施例中,假设为得到的日志信息"tmallgeniesystemreceivemessagefromvoip:messageis....."分配id为1,这个id占用一个字节,同时将该日志信息与id=1建立对应关系存储起来;112.这样,在代码运行到aglog("tmallgeniesystemreceivemessagefromvoip:消息内容.....")时,可以通过查表转换,将id即1写入文件,也就是说,此时存储的日志信息仅占用一个字节。113.对于日志信息多的情况,唯一标识可以根据应用场景需求动态扩展,比如上面的实施例中,id占用一个字节,为了区分更多不同的日志信息,可以根据应用场景需求将id占用的字节增加为如两个字节,以提升本技术日志存储方法的适应性。114.图2为本技术日志存储方法的应用场景实施例的示意图,如图2所示,本实施例中,以嵌入式设备为智能音箱为例,假设智能音箱1、智能音箱2、智能音箱3和智能音箱4与同一用户如用户a绑定,即智能音箱1、智能音箱2、智能音箱3和智能音箱4属于同账户;智能音箱5与用户b绑定;智能音箱6与用户c绑定。115.如图2所示,如果智能音箱1确定自身没有足够存储空间存储日志信息,那么,智能音箱1可以作为发送端通过网络,根据本技术中的唯一标识将智能音箱1自身的日志信息转发存储到与智能音箱1属于同一账户下的其他智能音箱,也就是图2中作为接收端的智能音箱2、和/或智能音箱3、和/或智能音箱4。116.在一种示例性实例中,结合图2,智能音箱1可以从智能音箱2、智能音箱3、智能音箱4中随机选择一个或多个智能音箱作为来存储智能音箱1的日志信息,如图2所示的智能音箱3和智能音箱4。这种情况下,作为发送端的智能音箱,在确定出自身没有足够存储空间存储日志信息时,从与自身属于同一账户下的其他智能音箱中随机选择一个或多个智能音箱作为接收端;根据本技术中的唯一标识将智能音箱1自身的日志信息转发存储到作为接收端的智能音箱。而作为接收端的智能音箱会将接收到的日志信息存储在本地。117.在一种示例性实例中,结合图2,同一账户下的智能音箱如智能音箱1、智能音箱2、智能音箱3和智能音箱4,也可以周期性将自身的日志信息的存储空间信息反馈给云端服务器,这样,当智能音箱1需要转存日志信息时,可以先从云端服务器获取智能音箱2、智能音箱3和智能音箱4的存储空间的使用情况,再选择存储空间剩余多的一个或多个智能音箱作为日志信息的转发目的设备,如图2所示,根据本技术中的唯一标识将智能音箱1自身的日志信息转发存储在选择出的存储空间剩余多的智能音箱3和智能音箱4。这种情况下,作为发送端的智能音箱,在确定出自身没有足够存储空间存储日志信息时,向云端服务器请求以获取与自身属于同一账户下的其他智能音箱的存储空间的使用情况;选择存储空间剩余多的一个或多个智能音箱作为接收端;根据本技术中的唯一标识将智能音箱1自身的日志信息转发存储到作为接收端的智能音箱。而作为接收端的智能音箱会将接收到的日志信息存储在本地。云端服务器在接收到来自作为接收端的智能音箱的请求,将与接收端属于同一账户下的其他智能音箱的存储空间的使用情况发送给作为接收端的智能音箱。而且,无论是作为接收端的智能音箱还是作为接收端的智能音箱,都会周期性将自身的日志信息的存储空间信息反馈给云端服务器。118.图3为本技术日志存储装置的组成结构示意图,如图3所示,包括:调试模块、建立模块、存储处理模块;其中,119.调试模块,用于通过对应用程序的调试获取日志信息;120.建立模块,用于根据调试得到的日志信息,建立日志信息包括的日志字符串与唯一标识的对应关系;121.存储处理模块,用于根据建立的对应关系中日志字符串对应的唯一标识存储日志。122.在一种示例性实例中,建立模块具体用于:123.在应用程序的编译过程中,根据调试得到的日志信息对编译后的可执行文件进行处理获取可执行文件中的日志字符串;为获得的可执行文件中的每个日志字符串分配唯一标识;存储可执行文件中的每个日志字符串与其唯一标识的对应关系。124.在一种示例性实例中,建立模块具体用于:125.在应用程序的运行中,将日志接口中获得的日志信息中的格式控制字符串的地址指针作为日志信息包括的日志字符串的唯一标识;126.建立日志信息包括的日志字符串与唯一标识的对应关系。127.在一种示例性实例中,存储处理模块具体用于:128.在应用程序的运行中,根据建立的对应关系,将日志接口中获得的日志信息中的格式控制字符串替换为对应的唯一标识写入日志文件。129.在一种示例性实例中,存储处理模块还用于:130.在日志查看时,根据建立的对应关系,将存储的唯一标识转换为日志字符串。131.虽然本技术所揭露的实施方式如上,但所述的内容仅为便于理解本技术而采用的实施方式,并非用以限定本技术。任何本技术所属领域内的技术人员,在不脱离本技术所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本技术的专利保护范围,仍须以所附的权利要求书所界定的范围为准。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献