當前位置:首頁 » 存儲配置 » logback指定日誌存儲位置

logback指定日誌存儲位置

發布時間: 2022-07-08 03:27:27

A. logback.xml生成的日誌文件如何存儲到mysql資料庫

您好,提示:
MySQL中的error log日誌文件,其實功能跟ORACLE中的alert極為相似,不過由名稱也看得出MySQL果然還是嫩了點兒,error logs中即不全是error信息,也並非所有error都被記入log,這名稱就有點兒名不副實了。還是ORACLE高明--alert,就是提示你要注意,咋理解都沒毛病。
在某些操作系統上運行的mysql崩潰時,會將堆棧的跟蹤信息(stack trace)拋出到錯誤日誌文件中,這些跟蹤信息比較有利於故障排查。
啟用mysqld時附加--log-error參數(或配置log-error系統環境變數),指定錯誤日誌的路徑及文件名,如不指定的話,默認文件名為[host_name].err,保存在mysql的data文件夾下。執行FLUSH LOGS命令後,mysql會將當前錯誤日誌文件附加-old保存,而且創建一個新的空錯誤日誌文件(僅限指定--log-error的情況下會自動創建新文件)。
提示:
Windows環境中,事件和錯誤消息也會被寫入windows的事件日誌中,以應用程序的形式保存,並可能被標記為警告(Warning)或注意(Note),不過信息類的消息不會寫入事件日誌。
--log-warnings參數(或log-warnings系統環境變數)用來控制警告信息是否記錄,默認值為1即啟用,指定為0時表示禁用。如果指定該參數值大於1,則連接失敗的消息也會寫入錯誤日誌。

使用mysqld_safe命令啟動mysqld,mysqld_safe會將錯誤消息寫到日誌文件或者系統日誌,在5.1.20版本之前,mysqld_safe的操作記錄到文件;從5.1.20版本開始,mysqld_safe提供了兩個新增錯誤日誌選項:--syslog和--skip-syslog。從5.1.21版本開始,默認的不記錄日誌選項為--skip-syslog,該選項兼容5.1.20版本之前的錯誤日誌行為。要明確指定輸出的錯誤日誌文件,就通過mysqld_safe啟動服務時附加--log-error[=file_name]參數,如果要使用syslog,則指定--syslog參數。
對於記錄到syslog的消息,來自mysqld_safe和mysqld的消息會分別打上"mysqld_safe"或"mysqld"的標簽,從5.1.21版本開始,還可以通過--syslog-tag=[tag]的方式指定標簽的名稱,修改後實際記錄的標簽形式會變成"mysql_safe-[tag]"和"mysqld-[tag]"。
如何是使用mysqld_safe命令啟動mysqld進程,並且mysqld意外崩潰,則mysqld_safe將嘗試重新啟動mysqld進程,並且向錯誤日誌中記錄"restarted mysqld"信息。

B. logback的日誌文件,默認是存放到什麼位置

body{ line-height:200%;font-size:14px; } 用log_format指令設置了日誌格式之後,需要用access_log指令指定日誌文件存放路徑,access_log指令的語法如下: access_log path [format [buffer=sizeoff]] 其中path表示日誌文件設置內存緩存區的大小,例如可以設置buffer=32k,那麼access_log指令將把訪問日誌記錄在/data1/logs/test.log將無法被Nginx創建; (2)緩存將不會被使用 (3)對於每一條日誌記錄,日誌文件都將先打開文件,再寫入日誌記錄,然後馬上關閉。為了提高包含變數的日誌文件存放路徑的性能,須要使用open_log_file_cache指令設置經常被使用的日誌文件描述符緩存。 open_log_file_cache指令主要用來設置含有變數的日誌路徑的文件描述符緩存,它的語法如下: open_log_file_cache max=N[inactive=time][min_uses=N][VALID=time] off 該指令默認是禁止的,等同於:open_log_file_cache off; open_log_file_cache指令的各項參數說明如下: max:設置緩存中的最大文件描述符數量。如果超過設置的最大文件描述符數量,則採用LRU演算法清除“較不常使用的文件描述符”。LRU演算法的基本概念是:當內存緩沖區剩餘的可用空間不夠時,緩沖區盡可能地先保留使用者最常使用的數據,將最近未使用的數據移出內存,騰出空間來載入另外的數據。 inactive:設置一個時間,如果在設置的時間內沒有使用此文件描述符,則自動刪除此描述符。此參數為可選參數,默認的時間為10秒鍾。 min_users:在參數inactive指定的時間范圍內,如果日誌文件超過被使用的次數,則將該日誌文件的描述符記入緩存。莫兒女次數為1. valid:設置多長時間檢查一次,看一看變數指定的文件路徑與文件名是否仍然存在。默認時間為60秒。 off:禁止使用緩存。 open_log_file_cache指令的設置示例如下: open_log_file_cache max=1000 inactive=20s min_uses=2 valid=1m;

