Activiti中的log4j(slf4j)的配置
今天试了一下在Activiti中使用log4j来进行配置发现这个会出现问题,其实Activiti中的日志系统是采用的是slf4j而不是log4j
然后使用slf4j驱动log4j来做的
通过ProcessEngineImpl中的源码可以看出
![](/assets/blank.gif)
![](/assets/blank.gif)
1 /* Licensed under the Apache License, Version 2.0 (the "License"); 2 * you may not use this file except in compliance with the License. 3 * You may obtain a copy of the License at 4 * 5 * http://www.apache.org/licenses/LICENSE-2.0 6 * 7 * Unless required by applicable law or agreed to in writing, software 8 * distributed under the License is distributed on an "AS IS" BASIS, 9 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10 * See the License for the specific language governing permissions and 11 * limitations under the License. 12 */ 13 package org.activiti.engine.impl; 14 15 import java.util.Map; 16 17 import org.activiti.engine.FormService; 18 import org.activiti.engine.HistoryService; 19 import org.activiti.engine.IdentityService; 20 import org.activiti.engine.ManagementService; 21 import org.activiti.engine.ProcessEngine; 22 import org.activiti.engine.ProcessEngines; 23 import org.activiti.engine.RepositoryService; 24 import org.activiti.engine.RuntimeService; 25 import org.activiti.engine.TaskService; 26 import org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl; 27 import org.activiti.engine.impl.cfg.TransactionContextFactory; 28 import org.activiti.engine.impl.el.ExpressionManager; 29 import org.activiti.engine.impl.interceptor.CommandExecutor; 30 import org.activiti.engine.impl.interceptor.SessionFactory; 31 import org.activiti.engine.impl.jobexecutor.JobExecutor; 32 import org.slf4j.Logger; 33 import org.slf4j.LoggerFactory; 34 35 /** 36 * @author Tom Baeyens 37 */ 38 public class ProcessEngineImpl implements ProcessEngine { 39 40 private static Logger log = LoggerFactory.getLogger(ProcessEngineImpl.class); 41 42 protected String name; 43 protected RepositoryService repositoryService; 44 protected RuntimeService runtimeService; 45 protected HistoryService historicDataService; 46 protected IdentityService identityService; 47 protected TaskService taskService; 48 protected FormService formService; 49 protected ManagementService managementService; 50 protected JobExecutor jobExecutor; 51 protected CommandExecutor commandExecutor; 52 protected Map<Class<?>, SessionFactory> sessionFactories; 53 protected ExpressionManager expressionManager; 54 protected TransactionContextFactory transactionContextFactory; 55 protected ProcessEngineConfigurationImpl processEngineConfiguration; 56 57 public ProcessEngineImpl(ProcessEngineConfigurationImpl processEngineConfiguration) { 58 this.processEngineConfiguration = processEngineConfiguration; 59 this.name = processEngineConfiguration.getProcessEngineName(); 60 this.repositoryService = processEngineConfiguration.getRepositoryService(); 61 this.runtimeService = processEngineConfiguration.getRuntimeService(); 62 this.historicDataService = processEngineConfiguration.getHistoryService(); 63 this.identityService = processEngineConfiguration.getIdentityService(); 64 this.taskService = processEngineConfiguration.getTaskService(); 65 this.formService = processEngineConfiguration.getFormService(); 66 this.managementService = processEngineConfiguration.getManagementService(); 67 this.jobExecutor = processEngineConfiguration.getJobExecutor(); 68 this.commandExecutor = processEngineConfiguration.getCommandExecutor(); 69 this.sessionFactories = processEngineConfiguration.getSessionFactories(); 70 this.transactionContextFactory = processEngineConfiguration.getTransactionContextFactory(); 71 72 commandExecutor.execute(processEngineConfiguration.getSchemaCommandConfig(), new SchemaOperationsProcessEngineBuild()); 73 74 if (name == null) { 75 log.info("default activiti ProcessEngine created"); 76 } else { 77 log.info("ProcessEngine {} created", name); 78 } 79 80 ProcessEngines.registerProcessEngine(this); 81 82 if ((jobExecutor != null) && (jobExecutor.isAutoActivate())) { 83 jobExecutor.start(); 84 } 85 86 if (processEngineConfiguration.getProcessEngineLifecycleListener() != null) { 87 processEngineConfiguration.getProcessEngineLifecycleListener().onProcessEngineBuilt(this); 88 } 89 } 90 91 public void close() { 92 ProcessEngines.unregister(this); 93 if ((jobExecutor != null) && (jobExecutor.isActive())) { 94 jobExecutor.shutdown(); 95 } 96 97 commandExecutor.execute(processEngineConfiguration.getSchemaCommandConfig(), new SchemaOperationProcessEngineClose()); 98 99 if (processEngineConfiguration.getProcessEngineLifecycleListener() != null) { 100 processEngineConfiguration.getProcessEngineLifecycleListener().onProcessEngineClosed(this); 101 } 102 } 103 104 // getters and setters // 105 106 public String getName() { 107 return name; 108 } 109 110 public IdentityService getIdentityService() { 111 return identityService; 112 } 113 114 public ManagementService getManagementService() { 115 return managementService; 116 } 117 118 public TaskService getTaskService() { 119 return taskService; 120 } 121 122 public HistoryService getHistoryService() { 123 return historicDataService; 124 } 125 126 public RuntimeService getRuntimeService() { 127 return runtimeService; 128 } 129 130 public RepositoryService getRepositoryService() { 131 return repositoryService; 132 } 133 134 public FormService getFormService() { 135 return formService; 136 } 137 138 public ProcessEngineConfigurationImpl getProcessEngineConfiguration() { 139 return processEngineConfiguration; 140 } 141 }
View Code
这两个有啥区别?自己google吧
pom.xml
1 <!-- log4j --> 2 <!-- https://mvnrepository.com/artifact/log4j/log4j --> 3 <dependency> 4 <groupId>log4j</groupId> 5 <artifactId>log4j</artifactId> 6 <version>1.2.17</version> 7 </dependency> 8 <!-- slf4j --> 9 <dependency> 10 <groupId>org.slf4j</groupId> 11 <artifactId>slf4j-log4j12</artifactId> 12 <version>1.7.2</version> 13 </dependency>
添加log4j.properties
![](/assets/blank.gif)
![](/assets/blank.gif)
### set log levels ### log4j.rootLogger = debug , stdout### \u8F93\u51FA\u5230\u63A7\u5236\u53F0 ### log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n### \u8F93\u51FA\u5230\u65E5\u5FD7\u6587\u4EF6 ### log4j.appender.D = org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File = logs/error.log \#\# \u5F02\u5E38\u65E5\u5FD7\u6587\u4EF6\u540D log4j.appender.D.Append = true log4j.appender.D.Threshold = ERROR \#\# \u53EA\u8F93\u51FAERROR\u7EA7\u522B\u4EE5\u4E0A\u7684\u65E5\u5FD7\!\!\! log4j.appender.D.layout = org.apache.log4j.PatternLayout log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
View Code
然后就可以使用了
你只要在java文件这样写就可以了
1 package cn.lonecloud.mavenActivi; 2 3 import org.activiti.engine.ProcessEngine; 4 import org.activiti.engine.ProcessEngines; 5 import org.activiti.engine.RuntimeService; 6 import org.activiti.engine.TaskService; 7 import org.activiti.engine.runtime.ProcessInstance; 8 //使用log4j导入的包 9 import org.apache.log4j.Logger; 10 import org.junit.Test; 11 //使用slf4j的导入的包 12 //import org.slf4j.Logger; 13 //import org.slf4j.LoggerFactory; 14 15 public class InstanceDemo { 16 Logger logger=Logger.getLogger(this.getClass()); 17 // Logger logger=LoggerFactory.getLogger(this.getClass()); 18 ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); 19 RuntimeService runtimeService = processEngine.getRuntimeService(); 20 TaskService taskService=processEngine.getTaskService(); 21 @Test 22 public void testInstance(){ 23 ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("Instance","Test02"); 24 logger.debug("获取实例id"+processInstance.getId()); 25 } 26 }
转载于:https://www.cnblogs.com/lonecloud/p/5798944.html
Activiti中的log4j(slf4j)的配置相关推荐
- log日志java web_Javaweb项目中使用Log4j记录日志
Log4j 是 Apache 的一个开放源代码项目,通过使用 Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI 组件.甚至是套接口服务器.NT 的事件记录器.UNIX Syslog ...
- Java基础学习总结(42)——Log4j 2快速入门及Log4j 2 + Slf4j 的配置和使用
1. 去官方下载log4j 2,导入jar包,基本上你只需要导入下面两个jar包就可以了(xx是乱七八糟的版本号): log4j-core-xx.jar log4j-api-xx.jar 2. 导入到 ...
- Activiti中的高级脚本:自定义配置注入
脚本任务可能是Activiti代码库中"最古老的"类之一,但我认为它仍然未被许多人使用. (可以理解的?)缺点当然是性能(解释还是编译),并且从IDE角度来看支持较少. 但是,好处 ...
- 如何实现Activiti的分支条件的自定义配置(转)
如何实现Activiti的分支条件的自定义配置 博客分类: Activiti Java SaaS 一.Activiti的流程分支条件的局限 Activiti的流程分支条件目前是采用脚本判断方式,并且需 ...
- Log slf4j+logback配置
一. 简单配置 1.添加依赖 <dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api ...
- 【转】最详细的Log4J使用教程一、入门实例二、Log4J基本使用方法三、Spring中使用Log4J四、实战经验总结
原文地址:http://www.codeceo.com/article/log4j-usage.html 日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供 ...
- 3.Web项目中使用Log4j实例
转自:https://blog.csdn.net/luohai859/article/details/52250807 上面代码描述了Log4j的简单应用,其实使用Log4j也就是这样简单方便.当然除 ...
- Java工程中使用Log4j小记
1.工程中引入log4j的jar包,可到http://logging.apache.org/log4j/1.2/download.html下载: 2.在src目录下配置log4j.properties ...
- 解决activiti中由模板转换的流程图连线名称缺失问题
2019独角兽企业重金招聘Python工程师标准>>> 版本声明:Activiti 5.22.0 通常,由模板发布流程的代码大致如下: private Deployment conv ...
- SpringBoot中使用log4j进行日志管理
场景 SpringBoot项目中使用log4j进行日志管理. 实现 1.因为SpringBoot默认是使用logback,所以要修改pom.xml 过滤掉自带的spring-boot-starter- ...
最新文章
- SimpleDateFormat使用详解 转
- mysql 多表联查的效率_Mysql 多表联合查询效率分析
- MapReduce_自学过程(一)
- torch的拼接函数_从零开始深度学习Pytorch笔记(13)—— torch.optim
- WireShark之抓包过滤链接部分
- 汇编语言(三十三)之四进制转十进制
- Cocos2d-x 3.2:通过ClippingNode实现一个功能完善的跑马灯公告(1)
- java 进程不关闭_java运行程序关不了窗口
- obs命令行工具obsutil的使用测试
- 干货|在美国不要读博的12条理由
- 汇编语言转为c语言,如何把汇编语言转换成C语言
- 十四、Hadoop学习笔记————Zookeeper概述与基本概念
- B00001 C语言动态存储分配空间作为数组
- 模拟tcp_TCP 半连接队列和全连接队列满了会发生什么?又该如何应对?
- find命令 、 文件名后缀
- 同一方法被多个Aspect拦截, 修改切面@Around @Before的执行顺序
- 中国运营商考虑用WiFi亭代替公共电话亭
- 【机器学习线性代数】06 解方程组:从空间的角度再引入
- 自定义android控件:快速检索QuickSearch
- 数模学习(模糊数学篇)——模糊识别(python实现)
热门文章
- shell 执行qt生成文件_QT-窗口打印debug信息,本地日志保存,以及执行shell脚本并且把信息打印在窗口...
- tina中信号带宽_如何理解选择示波器带宽的5倍法则 ?
- git 为什么不能断点_Git 2.29 让 Git 成功“牵手”Gerrit
- Java获取文件的目录_Java获取文件目录(路径)的方式
- android tabhost 跳转,TabHost中跳转到指定Tab页问题
- c语言排列10个数字的大小,[求助][C语言求助]输入10个数字,并将这些数字由大到小排列...
- java mavenpom_java-使用pom-packaging Maven项目作为依赖项
- 怎样通过java用web3j查询以太坊交易信息?
- Java 集合系列Stack详细介绍(源码解析)和使用示例
- unity3d所要知道的基础知识体系大纲,可以对照着学习