Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
map-parent
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
常超
map-parent
Commits
a44ce055
Commit
a44ce055
authored
Mar 10, 2021
by
Jiabeibei_glb
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into dev
parents
4d069ae3
6da15f83
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
765 additions
and
142 deletions
+765
-142
common/common_utils/src/main/java/com/founder/commonutils/esEntity/TbZyKkxx.java
+91
-0
common/common_utils/src/main/java/com/founder/commonutils/publicEntity/MapRestResult.java
+8
-1
common/common_utils/src/main/java/com/founder/commonutils/publicEntity/RequestBean.java
+0
-10
common/service_base/src/main/java/com/founder/servicebase/exceptionhandler/GlobalExceptionHandler.java
+3
-3
service/asj/src/main/resources/logback-spring.xml
+1
-1
service/asj/src/test/java/com/founder/demo/CodeGenerator.java
+4
-4
service/es/src/main/java/com/founder/eszy/controller/EsExtractController.java
+23
-4
service/es/src/main/java/com/founder/eszy/controller/EsQueryController.java
+39
-0
service/es/src/main/java/com/founder/eszy/esExtract/EsTbZyJzxxTranslation.java
+4
-4
service/es/src/main/java/com/founder/eszy/esExtract/EsTbZyKkxxTranslation.java
+83
-0
service/es/src/main/java/com/founder/eszy/esExtract/TbZyJzxxEs.java
+1
-1
service/es/src/main/java/com/founder/eszy/esExtract/TbZyKkxxEs.java
+158
-0
service/es/src/main/java/com/founder/eszy/esSearch/EsSearch.java
+1
-1
service/es/src/main/java/com/founder/eszy/esSearch/EsTbZyJzxxTranslationQuery.java
+1
-112
service/es/src/main/java/com/founder/eszy/esSearch/EsTbZyKkxxTranslationQuery.java
+12
-0
service/es/src/main/java/com/founder/eszy/esSearch/EsTranslationQuery.java
+127
-0
service/es/src/main/java/com/founder/eszy/mapper/TbZyKkxxMapper.java
+21
-0
service/es/src/main/java/com/founder/eszy/mapper/xml/TbZyKkxxMapper.xml
+22
-0
service/es/src/main/resources/logback-spring.xml
+1
-1
service/publicapi/src/main/resources/logback-spring.xml
+165
-0
No files found.
common/common_utils/src/main/java/com/founder/commonutils/esEntity/TbZyKkxx.java
0 → 100644
View file @
a44ce055
package
com
.
founder
.
commonutils
.
esEntity
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
java.io.Serializable
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
/**
* <p>
*
* </p>
*
* @author chent
* @since 2021-03-10
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@Accessors
(
chain
=
true
)
@TableName
(
"TB_ZY_KKXX"
)
@ApiModel
(
value
=
"TbZyKkxx对象"
,
description
=
""
)
public
class
TbZyKkxx
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@TableField
(
"MY_ID_HASH"
)
private
String
myIdHash
;
@TableField
(
"MY_VALUE_MD5"
)
private
String
myValueMd5
;
@TableField
(
"MY_CREATE_DATE"
)
private
String
myCreateDate
;
@ApiModelProperty
(
value
=
"卡口id"
)
@TableField
(
"ID"
)
private
String
id
;
@ApiModelProperty
(
value
=
"卡口编号"
)
@TableField
(
"CODE"
)
private
String
code
;
@ApiModelProperty
(
value
=
"卡口名称"
)
@TableField
(
"NAME"
)
private
String
name
;
@ApiModelProperty
(
value
=
"卡口类型"
)
@TableField
(
"TYPE"
)
private
String
type
;
@TableField
(
"EXT"
)
private
String
ext
;
@ApiModelProperty
(
value
=
"行政区划省代码"
)
@TableField
(
"ORGUNITID"
)
private
String
orgunitid
;
@ApiModelProperty
(
value
=
"经度"
)
@TableField
(
"X"
)
private
String
x
;
@ApiModelProperty
(
value
=
"纬度"
)
@TableField
(
"Y"
)
private
String
y
;
@ApiModelProperty
(
value
=
"序列号"
)
@TableField
(
"ORDERNO"
)
private
String
orderno
;
@TableField
(
"MAPPINGID"
)
private
String
mappingid
;
@TableField
(
"SJGXSJ"
)
private
String
sjgxsj
;
@TableField
(
"PRE_FORMAT_SJGXSJ"
)
private
String
preFormatSjgxsj
;
@TableField
(
"ETL_TIME_TAR"
)
private
String
etlTimeTar
;
@TableField
(
"PRE_FORMAT_ETL_TIME_TAR"
)
private
String
preFormatEtlTimeTar
;
}
common/common_utils/src/main/java/com/founder/commonutils/publicEntity/MapRestResult.java
View file @
a44ce055
...
...
@@ -53,7 +53,14 @@ public class MapRestResult<T> {
r
.
setMsg
(
"失败"
);
return
r
;
}
//--------6---------------
public
static
<
T
>
MapRestResult
error
(
String
msg
)
{
MapRestResult
r
=
new
MapRestResult
();
r
.
setStatus
(
ResultCode
.
ERROR
);
r
.
setMsg
(
"error"
);
r
.
setMsg
(
msg
);
return
r
;
}
public
MapRestResult
()
{
this
.
status
=
200
;
...
...
common/common_utils/src/main/java/com/founder/commonutils/publicEntity/RequestBean.java
View file @
a44ce055
...
...
@@ -14,16 +14,6 @@ public class RequestBean implements Serializable {
private
GeographicInfo
geographicInfo
;
//空间信息
//private rbss rbss;//查询条件
private
String
poiname
;
public
String
getPoiname
()
{
return
poiname
;
}
public
void
setPoiname
(
String
poiname
)
{
this
.
poiname
=
poiname
;
}
public
String
getIndex
()
{
return
index
;
}
...
...
common/service_base/src/main/java/com/founder/servicebase/exceptionhandler/GlobalExceptionHandler.java
View file @
a44ce055
...
...
@@ -16,7 +16,7 @@ public class GlobalExceptionHandler {
@ResponseBody
//为了返回数据
public
MapRestResult
error
(
Exception
e
)
{
e
.
printStackTrace
();
return
MapRestResult
.
error
(
).
message
(
"执行了全局异常处理.."
);
return
MapRestResult
.
error
(
"执行了全局异常处理.."
);
}
//特定异常
...
...
@@ -24,7 +24,7 @@ public class GlobalExceptionHandler {
@ResponseBody
//为了返回数据
public
MapRestResult
error
(
ArithmeticException
e
)
{
e
.
printStackTrace
();
return
MapRestResult
.
error
(
).
message
(
"执行了ArithmeticException异常处理.."
);
return
MapRestResult
.
error
(
"执行了ArithmeticException异常处理.."
);
}
//自定义异常
...
...
@@ -34,7 +34,7 @@ public class GlobalExceptionHandler {
log
.
error
(
e
.
getMessage
());
e
.
printStackTrace
();
return
MapRestResult
.
error
().
code
(
e
.
getCode
()).
message
(
e
.
getMsg
()
);
return
MapRestResult
.
build
(
e
.
getCode
(),
e
.
getMsg
(),
""
);
}
}
service/asj/src/main/resources/logback-spring.xml
View file @
a44ce055
...
...
@@ -133,7 +133,7 @@
<!--开发环境:打印控制台-->
<springProfile
name=
"dev"
>
<!--可以输出项目中的debug日志,包括mybatis的sql日志-->
<logger
name=
"com.
guli
"
level=
"INFO"
/>
<logger
name=
"com.
founder
"
level=
"INFO"
/>
<!--
root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
...
...
service/asj/src/test/java/com/founder/demo/CodeGenerator.java
View file @
a44ce055
...
...
@@ -61,16 +61,16 @@ public class CodeGenerator {
//包 com.atguigu.eduservice
pc
.
setParent
(
"com.founder"
);
//包 com.atguigu.eduservice.controller
pc
.
setController
(
"controller"
);
//
pc.setController("controller");
pc
.
setEntity
(
"entity"
);
pc
.
setService
(
"service"
);
pc
.
setMapper
(
"mapper"
);
//
pc.setService("service");
//
pc.setMapper("mapper");
mpg
.
setPackageInfo
(
pc
);
// 5、策略配置
StrategyConfig
strategy
=
new
StrategyConfig
();
strategy
.
setInclude
(
"TB_ZY_
JZ
XX"
);
//生成的表
strategy
.
setInclude
(
"TB_ZY_
KK
XX"
);
//生成的表
strategy
.
setNaming
(
NamingStrategy
.
underline_to_camel
);
//数据库表映射到实体的命名策略
strategy
.
setTablePrefix
(
pc
.
getModuleName
()
+
"_"
);
//生成实体时去掉表前缀
...
...
service/es/src/main/java/com/founder/eszy/controller/EsExtractController.java
View file @
a44ce055
...
...
@@ -3,7 +3,8 @@ package com.founder.eszy.controller;
import
com.founder.commonutils.publicEntity.MapRestResult
;
import
com.founder.eszy.esExtract.EsTbZyJzxxTranslation
;
import
com.founder.eszy.esSearch.esSearch
;
import
com.founder.eszy.esExtract.EsTbZyKkxxTranslation
;
import
com.founder.eszy.esSearch.EsSearch
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
...
...
@@ -17,20 +18,38 @@ public class EsExtractController {
@Autowired
private
EsTbZyJzxxTranslation
esTbZyJzxxTranslation
;
@Autowired
private
esSearch
esSearch
;
private
EsTbZyKkxxTranslation
esTbZyKkxxTranslation
;
@Autowired
private
EsSearch
esSearch
;
@Value
(
"${jz_index}"
)
private
String
jz_index
;
@Value
(
"${kk_index}"
)
private
String
kk_index
;
//基站
@ApiOperation
(
value
=
"基站es全量抽取"
)
@GetMapping
(
"/jzxx"
)
public
MapRestResult
syss
()
{
public
MapRestResult
jzxx
()
{
System
.
out
.
println
(
"jzxxES开始========================="
);
try
{
esTbZyJzxxTranslation
.
Syss
EsSave
();
esTbZyJzxxTranslation
.
jzxx
EsSave
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
int
count
=
(
int
)
esSearch
.
EScount
(
jz_index
);
return
MapRestResult
.
build
(
200
,
"基站数据抽取完成"
,
count
);
}
//卡口
@ApiOperation
(
value
=
"卡口es全量抽取"
)
@GetMapping
(
"/kkxx"
)
public
MapRestResult
kkxx
()
{
System
.
out
.
println
(
"kkxxES开始========================="
);
try
{
esTbZyKkxxTranslation
.
kkxxEsSave
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
int
count
=
(
int
)
esSearch
.
EScount
(
kk_index
);
return
MapRestResult
.
build
(
200
,
"卡口数据抽取完成"
,
count
);
}
}
service/es/src/main/java/com/founder/eszy/controller/EsQueryController.java
View file @
a44ce055
...
...
@@ -4,6 +4,7 @@ import com.founder.commonutils.publicEntity.GeographicInfo;
import
com.founder.commonutils.publicEntity.MapRestResult
;
import
com.founder.commonutils.publicEntity.RequestBean
;
import
com.founder.eszy.esSearch.EsTbZyJzxxTranslationQuery
;
import
com.founder.eszy.esSearch.EsTbZyKkxxTranslationQuery
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.StringUtils
;
...
...
@@ -21,6 +22,8 @@ import java.util.Map;
public
class
EsQueryController
{
@Autowired
private
EsTbZyJzxxTranslationQuery
esTbZyJzxxTranslationQuery
;
@Autowired
private
EsTbZyKkxxTranslationQuery
esTbZyKkxxTranslationQuery
;
//基站搜索
@ApiOperation
(
value
=
"基站查询"
)
@RequestMapping
(
value
=
"/getTbZyJzxxList"
,
method
=
RequestMethod
.
POST
)
...
...
@@ -57,4 +60,40 @@ public class EsQueryController {
return
MapRestResult
.
build
(
200
,
"成功查询基站数据"
,
result
.
size
()+
""
,
result
);
}
}
//基站搜索
@ApiOperation
(
value
=
"卡口查询"
)
@RequestMapping
(
value
=
"/getTbZyKkxxList"
,
method
=
RequestMethod
.
POST
)
public
MapRestResult
getTbZyKkxxList
(
@RequestBody
RequestBean
bean
)
throws
Exception
{
List
<
Map
<
String
,
Object
>>
result
=
new
ArrayList
<>();
//按区域范围查询es数据
if
(
bean
.
getGeographicInfo
()!=
null
&&!
StringUtils
.
isEmpty
(
bean
.
getGeographicInfo
())){
GeographicInfo
geographicInfo
=
bean
.
getGeographicInfo
();
String
distance
=
geographicInfo
.
getDistance
();
//判断是否是圆
if
(
distance
!=
null
&&
distance
!=
""
){
org
.
elasticsearch
.
common
.
geo
.
GeoPoint
point
=
geographicInfo
.
getPoint
();
if
(
distance
==
null
||
point
==
null
){
return
null
;
}
try
{
result
=
esTbZyKkxxTranslationQuery
.
searchGeoDistance
(
bean
.
getIndex
(),
bean
.
getType
(),
geographicInfo
.
getField
(),
distance
,
point
);
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
return
MapRestResult
.
build
(
200
,
"成功查询卡口数据"
,
result
.
size
()+
""
,
result
);
}
else
{
try
{
result
=
esTbZyKkxxTranslationQuery
.
searchGeoPolygon
(
bean
.
getIndex
(),
bean
.
getType
(),
geographicInfo
.
getField
(),
geographicInfo
.
getPoints
());
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
return
MapRestResult
.
build
(
200
,
"成功查询卡口数据"
,
result
.
size
()+
""
,
result
);
}
}
//不带区域信息查询es数据
else
{
result
=
esTbZyKkxxTranslationQuery
.
searchQuery
(
bean
.
getIndex
(),
bean
.
getType
(),
null
,
null
);
return
MapRestResult
.
build
(
200
,
"成功查询卡口数据"
,
result
.
size
()+
""
,
result
);
}
}
}
service/es/src/main/java/com/founder/eszy/esExtract/EsTbZyJzxxTranslation.java
View file @
a44ce055
...
...
@@ -31,7 +31,7 @@ public class EsTbZyJzxxTranslation {
@Value
(
"${jz_index}"
)
private
String
jz_index
;
//批量导入es--------------------------------------------------------------------
public
MapRestResult
Syss
EsSave
()
throws
Exception
{
public
MapRestResult
jzxx
EsSave
()
throws
Exception
{
long
start
=
System
.
currentTimeMillis
();
ExecutorService
executorService
=
Executors
.
newCachedThreadPool
();
//按需分配线程池
Receiving
receiving
=
new
Receiving
();
...
...
@@ -62,9 +62,9 @@ public class EsTbZyJzxxTranslation {
receiving
.
setBegin
(
startnum
+
""
);
receiving
.
setEnd
(
endnum
+
""
);
//System.out.println("批量分流===========开始"+startnum+"===结束==="+endnum);
List
<
TbZyJzxx
>
syssL
ist
=
tbZyJzxxMapper
.
selectTbZyJzxxList
(
receiving
);
System
.
out
.
println
(
"批量分流===========开始"
+
startnum
+
"===结束==="
+
endnum
+
"====总数"
+
syssL
ist
.
size
());
HandleThread
thread
=
new
HandleThread
(
syssL
ist
,
jz_index
);
List
<
TbZyJzxx
>
l
ist
=
tbZyJzxxMapper
.
selectTbZyJzxxList
(
receiving
);
System
.
out
.
println
(
"批量分流===========开始"
+
startnum
+
"===结束==="
+
endnum
+
"====总数"
+
l
ist
.
size
());
HandleThread
thread
=
new
HandleThread
(
l
ist
,
jz_index
);
executorService1
.
execute
(
thread
);
}
return
null
;
...
...
service/es/src/main/java/com/founder/eszy/esExtract/EsTbZyKkxxTranslation.java
0 → 100644
View file @
a44ce055
package
com
.
founder
.
eszy
.
esExtract
;
import
com.founder.commonutils.esEntity.TbZyKkxx
;
import
com.founder.commonutils.publicEntity.MapRestResult
;
import
com.founder.commonutils.publicEntity.Receiving
;
import
com.founder.eszy.mapper.TbZyKkxxMapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
/**
* Created by chent 20210309
*/
@Service
public
class
EsTbZyKkxxTranslation
{
@Autowired
private
TbZyKkxxMapper
tbZyKkxxMapper
;
@Autowired
private
TbZyKkxxEs
es
;
@Value
(
"${kk_count}"
)
private
int
kk_count
;
@Value
(
"${kk_limit}"
)
private
int
kk_limit
;
@Value
(
"${kk_begin}"
)
private
int
kk_begin
;
@Value
(
"${kk_index}"
)
private
String
kk_index
;
//批量导入es--------------------------------------------------------------------
public
MapRestResult
kkxxEsSave
()
throws
Exception
{
long
start
=
System
.
currentTimeMillis
();
ExecutorService
executorService
=
Executors
.
newCachedThreadPool
();
//按需分配线程池
Receiving
receiving
=
new
Receiving
();
//receiving.setValue("'A01D67B67AA513CFE0530E07920A9B35','A01D67BAC6D613DBE0530E07920A6998'");
//分院
int
size
=
kk_count
;
int
limit
=
kk_limit
;
//特殊处理
if
(
limit
==
0
){
limit
=
1
;
}
long
threadNum
=
size
/
limit
;
int
startnum
=
0
;
int
endnum
=
0
;
ExecutorService
executorService1
=
Executors
.
newCachedThreadPool
();
//按需分配线程池
for
(
int
i
=
kk_begin
;
i
<
threadNum
+
1
;
i
++)
{
startnum
=
i
*
limit
+
1
;
endnum
=
((
i
+
1
)
*
limit
);
if
(
startnum
>
size
)
{
break
;
}
if
(
endnum
>
size
)
{
endnum
=
size
;
}
if
(
startnum
==
endnum
)
{
break
;
}
receiving
.
setBegin
(
startnum
+
""
);
receiving
.
setEnd
(
endnum
+
""
);
//System.out.println("批量分流===========开始"+startnum+"===结束==="+endnum);
List
<
TbZyKkxx
>
list
=
tbZyKkxxMapper
.
selectTbZyKkxxList
(
receiving
);
System
.
out
.
println
(
"批量分流===========开始"
+
startnum
+
"===结束==="
+
endnum
+
"====总数"
+
list
.
size
());
HandleThread
thread
=
new
HandleThread
(
list
,
kk_index
);
executorService1
.
execute
(
thread
);
}
return
null
;
}
class
HandleThread
extends
Thread
{
private
List
<
TbZyKkxx
>
data
;
private
String
index
;
public
HandleThread
(
List
<
TbZyKkxx
>
data
,
String
index
)
{
this
.
data
=
data
;
this
.
index
=
index
;
}
public
void
run
()
{
es
.
bulkCommit
(
data
,
index
);
}
}
}
service/es/src/main/java/com/founder/eszy/esExtract/TbZyJzxxEs.java
View file @
a44ce055
...
...
@@ -127,7 +127,7 @@ public class TbZyJzxxEs {
//es 特需
map
.
put
(
"xy"
,
e
.
getY
()+
","
+
e
.
getX
());
bulkRequest
.
add
(
esClient
.
prepareIndex
(
indexName
,
"pointdata"
,
e
.
getCid
()).
setSource
(
map
));
bulkRequest
.
add
(
esClient
.
prepareIndex
(
indexName
,
"pointdata"
,
e
.
getCid
()).
setSource
(
map
));
//type(pointdata)
bulkRequest
.
execute
().
actionGet
();
}
catch
(
Exception
e1
)
{
e1
.
printStackTrace
();
...
...
service/es/src/main/java/com/founder/eszy/esExtract/TbZyKkxxEs.java
0 → 100644
View file @
a44ce055
package
com
.
founder
.
eszy
.
esExtract
;
import
com.founder.commonutils.esEntity.TbZyKkxx
;
import
org.elasticsearch.action.admin.indices.create.CreateIndexRequestBuilder
;
import
org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsRequest
;
import
org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsResponse
;
import
org.elasticsearch.action.bulk.BulkRequestBuilder
;
import
org.elasticsearch.client.Client
;
import
org.elasticsearch.common.xcontent.XContentBuilder
;
import
org.elasticsearch.common.xcontent.XContentFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.io.IOException
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* Created by chentian on 2021-3-9
*/
@Service
public
class
TbZyKkxxEs
{
/**
* 一 创建索引方法 批量提交时 调这个方法
*/
// model 索引前缀名 比如 user
// reportTime 当前入库日期 比如20200514
// 组合起来就是 user-20200514
// 查询的时候如果想查所有user 索引名称可以是:user-*
//createESIndex(model + "-" + reportTime);
@Autowired
private
Client
esClient
;
public
void
createESIndex
(
String
indexName
)
{
IndicesExistsResponse
response
=
esClient
.
admin
().
indices
()
.
exists
(
new
IndicesExistsRequest
().
indices
(
new
String
[]
{
indexName
})).
actionGet
();
if
(
response
.
isExists
())
{
return
;
}
Map
<
String
,
Object
>
setting
=
new
HashMap
<
String
,
Object
>();
setting
.
put
(
"number_of_shards"
,
3
);
//这个自己设个数吧。我也没搞清应该设置成多少合适。你设置成3-5比较合适。
setting
.
put
(
"max_result_window"
,
10000000
);
setting
.
put
(
"number_of_replicas"
,
2
);
//根据需求配置。尽量不要设置为0。可以设置成es集群机器数量
//setting.put("refresh_interval", "120s"); //你这儿不需要配置
CreateIndexRequestBuilder
cib
=
esClient
.
admin
().
indices
().
prepareCreate
(
indexName
).
setSettings
(
setting
);
// 这些都是字段名
XContentBuilder
mapping
=
null
;
try
{
mapping
=
XContentFactory
.
jsonBuilder
().
startObject
().
startObject
(
"pointdata"
)
//这是type
.
startObject
(
"properties"
)
// <br>//不动
/**
* 底下这些是字段 ctrl+shift+u
* .field("index", false) 不建立索引,凡是查询条件,建议加上索引,提升查询速度
*/
.
startObject
(
"myIdHash"
).
field
(
"type"
,
"keyword"
).
endObject
().
field
(
"index"
,
false
).
endObject
()
.
startObject
(
"myValueMd5"
).
field
(
"type"
,
"keyword"
).
endObject
().
field
(
"index"
,
false
).
endObject
()
.
startObject
(
"myCreateDate"
).
field
(
"type"
,
"keyword"
).
endObject
().
field
(
"index"
,
false
).
endObject
()
.
startObject
(
"id"
).
field
(
"type"
,
"keyword"
).
endObject
()
//主键,卡口id
.
startObject
(
"code"
).
field
(
"type"
,
"keyword"
).
endObject
()
//卡口编码
.
startObject
(
"name"
).
field
(
"type"
,
"keyword"
).
endObject
()
.
startObject
(
"type"
).
field
(
"type"
,
"keyword"
).
endObject
()
.
startObject
(
"ext"
).
field
(
"type"
,
"keyword"
).
endObject
()
.
startObject
(
"orgunitid"
).
field
(
"type"
,
"keyword"
).
endObject
()
.
startObject
(
"x"
).
field
(
"type"
,
"keyword"
).
field
(
"index"
,
false
).
endObject
()
.
startObject
(
"y"
).
field
(
"type"
,
"keyword"
).
field
(
"index"
,
false
).
endObject
()
.
startObject
(
"xy"
).
field
(
"type"
,
"geo_point"
).
endObject
()
//经纬度特殊处理
.
startObject
(
"orderno"
).
field
(
"type"
,
"keyword"
).
field
(
"index"
,
false
).
endObject
()
.
startObject
(
"mappingid"
).
field
(
"type"
,
"keyword"
).
field
(
"index"
,
false
).
endObject
()
.
startObject
(
"sjgxsj"
).
field
(
"type"
,
"keyword"
).
field
(
"index"
,
false
).
endObject
().
endObject
()
.
startObject
(
"preFormatSjgxsj"
).
field
(
"type"
,
"keyword"
).
endObject
().
field
(
"index"
,
false
).
endObject
()
.
startObject
(
"etlTimeTar"
).
field
(
"type"
,
"keyword"
).
endObject
().
field
(
"index"
,
false
).
endObject
()
.
startObject
(
"preFormatEtlTimeTar"
).
field
(
"type"
,
"keyword"
).
endObject
().
field
(
"index"
,
false
).
endObject
()
//更新时间
// .startObject("updatedtime").field("type", "keyword").endObject()//修改时间
.
endObject
().
endObject
().
endObject
();
cib
.
addMapping
(
"pointdata"
,
mapping
);
cib
.
execute
().
actionGet
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
/**
* 二 插入数据
*/
//查询oracle
// 如果有id,可以根据where条件 每次查一万条数据(10000>id>=1,20000>id>=10000。写个计算方法) 放到list里。
//起个多线程。每个线程去执行这一万条数据
/* for(int i=0;i<1000;i++){
String sql = "";
//调查询
List<E> result = ;//查询结果
//调用批量bulk提交方法
bulkCommit(result);
}
}*/
/**
* 批量提交方法
* @param result
*/
public
String
bulkCommit
(
List
<
TbZyKkxx
>
result
,
String
indexName
)
{
for
(
TbZyKkxx
e
:
result
)
{
try
{
createESIndex
(
indexName
);
BulkRequestBuilder
bulkRequest
=
esClient
.
prepareBulk
();
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
//对应es字段
map
.
put
(
"myIdHash"
,
e
.
getMyIdHash
());
map
.
put
(
"myValueMd5"
,
e
.
getMyValueMd5
());
map
.
put
(
"myCreateDate"
,
e
.
getMyCreateDate
());
map
.
put
(
"id"
,
e
.
getId
());
//主键
map
.
put
(
"code"
,
e
.
getCode
());
map
.
put
(
"name"
,
e
.
getName
());
map
.
put
(
"type"
,
e
.
getType
());
map
.
put
(
"ext"
,
e
.
getExt
());
map
.
put
(
"orgunitid"
,
e
.
getOrgunitid
());
map
.
put
(
"x"
,
e
.
getX
());
map
.
put
(
"y"
,
e
.
getY
());
map
.
put
(
"orderno"
,
e
.
getOrderno
());
map
.
put
(
"mappingid"
,
e
.
getMappingid
());
map
.
put
(
"sjgxsj"
,
e
.
getSjgxsj
());
map
.
put
(
"preFormatSjgxsj"
,
e
.
getPreFormatSjgxsj
());
map
.
put
(
"etlTimeTar"
,
e
.
getEtlTimeTar
());
map
.
put
(
"preFormatEtlTimeTar"
,
e
.
getPreFormatEtlTimeTar
());
//es 特需
map
.
put
(
"xy"
,
e
.
getY
()+
","
+
e
.
getX
());
bulkRequest
.
add
(
esClient
.
prepareIndex
(
indexName
,
"pointdata"
,
e
.
getId
()).
setSource
(
map
));
//type(pointdata)
bulkRequest
.
execute
().
actionGet
();
}
catch
(
Exception
e1
)
{
e1
.
printStackTrace
();
}
}
return
"true"
;
}
}
\ No newline at end of file
service/es/src/main/java/com/founder/eszy/esSearch/
e
sSearch.java
→
service/es/src/main/java/com/founder/eszy/esSearch/
E
sSearch.java
View file @
a44ce055
...
...
@@ -12,7 +12,7 @@ import org.springframework.stereotype.Service;
* Created by admin on 2020/5/14.
*/
@Service
public
class
e
sSearch
{
public
class
E
sSearch
{
/**
* 一 创建索引方法 批量提交时 调这个方法
*/
...
...
service/es/src/main/java/com/founder/eszy/esSearch/EsTbZyJzxxTranslationQuery.java
View file @
a44ce055
package
com
.
founder
.
eszy
.
esSearch
;
import
org.elasticsearch.action.search.SearchRequestBuilder
;
import
org.elasticsearch.action.search.SearchResponse
;
import
org.elasticsearch.client.Client
;
import
org.elasticsearch.common.geo.GeoPoint
;
import
org.elasticsearch.index.query.*
;
import
org.elasticsearch.search.SearchHit
;
import
org.elasticsearch.search.SearchHits
;
import
org.elasticsearch.search.sort.GeoDistanceSortBuilder
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.StringUtils
;
import
java.math.BigDecimal
;
import
java.util.*
;
/**
* Created by chent on 2021-3-9
*/
@Service
public
class
EsTbZyJzxxTranslationQuery
{
@Autowired
private
QueryFactory
factory
;
@Autowired
private
Client
client
;
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
EsTbZyJzxxTranslationQuery
.
class
);
/**
* 查找位于多边形中的位置
* @param index 索引
* @param type 类型
* @param field 索引字段
* @param points 构成多边形的点
*/
public
List
<
Map
<
String
,
Object
>>
searchGeoPolygon
(
String
index
,
String
type
,
String
field
,
List
<
GeoPoint
>
points
)
throws
Exception
{
GeoPolygonQueryBuilder
qb
=
factory
.
builtPolygonQuery
(
field
,
points
);
BoolQueryBuilder
boolQueryBuilder
=
QueryBuilders
.
boolQuery
();
boolQueryBuilder
.
filter
(
qb
);
return
searchQuery
(
index
,
type
,
boolQueryBuilder
,
null
);
}
/**
* 查询距离中心点指定的范围内的位置
* @param index index
* @param type type
* @param field 索引字段
* @param distance 距离
* @param point 中心点
* @return
* @throws Exception
*/
public
List
<
Map
<
String
,
Object
>>
searchGeoDistance
(
String
index
,
String
type
,
String
field
,
String
distance
,
GeoPoint
point
)
throws
Exception
{
Map
<
String
,
Object
>
map
=
factory
.
builtDistanceQuery
(
field
,
distance
,
point
);
BoolQueryBuilder
boolQueryBuilder
=
QueryBuilders
.
boolQuery
();
QueryBuilder
qb
=
(
QueryBuilder
)
map
.
get
(
"qb"
);
//按距离排序
GeoDistanceSortBuilder
sort
=
(
GeoDistanceSortBuilder
)
map
.
get
(
"sort"
);
boolQueryBuilder
.
filter
(
qb
);
return
searchQuery
(
index
,
type
,
boolQueryBuilder
,
sort
);
}
/**
* 基础查询
* @param index 索引
* @param type type
* @return List<Map>
*/
public
List
<
Map
<
String
,
Object
>>
searchQuery
(
String
index
,
String
type
,
BoolQueryBuilder
boolQueryBuilder
,
GeoDistanceSortBuilder
sort
)
{
//基础查询不带空间检索
if
(
boolQueryBuilder
==
null
&&
StringUtils
.
isEmpty
(
boolQueryBuilder
))
{
BoolQueryBuilder
bq
=
QueryBuilders
.
boolQuery
();
return
search
(
index
,
type
,
bq
,
sort
);
}
else
{
//基础查询带空间检索
return
search
(
index
,
type
,
boolQueryBuilder
,
sort
);
}
}
/**
* 执行查询
* @param index 索引
* @param type type
* @param builder 查询语句
* @return List<Map>
*/
private
List
<
Map
<
String
,
Object
>>
search
(
String
index
,
String
type
,
BoolQueryBuilder
builder
,
GeoDistanceSortBuilder
sort
)
{
try
{
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<>();
SearchRequestBuilder
srb
=
client
.
prepareSearch
(
index
).
setSize
(
900000
);
if
(
type
!=
null
&&
type
.
length
()
!=
0
){
srb
.
setTypes
(
type
);
}
String
falg
=
""
;
if
(
sort
!=
null
&&
!
StringUtils
.
isEmpty
(
sort
))
{
srb
.
addSort
(
sort
);
//用于区分 要距离排序还要时间
falg
=
"1"
;
}
srb
.
setQuery
(
builder
);
SearchResponse
searchResponse
=
srb
.
execute
().
actionGet
();
SearchHits
hits
=
searchResponse
.
getHits
();
for
(
SearchHit
hit
:
hits
)
{
Map
<
String
,
Object
>
map
=
hit
.
getSourceAsMap
();
if
(
falg
.
equals
(
"1"
)){
BigDecimal
geoDis
=
new
BigDecimal
((
Double
)
hit
.
getSortValues
()[
0
]);
map
.
put
(
"距离"
,
geoDis
.
setScale
(
4
,
BigDecimal
.
ROUND_HALF_DOWN
)+
"km"
);
}
list
.
add
(
map
);
logger
.
info
(
"hits:"
+
map
);
}
return
list
;
}
catch
(
Exception
e
)
{
logger
.
error
(
"error!"
,
e
);
}
return
null
;
}
public
class
EsTbZyJzxxTranslationQuery
extends
EsTranslationQuery
{
}
service/es/src/main/java/com/founder/eszy/esSearch/EsTbZyKkxxTranslationQuery.java
0 → 100644
View file @
a44ce055
package
com
.
founder
.
eszy
.
esSearch
;
import
org.springframework.stereotype.Service
;
/**
* Created by chent on 2021-3-9
*/
@Service
public
class
EsTbZyKkxxTranslationQuery
extends
EsTranslationQuery
{
}
service/es/src/main/java/com/founder/eszy/esSearch/EsTranslationQuery.java
0 → 100644
View file @
a44ce055
package
com
.
founder
.
eszy
.
esSearch
;
import
org.elasticsearch.action.search.SearchRequestBuilder
;
import
org.elasticsearch.action.search.SearchResponse
;
import
org.elasticsearch.client.Client
;
import
org.elasticsearch.common.geo.GeoPoint
;
import
org.elasticsearch.index.query.BoolQueryBuilder
;
import
org.elasticsearch.index.query.GeoPolygonQueryBuilder
;
import
org.elasticsearch.index.query.QueryBuilder
;
import
org.elasticsearch.index.query.QueryBuilders
;
import
org.elasticsearch.search.SearchHit
;
import
org.elasticsearch.search.SearchHits
;
import
org.elasticsearch.search.sort.GeoDistanceSortBuilder
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.StringUtils
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
/**
* Created by chent on 2021-3-9
*/
@Service
public
class
EsTranslationQuery
{
@Autowired
private
QueryFactory
factory
;
@Autowired
private
Client
client
;
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
EsTranslationQuery
.
class
);
/**
* 查找位于多边形中的位置
* @param index 索引
* @param type 类型
* @param field 索引字段
* @param points 构成多边形的点
*/
public
List
<
Map
<
String
,
Object
>>
searchGeoPolygon
(
String
index
,
String
type
,
String
field
,
List
<
GeoPoint
>
points
)
throws
Exception
{
GeoPolygonQueryBuilder
qb
=
factory
.
builtPolygonQuery
(
field
,
points
);
BoolQueryBuilder
boolQueryBuilder
=
QueryBuilders
.
boolQuery
();
boolQueryBuilder
.
filter
(
qb
);
return
searchQuery
(
index
,
type
,
boolQueryBuilder
,
null
);
}
/**
* 查询距离中心点指定的范围内的位置
* @param index index
* @param type type
* @param field 索引字段
* @param distance 距离
* @param point 中心点
* @return
* @throws Exception
*/
public
List
<
Map
<
String
,
Object
>>
searchGeoDistance
(
String
index
,
String
type
,
String
field
,
String
distance
,
GeoPoint
point
)
throws
Exception
{
Map
<
String
,
Object
>
map
=
factory
.
builtDistanceQuery
(
field
,
distance
,
point
);
BoolQueryBuilder
boolQueryBuilder
=
QueryBuilders
.
boolQuery
();
QueryBuilder
qb
=
(
QueryBuilder
)
map
.
get
(
"qb"
);
//按距离排序
GeoDistanceSortBuilder
sort
=
(
GeoDistanceSortBuilder
)
map
.
get
(
"sort"
);
boolQueryBuilder
.
filter
(
qb
);
return
searchQuery
(
index
,
type
,
boolQueryBuilder
,
sort
);
}
/**
* 基础查询
* @param index 索引
* @param type type
* @return List<Map>
*/
public
List
<
Map
<
String
,
Object
>>
searchQuery
(
String
index
,
String
type
,
BoolQueryBuilder
boolQueryBuilder
,
GeoDistanceSortBuilder
sort
)
{
//基础查询不带空间检索
if
(
boolQueryBuilder
==
null
&&
StringUtils
.
isEmpty
(
boolQueryBuilder
))
{
BoolQueryBuilder
bq
=
QueryBuilders
.
boolQuery
();
return
search
(
index
,
type
,
bq
,
sort
);
}
else
{
//基础查询带空间检索
return
search
(
index
,
type
,
boolQueryBuilder
,
sort
);
}
}
/**
* 执行查询
* @param index 索引
* @param type type
* @param builder 查询语句
* @return List<Map>
*/
private
List
<
Map
<
String
,
Object
>>
search
(
String
index
,
String
type
,
BoolQueryBuilder
builder
,
GeoDistanceSortBuilder
sort
)
{
try
{
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<>();
SearchRequestBuilder
srb
=
client
.
prepareSearch
(
index
).
setSize
(
900000
);
if
(
type
!=
null
&&
type
.
length
()
!=
0
){
srb
.
setTypes
(
type
);
}
String
falg
=
""
;
if
(
sort
!=
null
&&
!
StringUtils
.
isEmpty
(
sort
))
{
srb
.
addSort
(
sort
);
//用于区分 要距离排序还要时间
falg
=
"1"
;
}
srb
.
setQuery
(
builder
);
SearchResponse
searchResponse
=
srb
.
execute
().
actionGet
();
SearchHits
hits
=
searchResponse
.
getHits
();
for
(
SearchHit
hit
:
hits
)
{
Map
<
String
,
Object
>
map
=
hit
.
getSourceAsMap
();
if
(
falg
.
equals
(
"1"
)){
BigDecimal
geoDis
=
new
BigDecimal
((
Double
)
hit
.
getSortValues
()[
0
]);
map
.
put
(
"距离"
,
geoDis
.
setScale
(
4
,
BigDecimal
.
ROUND_HALF_DOWN
)+
"km"
);
}
list
.
add
(
map
);
logger
.
info
(
"hits:"
+
map
);
}
return
list
;
}
catch
(
Exception
e
)
{
logger
.
error
(
"error!"
,
e
);
}
return
null
;
}
}
service/es/src/main/java/com/founder/eszy/mapper/TbZyKkxxMapper.java
0 → 100644
View file @
a44ce055
package
com
.
founder
.
eszy
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.founder.commonutils.esEntity.TbZyKkxx
;
import
com.founder.commonutils.publicEntity.Receiving
;
import
org.apache.ibatis.annotations.Mapper
;
import
java.util.List
;
/**
* <p>
* Mapper 接口
* </p>
*
* @author chent
* @since 2021-03-10
*/
@Mapper
public
interface
TbZyKkxxMapper
extends
BaseMapper
<
TbZyKkxx
>
{
List
<
TbZyKkxx
>
selectTbZyKkxxList
(
Receiving
receiving
);
}
service/es/src/main/java/com/founder/eszy/mapper/xml/TbZyKkxxMapper.xml
0 → 100644
View file @
a44ce055
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.founder.eszy.mapper.TbZyKkxxMapper"
>
<select
id=
"selectTbZyKkxxList"
parameterType=
"com.founder.commonutils.publicEntity.Receiving"
resultType=
"com.founder.commonutils.esEntity.TbZyKkxx"
>
select t2.* from(
select t1.*,rownum as rn from
(
SELECT *
FROM tb_zy_kkxx WHERE
x is not null and y is not null
) t1
<where>
rownum
<![CDATA[ <= ]]>
#{ end , jdbcType=VARCHAR }
</where>
)t2
<where>
rn
<![CDATA[ >= ]]>
#{ begin, jdbcType=VARCHAR }
</where>
</select>
</mapper>
\ No newline at end of file
service/es/src/main/resources/logback-spring.xml
View file @
a44ce055
...
...
@@ -133,7 +133,7 @@
<!--开发环境:打印控制台-->
<springProfile
name=
"dev"
>
<!--可以输出项目中的debug日志,包括mybatis的sql日志-->
<logger
name=
"com.
guli
"
level=
"INFO"
/>
<logger
name=
"com.
founder
"
level=
"INFO"
/>
<!--
root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
...
...
service/publicapi/src/main/resources/logback-spring.xml
0 → 100644
View file @
a44ce055
<?xml version="1.0" encoding="UTF-8"?>
<configuration
scan=
"true"
scanPeriod=
"10 seconds"
>
<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
<!-- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true -->
<!-- scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
<contextName>
logback
</contextName>
<!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。 -->
<property
name=
"log.path"
value=
"C:/guli_1010/demo"
/>
<!-- 彩色日志 -->
<!-- 配置格式变量:CONSOLE_LOG_PATTERN 彩色日志格式 -->
<!-- magenta:洋红 -->
<!-- boldMagenta:粗红-->
<!-- cyan:青色 -->
<!-- white:白色 -->
<!-- magenta:洋红 -->
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"%yellow(%date{yyyy-MM-dd HH:mm:ss}) |%highlight(%-5level) |%blue(%thread) |%blue(%file:%line) |%green(%logger) |%cyan(%msg%n)"
/>
<!--输出到控制台-->
<appender
name=
"CONSOLE"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
<!-- 例如:如果此处配置了INFO级别,则后面其他位置即使配置了DEBUG级别的日志,也不会被输出 -->
<filter
class=
"ch.qos.logback.classic.filter.ThresholdFilter"
>
<level>
INFO
</level>
</filter>
<encoder>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<!-- 设置字符集 -->
<charset>
UTF-8
</charset>
</encoder>
</appender>
<!--输出到文件-->
<!-- 时间滚动输出 level为 INFO 日志 -->
<appender
name=
"INFO_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 正在记录的日志文件的路径及文件名 -->
<file>
${log.path}/log_info.log
</file>
<!--日志文件输出格式-->
<encoder>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
<charset>
UTF-8
</charset>
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!-- 每天日志归档路径以及格式 -->
<fileNamePattern>
${log.path}/info/log-info-%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<maxFileSize>
100MB
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文件保留天数-->
<maxHistory>
15
</maxHistory>
</rollingPolicy>
<!-- 此日志文件只记录info级别的 -->
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<level>
INFO
</level>
<onMatch>
ACCEPT
</onMatch>
<onMismatch>
DENY
</onMismatch>
</filter>
</appender>
<!-- 时间滚动输出 level为 WARN 日志 -->
<appender
name=
"WARN_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 正在记录的日志文件的路径及文件名 -->
<file>
${log.path}/log_warn.log
</file>
<!--日志文件输出格式-->
<encoder>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
<charset>
UTF-8
</charset>
<!-- 此处设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<fileNamePattern>
${log.path}/warn/log-warn-%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<maxFileSize>
100MB
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文件保留天数-->
<maxHistory>
15
</maxHistory>
</rollingPolicy>
<!-- 此日志文件只记录warn级别的 -->
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<level>
warn
</level>
<onMatch>
ACCEPT
</onMatch>
<onMismatch>
DENY
</onMismatch>
</filter>
</appender>
<!-- 时间滚动输出 level为 ERROR 日志 -->
<appender
name=
"ERROR_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 正在记录的日志文件的路径及文件名 -->
<file>
${log.path}/log_error.log
</file>
<!--日志文件输出格式-->
<encoder>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
<charset>
UTF-8
</charset>
<!-- 此处设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<fileNamePattern>
${log.path}/error/log-error-%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<maxFileSize>
100MB
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文件保留天数-->
<maxHistory>
15
</maxHistory>
</rollingPolicy>
<!-- 此日志文件只记录ERROR级别的 -->
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<level>
ERROR
</level>
<onMatch>
ACCEPT
</onMatch>
<onMismatch>
DENY
</onMismatch>
</filter>
</appender>
<!--
<logger>用来设置某一个包或者具体的某一个类的日志打印级别、以及指定<appender>。
<logger>仅有一个name属性,
一个可选的level和一个可选的addtivity属性。
name:用来指定受此logger约束的某一个包或者具体的某一个类。
level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
如果未设置此属性,那么当前logger将会继承上级的级别。
-->
<!--
使用mybatis的时候,sql语句是debug下才会打印,而这里我们只配置了info,所以想要查看sql语句的话,有以下两种操作:
第一种把<root level="INFO">改成<root level="DEBUG">这样就会打印sql,不过这样日志那边会出现很多其他消息
第二种就是单独给mapper下目录配置DEBUG模式,代码如下,这样配置sql语句会打印,其他还是正常DEBUG级别:
-->
<!--开发环境:打印控制台-->
<springProfile
name=
"dev"
>
<!--可以输出项目中的debug日志,包括mybatis的sql日志-->
<logger
name=
"com.founder"
level=
"INFO"
/>
<!--
root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,默认是DEBUG
可以包含零个或多个appender元素。
-->
<root
level=
"INFO"
>
<appender-ref
ref=
"CONSOLE"
/>
<appender-ref
ref=
"INFO_FILE"
/>
<appender-ref
ref=
"WARN_FILE"
/>
<appender-ref
ref=
"ERROR_FILE"
/>
</root>
</springProfile>
<!--生产环境:输出到文件-->
<springProfile
name=
"pro"
>
<root
level=
"INFO"
>
<appender-ref
ref=
"CONSOLE"
/>
<appender-ref
ref=
"DEBUG_FILE"
/>
<appender-ref
ref=
"INFO_FILE"
/>
<appender-ref
ref=
"ERROR_FILE"
/>
<appender-ref
ref=
"WARN_FILE"
/>
</root>
</springProfile>
</configuration>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment