在spring引入log4j

2023-10-26

在spring中使用log4j

  • 引入log4j软件包
  • 配置log4j属性
  • 加载log4j配置文件
    • 默认加载
    • 手动加载
  • 使用logger

本文的整体代码结构是在已经引入spring基本应用的前提下,在spring配置文件中通过@Bean注解创建一个Logger bean,然后在测试代码中使用。

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.net.URL;

import org.apache.log4j.Logger;
import org.apache.logging.log4j.core.config.ConfigurationSource;
import org.apache.logging.log4j.core.config.Configurator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;

@Configuration
@EnableAspectJAutoProxy
@ComponentScan({"com.markey.messageboard.app.impl","com.markey.messageboard.aop"})
public class SpringConfig {
//	@Bean
//	public static PropertySourcesPlaceholderConfigurer placeholderConfigurer(){
//		PropertySourcesPlaceholderConfigurer placeholderConfigurer = new PropertySourcesPlaceholderConfigurer();
//		return placeholderConfigurer;
//	}
	@Bean
	public static Logger logger(){
		String path="/com/log4j.properties";
		URL url=SpringConfig.class.getResource(path);
		ConfigurationSource source;
		try {
			source = new ConfigurationSource(new FileInputStream(new File(url.getPath())),url);
			Configurator.initialize(null, source);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		Logger logger = Logger.getLogger(SpringConfig.class);
		return logger;
	}
}
import org.apache.log4j.Logger;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.env.Env
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在spring引入log4j 的相关文章

  • 如何在 Antlr4 中为零参数函数编写语法

    我的函数具有参数语法 如下面的词法分析器和解析器 MyFunctionsLexer g4 lexer grammar MyFunctionsLexer FUNCTION FUNCTION NAME A Za z0 9 DOT COMMA L
  • 打印星号的 ASCII 菱形

    我的程序打印出这样的钻石 但只有当参数或菱形的每一面为4 例如如果我输入6 底部三角形的间距是错误的 我一直在试图找出答案 当参数改变时 底部的三角形不会改变 只有顶部的三角形会改变 它只适用于输入4 public static void
  • 通往楼梯顶部的可能路径

    这是一个非常经典的问题 我听说谷歌在他们的面试中使用过这个问题 问题 制定一个递归方法 打印从楼梯底部到楼梯顶部的所有可能的独特路径 有 n 个楼梯 您一次只能走 1 步或 2 步 示例输出 如果它是一个有 3 级楼梯的楼梯 1 1 1 2
  • org.hibernate.QueryException:无法解析属性:文件名

    我正在使用休眠Criteria从列中获取值filename在我的桌子上contaque recording log 但是当我得到结果时 它抛出异常 org hibernate QueryException 无法解析属性 文件名 com co
  • Integer.parseInt("0x1F60A") 以 NumberformatException 结束

    我尝试从数据库中获取长字符串内的表情符号代码 格式如下 0x1F60A 所以我可以访问代码 但它将是String 起初 我尝试通过执行以下操作来转换变量tv setText beforeEmo getEmijoByUnicode int e
  • 如何在代理后面安装 Eclipse Neon

    对于 Neon Eclipse 附带了一个安装程序 我在安装程序中找不到任何配置菜单 我的java版本是 java version java version 1 8 0 72 Java TM SE Runtime Environment b
  • Spring 规范 - 谓词的联合

    我需要一个函数来过滤参数并构建查询 我有 4 个参数 因此如果我尝试为每个条件实现查询 我将不得不编写 16 2 4 实施 这不是一个好主意 我尝试通过界面改进我的代码Specification来自 Spring Data JPA 但我无法
  • 需要使用 joda 进行灵活的日期时间转换

    我想使用 joda 解析电子邮件中的日期时间字符串 不幸的是我得到了各种不同的格式 例如 Wed 19 Jan 2011 12 52 31 0600 Wed 19 Jan 2011 10 15 34 0800 PST Wed 19 Jan
  • 从 GitHub 上托管的 Spring Cloud Config Server 访问存储库的身份验证问题

    我在 GitHub 上的存储库中托管配置 如果我将回购公开 一切都好 但如果我将其设为私有 我将面临 org eclipse jgit errors TransportException https github com my user m
  • 如何在 Spring 属性中进行算术运算?

