- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章基于web项目log日志指定输出文件位置配置方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
首先我们定义一个可以在运行时动态的找出项目的路径webapprootkey,这么做的原因是为了在后面配置log4j输出文件路径的时候能随心配置.
1
2
3
4
|
<context-param>
<param-name>webapprootkey</param-name>
<param-value>amt.root</param-value>
</context-param>
|
然后要定义项目log配置文件的路径以及log4j监听器 。
1
2
3
4
5
6
7
8
|
<context-param>
<param-name>log4jconfiglocation</param-name>
<param-value>classpath:conf/log4j.xml</param-value>
</context-param>
<!--定义log4j监听器-->
<listener>
<listener-
class
>org.springframework.web.util.log4jconfiglistener</listener-
class
>
</listener>
|
这样web.xml文件的配置完毕,然后就是log配置文件的具体配置文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
<?xml version=
"1.0"
encoding=
"utf-8"
?>
<!doctype log4j:configuration system
"log4j.dtd"
>
<log4j:configuration>
<!-- 将日志信息输出到控制台 -->
<appender name=
"consoleappender"
class
=
"org.apache.log4j.consoleappender"
>
<!-- 设置日志输出的样式 -->
<layout
class
=
"org.apache.log4j.patternlayout"
>
<!-- 设置日志输出的格式 -->
<param name=
"conversionpattern"
value=
"[%d{yyyy-mm-dd hh:mm:ss:sss}] [%-5p] [method:%l]%n%m%n%n"
/>
</layout>
<!--过滤器设置输出的级别-->
<filter
class
=
"org.apache.log4j.varia.levelrangefilter"
>
<!-- 设置日志输出的最小级别 -->
<param name=
"levelmin"
value=
"info"
/>
<!-- 设置日志输出的最大级别 -->
<param name=
"levelmax"
value=
"error"
/>
<!-- 设置日志输出的xxx,默认是
false
-->
<param name=
"acceptonmatch"
value=
"true"
/>
</filter>
</appender>
<!-- 将日志信息输出到文件,可以配置多久产生一个新的日志信息文件 -->
<appender name=
"rollingfile"
class
=
"org.apache.log4j.dailyrollingfileappender"
>
<!-- 设置日志信息输出文件全路径名 -->
<param name=
"file"
value=
"${amt.root}/logs/spdbdata.log"
/>
<!-- 设置日志每小时回滚一次,即产生一个新的日志文件 -->
<param name=
"datepattern"
value=
"'_'yyyy-mm-dd-hh'.log'"
/>
<!-- 设置日志输出的样式 -->
<layout
class
=
"org.apache.log4j.patternlayout"
>
<!-- 设置日志输出的格式 -->
<param name=
"conversionpattern"
value=
"[%d{yyyy-mm-dd hh:mm:ss:sss}] [%-5p] [method:%l]%n%m%n%n"
/>
</layout>
</appender>
<!--
注意:
1
:当additivity=
"false"
时,root中的配置就失灵了,不遵循缺省的继承机制
2
:logger中的name非常重要,它代表记录器的包的形式,有一定的包含关系,试验表明
2
-
1
:当定义的logger的name同名时,只有最后的那一个才能正确的打印日志
2
-
2
:当对应的logger含有包含关系时,比如:name=test.log4j.test8 和 name=test.log4j.test8.uselog4j,则
2
-
1
的情况是一样的
2
-
3
:logger的name表示所有的包含在此名的所有记录器都遵循同样的配置,name的值中的包含关系是指记录器的名称哟!注意啦!
3
:logger中定义的level和appender中的filter定义的level的区间取交集
4
:如果appender中的filter定义的 levelmin > levelmax ,则打印不出日志信息
-->
<!--指定logger的设置,additivity指示是否遵循缺省的继承机制 -->
<logger name=
"test.log4j.test8.uselog4j_"
additivity=
"false"
>
<level value =
"error"
/>
<appender-ref ref=
"rollingfile"
/>
</logger>
<!-- 根logger的设置-->
<root>
<level value =
"info"
/>
<appender-ref ref=
"consoleappender"
/>
<appender-ref ref=
"rollingfile"
/>
</root>
</log4j:configuration>
|
项目结构如下:
一切准备就绪之后,项目一旦启动你就能在你规定的输出位置找到你每天或者每个小时的日志文件,log配置文件还可以进行拓展配置每个文件的大小以及文件出错时的回滚事宜,这里不做赘述.
以上这篇基于web项目log日志指定输出文件位置配置方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.
原文链接:https://blog.csdn.net/Smile_Miracle/article/details/76849830 。
最后此篇关于基于web项目log日志指定输出文件位置配置方法的文章就讲到这里了,如果你想了解更多关于基于web项目log日志指定输出文件位置配置方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在尝试获取从过去的 startposition/location 到当前移动的 currentposition/location 的距离(以米为单位)。 我确实有工作正常的currentposit
所以我有一堆绝对覆盖的 div。用户通过在叠加层上拖动来创建方形 div。如果您要创建一个 div,然后放大和缩小,div 会保持在同一位置,因为它对叠加层是绝对的,如前所述。 然而问题就出在这里。您
我想找到 View 在显示屏幕上的位置。 为此,我使用了 view.getLeft() 、view.getBottom() 、view.getRight() 等方法> , view.getTop()。
我有一个看起来像这样的 View 层次结构(基于其他答案和 Apple 的使用 UIScrollView 的高级 AutoLayout 指南): ScrollView 所需的2 个步骤是: 为 Scr
所以我有一个名为 MARKS 的表,我有这些列 STUDENT_ID, CLASSFORM_NAME, ACADEMIC_YEAR, TERM, SUBJECT_NAME, TOTAL_MARKS
我有一个问题我无法理解,请帮助: 我开发了带有图像的 html 页面,并使用 jQuery UI 帮助使它们可拖动,我将这些图像位置设置为相对位置并给出了左侧和顶部像素,这是页面的链接 http://
我正在尝试创建一个 CSS 动画,它在 sprite 表中循环播放 16 个图像,给人一种幽灵“漂浮”的错觉。动画通过在 background-position 位置之间移动以显示不同状态的幽灵来实现
我正在创建这个网站的 WebView https://nearxt.com/打开时询问位置但是当我使用此链接在 flutter 中创建 webview 时那么它就无法定位我还在应用程序中定义了位置,但
我正在以编程方式创建一个需要跨越 2 个屏幕的窗口。正在创建的窗口的大小是正确的,但窗口大约从第一个屏幕的一半开始。我可以将它拖回第一个屏幕的开头,NSWindow 非常适合。 我只需要知道在窗口的起
位置“/”的匹配叶路由没有元素。这意味着默认情况下它将呈现一个空值,从而导致一个“空”页面 //App.js File import { BrowserRouter as Router, Routes
我有一个运行 Ubuntu 和 Apache 的 VPS 例如,假设地址是:5.5.5.5 在 VPS 上,我有一个名为 eggdrop 的用户(除了我的 root 用户)。 用户 eggdrop 有
我有一个 JLabel与 ImageIcon ,我使用 setIcon() JLabel中的函数. ImageIcon然后上来,坐在我的JLabel 的文字左侧.是否有可能拥有 ImageIcon在文
我的图中有节点,它们的 xlabels 位于它们的左上方。我怎样才能改变这个位置?我希望 xlabels 正好位于节点本身的旁边。 最佳答案 xlp是你想要的属性,但它没有做任何事情。 你不能改变位置
我对基本的 VIM 功能有疑问:(我尝试谷歌搜索但找不到答案) 如何列出所有自定义功能。(我做了 :function 并且不能找到我的自定义函数) 如何获得自定义函数列表中的函数(或它们的存储位置)。
我是 PHP 的新手,虽然我一直在搜索,但我不知道该怎么做。 我知道可以使用 Location("some page") 进行重定向。我还读到,只要没有向用户显示任何内容,它就可以工作。 我想做的是:
如果在 jgrowl.css 中位置更改为“center”,我如何将其覆盖为默认值,即“top-right” $.jGrowl(data, { header: 'data', an
我需要根据用户是否滑动屏幕顶部、屏幕中间或屏幕底部来触发不同的事件。我正在尝试找出最好/最简单的方法来做到这一点,因为我很确定没有办法从 UISwipeGestureRecognizer 获取位置。
我需要枚举用delphi编写的外部应用程序中使用的类 ,因此我需要访问VMT表以获取该信息,但是我找不到任何有关如何在exe(由delphi生成)文件中找到VMT(虚拟方法表)的位置(地址)的文档。
在 D2010 (unicode) 中是否有像 Pos 这样不区分大小写的类似函数? 我知道我可以使用 Pos(AnsiUpperCase(FindString), AnsiUpperCase(Sou
我正在尝试为我的reveal.js 演示文稿制作一个标题,该标题会粘贴在屏幕顶部。标题中的内容在每张幻灯片的基础上都是动态的,因此我必须将标记放在 section 标记中。 显然,如果标记在 sect
我是一名优秀的程序员,十分优秀!