原创 在Java項目中使用traceId跟蹤請求全流程日誌

最近在項目開發中遇到了一些問題,項目爲多機部署,使用kibana收集日誌,但併發大時使用日誌定位比較麻煩,大量日誌輸出導致很難篩出指定請求的全部相關日誌,以及下游服務調用對應的日誌。因此計劃對項目日誌打印進行一些小改造,使用一個trace

原创 使用Exchange讀取郵件、發送郵件

問題 由於公司郵箱並未開放POP3收信端口,但配置exchange後,手機郵件客戶端可以收發郵件,因此決定使用exchange協議收發郵件。但測試過程中發現登錄時反覆提示“440 Login Timeout ”錯誤,用戶名密碼並沒有出錯。

原创 Java服務問題快速排查指南

問題 收到服務內存佔用過大告警,登錄虛擬機使用top發現每隔幾秒java進程佔用的CPU就會暴增一次。 排查方向一:服務日誌 使用tail -fn 100 xxx.log查看服務日誌,發現頻繁打印連接mail服務器失敗錯誤,根據錯誤堆棧

原创 Intellij IDEA通過tomcat部署web項目的機制

問題 以前使用eclipse調用tomcat運行web項目時,eclipse的方式非常直接了當,就是直接將項目更新到%TOMCAT_HOME%/webapps目錄下即可。然而在使用Intellij IDEA時,該目錄下看不到任何項目文件,

原创 徹底刪除Daemon虛擬光驅工具殘留的光驅盤符

問題描述 資源管理器中始終顯示盤符“光驅G”,“設備管理器”中查看該虛擬光驅顯示爲“dtsoft virtual cdrom device”,卸載後重啓又會出現,只能禁用。 原因 原先安裝了老版本的Daemon,並創建了一個虛擬光驅G,升

原创 mybatis打印SQL日誌最終解決方案

問題 在程序調試時想要mybatis打印SQL日誌,但它並沒有類似hibernate所提供的showsql功能,因此只能通過配置log4j日誌輸出級別的方式來打印sql。但網上搜到的答案几乎都是下面的配置方式: log4j.rootLog

原创 Log4j 2的特性和改進

本文譯自: http://logging.apache.org/log4j/2.x/index.html 詳細目錄 Apache Log4j 2 中文文檔 Log4j 2的一些特性和改進 API分離 Log4j 2的API與實現是分離

原创 Apache Log4j 2 中文文檔

前言 Log4j是一個常用的java日誌工具類,然而1.x的版本存在諸多的缺陷,官方也逐漸減少了對其的維護。但自2014年Log4j 2推出到現在,仍有大部分的人在使用Log4j 1,導致網上搜索到的Log4j 2文檔都不大完整,零零散散

原创 如何安全地監控遠程JVM/Tomcat

說到監控JVM,一般想到就是jps/jinfo/jstat/jmap等JDK自帶的工具,或者是JConsole/VisualVM等圖形化便捷工具。但一般服務器都部署在遠程虛擬機中,那又該如何遠程監控呢?通常的方法是走jstatd或jmx