  • 读取电子邮件的文本文件转换为 Javamail MimeMessage

    我有一个电子邮件原始来源的文本文件 直接从 gmail 复制 如果您单击 查看原始文件 您就会看到它 我想读入该文件并将其转换为 MimeMessage 如果您好奇为什么 我设置了 JavaMaildir 并且需要用电子邮件填充它的收件箱以
  • 使用架构注册表对 avro 消息进行 Spring 云合约测试

    我正在查看 spring 文档和 spring github 我可以看到一些非常基本的内容examples https github com spring cloud samples spring cloud contract sample
  • HashMap 值需要不可变吗?

    我知道 HashMap 中的键需要是不可变的 或者至少确保它们的哈希码 hashCode 不会改变或与另一个具有不同状态的对象发生冲突 但是 HashMap中存储的值是否需要与上面相同 为什么或者为什么不 这个想法是能够改变值 例如在其上调
  • 使用布尔值进行冒泡排序以确定数组是否已排序

    我有以下用于冒泡排序的代码 但它根本不排序 如果我删除布尔值那么它工作正常 我知道 由于我的 a 0 小于所有其他元素 因此没有执行交换 任何人都可以帮助我解决这个问题 package com sample public class Bub
  • Spring-ws:如何从没有“Request”元素的 xsd 创建 Wsdl

    尝试为客户端实现 SOAP Web 服务 我需要一个 wsdl 文件来通过soapUI 测试该服务 但正如您在下面看到的 这个 xsd 没有 Request 和 Response 方法 所有请求和响应都被定义为基本 ServiceProvi
  • 使用按钮作为列表的渲染器

    我想使用一个更复杂的渲染器 其中包含列表的多个组件 更准确地说 类似于this https stackoverflow com questions 10840498 java swing 1 6 textinput like firefox
  • 将 Apache Camel 执行器指标发送到 Prometheus

    我正在尝试转发 添加 Actuator Camel 指标 actuator camelroutes 将交换 交易数量等指标 发送到 Prometheus Actuator 端点 有没有办法让我配置 Camel 将这些指标添加到 Promet
  • 泛型、数组和 ClassCastException

    我想这里一定发生了一些我不知道的微妙事情 考虑以下 public class Foo
  • 洪水填充优化:尝试使用队列

    我正在尝试创建一种填充方法 该方法采用用户指定的初始坐标 检查字符 然后根据需要更改它 这样做之后 它会检查相邻的方块并重复该过程 经过一番研究 我遇到了洪水填充算法并尝试了该算法 它可以工作 但无法满足我对 250 x 250 个字符的数
  • 在java中使用多个bufferedImage

    我正在 java 小程序中制作游戏 并且正在尝试优化我的代码以减少闪烁 我已经实现了双缓冲 因此我尝试使用另一个 BufferedImage 来存储不改变的游戏背景元素的图片 这是我的代码的相关部分 public class QuizApp

随机推荐

  • Python微信小程序,实现自动回复等功能(itchat模块)

    本文是使用Python的itchat模块进行微信私聊消息以及群消息的自动回复功能 必须在自己的微信中添加微信号xiaoice ms 微软的微信机器人 才能实现 直接复制代码运行之后扫一扫二维码即可 经过测试 该程序能够保持几小时的时间 实现
  • [Codeforces] combinatorics (R1600) Part.1

    Codeforces combinatorics R1600 Part 1 题单 https codeforces com problemset tags combinatorics 1201 1600 52B Right Triangle
  • 在现实实践中会遇到的机器学习算法总结

    在理解了我们需要解决的机器学习问题之后 我们要思考需要收集什么数据以及我们可以用什么算法 本文我们会过一遍最流行的机器学习算法 大致了解哪些方法可用 很有帮助 机器学习领域有很多算法 然后每种算法又有很多延伸 所以对于一个特定问题 如何确定
  • 【学习笔记】启动Nginx、查看nginx进程、查看nginx服务主进程的方式、Nginx服务可接受的信号、nginx帮助命令、Nginx平滑重启、Nginx服务器的升级

    1 启动nginx的方式 cd usr local nginx ls nginx c nginx conf 2 查看nginx的进程方式 root localhost nginx ps ef grep nginx root localhos
  • 103-----JS基础-----添加删除记录-删除

