Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
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
项目统一框架
amos-boot-biz
Commits
1d1ca8ae
Commit
1d1ca8ae
authored
Dec 03, 2021
by
kongfm
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
设备相关接口
parent
21ddf9e2
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
290 additions
and
17 deletions
+290
-17
EquipFeignClient.java
...n/amos/boot/module/common/api/feign/EquipFeignClient.java
+8
-0
EquipmentDto.java
...eejoin/amos/boot/module/tzs/flc/api/dto/EquipmentDto.java
+4
-0
IEquipmentService.java
...os/boot/module/tzs/flc/api/service/IEquipmentService.java
+8
-0
EquipmentController.java
...ot/module/tzs/flc/biz/controller/EquipmentController.java
+62
-15
EquipmentIndexController.java
...dule/tzs/flc/biz/controller/EquipmentIndexController.java
+2
-0
EquipmentServiceImpl.java
...module/tzs/flc/biz/service/impl/EquipmentServiceImpl.java
+68
-2
application-jd.properties
...t-system-tzs/src/main/resources/application-jd.properties
+85
-0
logback-jd.xml
amos-boot-system-tzs/src/main/resources/logback-jd.xml
+53
-0
No files found.
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/feign/EquipFeignClient.java
View file @
1d1ca8ae
...
...
@@ -327,4 +327,12 @@ public interface EquipFeignClient {
@RequestMapping
(
value
=
"/car/all/fusion"
,
method
=
RequestMethod
.
GET
)
ResponseModel
<
List
>
getCarFusionList
();
@RequestMapping
(
value
=
"/equipment/query/classification/"
,
method
=
RequestMethod
.
GET
)
ResponseModel
<
List
>
getClassification
();
@RequestMapping
(
value
=
"/equipment/list/{typeCode}"
,
method
=
RequestMethod
.
GET
)
ResponseModel
<
List
>
getEquipmentList
(
@PathVariable
(
"typeCode"
)
String
typeCode
);
}
amos-boot-module/amos-boot-module-api/amos-boot-module-tzs-api/src/main/java/com/yeejoin/amos/boot/module/tzs/flc/api/dto/EquipmentDto.java
View file @
1d1ca8ae
...
...
@@ -91,4 +91,8 @@ public class EquipmentDto extends BaseDto {
@ApiModelProperty
(
value
=
"附件"
)
@TableField
(
exist
=
false
)
private
Map
<
String
,
List
<
AttachmentDto
>>
attachments
;
@ApiModelProperty
(
value
=
"设备参数"
)
private
List
<
EquipmentIndexDto
>
equipmentIndex
;
}
amos-boot-module/amos-boot-module-api/amos-boot-module-tzs-api/src/main/java/com/yeejoin/amos/boot/module/tzs/flc/api/service/IEquipmentService.java
View file @
1d1ca8ae
...
...
@@ -3,6 +3,8 @@ package com.yeejoin.amos.boot.module.tzs.flc.api.service;
import
com.yeejoin.amos.boot.module.tzs.flc.api.dto.EquipmentDto
;
import
java.util.List
;
/**
* 装备信息表接口类
*
...
...
@@ -28,4 +30,10 @@ public interface IEquipmentService {
EquipmentDto
updateEquipment
(
EquipmentDto
model
);
Boolean
deleteById
(
Long
sequenceNbr
);
List
<
Object
>
getEquipmentType
();
List
<
Object
>
getEquipmentClass
(
String
typeCode
);
EquipmentDto
getEquipmentById
(
Long
sequenceNbr
);
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-tzs-biz/src/main/java/com/yeejoin/amos/boot/module/tzs/flc/biz/controller/EquipmentController.java
View file @
1d1ca8ae
...
...
@@ -17,12 +17,15 @@ import org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
org.typroject.tyboot.core.restful.exception.instance.BadRequest
;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.List
;
import
java.util.UUID
;
/**
* 装备信息表
...
...
@@ -51,17 +54,35 @@ public class EquipmentController extends BaseController {
return
ResponseHelper
.
buildResponse
(
model
);
}
/**
* 根据sequenceNbr
更新
* 根据sequenceNbr
查询
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/{sequenceNbr}"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"根据sequenceNbr查询单个装备信息"
,
notes
=
"根据sequenceNbr查询单个装备信息"
)
public
ResponseModel
<
EquipmentDto
>
selectOne
(
@PathVariable
Long
sequenceNbr
)
{
return
ResponseHelper
.
buildResponse
(
equipmentServiceImpl
.
getEquipmentById
(
sequenceNbr
));
}
/**
* 根据sequenceNbr更新
*
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@PutMapping
(
value
=
"/{sequenceNbr}"
)
@ApiOperation
(
httpMethod
=
"PUT"
,
value
=
"根据sequenceNbr更新装备信息表"
,
notes
=
"根据sequenceNbr更新装备信息表"
)
public
ResponseModel
<
EquipmentDto
>
updateBySequenceNbrEquipment
(
@RequestBody
EquipmentDto
model
,
@PathVariable
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
)
{
model
.
setSequenceNbr
(
sequenceNbr
);
public
ResponseModel
<
EquipmentDto
>
updateBySequenceNbrEquipment
(
@RequestBody
EquipmentDto
model
,
@PathVariable
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
)
{
if
(
ValidationUtil
.
isEmpty
(
model
)
||
ValidationUtil
.
isEmpty
(
model
.
getSequenceNbr
()))
{
throw
new
BadRequest
(
"参数校验失败."
);
}
model
=
equipmentServiceImpl
.
updateEquipment
(
model
);
return
ResponseHelper
.
buildResponse
(
model
);
}
...
...
@@ -79,18 +100,6 @@ public class EquipmentController extends BaseController {
return
ResponseHelper
.
buildResponse
(
equipmentServiceImpl
.
deleteById
(
sequenceNbr
));
}
/**
* 根据sequenceNbr查询
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/{sequenceNbr}"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"根据sequenceNbr查询单个装备信息表"
,
notes
=
"根据sequenceNbr查询单个装备信息表"
)
public
ResponseModel
<
EquipmentDto
>
selectOne
(
@PathVariable
Long
sequenceNbr
)
{
return
ResponseHelper
.
buildResponse
(
equipmentServiceImpl
.
queryBySeq
(
sequenceNbr
));
}
/**
* 列表分页查询
...
...
@@ -121,4 +130,42 @@ public class EquipmentController extends BaseController {
public
ResponseModel
<
List
<
EquipmentDto
>>
selectForList
()
{
return
ResponseHelper
.
buildResponse
(
equipmentServiceImpl
.
queryForEquipmentList
());
}
/**
* 获取设备ID
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/getEquipmentId"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"获取设备ID"
,
notes
=
"获取设备ID"
)
public
ResponseModel
<
String
>
getEquipmentId
()
{
return
ResponseHelper
.
buildResponse
(
UUID
.
randomUUID
().
toString
().
replace
(
"-"
,
""
));
}
/**
* 获取设备种类接口
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/getEquipmentType"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"获取设备种类接口"
,
notes
=
"获取设备种类接口"
)
public
ResponseModel
<
List
<
Object
>>
getEquipmentType
()
{
return
ResponseHelper
.
buildResponse
(
equipmentServiceImpl
.
getEquipmentType
());
}
/**
* 获取设备类别接口
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/getEquipmentClass/{typeCode}"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"获取设备类别接口"
,
notes
=
"获取设备类别接口"
)
public
ResponseModel
<
List
<
Object
>>
getEquipmentClass
(
@PathVariable
(
value
=
"typeCode"
)
String
typeCode
)
{
return
ResponseHelper
.
buildResponse
(
equipmentServiceImpl
.
getEquipmentClass
(
typeCode
));
}
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-tzs-biz/src/main/java/com/yeejoin/amos/boot/module/tzs/flc/biz/controller/EquipmentIndexController.java
View file @
1d1ca8ae
...
...
@@ -31,6 +31,8 @@ public class EquipmentIndexController extends BaseController {
@Autowired
EquipmentIndexServiceImpl
equipmentIndexServiceImpl
;
/**
* 新增设备指标
*
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-tzs-biz/src/main/java/com/yeejoin/amos/boot/module/tzs/flc/biz/service/impl/EquipmentServiceImpl.java
View file @
1d1ca8ae
package
com
.
yeejoin
.
amos
.
boot
.
module
.
tzs
.
flc
.
biz
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.boot.module.common.api.feign.EquipFeignClient
;
import
com.yeejoin.amos.boot.module.common.biz.service.impl.SourceFileServiceImpl
;
import
com.yeejoin.amos.boot.module.tzs.flc.api.dto.EquipmentDto
;
import
com.yeejoin.amos.boot.module.tzs.flc.api.dto.EquipmentIndexDto
;
import
com.yeejoin.amos.boot.module.tzs.flc.api.entity.Equipment
;
import
com.yeejoin.amos.boot.module.tzs.flc.api.entity.EquipmentIndex
;
import
com.yeejoin.amos.boot.module.tzs.flc.api.enums.EquipmentStatusEnum
;
import
com.yeejoin.amos.boot.module.tzs.flc.api.mapper.EquipmentMapper
;
import
com.yeejoin.amos.boot.module.tzs.flc.api.service.IEquipmentService
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.typroject.tyboot.core.foundation.utils.Bean
;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.UUID
;
...
...
@@ -28,6 +35,14 @@ public class EquipmentServiceImpl extends BaseService<EquipmentDto, Equipment, E
@Autowired
SourceFileServiceImpl
sourceFileService
;
@Autowired
EquipFeignClient
equipFeignClient
;
@Autowired
EquipmentIndexServiceImpl
equipmentIndexServiceImpl
;
/**
* 分页查询
*/
...
...
@@ -44,9 +59,18 @@ public class EquipmentServiceImpl extends BaseService<EquipmentDto, Equipment, E
@Override
public
EquipmentDto
createEquipment
(
EquipmentDto
model
)
{
UUID
uuid
=
UUID
.
randomUUID
();
model
.
setEquipId
(
uuid
.
toString
());
model
.
setStatus
(
EquipmentStatusEnum
.
未安装
.
getCode
());
// 0 未安装 1 已安装
model
=
this
.
createWithModel
(
model
);
// 保存设备参数信息
List
<
EquipmentIndexDto
>
equipmentIndex
=
model
.
getEquipmentIndex
();
if
(
equipmentIndex
!=
null
&&
equipmentIndex
.
size
()>
0
)
{
for
(
EquipmentIndexDto
t
:
equipmentIndex
)
{
t
.
setEquipmentId
(
model
.
getSequenceNbr
());
t
.
setEquipmentName
(
model
.
getName
());
equipmentIndexServiceImpl
.
createWithModel
(
t
);
}
}
saveSourceFile
(
model
);
return
model
;
}
...
...
@@ -55,6 +79,17 @@ public class EquipmentServiceImpl extends BaseService<EquipmentDto, Equipment, E
public
EquipmentDto
updateEquipment
(
EquipmentDto
model
)
{
this
.
updateWithModel
(
model
);
saveSourceFile
(
model
);
// 先删除参数信息 再添加新的参数信息
equipmentIndexServiceImpl
.
remove
(
new
LambdaQueryWrapper
<
EquipmentIndex
>().
eq
(
EquipmentIndex:
:
getEquipmentId
,
model
.
getSequenceNbr
()));
// 保存设备参数信息
List
<
EquipmentIndexDto
>
equipmentIndex
=
model
.
getEquipmentIndex
();
if
(
equipmentIndex
!=
null
&&
equipmentIndex
.
size
()>
0
)
{
for
(
EquipmentIndexDto
t
:
equipmentIndex
)
{
t
.
setEquipmentId
(
model
.
getSequenceNbr
());
t
.
setEquipmentName
(
model
.
getName
());
equipmentIndexServiceImpl
.
createWithModel
(
t
);
}
}
Bean
.
copyExistPropertis
(
this
.
queryBySeq
(
model
.
getSequenceNbr
()),
model
);
return
model
;
}
...
...
@@ -71,6 +106,37 @@ public class EquipmentServiceImpl extends BaseService<EquipmentDto, Equipment, E
return
false
;
}
@Override
public
List
<
Object
>
getEquipmentType
()
{
return
equipFeignClient
.
getClassification
().
getResult
();
}
@Override
public
List
<
Object
>
getEquipmentClass
(
String
typeCode
)
{
return
equipFeignClient
.
getEquipmentList
(
typeCode
).
getResult
();
}
@Override
public
EquipmentDto
getEquipmentById
(
Long
sequenceNbr
)
{
// 获取基本信息
Equipment
equipment
=
this
.
getById
(
sequenceNbr
);
EquipmentDto
result
=
new
EquipmentDto
();
BeanUtils
.
copyProperties
(
equipment
,
result
);
// 封装附件
result
.
setAttachments
(
sourceFileService
.
getAttachments
(
equipment
.
getSequenceNbr
()));
// 封装详细参数
List
<
EquipmentIndex
>
indexList
=
equipmentIndexServiceImpl
.
list
(
new
LambdaQueryWrapper
<
EquipmentIndex
>().
eq
(
EquipmentIndex:
:
getEquipmentId
,
equipment
.
getSequenceNbr
()));
List
<
EquipmentIndexDto
>
dtoList
=
new
ArrayList
<>();
indexList
.
stream
().
forEach
(
t
->
{
EquipmentIndexDto
temp
=
new
EquipmentIndexDto
();
BeanUtils
.
copyProperties
(
t
,
temp
);
dtoList
.
add
(
temp
);
});
result
.
setEquipmentIndex
(
dtoList
);
return
result
;
}
// 保存附件信息
public
void
saveSourceFile
(
EquipmentDto
model
)
{
if
(
model
.
getAttachments
()
!=
null
)
{
...
...
amos-boot-system-tzs/src/main/resources/application-jd.properties
0 → 100644
View file @
1d1ca8ae
#DB properties:
spring.datasource.driver-class-name
=
com.mysql.cj.jdbc.Driver
spring.datasource.url
=
jdbc:mysql://192.168.1.10:3306/xiy_amos_tzs_biz?allowMultiQueries=true&serverTimezone=GMT%2B8&characterEncoding=utf8
spring.datasource.username
=
root
spring.datasource.password
=
Yeejoin@2020
##eureka properties:
eureka.client.service-url.defaultZone
=
http://192.168.1.10:10001/eureka/
eureka.instance.prefer-ip-address
=
true
management.endpoint.health.show-details
=
always
management.endpoints.web.exposure.include
=
*
eureka.instance.health-check-url
=
http://192.168.1.10:${server.port}${server.servlet.context-path}/actuator/health
eureka.instance.metadata-map.management.context-path
=
${server.servlet.context-path}/actuator
eureka.instance.status-page-url
=
http://192.168.1.10:${server.port}${server.servlet.context-path}/actuator/info
eureka.instance.metadata-map.management.api-docs
=
http://192.168.1.10:${server.port}${server.servlet.context-path}/swagger-ui.html
## ES properties:
biz.elasticsearch.address
=
113.134.211.174
spring.data.elasticsearch.cluster-name
=
elasticsearch
spring.data.elasticsearch.cluster-nodes
=
${biz.elasticsearch.address}:9300
spring.elasticsearch.rest.uris
=
http://${biz.elasticsearch.address}:9200
## unit(h)
alertcall.es.synchrony.time
=
48
#redis properties:
spring.redis.database
=
1
spring.redis.host
=
192.168.1.10
spring.redis.port
=
6379
spring.redis.password
=
yeejoin@2020
spring.redis.lettuce.pool.max-active
=
200
spring.redis.lettuce.pool.max-wait
=
-1
spring.redis.lettuce.pool.max-idle
=
10
spring.redis.lettuce.pool.min-idle
=
0
spring.redis.expire.time
=
300
## emqx properties:
emqx.clean-session
=
true
emqx.client-id
=
${spring.application.name}-${random.int[1024,65536]}
emqx.broker
=
tcp://192.168.1.10:1883
emqx.user-name
=
admin
emqx.password
=
public
tzs.cti.appkey
=
4e805006-3fef-ae43-3915-a153731007c4
tzs.cti.secretkey
=
7bd29115-99ee-4f7d-1fb1-7c4719d5f43a
tzs.cti.url
=
http://36.46.151.113:8000
tzs.wechat.url
=
https://api.weixin.qq.com
tzs.wechat.appid
=
wx79aca5bb1cb4af92
tzs.wechat.secret
=
f3a12323ba731d282c3d4698c27c3e97
##wechatToken
tzs.wechat.token
=
yeejoin_2021
##wechatTicketUrl
tzs.wechat.ticketurl
=
https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=
tzs.wechat.tempId.kr
=
bxchKYhYW7aHbGKM2pVyR_yY2-bG4sRMNU3ZRQbMKYM
tzs.wechat.url.kr
=
tzs.yeeamos.com/persondetail.html
tzs.wechat.tempId.wx
=
rags-expfNSBB-h2WenuBI2c6pCEndH4uwTtOqlHqDM
tzs.wechat.url.wx
=
tzs.yeeamos.com/repairPersondetail.html
tzs.wechat.tempId.ts
=
rags-expfNSBB-h2WenuBI2c6pCEndH4uwTtOqlHqDM
tzs.wechat.url.ts
=
tzs.yeeamos.com/taskComplaintDetail.html
mqtt.topic.task.newtask
=
tzs-task-newtask
mqtt.topic.task.personinfo
=
tzs-task-personinfo
mqtt.topic.elevator.push
=
/tzs/tcb_elevator
mqtt.topic.alertInfo.push
=
/tzs/tcb_alertInfo
mqtt.topic.alertReport.push
=
/tzs/tcb_alertReport
mqtt.topic.alertHeart.push
=
/tzs/tcb_alertHeart
mqtt.topic.alertMatrix.push
=
/tzs/tcb_alertMatrix
mqtt.topic.cti.push
=
/cti/record
cti.user.name
=
tzs_cti
cti.user.pwd
=
a1234567
flc.sms.tempCode
=
SMS_TZS_0001
amos-boot-system-tzs/src/main/resources/logback-jd.xml
0 → 100644
View file @
1d1ca8ae
<?xml version="1.0" encoding="UTF-8"?>
<configuration
debug=
"false"
>
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property
name=
"LOG_HOME"
value=
"log"
/>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<property
name=
"LOG_PATTERN"
value=
"%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %-50.50logger{50} - %msg [%file:%line] %n"
/>
<!-- 按照每天生成日志文件 -->
<appender
name=
"FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"
>
<!--日志文件输出的文件名-->
<FileNamePattern>
${LOG_HOME}/tzs.log.%d{yyyy-MM-dd}.%i.log
</FileNamePattern>
<!--日志文件保留天数-->
<MaxHistory>
30
</MaxHistory>
<!--日志文件大小-->
<MaxFileSize>
30mb
</MaxFileSize>
</rollingPolicy>
<encoder
class=
"ch.qos.logback.classic.encoder.PatternLayoutEncoder"
>
<pattern>
${LOG_PATTERN}
</pattern>
</encoder>
</appender>
<!-- 控制台输出 -->
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<encoder
class=
"ch.qos.logback.classic.encoder.PatternLayoutEncoder"
>
<pattern>
${LOG_PATTERN}
</pattern>
</encoder>
</appender>
<!-- show parameters for hibernate sql 专为 Hibernate 定制
<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" />
<logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG" />
<logger name="org.hibernate.SQL" level="DEBUG" />
<logger name="org.hibernate.engine.QueryParameters" level="DEBUG" />
<logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" />
-->
<!--myibatis log configure-->
<logger
name=
"com.apache.ibatis"
level=
"DEBUG"
/>
<logger
name=
"org.mybatis"
level=
"DEBUG"
/>
<logger
name=
"java.sql.Connection"
level=
"DEBUG"
/>
<logger
name=
"java.sql.Statement"
level=
"DEBUG"
/>
<logger
name=
"java.sql.PreparedStatement"
level=
"DEBUG"
/>
<logger
name=
"org.springframework"
level=
"DEBUG"
/>
<logger
name=
"com.baomidou.mybatisplus"
level=
"DEBUG"
/>
<logger
name=
"org.apache.activemq"
level=
"INFO"
/>
<logger
name=
"org.typroject"
level=
"DEBUG"
/>
<logger
name=
"com.yeejoin"
level=
"DEBUG"
/>
<!-- 日志输出级别 -->
<root
level=
"DEBUG"
>
<appender-ref
ref=
"FILE"
/>
<appender-ref
ref=
"STDOUT"
/>
</root>
</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