㈠ 如何配置Linux的日誌文件
日誌也應該是用戶注意的地方。不要低估日誌文件對網路安全的重要作用,因為日誌文件能夠詳細記錄系統每天發生的各種各樣的事件,用戶可以通過日誌文件檢查錯誤產生的原因,或者在受到攻擊、被入侵時追蹤攻擊者的蹤跡。日誌的兩個比較重要的作用是審核和監測。配置好的Linux的日誌非常強大。對於Linux系統而言,所有的日誌文件在/var/log下。默認情況下,Linux的日誌文件沒有記錄FTP的活動。用戶可以通過修改/etc/ftpacess讓系統記錄FTP的一切活動。 /etc/syslog.conf的格式 Linux系統的日誌文件是可以配置的,在前面的章節中已經介紹了如何定製Apache、wu-ftpd、Sendmail的日誌文件。Linux系統的日誌文件是由/etc/syslog.conf決定的,用戶有必要花時間仔細配置一下/etc/syslog.conf。下面是/etc/syslog.conf的範例:# Log all kernel messages to the kernlog. # Logging much else clutters up the screen. kern.* /var/log/kernlog# Log anything (except mail) of level info or higher. # Don't log private authentication messages! *.info;mail.none;news.none;authpriv.none;cron.none /var/log/messages *.warning /var/log/syslog # The authpriv file has restricted access. authpriv.* /var/log/secure# Log all the mail messages in one place. mail.* /var/log/maillog# Log cron stuff cron.* /var/log/cron# Everybody gets emergency messages, plus log them on another# machine. *.emerg# Save mail and news errors of level err and higher in a # special file. uucp,news.crit /var/log/spooler# Save boot messages also to boot.log local7.* /var/log/boot.log# INN news.=crit /var/log/news/news.crit news.=err /var/log/news/news.err news.notice /var/log/news/news.notice 可以看出,該配置文件的每一行的第一個欄位列出要被記錄的信息種類,第二個欄位則列出被記錄的位置。第一個欄位使用下面的格式:facility.level[;facility.level…] 此處的faciity是產生信息的系統應用程序或工具,level則是這個信息的重要程度。level的重要程度由低到高依次是:debug(調試消息)、info(一般消息)、notice(值得注意的消息)、warning(警告)、err(一般性錯誤)、crit(嚴重錯誤)、alert(或emerg,緊急情況)。facility包含有:auth(認證系統,如login或su,即詢問用戶名和口令)、cron(系統執行定時任務時發出的信息)、daemon(某些系統的守護程序的syslog,如由in.ftpd產生的log)、kern(內核的信息)、lpr(列印機的信息)、mail(處理郵件的守護進程發出的信息)、mark(定時發送消息的時標程序)、news(新聞組的守護進程的信息)、user(本地用戶的應用程序的信息)、uucp(uucp子系統的信息)和「*」(表示所有可能的facility)。 將日誌文件記錄到遠程主機 如果有另一個Linux或UNIX系統,那麼可以配置日誌文件,讓其把消息發到另外一個系統並記錄下來。這也是為什麼上面的所有日誌文件都記錄了主機名的原因。
㈡ SpringBoot日誌logback配置
在前一個項目simple-boot-demo項目中配置日誌相關。
SpringBoot日誌依賴為: spring-boot-starter-logging ,不過對於web項目,已經引入了 spring-boot-starter-web ,默認已經自帶了日誌的 spring-boot-starter-logging ,已經默認引入了 logback 實現,只需要配置application.yml即可。
Spring內部使用 Commons Logging ,SpringBoot項目日誌實現可以用log4j2,logback,JDK (java Util Logging)等。
參考文檔:
https://docs.spring.io/spring-boot/docs/2.2.6.RELEASE/reference/html/howto.html#howto-logging
https://docs.spring.io/spring-boot/docs/2.2.6.RELEASE/reference/html/spring-boot-features.html#boot-features-logging
level是個map,配置不同的日誌名稱的級別,一般情況下都是配置些包名稱就可以了,因為一般都是用類名作為日誌名稱,常見寫法如下:
默認配置下只會在控制台輸出日誌,沒有文件日誌,可以配置文件名來控制文件輸出。
日誌文件配置:
日誌配置示例:
另外一些文件日誌配置如下,主要配置文件大小分隔、歷史記錄、輸出格式等,這些配置在IDE中都有提示輸入:
注意:這些配置在使用自定義的配置文件 logging.config=classpath:logback-spring.xml 時,如果include引入sping-boot項目中的logback配置xml片段,這些application.yml中的配置也是有效的,而且level配置還是優先於配置文件
日誌可以分組配置,針對部分日誌名稱定義一個分組,可以統一配置此分組的級別:
SpringBoot內置的日誌分組:
SpringBoot如果要使用自定義的logback作為日誌實現,需要編寫logback.xml,但是引入logback之後,logback會自動查找logback.xml,因此不能把名字定義為logback.xml,否則可能早於SpringBoot初始化,造成一些配置無效問題。
使用 logback-spring.xml 或者使用 loging.config 來指定配置文件(默認名字為 logback-spring.xml 的文件springboot會自動獲取到,自定義名字需要手動配置):
在spring-boot項目的jar包中,spring為了簡化配置,已經在項目中內置了一些logback的配置片段,方便使用include方式引入,打開可以看到內容是用 <included></include> 包裹,因此自定義配置文件 logback.xml 的時候直接include即可。
配置片段路徑: org/springframework/boot/logging/logback/
典型 logback.xml 配置文件如下,其中引用了spring-boot提供的xml片段:
上面的配置是文件取名為 demo-logback.xml ,方便引入。
配置application.yml:
㈢ 怎麼給項目配置日誌文件
您可以創建日誌文件,並使其包含與互操作性、程序載入和網路有關的診斷信息。通過設置注冊表項,可以啟用日誌記錄。首先,設置一個注冊表項以啟用常規日誌記錄,然後針對所需的日誌記錄組件和選項來設置注冊表項。
可以使用下列方法設置注冊表項:
使用 Visual Studio 中的遠程注冊表編輯器。
在 .NET Compact Framework 2.0 Service Pack 1 中,使用遠程性能監視器中的日誌記錄選項。有關遠程性能監視器的更多信息,請參見 如何:在運行時監視性能。
在 .NET Compact Framework 3.5 中,可以使用日誌記錄工具 NetCFLogging.exe,該工具提供了用於啟用和禁用日誌記錄的簡單的圖形用戶界面。此工具包括在 Power Toys for .NET Compact Framework 中。有關更多信息,請參見 Power Toys for .NET Compact Framework。
使用 Registry 和 RegistryKey 類,.NET Compact Framework 2.0 版及更高版本支持這些類。
下表對這些日誌文件進行了總結。
日誌記錄組件
日誌文件內容
互操作
記錄 COM 互操作調用。提供有關平台調用和封送處理的信息。
錯誤
記錄所有未處理的異常和本機異常。將錯誤記錄到日誌文件和 OutputDebugString 中。將為位於當前路徑的每個程序集創建日誌文件,並將其應用於當前會話。在第一次出現未處理的異常或本機異常之後,將覆蓋日誌文件。
載入程序
記錄有關程序載入的信息。文件標頭包含下列信息:
應用程序名稱。
進程 ID(由 Windows Embedded CE 提供)。
創建日誌文件的本地日期和時間。其格式不是全局性的,而是區域性特定的。
.NET Compact Framework 版本,例如 2.0.5021.00。
與平台相關的信息,例如 Windows Embedded CE v5.0.1400 (CEPC) WinCE5x86 debug Dev i386 IJITv2。
文件提供以下信息:
強制狀態(兼容性模式)。
載入模塊時為模塊指定的信任級別。
解析方法時失敗。
解析類型時失敗。
查找或載入程序集或模塊時失敗。
程序集載入成功。
無效的元數據版本。
查找平台調用 DLL 時失敗。
在平台調用 DLL 中查找函數時失敗。
策略文件的名稱,或者指出缺少該文件的事實。
策略文件處理過程中的主要錯誤。
託管程序集基於策略的重定向。
此外,還可以包括有關全局程序集緩存的信息。
網路
記錄網路流量。網路日誌文件是二進制文件,如果沒有 .NET Compact Framework 日誌查看器 Logviewer.exe,則無法訪問該文件。在 .NET Compact Framework 3.5 及更高版本中,該日誌查看器包含在 Power Toys for .NET Compact Framework 中。有關更多信息,請參見 Power Toys for .NET Compact Framework。
由於網路日誌記錄發生在 Windows 套接字層,因此日誌文件只包含網路數據包信息。這包括通過網路發送的數據,其中有些可能是敏感數據,因而需要進行加密。
終結器
記錄在垃圾回收器丟棄對象之前未釋放這些對象的類名。.NET Compact Framework 3.5 及更高版本支持此日誌。
對象名不包含在日誌中,原因是這些名稱對於公共語言運行時 (CLR) 不可用。但是,未釋放的對象的類名有助於識別這些對象。未釋放的對象在應用程序中可能造成性能問題。
說明:
某些情況下,調用終結器的是 .NET Compact Framework 而不是應用程序代碼。
此文件包含以下信息:
指示終結器何時對對象運行垃圾回收器的時間戳。
被終結對象的類。
跟蹤
記錄 Windows Communication Foundation (WCF) 的代碼異常。桌面 .NET Framework 支持三種日誌記錄:跟蹤、消息處理和事件日誌記錄。.NET Compact Framework 上的 WCF 只支持通過跟蹤日誌記錄來跟蹤代碼異常,但它不記錄警告和錯誤消息。
.NET Compact Framework 3.5 及更高版本支持此日誌。
默認情況下,系統會將日誌文件寫入包含被診斷的應用程序的目錄。但是,您可以使用注冊表項指定路徑和其他選項,如下所示:
使用其他路徑寫入日誌文件。這需要安全注冊表的訪問許可權。
在日誌文件名中包含應用程序名稱。
在日誌文件名中包含進程 ID。
日誌文件名由以下幾部分組成,其中組件 可以是「互操作」、「錯誤」、「載入程序」或「網路」、「終結器」或「跟蹤」:
netcf_應用程序名稱_組件_進程 ID.log
應用程序名稱和進程 ID 為可選項,它們基於注冊表設置。
例如,對於名為 MyApp.exe 的應用程序,其載入程序日誌文件可命名如下:
netcf_MyApp_Loader_2066923010.log
有關如何檢查互操作日誌文件和載入程序日誌文件等日誌文件的信息,請參見 日誌文件信息。
啟用日誌記錄
將以下 Enabled 項的值設置為 1:
HKLM\Software\Microsoft\.NETCompactFramework\Diagnostics\Logging\Enabled
必須設置此項值才能啟用六種日誌記錄:互操作、載入程序、錯誤、網路、終結器和跟蹤。請注意,默認情況下,Logging 下的子項並不存在。
可以通過將此值設置為 0(零)來關閉所有日誌記錄。
指定日誌文件路徑(可選)
將以下 Path 項的值設置為表示日誌文件位置的字元串:
HKLM\Security\.NETCompactFramework\Diagnostics\Logging\Path
此項只能通過可寫入安全注冊表的應用程序來訪問。如果未指定路徑,系統會將日誌文件寫入包含應用程序的目錄。
在名稱中包含應用程序(可選)
將以下 UseApp 項的值設置為 1:
HKLM\Software\Microsoft\.NETCompactFramework\Diagnostics\Logging\UseApp
如果要運行多個應用程序並為每個應用程序獲取單獨的日誌文件,則可以使用此項。如果有兩個應用程序將日誌文件寫入同一目錄,則當第二個應用程序運行時,較早的日誌文件始終會被較新的日誌文件覆蓋。UseApp 項可以用作日誌文件的區分符。
在名稱中包含進程 ID(可選)
將以下 UsePid 項的值設置為 1:
HKLM\Software\Microsoft\.NETCompactFramework\Diagnostics\Logging\UsePid
如果要多次運行同一個應用程序並為每個實例創建單獨的日誌,則可以使用此項。此設置會在日誌文件名中添加進程 ID,以使應用程序的每個實例都能用不同的名稱創建新日誌文件。
在事件發生時記錄事件(可選)
將以下 Flush 項的值設置為 1:
HKLM\Software\Microsoft\.NETCompactFramework\Diagnostics\Logging\Flush
設置此值後,公共語言運行時 (CLR) 便會在事件發生時立即將日誌事件寫入日誌文件,而不是先將事件保存在緩沖區中,並在寫滿緩沖區時才寫入日誌文件。此設置會給應用程序的性能帶來負面影響,並可能稍稍修改應用程序的計時。但是,它有助於診斷與應用程序故障或其他錯誤有關的問題,因為您可能需要查看導致錯誤的最後幾個事件。如果不存在或未設置此項,則系統將只有在寫滿緩沖區後,才會向日誌文件寫入數據。
㈣ 如何寫log4j.xml日誌配置文件
將logger中的 additivity 屬性配置為 false,則這個logger不會將日誌流反饋到root中。 可以達到以logger中配置的appender方式來輸出日誌而其他地方輸出的目的,看配置: root的作用是收集下面所有反饋上來的信息流並根據配置在root中appende
㈤ 如何在logback日誌配置文件中配置相對路徑
兩種式通application.properties 配置文件式配置
另種通logback.xml配置文件式進行配置
首先要說:application.properties logback.xml兩配置文件都放 src/main/resources 目錄
先講第種application.properties
要加入屬性 logging.level.root=warn 即讓志輸warn及級別信息
㈥ Spring Boot Logging 配置
Spring Boot 能夠使用Logback, Log4J2 , java util logging 作為日誌記錄工具。Spring Boot 默認使用Logback作為日誌記錄工具。日誌默認輸出到控制台但也能輸出到文件中。我們通過spring-boot-starter-logging 加入Logback依賴,其實只要我們加入任意的Spring Boot starter 都會默認引入spring-boot-starter-logging,因此 我們不需要分開加入他們。
logging.level.* : 作為package(包)的前綴來設置日誌級別。
logging.file : 配置日誌輸出的文件名,也可以配置文件名的絕對路徑。
logging.path : 配置日誌的路徑。如果沒有配置 logging.file ,Spring Boot 將默認使用spring.log作為文件名。
logging.pattern.console : 定義console中logging的樣式。
logging.pattern.file : 定義文件中日誌的樣式。
logging.pattern.level : 定義渲染不同級別日誌的格式。默認是%5p.
logging.exception-conversion-word : .定義當日誌發生異常時的轉換字
PID : 定義當前進程的ID
下面將討論在 application.properties , application.ym , Logback XML 中配置Logback以及在Spirng Boot 應用中使用Log4J2.
logging.level設置日誌級別。我們可以使用TARCE , DEBUG , INFO , WARN , ERROR , FATAL , OFF 。可以使用root級別和package級別來控制日誌的輸入級別。創建一個具有以下依賴關系的應用程序。
使用 srcmain esourcesapplication.properties 配置日誌級別
使用 srcmain esourcesapplication.yml
Spring Boot 默認把日誌輸入到console,如果我們要把日誌輸入到文件中,需要配置logging.file 或者logging.path屬性性。logging.file屬性用來定義文件名。他不僅僅可以配置文件名,也可以路徑+文件名。
在這種情況下mylogfile.log將在根目錄中創建。我們也可以為為mylogfile.log分配一個路徑,如concretepage/mylogfile.log。這種情況下我們將在相對根目錄下創建concretepage/mylogfile.log。我們也可以為日誌文件配置絕對路徑。
application.yml 中配置
配置logging.path或者logging.path屬性將日誌輸出到文件夾中。logging.path屬性用來定義日誌文件路徑
在 application.properties 中配置logging.path屬性
將會相對根路徑下創建concretepage/logs/spring.log ,也可以配置絕對路徑
application.yml 配置
通過設置logging.patter.console屬性我們能改變輸出到console的日誌樣式。日誌樣式包括時間,日誌級別,線程名,日誌名以及消息。我們可以按我們的喜好改變日誌樣式。
application.properties
application.yml
改變文件中的日誌樣式我們需要設置logging.pattern.file屬性。首先通過logging.file或logging.path屬性,把日誌記錄到文件中。
通過logging.path屬性將在根目錄下創建concretepage/logs並默認使用spring.log作為文件名。logging.pattern.console是設置console的日誌樣式
application.yml
通過命令行改變日誌的輸出級別
Sping Boot 默認輸出ERROR , WARN , INFO 級別的日誌。我們可以通過命令行使能DEBUG ,TRACE級別的日誌輸出,效果是跟配置文件一樣的。想像我們有一個名為my-app.jar的可執行的JAR包我們可以在啟動應用是使能DEBUG級別日誌輸出。
在application.properties中配置
application.yml
相同的方式使能TRACE級別的日誌
application.properties
application.yml
在應用程序中記錄日誌
創建一個SLF4J的例子,首先獲得org.slf4j.Logger的實例。
在application.properties配置包com.concretepage日誌記錄級別
輸出
使用Logback XML 文件
Sping Boot中默認使用logback, 我們可以在application.properties或者application.yml中設置日誌級別。如果想使用XML配置Logback,我們需要在類路徑下創建logback-spring.xml文件
srcmain
esourceslogback-spring.xml
使用自定義日誌:Log4J2
我們使用任何的starter,默認加入Logback 依賴spring-boot-starter-logging。為了使用Log4J2,我們首先要去除spring-boot-starter-logging並且引入spring-boot-starter-log4j2 依賴
現在我們可以在類路徑下創建並配置log4j2-spring.xml
原文: http://www.concretepage.com/spring-boot/spring-boot-logging-example
㈦ 創建資料庫時數據文件和日誌文件需要設置的參數有哪些(6個)
--修改資料庫文件增量
USE master
GO
Alter DATABASE Test
MODIFY FILE
(NAME = test,
-- SIZE = 1000MB,
--MAXSIZE = 10000MB,
FILEGROWTH = 100MB)
GO
--修改資料庫日誌文件增量
USE master
GO
Alter DATABASE Test
MODIFY FILE
(NAME = test_log,
-- SIZE = 1000MB,
--MAXSIZE = 10000MB,
FILEGROWTH = 100MB)
GO
參考以下內容:
[c-sharp]view plainprint?
/*
一般的虛擬主機上,附送的sql server資料庫都是限制了大小,比如100M。當你的資料庫空間達到了指定的100M時,插入新數據就會報錯:
未能為資料庫 'a1116173958' 中的對象 'fc_Info' 分配空間,因為文件組 'PRIMARY' 已滿
其實,有些主機商的資料庫大小是可以自己修改的。當然,修改之前你需要知道資料庫名(這里是邏輯名稱),一般的這個名稱是很容易知道的,就是資料庫名稱。
你可以嘗試下在自己編寫的程序中,或空間的管理後台中等可以執行sql語句的地方試一下下面的語句:
Alter DATABASE 資料庫名
modify FILE
( NAME = 資料庫名,
MAXSIZE = 200MB,
FILEGROWTH = 5MB)
如果執行成功,那麼恭喜你了。
========我是分割線============================================
下面是Alter DATABASE的一些參考資料,詳細可以查看sql server幫助。
在資料庫中添加或刪除文件和文件組。也可用於更改文件和文件組的屬性,例如更改文件的名稱和大小。Alter DATABASE 提供了更改資料庫名稱、文件組名稱以及數據文件和日誌文件的邏輯名稱的能力。
Alter DATABASE 支持資料庫選項的設置。在早期版本的 Microsoft® SQL Server™ 中,這些選項可以通過 sp_dboption 存儲過程來設置。在此次發布的版本中,SQL Server 繼續支持 sp_dboption存儲過程,但在未來版本中可能不再支持。可使用 DATABASEPROPERTYEX 函數檢索資料庫選項的當前設置。
語法
Alter DATABASE database
{ ADD FILE < filespec > [ ,...n ] [ TO FILEGROUP filegroup_name ]
| ADD LOG FILE < filespec > [ ,...n ]
| REMOVE FILE logical_file_name
| ADD FILEGROUP filegroup_name
| REMOVE FILEGROUP filegroup_name
| MODIFY FILE < filespec >
| MODIFY NAME = new_dbname
| MODIFY FILEGROUP filegroup_name {filegroup_property | NAME = new_filegroup_name }
| SET < optionspec > [ ,...n ] [ WITH < termination > ]
| COLLATE < collation_name >
}
< filespec > ::=
( NAME = logical_file_name
[ , NEWNAME = new_logical_name ]
[ , FILENAME = 'os_file_name' ]
[ , SIZE = size ]
[ , MAXSIZE = { max_size | UNLIMITED } ]
[ , FILEGROWTH = growth_increment ] )
< optionspec > ::=
<state_option>
| < cursor_option >
| < auto_option >
| < sql_option >
| < recovery_option >
< state_option > ::=
{ SINGLE_USER | RESTRICTED_USER | MULTI_USER }
| { OFFLINE | ONLINE }
| { READ_ONLY | READ_WRITE }
< termination > ::=
ROLLBACK AFTER integer [ SECONDS ]
| ROLLBACK IMMEDIATE
| NO_WAIT
< cursor_option > ::=
CURSOR_CLOSE_ON_COMMIT { ON | OFF }
| CURSOR_DEFAULT { LOCAL | GLOBAL }
< auto_option > ::=
AUTO_CLOSE { ON | OFF }
| AUTO_Create_STATISTICS { ON | OFF }
| AUTO_SHRINK { ON | OFF }
| AUTO_Update_STATISTICS { ON | OFF }
< sql_option > ::=
ANSI_NULL_DEFAULT { ON | OFF }
| ANSI_NULLS { ON | OFF }
| ANSI_PADDING { ON | OFF }
| ANSI_WARNINGS { ON | OFF }
| ARITHABORT { ON | OFF }
| CONCAT_NULL_YIELDS_NULL { ON | OFF }
| NUMERIC_ROUNDABORT { ON | OFF }
| QUOTED_IDENTIFIER { ON | OFF }
| RECURSIVE_TRIGGERS { ON | OFF }
< recovery_option > ::=
RECOVERY { FULL | BULK_LOGGED | SIMPLE }
| TORN_PAGE_DETECTION { ON | OFF }
㈧ 如何編寫log4j.properties文件,配置日誌信息
第一步:在工程中加入log4j所使用的jar文件
1:項目 > 屬性 :彈出項目的屬性窗口
2:Java構建路徑>?庫>?添加外部JAR:彈出選擇JAR的窗口
3:通過選擇JAR的窗口,找到log4j-1.2.x.jar,並確認
4:回到項目的屬性窗口,點擊確定
第二步:創建log4j.properties文件
1:選擇欲使用log4j的項目>?右鍵點擊src >?新建>?其他 :彈出選擇向導窗口
2:在選擇向導窗口中,選擇常規?> 文件?> 下一步:彈出新建文件的窗口
3:在新建文件窗口中,輸入文件名log4j.properties ? 完成:創建工作結束
第三步:使用log4j記錄日誌信息
import org.apache.log4j.Logger;
public class Log4j {
public static void main(String[] args) {
Logger logger = Logger.getLogger(AccpTeacherLog4j.class.getName());//獲取日誌記錄器,這個記錄器將負責控制日誌信息
try {
logger.debug("設置教員的編號。");//使用Logger對象的debug、info方法輸出日誌信息
} catch (IllegalArgumentException ex) {
logger.info(ex.getMessage());//使用Logger對象的debug、info方法輸出日誌信息
}
}
}
第四步:編寫log4j.properties文件,配置日誌信息
### 把日誌信息輸出到控制台 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender//日誌信息將寫到控制台
log4j.appender.stdout.Target=System.out//信息列印到System.out上
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n//指定輸出格式:顯示日期和log信息
### 把日誌信息輸出到文件:accp.log ###
log4j.appender.file=org.apache.log4j.FileAppender//日誌信息將寫到文件中
log4j.appender.file.File=accp.log//指定日誌輸出的文件名
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %m%n//指定輸出格式:顯示日期,日誌發生位置和日誌信息
### 設置優先順序別、以及輸出源 ###
log4j.rootLogger=debug, stdout, file//設置優先順序別為debug、
日誌被輸出到多個輸出源
註:優先順序從高到低分別是ERROR、WARN、INFO、DEBUG
在此處,如果優先順序別設為info,那麼使用debug方法列印的日誌信息將不被輸出