    一 代码 很简单 看一下即可
  • TensorFlow学习-anaconda的方式安装TensorFlow教程

    前置准备 首先在说到安装TensorFlow前 要安装好anaconda 这里引入一篇教程anaconda安装与使用 初学者另外也需要在官网安装对应的python包python官网 有这些前置准备后 就可以安装TensorFlow了 采用a
  • linux下ftp的使用命令

    1 登录ftp ftp 0 0 0 0 输入用户名和密码 登录成功 2 ftp帮助 help 显示本地可用命令 rhelp 显示远程终端可以使用的命令 3 切换目录 cd 切换远程终端的当前工作目录 lcd 切换本地的当前工作目录 pwd
  • Centos7离线安装依赖包

    Centos离线安装依赖包 文章目录 Centos离线安装依赖包 1 下载依赖包 1 1 使用yum install downloadonly下载安装包及其依赖 1 2使用yumdownloader下载安装包及其依赖 2 安装下载好的依赖包
  • vuex的基本用法(提炼公共文件import all vuex modules)

    1 第一步是你的package json中需要有 vuex 3 5 1 如果没有安装vuex 就先安装一下 2 在src下创建一个文件store store下创建一个文件modules index js 下面继续创建文件 最终的目录文件如下
  • Discourse搭建

    首先要链接上服务器 首先WINDOWS打开CMDER MAC的话打开Terminal 都是类似的 在窗口输入 ssh root ALIYUN IP 这里的ALIYUN IP是你的服务器的公网IP地址 举个例子 我的公网IP是47 88 12
  • Qt中执行多条shell语句

    在Qt中执行一个shell指令常用QProcess类来完成 常见的用法示例如下 QProcess process process start find opt name ts calibrate str是需要执行的命令 flag proce
  • python之weditor定位的使用

    1 driver text 书城 定位元素的方式 属性定位 2 driver text 书城 click 点击元素 3 driver resourceId click 点击搜素按钮 4 driver resourceId send keys
  • 我在支付宝花了 1 分钟,查到了对象的开房记录

    来源丨Hack https mp weixin qq com s 6fDFqBQMqUVdkJG Dg7iCw 在大数据时代下 不管你做什么都会留下蛛丝马迹 只要学会把各种软件运用到极致 捉奸简直轻而易举 今天就来给大家分享一下 什么叫大数
  • Python基础学习:numbers模块

    numbers 数字抽象基类 其源代码存储在 Lib numbers py numbers模块定义了数字抽象基类的层次结构 逐渐定义更多的操作 该模块中定义的任何类型都不能实例化 1 数字塔 class numbers Complex 数字
  • Python EasyNote 1

    描述 Python strip 方法用于移除字符串头尾指定的字符 默认为空格或换行符 或字符序列 注意 该方法只能删除开头或是结尾的字符 不能删除中间部分的字符 Python split 通过指定分隔符对字符串进行切片 如果参数 num 有
  • 05 CoCos Creator-native.log

    1 Compile failed 编译保存信息 查看报错文件 C Users Administrator CocosCreator logs native log Error Compile failed The log file path
  • 宏和函数

    此为C语言的基础 和Linux内核关系并不大 不过还是作为补充知识点介绍一下好了 宏非常频繁的用于执行简单的计算 比如在两个表达式中寻找其中较大的一个 define MAX a b a gt b a b 如果使用函数来实现的话就比较慢 宏的
  • Hololens2发布流程记录,含MRTK2导入,工程的安装

    记录一下HoloLens2发布流程 1 创建新工程 我这边用的是unity2019版本 2 下载MixedRealityFeatureTool exe 官网链接 https download microsoft com download 2
  • 住宅IP和机房IP的特征区别

    住宅IP是ISP 互联网服务提供商 或ADSL提供商分配给单个用户的实际住宅IP地址 由100 真实WIFI网络用户组成 住宅IP是真正的用户设备IP 与主流用户的宽带网络IP完全一致 与机房等IP相比 成功率更高 关闭概率更低 但维护稳定
  • 在spring引入log4j

    在spring中使用log4j 引入log4j软件包 配置log4j属性 加载log4j配置文件 默认加载 手动加载 使用logger 本文的整体代码结构是在已经引入spring基本应用的前提下 在spring配置文件中通过 Bean注解创