- unity学习(25)——客户端与服务器合力完成注册功能(7)逻辑流程彻底解决
u宅
unity学习服务器
在服务器LoginHandler类中:publicvoidlogin(Sessionsession,SocketModelmodel){LoginDTOloginDto=Coding.decode(model.Message);//MyLog.form.textAdd("用户申请登录"+loginDto.userName+""+loginDto.passWord);Console.WriteLin
- 学习记录688@linux两个超级常用的查看日志命令
教练 我想学编程
linux学习运维
实际应用中需要查看java应用的日志,一种是单个log文件,另一种是打包了的zip文件,麻烦的是后一种,需要在每日的打包文件中查找对应的内容,以下两条命令分别试用于这两者。tail-n400000mylog.log|grep"你想要搜索的内容"--color=auto-A40-B80zcatlog_2023-1-2*.0.gz|grep"你想要搜索的内容"--color=auto-A40-B80/
- LogBack 日志存放位置:默认会放到“启动进程”的目录下面
商吉婆尼
JavaLogBack默认位置相对路径
Itype源文章logback输出的日志文件,默认会放到“启动进程”的目录下面比如说程序直接在eclipse里跑,就会输出到eclipse.exe所在的目录下,如果是在tomcat中跑,就会输出到%TOMCAT_HOME%/bin目录下MyLog/logFile.%d{yyyy-MM-dd}.log30%-4relative%d{HH:mm:ss.SSS}-[%thread]%-5level%cl
- Java—AOP案例-记录操作日志
王大宁-真
java开发语言
简介:上一篇文章“JAVA语言—AOP基础”已经详细的介绍了AOP的各个功能接口,已经使用步骤,这篇文章就是基于此来做的一个小案例。案例的功能是记录登录的用户对于数据库表的相关信息进行增、删、查、改的操作记录下来,并且存储到数据库中目录1、需求分析2、操作步骤2.1引入起步依赖2.2创建表结构,引入实体类2.3自定义注解@MyLog2.4创建切面类3、总结1、需求分析操作日志:记录登录用户的操作日
- log4j2.xml配置详细遇到坑
句无声
log4j2log4j2
/opt/apache-tomcat-9.0.6/logs/Users/lhq/apache-tomcat-9.0.6/logs-->mylog-->-->%date{yyyy-MM-ddHH:mm:ss.SSS}%level[%thread][%file:%line]-%msg%n-->-->-->-->%date{yyyy-MM-ddHH:mm:ss.SSS}%level[%thread][%
- windows 下最简单的日志函数 writelog
wuyeyixi
C++windowsCwindowslistfilenullstruct
//文件名:Log.h#ifndefLOGWXN_H_INCLUDED#defineLOGWXN_H_INCLUDED#include#include#include#include#include#defineLOG_FILE"mylog.log"#defineBUFF_MAX_LENGTH512intWrtLog(intLogLevel,char*format,...){charsbuff[B
- console.log封装,显示调用的位置
陆康永
javascript辅助函数代码片段javascript前端vue.js
背景一般我们都哦说直接调用console.log,但是有时候console.log太多了,非常影响效率,我们想统一开启console.log(不是生产环境移除console.log)可能封装的代码是这样window.mylog=()=>conosle.log但是控制面板哪里定位到的位置不是调用window.mylog的代码的地方,这给我们带来了非常大的麻烦,不方便调试为什么会这样呢,我也不造也~~
- useConsole的封装,vue,react,htmlscript标签,通用
陆康永
hooksvue.jshooksconsole.log
之前用了接近hack的方式实现了console的封装,目标是获取console.log函数的执行(调用栈所在位置)所在的代码行数。例如以下代码,执行window.mylog(1)时候,console.log实际是在匿名的箭头函数()=>{//这里执行的}constmylog=(...arg)=>console.log(...arg)mylog("window.mylog")如果代码改为以下,con
- Java练习(二):创建一个文件,指定文件名格式,指定保存路径
出处不详,经久不息
一.测开之Java(自用)javaFile
1.要求创建一个文件。文件名为:myLog_yyyy_MM_dd_HH_mm_ss.log保存目录为:当前工程\Result2.实现代码importjava.io.File;importjava.io.IOException;importjava.text.SimpleDateFormat;importjava.util.Date;publicclassFileDemo{ //main方法p
- centos 安装nodejs ,部署项目
BiuBiu_Guang
linuxcentosnpmnode.js
安装nodejssudoyumupdate-ysudoyuminstall-ynodejsnpm启动nodejs项目forever管理npminstall-gforeverforeverstartapp.js//启动foreverstopapp.js//关闭nohup//启动nohupnodeindex.js>myLog.log2>&1&//关闭pkillnode
- Jenkins自动化部署相关shell命令
无效在线
jenkins自动化运维shell
1.只后台启动:nohupjava-jarjar/demo*.jar&2.增加命令启动日志输出位置,防止超时处理配置:nohupjava-jar/soft/gitee-demo-0.0.1-SNAPSHOT.jar>mylog.log2>&1&简化写法:nohupjava-jar/soft/gitee-demo-0.0.1-SNAPSHOT.jar&>mylog.log&>为覆盖写;>>为追加写2
- whois人员信息python批处理读入与文本输出
只为了拿0day
python服务器开发语言
使用pytho读取一个ip列表文本,批量获取whois输出并写入到一个文本importsocketif__name__=='__main__':#江苏电信DNS地址mylog=open('whois.log',mode='a',encoding='utf-8')forlineinopen("ip.txt"):s=socket.socket(socket.AF_INET,socket.SOCK_ST
- log4cpp单例类封装
dfuw13072
github源码地址:https://github.com/meihao1203/log4cpp#ifndef__MYLOG_H__#define__MYLOG_H__#include#include#include#include#include#include#include#include#include#includeusingnamespacestd;//usingnamespacelo
- log4cpp日志文件(linux环境),C++单例模式完成Mylog的类封装
Worthy_Wang
C++
log4cpp日志文件(linux环境)文章目录log4cpp日志文件(linux环境)@[toc]一.前言二.日志文件练习0:将日期:信息作为格式,输出日志信息到cout输出流中练习1:将日期:信息作为格式,输出日志信息到cout输出流中练习2:将日期:信息作为格式,输出日志信息到文件file.log中练习3:回滚文件小程序:单例模式C++封装Mylog类小程序版本二:模板参数包重置输出Mylo
- Unity中安卓崩溃日志处理记录
失恋王子
androidunity
1:如果发生问题的设备在手边,则可以通过ADB命令连接手机,获取到设备发生时的日志adb.exe在(SDK\platform-tools),也可以添加到环境变量PATH中使用,使用cmd命令行连接设备:adbconnect127.0.0.1:5555(Ip地址:端口号一般为5554或者5555)获取设备的所有日志及当前的日志:adblogcat-vtime>d:\myLog.txtctrl+c停止
- UE_LOG重新补充
Lif68
在.h文件声明DECLARE_LOG_CATEGORY_EXTERN(MyLog,Log,All);在.cpp文件声明DEFINE_LOG_CATEGORY(MyLog)就可以使用了Log格式:LogMessage//"Thisisamessagetoyourselfduringruntime!"UE_LOG(YourLog,Warning,TEXT("Thisisamessagetoyourse
- SpringMVC中的自定义注解
Ar.小白
springmvcjava
目录简介注解(Annotation)在Java编程中的作用SpringMVC中的自定义注解Java注解是什么?为什么在Java开发中注解变得如此重要?Java注解分类1.标准注解(JDK基本注解)2.自定义注解JDK基本注解JDK元注解自定义注解如何使用自定义注解?案例1:获取类与方法上的注解值案例二:获取类属性上的注解属性值示例三:获取参数修饰注解对应的属性值Aop自定义注解的应用MyLog自定
- SpringMVC----自定义注解
小徐o
java开发语言
目录自定义注解是什么作用JDK元注解测试案列案例一(获取类与方法上的注解值)案例二(获取类属性上的注解属性值)案例三(获取参数修饰注解对应的属性值)五.Aop自定义注解的应用Mylog前置通知自定义注解是什么SpringMVC自定义注解是指开发者根据自己的需求,在SpringMVC框架中自定义的注解。通过自定义注解,可以实现对请求参数、方法、类等进行自定义的标记和处理。开发者可以通过自定义注解来简
- python实现日志监控类工具
虎中申
个人总结python开发语言
importlogging,os#引入日期模板importdate#定义MyLog类classMyLog(object):#类MyLog的构造函数def__init__(self,name):self.name=nameself.logger=logging.getLogger(self.name)#定义日志等级self.logger.setLevel(logging.DEBUG)#当前时间sel
- SpringMVC之自定义注解
bing人
前端
一.什么是SpringMVC之自定义注解二.Java注解简介Java注解分类JDK元注解三.自定义注解简介自定义注解的分类四.自定义注解的基本案例案例一(获取类与方法上的注解值)案例二(获取类属性上的注解属性值)案例三(获取参数修饰注解对应的属性值)五.Aop自定义注解的应用Mylog前置通知一.什么是SpringMVC之自定义注解在SpringMVC中,我们可以使用自定义注解来增强代码的可读性和
- SpringMVC系列(七)之自定义注解
不念那年晚春
开发语言intellij-ideajava
目录一.Java注解简介1.1Java注解分类1.2JDK基本注解@Override@
[email protected]元注解从Java7开始,额外添加了3个注解:1.4自定义注解如何自定义注解?二.自定义注解示例枚举类:示例一:获取类与方法上的注解值示例二:获取到类属性上的注解属性值示例三:获取参数修饰注解对应的属性值三.aop自定义注解的应用MyLog自定义注解
- springboot整合AOP自定义注解
Rainshine_4bf6
一创建一个自定义注解//Stringvalue()default"";}二创建一个切面类@ComponentpublicclassMyAspect{@AutowiredprivateLogsServicelogsService;//搜索UsersService类中的所有带@MyLog的方法@Pointcut("execution(*com.qianfeng.wc.service.UsersServ
- spark设置日志级别的4种方式
炼数成器
Sparkspark
修改spark配置文件修改$Spark_HOME/conf下的log4j.properties2.spark-sumbit设置spark-submit--conf"spark.driver.extraJavaOptions=-Dlog4j.configuration=file:/log4j.xml"//指出日志级别对于可以写死一个log路径,也可以在代码中做设置,例如设置log名字为myLog,可
- RxJava 复刻简版之一,调用流程分析之案例一
da_ma_dai
RxJava分析rxjavaandroid
调用示例(io.reactivex.rxjava3:rxjava:3.1.5)Observable.create(newObservableOnSubscribe(){@Overridepublicvoidsubscribe(@NonNullObservableEmitteremitter)throwsThrowable{///2ConstKt.myLog(TAG+"subscribe");emi
- dbms_scheduler 执行shell script
jnrjian
oracle
Asimpledummyexampletovalidatethis:rm/tmp/mylog_*.logecho'#!/bin/ksh'>/tmp/test.shecho'DATE=`date+%Y%m%d`'>>/tmp/test.shecho'echo"thisisatest">/tmp/mylog_$DATE.log'>>/tmp/test.shsqlplus/nolog'MY_JOB',j
- 文件生成Md5值方法
赖龙
C#后端代码记录
//////获取文件MD5值内容先MD5加密再转换utf-8/////////staticpublicstringgetFileStreamMD5(stringfilePath){stringfileStream=“”;MyLog.Default.Info(“开始读取:”+filePath);try{using(FileStreamfsRead=newFileStream(filePath,Fil
- Python日志打印重复问题
测试_机器猫
今天调试用例的脚本去调用封装好的日志模块(算是补充前面的写Python日志logging模块的使用的一个小bug吧),出现写入多个日志文件的问题,看下运行的效果分析:一共运行了4条myLog.logger().inf()(except异常那条不算),出现了4个日志文件,里面内容也有重复,肯定不是我想要的结果,我想要的是这4条info按照执行顺序写入到一个文件中去接着分析:把所有信息先打印到一个文件
- C++模拟QT信号槽
swifterlc
C++模拟QT信号槽测试代码//创建信号Eventsevent1{};//注册信号槽,使用Lambdaevent1+=[](boolflag){MyLog();//注册信号槽,使用函数指针event2->RegisterLastObserver(Slot2);//信号发送event2->Emit(true);MyLogclassEvents:protectedNoCopiable{usingEve
- Spring Boot 配置logback日志实现
是摩卡不是抹茶呀
Java进化之旅SpringBootJava日志SpringBootlogback日志实现
application配置默认情况下springboot是不会将日志输出到日志文件中,我们可以配置application的方式进行日志输出#注意logging.file与logging.path同时使用时,不会进行叠加,即不会生成path+file的日志文件logging.file=D:\\MyLog\\MyLog.loglogging.level.root=info#logging.path=D
- 理解文件权限
Troc_wangpeng
linux运维服务器
使用文件极限符如果你还记得第3章,那应该知道ls命令可以用来查看Linux系统上的文件,目录和设备的权限。ls-lx代表对象是可执行的如果没有某种权限,在该权限位会出现单破折线,这3组权限分别对应对象的3个安全级别。1.对象的属主2.对象的属组3.系统其他用户举个例子-rwxrwxr-xlrichrich48822010-09-1819:25mylog文件mylog有下面3组权限rwx:文件的属主
- Java常用排序算法/程序员必须掌握的8大排序算法
cugfy
java
分类:
1)插入排序(直接插入排序、希尔排序)
2)交换排序(冒泡排序、快速排序)
3)选择排序(直接选择排序、堆排序)
4)归并排序
5)分配排序(基数排序)
所需辅助空间最多:归并排序
所需辅助空间最少:堆排序
平均速度最快:快速排序
不稳定:快速排序,希尔排序,堆排序。
先来看看8种排序之间的关系:
1.直接插入排序
(1
- 【Spark102】Spark存储模块BlockManager剖析
bit1129
manager
Spark围绕着BlockManager构建了存储模块,包括RDD,Shuffle,Broadcast的存储都使用了BlockManager。而BlockManager在实现上是一个针对每个应用的Master/Executor结构,即Driver上BlockManager充当了Master角色,而各个Slave上(具体到应用范围,就是Executor)的BlockManager充当了Slave角色
- linux 查看端口被占用情况详解
daizj
linux端口占用netstatlsof
经常在启动一个程序会碰到端口被占用,这里讲一下怎么查看端口是否被占用,及哪个程序占用,怎么Kill掉已占用端口的程序
1、lsof -i:port
port为端口号
[root@slave /data/spark-1.4.0-bin-cdh4]# lsof -i:8080
COMMAND PID USER FD TY
- Hosts文件使用
周凡杨
hostslocahost
一切都要从localhost说起,经常在tomcat容器起动后,访问页面时输入http://localhost:8088/index.jsp,大家都知道localhost代表本机地址,如果本机IP是10.10.134.21,那就相当于http://10.10.134.21:8088/index.jsp,有时候也会看到http: 127.0.0.1:
- java excel工具
g21121
Java excel
直接上代码,一看就懂,利用的是jxl:
import java.io.File;
import java.io.IOException;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import
- web报表工具finereport常用函数的用法总结(数组函数)
老A不折腾
finereportweb报表函数总结
ADD2ARRAY
ADDARRAY(array,insertArray, start):在数组第start个位置插入insertArray中的所有元素,再返回该数组。
示例:
ADDARRAY([3,4, 1, 5, 7], [23, 43, 22], 3)返回[3, 4, 23, 43, 22, 1, 5, 7].
ADDARRAY([3,4, 1, 5, 7], "测试&q
- 游戏服务器网络带宽负载计算
墙头上一根草
服务器
家庭所安装的4M,8M宽带。其中M是指,Mbits/S
其中要提前说明的是:
8bits = 1Byte
即8位等于1字节。我们硬盘大小50G。意思是50*1024M字节,约为 50000多字节。但是网宽是以“位”为单位的,所以,8Mbits就是1M字节。是容积体积的单位。
8Mbits/s后面的S是秒。8Mbits/s意思是 每秒8M位,即每秒1M字节。
我是在计算我们网络流量时想到的
- 我的spring学习笔记2-IoC(反向控制 依赖注入)
aijuans
Spring 3 系列
IoC(反向控制 依赖注入)这是Spring提出来了,这也是Spring一大特色。这里我不用多说,我们看Spring教程就可以了解。当然我们不用Spring也可以用IoC,下面我将介绍不用Spring的IoC。
IoC不是框架,她是java的技术,如今大多数轻量级的容器都会用到IoC技术。这里我就用一个例子来说明:
如:程序中有 Mysql.calss 、Oracle.class 、SqlSe
- 高性能mysql 之 选择存储引擎(一)
annan211
mysqlInnoDBMySQL引擎存储引擎
1 没有特殊情况,应尽可能使用InnoDB存储引擎。 原因:InnoDB 和 MYIsAM 是mysql 最常用、使用最普遍的存储引擎。其中InnoDB是最重要、最广泛的存储引擎。她 被设计用来处理大量的短期事务。短期事务大部分情况下是正常提交的,很少有回滚的情况。InnoDB的性能和自动崩溃 恢复特性使得她在非事务型存储的需求中也非常流行,除非有非常
- UDP网络编程
百合不是茶
UDP编程局域网组播
UDP是基于无连接的,不可靠的传输 与TCP/IP相反
UDP实现私聊,发送方式客户端,接受方式服务器
package netUDP_sc;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.Ine
- JQuery对象的val()方法执行结果分析
bijian1013
JavaScriptjsjquery
JavaScript中,如果id对应的标签不存在(同理JAVA中,如果对象不存在),则调用它的方法会报错或抛异常。在实际开发中,发现JQuery在id对应的标签不存在时,调其val()方法不会报错,结果是undefined。
- http请求测试实例(采用json-lib解析)
bijian1013
jsonhttp
由于fastjson只支持JDK1.5版本,因些对于JDK1.4的项目,可以采用json-lib来解析JSON数据。如下是http请求的另外一种写法,仅供参考。
package com;
import java.util.HashMap;
import java.util.Map;
import
- 【RPC框架Hessian四】Hessian与Spring集成
bit1129
hessian
在【RPC框架Hessian二】Hessian 对象序列化和反序列化一文中介绍了基于Hessian的RPC服务的实现步骤,在那里使用Hessian提供的API完成基于Hessian的RPC服务开发和客户端调用,本文使用Spring对Hessian的集成来实现Hessian的RPC调用。
定义模型、接口和服务器端代码
|---Model
&nb
- 【Mahout三】基于Mahout CBayes算法的20newsgroup流程分析
bit1129
Mahout
1.Mahout环境搭建
1.下载Mahout
http://mirror.bit.edu.cn/apache/mahout/0.10.0/mahout-distribution-0.10.0.tar.gz
2.解压Mahout
3. 配置环境变量
vim /etc/profile
export HADOOP_HOME=/home
- nginx负载tomcat遇非80时的转发问题
ronin47
nginx负载后端容器是tomcat(其它容器如WAS,JBOSS暂没发现这个问题)非80端口,遇到跳转异常问题。解决的思路是:$host:port
详细如下:
该问题是最先发现的,由于之前对nginx不是特别的熟悉所以该问题是个入门级别的:
? 1 2 3 4 5
- java-17-在一个字符串中找到第一个只出现一次的字符
bylijinnan
java
public class FirstShowOnlyOnceElement {
/**Q17.在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
* 1.int[] count:count[i]表示i对应字符出现的次数
* 2.将26个英文字母映射:a-z <--> 0-25
* 3.假设全部字母都是小写
*/
pu
- mongoDB 复制集
开窍的石头
mongodb
mongo的复制集就像mysql的主从数据库,当你往其中的主复制集(primary)写数据的时候,副复制集(secondary)会自动同步主复制集(Primary)的数据,当主复制集挂掉以后其中的一个副复制集会自动成为主复制集。提供服务器的可用性。和防止当机问题
mo
- [宇宙与天文]宇宙时代的经济学
comsci
经济
宇宙尺度的交通工具一般都体型巨大,造价高昂。。。。。
在宇宙中进行航行,近程采用反作用力类型的发动机,需要消耗少量矿石燃料,中远程航行要采用量子或者聚变反应堆发动机,进行超空间跳跃,要消耗大量高纯度水晶体能源
以目前地球上国家的经济发展水平来讲,
- Git忽略文件
Cwind
git
有很多文件不必使用git管理。例如Eclipse或其他IDE生成的项目文件,编译生成的各种目标或临时文件等。使用git status时,会在Untracked files里面看到这些文件列表,在一次需要添加的文件比较多时(使用git add . / git add -u),会把这些所有的未跟踪文件添加进索引。
==== ==== ==== 一些牢骚
- MySQL连接数据库的必须配置
dashuaifu
mysql连接数据库配置
MySQL连接数据库的必须配置
1.driverClass:com.mysql.jdbc.Driver
2.jdbcUrl:jdbc:mysql://localhost:3306/dbname
3.user:username
4.password:password
其中1是驱动名;2是url,这里的‘dbna
- 一生要养成的60个习惯
dcj3sjt126com
习惯
一生要养成的60个习惯
第1篇 让你更受大家欢迎的习惯
1 守时,不准时赴约,让别人等,会失去很多机会。
如何做到:
①该起床时就起床,
②养成任何事情都提前15分钟的习惯。
③带本可以随时阅读的书,如果早了就拿出来读读。
④有条理,生活没条理最容易耽误时间。
⑤提前计划:将重要和不重要的事情岔开。
⑥今天就准备好明天要穿的衣服。
⑦按时睡觉,这会让按时起床更容易。
2 注重
- [介绍]Yii 是什么
dcj3sjt126com
PHPyii2
Yii 是一个高性能,基于组件的 PHP 框架,用于快速开发现代 Web 应用程序。名字 Yii (读作 易)在中文里有“极致简单与不断演变”两重含义,也可看作 Yes It Is! 的缩写。
Yii 最适合做什么?
Yii 是一个通用的 Web 编程框架,即可以用于开发各种用 PHP 构建的 Web 应用。因为基于组件的框架结构和设计精巧的缓存支持,它特别适合开发大型应
- Linux SSH常用总结
eksliang
linux sshSSHD
转载请出自出处:http://eksliang.iteye.com/blog/2186931 一、连接到远程主机
格式:
ssh name@remoteserver
例如:
ssh
[email protected]
二、连接到远程主机指定的端口
格式:
ssh name@remoteserver -p 22
例如:
ssh i
- 快速上传头像到服务端工具类FaceUtil
gundumw100
android
快速迭代用
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOExceptio
- jQuery入门之怎么使用
ini
JavaScripthtmljqueryWebcss
jQuery的强大我何问起(个人主页:hovertree.com)就不用多说了,那么怎么使用jQuery呢?
首先,下载jquery。下载地址:http://hovertree.com/hvtart/bjae/b8627323101a4994.htm,一个是压缩版本,一个是未压缩版本,如果在开发测试阶段,可以使用未压缩版本,实际应用一般使用压缩版本(min)。然后就在页面上引用。
- 带filter的hbase查询优化
kane_xie
查询优化hbaseRandomRowFilter
问题描述
hbase scan数据缓慢,server端出现LeaseException。hbase写入缓慢。
问题原因
直接原因是: hbase client端每次和regionserver交互的时候,都会在服务器端生成一个Lease,Lease的有效期由参数hbase.regionserver.lease.period确定。如果hbase scan需
- java设计模式-单例模式
men4661273
java单例枚举反射IOC
单例模式1,饿汉模式
//饿汉式单例类.在类初始化时,已经自行实例化
public class Singleton1 {
//私有的默认构造函数
private Singleton1() {}
//已经自行实例化
private static final Singleton1 singl
- mongodb 查询某一天所有信息的3种方法,根据日期查询
qiaolevip
每天进步一点点学习永无止境mongodb纵观千象
// mongodb的查询真让人难以琢磨,就查询单天信息,都需要花费一番功夫才行。
// 第一种方式:
coll.aggregate([
{$project:{sendDate: {$substr: ['$sendTime', 0, 10]}, sendTime: 1, content:1}},
{$match:{sendDate: '2015-
- 二维数组转换成JSON
tangqi609567707
java二维数组json
原文出处:http://blog.csdn.net/springsen/article/details/7833596
public class Demo {
public static void main(String[] args) { String[][] blogL
- erlang supervisor
wudixiaotie
erlang
定义supervisor时,如果是监控celuesimple_one_for_one则删除children的时候就用supervisor:terminate_child (SupModuleName, ChildPid),如果shutdown策略选择的是brutal_kill,那么supervisor会调用exit(ChildPid, kill),这样的话如果Child的behavior是gen_