1.springboot中日志的logback配置
1 <?xml version="1.0" encoding="UTF-8"?>
2 <configuration>
3 <!-- 日志存放路径 -->
4 <property name="log.path" value="F:/项目/springboot+ruoyi/ruoyi-vue/logs" />
5 <!-- 日志输出格式 -->
6 <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
7
8 <!-- 控制台输出 -->
9 <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
10 <encoder>
11 <pattern>${log.pattern}</pattern>
12 </encoder>
13 </appender>
14
15 <!-- 系统日志输出 -->
16 <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
17 <file>${log.path}/sys-info.log</file>
18 <!-- 循环政策:基于时间创建日志文件 -->
19 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
20 <!-- 日志文件名格式 -->
21 <fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern>
22 <!-- 日志最大的历史 60天 -->
23 <maxHistory>60</maxHistory>
24 </rollingPolicy>
25 <encoder>
26 <pattern>${log.pattern}</pattern>
27 </encoder>
28 <filter class="ch.qos.logback.classic.filter.LevelFilter">
29 <!-- 过滤的级别 -->
30 <level>INFO</level>
31 <!-- 匹配时的操作:接收(记录) -->
32 <onMatch>ACCEPT</onMatch>
33 <!-- 不匹配时的操作:拒绝(不记录) -->
34 <onMismatch>DENY</onMismatch>
35 </filter>
36 </appender>
37
38 <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
39 <file>${log.path}/sys-error.log</file>
40 <!-- 循环政策:基于时间创建日志文件 -->
41 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
42 <!-- 日志文件名格式 -->
43 <fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern>
44 <!-- 日志最大的历史 60天 -->
45 <maxHistory>60</maxHistory>
46 </rollingPolicy>
47 <encoder>
48 <pattern>${log.pattern}</pattern>
49 </encoder>
50 <filter class="ch.qos.logback.classic.filter.LevelFilter">
51 <!-- 过滤的级别 -->
52 <level>ERROR</level>
53 <!-- 匹配时的操作:接收(记录) -->
54 <onMatch>ACCEPT</onMatch>
55 <!-- 不匹配时的操作:拒绝(不记录) -->
56 <onMismatch>DENY</onMismatch>
57 </filter>
58 </appender>
59
60 <!-- 用户访问日志输出 -->
61 <appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender">
62 <file>${log.path}/sys-user.log</file>
63 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
64 <!-- 按天回滚 daily -->
65 <fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern>
66 <!-- 日志最大的历史 60天 -->
67 <maxHistory>60</maxHistory>
68 </rollingPolicy>
69 <encoder>
70 <pattern>${log.pattern}</pattern>
71 </encoder>
72 </appender>
73
74 <!-- 系统模块日志级别控制 -->
75 <logger name="com.ruoyi" level="info" />
76 <!-- Spring日志级别控制 -->
77 <logger name="org.springframework" level="warn" />
78
79 <root level="info">
80 <appender-ref ref="console" />
81 </root>
82
83 <!--系统操作日志-->
84 <root level="info">
85 <appender-ref ref="file_info" />
86 <appender-ref ref="file_error" />
87 </root>
88
89 <!--系统用户操作日志-->
90 <logger name="sys-user" level="info">
91 <appender-ref ref="sys-user"/>
92 </logger>
93 </configuration>
文件相对保存路径设置可分以下三种:
1. value=“logs” – 表示保存到程序运行目录,在tomcat中为bin目录
2. value=“/logs” – 表示保存到系统目录
3. value=“../logs” – 表示保存到程序运行目录的父目录
补充知识:logback-spring.xml中三种相对路径生成的日志文件的位置
logback-spring.xml中关于路径配置的三种写法:
写法1:<property name="log.path" value="logs" />
写法2:<property name="log.path" value="/logs" />
写法3:<property name="log.path" value="../logs" />
项目(路径D:\workspace\Test)启动的三种场景:
场景1:项目所在workspace在D盘,直接从eclipse中启动
场景2:打成jar包放在桌面的test文件夹下,用bat文件(java -jar Test.jar)启动
场景3:jar文件放在centOS的/test目录下,用sh文件(nohup java -jar Test.jar &)启动
| 场景1 | 场景2 | 场景3 |
写法1 | D:\workspace\Test\logs\{name} | C:\Users\{user}\Desktop\logs\{name} | /test/logs/{name} |
写法2 | D:\logs\{name} | C:\logs\{name} | /logs/{name} |
写法3 | D:\workspace\logs\{name} | C:\Users\{user}\logs\{name} | /logs/{name} |
2.vue中一些开发随记
①export default和export的区别
export主要用于对外输出本模块变量的接口,一个文件就可以被理解为一个模块。export就是导出。
import就是在一个模块中加载另一个含有export接口的模块, import就是导入。
export default和export都能导出一个模块里面的常量,函数,文件,模块等,在其它文件或模块中通过import来导入常量,函数,文件或模块。这样就可以使用它们了。但是,在一个文件或模块中,export,import可以有多个,export default却只能有一个。
通过export方式导出,在导入的时候需要加{}大括号,export default 就不需要{}。
②Vue中ref与$refs的使用
ref 被用来给元素或子组件注册引用信息,引用信息将会注册在父组件的 $refs 对象上
用法: 子组件上定义ref="refName", 父组件的方法中用 this.$refs.refName.method 去调用子组件方法