C. logback的日誌文件,默認是存放到什麼位置

你好,
logback類似於log日誌體系,可以將一些日誌信息輸出到tomcat文件夾內,示例如下:
logback.xml裡面的內容配置:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 文件輸出日誌 (文件大小策略進行文件輸出,超過指定大小對文件備份) -->

UTF-8

${logbase}%d{-MM-dd}.log.html
${logbase}.%d{-MM-dd}.log.html.zip

使用的時候可以這樣定義變數:Logger logger = LoggerFactory.getLogger(AdministratorController.class);
需要import兩個內容:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
設置好後,可以輸出到文件中,也可以輸出到輸出框中。

D. 怎麼將logback的日誌信息非同步到oracle資料庫

logback是log4j作者推出的新日誌系統,原生支持slf4j通用日誌api,允許平滑切換日誌系統,並且對簡化應用部署中日誌處理的工作做了有益的封裝。
官方地址為:http://logback.qos.ch/
Logback日誌需要依賴一下jar包:
slf4j-api-1.6.0.jar
logback-core-0.9.21.jar
logback-classic-0.9.21.jar
logback-access-0.9.21.jar
主配置文件為logback.xml,放在src目錄下或是WEB-INF/classes下,logback會自動載入
logback.xml的基本結構如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG"><appender-ref ref="STDOUT" /></root>
</configuration>
logback.xml的基本配置信息都包含在configuration標簽中,需要含有至少一個appender標簽用於指定日誌輸出方式和輸出格式,root標簽為系統默認日誌進程,通過level指定日誌級別,通過appender-ref關聯前面指定頂的日誌輸出方式。
例子中的appender使用的是ch.qos.logback.core.ConsoleAppender類,用於對控制台進行日誌輸出
其中encoder標簽指定日誌輸出格式為「時間 線程 級別 類路徑 信息」
logback的文件日誌輸出方式還提供多種日誌分包策略
1.文件日誌
<appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>E:/logs/mylog.txt</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>E:/logs/mylog-%d{yyyy-MM-dd_HH-mm}.%i.log</fileNamePattern>
<maxHistory>5</maxHistory>
<
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>100MB</maxFileSize>
</>
</rollingPolicy>
<encoder>
<pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n</pattern>
</encoder>
</appender
文件日誌輸出採用的ch.qos.logback.core.rolling.RollingFileAppender類,它的基本屬性包括<file>指定輸入文件路徑,encoder指定日誌格式。其中,rollingPolicy標簽指定的是日誌分包策略,ch.qos.logback.core.rolling.TimeBasedRollingPolicy類實現的是基於時間的分包策略,分包間隔是根據fileNamePattern中指定的事件最小單位,比如例子中的%d{yyyy-MM-dd_HH-mm}的最小事件單位為分,它的觸發方式就是1分鍾,策略在每次想日誌中添加新內容時觸發,如果滿足條件,就將mylog.txt復制到E:/logs/目錄並更名為mylog-2010-06-22_13-13.1.log,並刪除原mylog.txt。maxHistory的值為指定E:/logs目錄下存在的類似mylog-2010-06-22_13-13.1.log文件的最大個數,當超過時會刪除最早的文件。此外,策略還可以互相嵌套,比如本例中在時間策略中又嵌套了文件大小策略,ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP實現對單文件大小的判斷,當超過maxFileSize中指定大大小時,文件名中的變數%i會加一,即在不滿足時間觸發且滿足大小觸發時,會生成mylog-2010-06-22_13-13.1.log和mylog-2010-06-22_13-13.2.log兩個文件。
2.資料庫日誌
<appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
<connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
<dataSource
class="com.mchange.v2.c3p0.ComboPooledDataSource">
<driverClass>com.mysql.jdbc.Driver</driverClass>
<url>jdbc:mysql://127.0.0.1:3306/databaseName</url>
<user>root</user>
<password>root</password>
</dataSource>
</connectionSource>
</appender>
資料庫輸出使用ch.qos.logback.classic.db.DBAppender類,數據源支持c3p0數據連接池,例子中使用的MySql,其他配置方式請參考官方文檔。
使用資料庫輸出需要在資料庫中建立3個表,建表腳本如下
# Logback: the reliable, generic, fast and flexible logging framework.
# Copyright (C) 1999-2010, QOS.ch. All rights reserved.
#
# See http://logback.qos.ch/license.html for the applicable licensing
# conditions.
# This SQL script creates the required tables by ch.qos.logback.classic.db.DBAppender.
#
# It is intended for MySQL databases. It has been tested on MySQL 5.1.37
# on Linux

