使用者操作日誌模組如何開發

時間 2021-05-06 19:20:24

1樓:

耦合程度較低的方案:

通過DB的操作日誌採集,如MySQL的binlog,用maxwell或者阿里開源的元件採集,然後logstash處理一下傳送到es;如果有事務的話,maxwell會輸出事務的id;

如果系統中除了db,還用了redis之類的儲存,可以使用應用層日誌採集。類似微服務裡面常用的trace方案,每個使用者的請求有個唯一id作為標識,然後在各微服務之間傳遞。然後分別把使用者請求、造成的影響通過格式化日誌(一般是json)列印出來。

然後通過filebeat+logstash傳給es,就可以了。

並不建議在應用層直接處理日誌,除非應用規模很小,比如簡單的web服務;也不建議在DB裡面直接儲存使用者操作日誌,稍微有點使用者規模,資料膨脹的速度就讓DB無法承受。

2樓:毛毛毛

需求和樓主的一樣,需要記錄後台操作人員的具體操作,非常想知道那些大型的管理系統怎麼做,比如那些保險公司的理賠系統,銀行系統,後台操作人員的每乙個操作肯定都會有記錄,改變什麼字段,新值是什麼,舊值是什麼,諸如此類的,各種大廠的程式設計師,談談你們怎麼做的

3樓:韓冰

操作日誌很簡單的就可以處理,如果你用mvc開發。就更簡單了,你可以寫乙個特性(attribute)然後附加在你基類的控制器上,讓所有控制器整合該控制器,然後通過特性的重寫來進行記錄啊

4樓:楊海軍

其實你說的這個日誌已經屬於業務邏輯的內容呢,就跟你系統其他的業務一樣做就可以了。不要把它當做另外的東西,他也是你系統業務的一部分!

資料庫正在操作時突然斷電,為什麼可以用日誌恢復?既然斷電了,還怎麼能寫入日誌?

斷電了是不能寫入日誌的,可能日誌寫到一半而已,會掉失很多資料,但是沒有關係,此時事務還沒有提交,這些資料丟不會影響一致性,只要保證已經提交的事務的資料沒有丟失就可以了。為了防止斷電資料丟失等情況,事務在提交前一定先要將更新的資料持久化儲存到硬碟,持久化成功了才能告訴客戶端事務執行成功。伺服器重啟時,...

macOS 是目前桌面使用者體驗最好的作業系統嗎?

harly he 我就早用win和osx。我覺得,算了吧,osx比win差了天去。finder那個難用。難道你不覺得win的explore太好了嗎? 徐行 沒有高分屏還是別用了,MAC OS 的字型渲染在 1080p 的 23寸屏上可以說是相當的模糊,而 windows 的字型渲染既清晰又不刺眼 除...

作業系統之核心態和使用者態小結

HashFury tornado的設計思想決定的,它不像django那樣高耦合,而是把需要做的外層開發完全交給你。便捷性和擴充套件性是矛盾的,tornado是個很漂亮的高效框架,擴充套件外掛程式基本都可以接入。但如果你的目的不是效率而是快速的web開發,我建議你還是用django或者flask吧。 ...