BEGIN;
DROP TABLE IF EXISTS logging_event_property;
DROP TABLE IF EXISTS logging_event_exception;
DROP TABLE IF EXISTS logging_event;
COMMIT;

BEGIN;
CREATE TABLE logging_event
(
timestmp BIGINT NOT NULL,
formatted_message TEXT NOT NULL,
logger_name VARCHAR(254) NOT NULL,
level_string VARCHAR(254) NOT NULL,
thread_name VARCHAR(254),
reference_flag SMALLINT,
arg0 VARCHAR(254),
arg1 VARCHAR(254),
arg2 VARCHAR(254),
arg3 VARCHAR(254),
caller_filename VARCHAR(254) NOT NULL,
caller_class VARCHAR(254) NOT NULL,
caller_method VARCHAR(254) NOT NULL,
caller_line CHAR(4) NOT NULL,
event_id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY
);
COMMIT;
BEGIN;
CREATE TABLE logging_event_property
(
event_id BIGINT NOT NULL,
mapped_key VARCHAR(254) NOT NULL,
mapped_value TEXT,
PRIMARY KEY(event_id, mapped_key),
FOREIGN KEY (event_id) REFERENCES logging_event(event_id)
);
COMMIT;
BEGIN;
CREATE TABLE logging_event_exception
(
event_id BIGINT NOT NULL,
i SMALLINT NOT NULL,
trace_line VARCHAR(254) NOT NULL,
PRIMARY KEY(event_id, i),
FOREIGN KEY (event_id) REFERENCES logging_event(event_id)
);
COMMIT;
3.其他
此外logback還提供基於mail,基於jmx等多種日誌輸出方式,你也可以通過繼承ch.qos.logback.core.AppenderBase 自己寫appender實現

除了使用默認的日誌主線程<root>外,還可以通過<logger>標簽定製其他日誌線程如:
<logger name="com.test" level="DEBUG">
<appender-ref ref="STDOUT" />
</logger>
其中name指定線程針對的包路徑,level是日誌級別,<appender-ref>定義使用那種appender。
例如要實現列印jdbc提交的sql,可以加入如下logger:
<logger name="java.sql.Connection" level="DEBUG"><appender-ref ref="STDOUT" /></logger>
貼出我完整的logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- log output to file -->
<appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>E:/logs/mylog.txt</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>E:/logs/mylog-%d{yyyy-MM-dd_HH-mm}.%i.log</fileNamePattern>
<maxHistory>5</maxHistory>
<
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>100MB</maxFileSize>
</>
</rollingPolicy>
<encoder>
<pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n</pattern>
</encoder>
</appender>
<!-- log output to console -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- log output to db-->
<appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
<connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
<dataSource
class="com.mchange.v2.c3p0.ComboPooledDataSource">
<driverClass>com.mysql.jdbc.Driver</driverClass>
<url>jdbc:mysql://127.0.0.1:3306/tunneldb</url>
<user>root</user>
<password>123123</password>
</dataSource>
</connectionSource>
</appender>

<logger name="com.ttt.ttt" level="DEBUG">
<appender-ref ref="STDOUT" />
</logger>

<logger name="java.sql.Connection" level="DEBUG"><appender-ref ref="STDOUT" /></logger>
<!-- 列印sql
<logger name="java.sql.Statement" level="DEBUG"><appender-ref ref="STDOUT" /></logger>
<logger name="java.sql.PreparedStatement" level="DEBUG"><appender-ref ref="STDOUT" /></logger>

<logger name="java.sql.ResultSet" level="DEBUG"><appender-ref ref="STDOUT" /></logger>
-->
<root level="DEBUG"><appender-ref ref="ROLLING" /></root>
</configuration>

總結:logback提供了豐富而高效的日誌輸出方式,並通過滾動策略,將實施時復雜的備份策略整合,極大的簡化的部署成本。

E. 如何在logback日誌配置文件中配置相對路徑

#相對路徑

log_home=./infoLogs
log4j.rootLogger=info,stdout,R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=[%t] (%F:%L) %d{yyyy-MM-dd HH:mm:ss} - %m%n

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=[%d{yyyyMMdd HH:mm:ss}-%p][%F:%L][%t]-- %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=${log_home}/app.log
log4j.appender.R.MaxFileSize=1024KB
log4j.appender.R.MaxBackupIndex=10

F. 關於logback怎麼將日誌非同步存儲在Oracle資料庫中的問題解決

  1. JAVA http://..com/link?url=JiuatO2ZfW5DV3GI-UfjTB4oE0H_N6sy5vtjLXcbOqKU3-_V3cqVwfzK6dJG9s7GUX2aSx9fXV_

  2. C# http://q.cnblogs.com/q/66298/

二種方案都有

G. logback將日誌文件存入資料庫怎麼弄

還需要在資料庫中建3個表。

H. 日誌文件存放位置及配置文件有哪些

以DailyRollingFileAppender 為例:假設每天一個日誌文件
有以下設置:

log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=app.log
log4j.appender.A1.DatePattern='.'yyyy-MM-dd
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d %5p - %c -%-4r [%t] - %m%n

此時生成日誌文件將位於tomcat的bin目錄下,如要將日誌文件保存在 :根目錄/web-info/logs/下,個人有以下4種解決方案:
1 絕對路徑
log4j.appender.A1.File=D:\apache-tomcat-6.0.18/webapps/項目/WEB-INF/logs/app.log
但這種寫法靈活性很差

以下3中使用相同的設置原理: jvm的環境變數
2:spring的Log4jConfigListener
通過以下配置:
< context-param>
<param-name>webAppRootKey</param-name>
<param-value>webApp.root</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.properties</param-value>
</context-param>
< listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
...
log4j.appender.logfile.File=${webApp.root}/WEB-INF/logs/app.log
...
來解決
2:使用已有jvm變數:
例如:
log4j.appender.logfile.File=${user.home}/logs/app.log
日誌將位於:例如windows:C:\Documents and Settings\joe\logs\app.log

3 自己設置目錄,也就是在項目啟動時通過System.setProperty設置
通過實現ServletContextListener來解決:例如

public class log4jlistener implements ServletContextListener {
public static final String log4jdirkey = "log4jdir";
public void contextDestroyed(ServletContextEvent servletcontextevent) {
System.getProperties().remove(log4jdirkey);
}
public void contextInitialized(ServletContextEvent servletcontextevent) {
String log4jdir = servletcontextevent.getServletContext().getRealPath("/");
//System.out.println("log4jdir:"+log4jdir);
System.setProperty(log4jdirkey, log4jdir);
}
}
web.xml配置:

<listener>
<listener-class>com.log4j.log4jlistener</listener-class>
</listener>

log4j.prtperties 配置:
log4j.appender.A1.File=${log4jdir}/WEB-INF/logs/app1.log
來解決。

I. springboot如何實現logback不同環境日誌輸出路徑不同

[圖文] spring-boot+maven+logback 項目環境分開發、測試、壓測、預發布、生產環境等不同... 不同環境設置不同的日誌輸出設備(控制台、文件、db等) 不同環境是否配置elk 方案... 今天來介紹下Spring Boot如何配置日誌logback,我剛學習的時候,是帶著下面幾個問題...

熱點內容
阿里雲怎麼領伺服器 發布:2024-10-09 05:17:53 瀏覽:816
c語言可逆素數 發布:2024-10-09 05:13:44 瀏覽:920
班級采訪問題 發布:2024-10-09 04:45:44 瀏覽:497
單人地圖腳本 發布:2024-10-09 04:45:32 瀏覽:754
易語言cf自瞄源碼 發布:2024-10-09 04:36:14 瀏覽:121
安卓和蘋果哪個更難修理 發布:2024-10-09 04:36:12 瀏覽:26
黎明覺醒安卓什麼配置 發布:2024-10-09 04:32:05 瀏覽:127
助手autojs腳本 發布:2024-10-09 04:31:40 瀏覽:186
sql判斷今天 發布:2024-10-09 04:19:35 瀏覽:943
拆分視頻需要哪些配置 發布:2024-10-09 04:06:39 瀏覽:912