Jump to content
  • 0

Chat log not being created


Question

Posted

Hello guys.

 

Im using one of the most recent L2JFrozen revision FYI.

 

I've been recently having the issue of many trash talking players on a server. As i assume everyone gets at some point. And i'm just trying to cut it directly by simple banning everyone that is being disrespectul.

 

The thing is, my chat.log file is not recording. 

 

I've set up on developer.propertier file the part where was LogChat = False to true, and even made an attempt to change directly on the source file.

 

I went to say2.java file (which is the file on this rev that controls all say actions) and found the following line:

 

		if (Config.LOG_CHAT)
		{
			final LogRecord record = new LogRecord(Level.INFO, _text);
			record.setLoggerName("chat");
			
			if (_type == TELL)
			{
				record.setParameters(new Object[]
				{
					CHAT_NAMES[_type],
					"[" + activeChar.getName() + " to " + _target + "]"
				});
			}
			else
			{
				record.setParameters(new Object[]
				{
					CHAT_NAMES[_type],
					"[" + activeChar.getName() + "]"
				});
			}
			
			_logChat.log(record);
		}

Since it's not recognizing the Config.LOG_CHAT, i tried simply to replace it to a simple verification like:

 if (activeChar.getLevel() > 0 )

then keep everything else the same.

 

I even changed the permissions on the log folder for users to have full access to create files, but that wasnt it.

 

And what is even weirder to me, is that GMAudit, karmadrop and some other files are created without any problems.

 

Anyone can help?

11 answers to this question

Recommended Posts

  • 0
Posted

Your log.cfg contains necessary properties for log4j but don't uses in L2J Frozen. You need get him content and put into logger.properties file. This file uses as property definer for log4j.

 

Or rename logger.properties to logger.properties.bak and rename log.cfg to logger.properties. for check my assuming.

 

I think it will work.

  • 0
Posted

Replace this code by path "com.l2jfrozen.logs.ChatFilter.java"

public class ChatFilter implements Filter
{
	@Override
	public boolean isLoggable(final LogRecord record)
	{
		return record.getLoggerName() == "chat";
	}
}

to

public class ChatFilter implements Filter
{
	@Override
	public boolean isLoggable(final LogRecord record)
	{
		return record.getLoggerName().equalsIgnoreCase("chat");
	}
}

 

  • 0
Posted (edited)

@Rootware Hello, thanks for the reply and sorry for only being able to respond today. It's been a busy week for me.

 

I tested the changes you suggested on ChatFilter.java, sadly, that did not solve the problem.

 

Is there any other java file/code regarding chatlog of my revision you'd like to see? I can send it. But i'm still not getting any chat logs.

 

What i find weird as i mentioned earlier, is that GMAudit, Karmadrop, loginserver/gameserver logs get created without any problems. Everything is set to true on developer.properties and i even tested an extra line on Say2.java to register the log for everyone above lv 1 as a way to test but still nothing.

 

Edit:

Here's a list of the log files i get from gameserver:

log/loggerOut.log

log/game/_all.txt

log/game/karma_dieDrop.txt

log/game/New_chars.txt

log/game/RaidBossSpawnManager.txt

log/GMAudit/GM-Name [GM-Id].txt

 

And that's it.

I even tried activating the items log on developer.properties (the one it warns can be too heavy) just so see if it would create the file, but nothing.

 

Thanks in advance for trying to help, by the way.

 

Edited by dextroy
  • 0
Posted

The maximal size of log files is defined in logger.properties. I don't see more difference between GMAudit and ChatLog loggers. Try to replace in this place ChatLogger to GMAudit for checking correct calling the logger feature overall in this place.

  • 0
Posted (edited)
1 hour ago, Rootware said:

The maximal size of log files is defined in logger.properties. I don't see more difference between GMAudit and ChatLog loggers. Try to replace in this place ChatLogger to GMAudit for checking correct calling the logger feature overall in this place.

But where would i attempt that replace? There are multiple files that call for ChatLog on java. On developer properties they already call both. Im trying to understand what you're suggesting me to try.

 

As for logger.properties. I haven't touched here's their codes:

log4j.rootLogger=INFO, console,  file

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.threshold=DEBUG
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-5p %m%n

log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.append=true
log4j.appender.file.file=log/loggerOut.log
log4j.appender.file.threshold=INFO
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

 

 And here's the log.cfg file that's also in the folder:

############################################################
#      Global properties
############################################################

# "handlers" specifies a comma separated list of log Handler 
# classes.  These handlers will be installed during VM startup.
# Note that these classes must be on the system classpath.
# By default we only configure a ConsoleHandler, which will only
# show messages at the INFO and above levels.
#handlers = java.util.logging.ConsoleHandler

# To also add the FileHandler, use the following line instead.
handlers = java.util.logging.FileHandler,java.util.logging.ConsoleHandler,\
           com.l2jfrozen.logs.ErrorLogHandler
chat.handlers = com.l2jfrozen.logs.ChatLogHandler
chat.useParentHandlers = false
gmaudit.handlers = com.l2jfrozen.logs.GMAuditLogHandler
gmaudit.useParentHandlers = false
item.handlers = com.l2jfrozen.logs.ItemLogHandler
item.useParentHandlers = false
audit.handlers = com.l2jfrozen.logs.AuditLogHandler
audit.useParentHandlers = false


# Default global logging level.
# This specifies which kinds of events are logged across
# all loggers.  For any given facility this global level
# can be overriden by a facility specific level
# Note that the ConsoleHandler also has a separate level
# setting to limit messages printed to the console.
.level = CONFIG

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

# default file output is in user's home directory.
java.util.logging.FileHandler.pattern = log/java%u.log
java.util.logging.FileHandler.limit = 500000
java.util.logging.FileHandler.count = 5
java.util.logging.FileHandler.formatter = com.l2jfrozen.logs.FileLogFormatter
java.util.logging.FileHandler.level = CONFIG

# Limit the message that are printed on the console to INFO and above.
java.util.logging.ConsoleHandler.level = FINER
java.util.logging.ConsoleHandler.formatter = com.l2jfrozen.logs.ConsoleLogFormatter

# log errors (exceptions)
com.l2jfrozen.logs.ErrorLogHandler.pattern = log/error%u.log
com.l2jfrozen.logs.ErrorLogHandler.count = 5
com.l2jfrozen.logs.ErrorLogHandler.formatter = java.util.logging.SimpleFormatter
com.l2jfrozen.logs.ErrorLogHandler.filter = com.l2jfrozen.logs.ErrorFilter
com.l2jfrozen.logs.ErrorLogHandler.level = CONFIG

# log chats
com.l2jfrozen.logs.ChatLogHandler.pattern = log/chat.log
com.l2jfrozen.logs.ChatLogHandler.formatter = com.l2jfrozen.logs.ChatLogFormatter
com.l2jfrozen.logs.ChatLogHandler.filter = com.l2jfrozen.logs.ChatFilter
com.l2jfrozen.logs.ChatLogHandler.append = true
com.l2jfrozen.logs.ChatLogHandler.level = INFO

# log GM Audit
com.l2jfrozen.logs.GMAuditLogHandler.pattern = log/gmaudit.log
com.l2jfrozen.logs.GMAuditLogHandler.formatter = com.l2jfrozen.logs.GMAuditFormatter
com.l2jfrozen.logs.GMAuditLogHandler.filter = com.l2jfrozen.logs.GMAuditFilter
com.l2jfrozen.logs.GMAuditLogHandler.append = true
com.l2jfrozen.logs.GMAuditLogHandler.level = INFO

# log items
com.l2jfrozen.logs.ItemLogHandler.pattern = log/item.log
com.l2jfrozen.logs.ItemLogHandler.formatter = com.l2jfrozen.logs.ItemLogFormatter
com.l2jfrozen.logs.ItemLogHandler.filter = com.l2jfrozen.logs.ItemFilter
com.l2jfrozen.logs.ItemLogHandler.append = true
com.l2jfrozen.logs.ItemLogHandler.level = INFO

# audit
com.l2jfrozen.logs.AuditLogHandler.pattern = log/audit.log
com.l2jfrozen.logs.AuditLogHandler.formatter = com.l2jfrozen.logs.AuditFormatter
com.l2jfrozen.logs.AuditLogHandler.filter = com.l2jfrozen.logs.AuditFilter
com.l2jfrozen.logs.AuditLogHandler.append = true
com.l2jfrozen.logs.AuditLogHandler.level = INFO


############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################

# For example, set the com.xyz.foo logger to only log SEVERE
# messages:
com.l2jfrozen.gameserver.level = CONFIG
com.l2jfrozen.loginserver.level = CONFIG
com.l2jfrozen.gameserver.Connection.level = CONFIG
com.l2jfrozen.gameserver.serverpackets.level = FINER
com.l2jfrozen.gameserver.clientpackets.level = FINER
com.l2jfrozen.gameserver.model.L2Character.level = FINER
com.l2jfrozen.gameserver.skills.SkillsEngine.level = WARNING

# Alt Privileges Administration
AltPrivilegesAdmin.pattern = log/admin-commands.log
AltPrivilegesAdmin.formatter = com.l2jfrozen.logs.FileLogFormatter
AltPrivilegesAdmin.append = true
AltPrivilegesAdmin.level = CONFIG

 

Edit:

Just noticed something else bit weird. The log.cfg file calls for com.l2jfrozen.logs.GMAuditFormatter and com.l2jfrozen.logs.GMAuditFilter

 

However, on com.l2jfrozen.logs there's no GMAudit files, only those:

image.png.5b09d8909ee0c87e751b7f1a6a38be88.png

 

I searched for GMAuditFormatter on the source and couldn't find any other file mentioning that besides the log.cfg. So, i don't know exactly where it's running the code to generate the GMAudit.

Edited by dextroy
  • 0
Posted

I don't seeing reason for no logging chat messages. I posted to you all difference between logger properties. Check the Item logging for correct work by the way, because this one 100% the same but with another file name storing.

  • 0
Posted
2 minutes ago, Rootware said:

I don't seeing reason for no logging chat messages. I posted to you all difference between logger properties. Check the Item logging for correct work by the way, because this one 100% the same but with another file name storing.

I tried, but it did not log item drops aswell. I've been trying to dig all over java codes trying to find something but i couldnt find why one is logging and the other one isn't.

 

Would you know what are all the java files related to creating a specific log so i can compare them? I mean, besides those on com.l2jfrozen.logs?

  • 0
Posted

Try to put into logger.properties file the content from log.cfg with overwritting existing content. Possible, L2J Frozen developers forget change this. At this moment logger.properties don't contains informations about logger handlers. that's possible the main reason of missed files which uses specific logging handlers. E.g. GMAudit uses direct storing into the file all info ignores native logger.

  • 0
Posted
42 minutes ago, Rootware said:

Try to put into logger.properties file the content from log.cfg with overwritting existing content. Possible, L2J Frozen developers forget change this. At this moment logger.properties don't contains informations about logger handlers. that's possible the main reason of missed files which uses specific logging handlers. E.g. GMAudit uses direct storing into the file all info ignores native logger.

Ok but just to understand properly, do i do this with the logger.properties - the notepad file only?

 

Or do i have do look for something on the java codes to implement? If so, what files on the java code should i be looking for? I will test all your suggestions on my next maintenance.

  • 0
Posted
51 minutes ago, Rootware said:

Your log.cfg contains necessary properties for log4j but don't uses in L2J Frozen. You need get him content and put into logger.properties file. This file uses as property definer for log4j.

 

Or rename logger.properties to logger.properties.bak and rename log.cfg to logger.properties. for check my assuming.

 

I think it will work.

Ok thanks!

 

I will attempt that on my next maintenance. I'll be back here tomorrow to say if that has worked for me. Thanks for all the tips so far =)

  • 0
Posted

Ok returning with the results.

 

Switching the files, did not work.

 

However, adding log.cfg lines in addition to those on logger.properties worked like a charm!!

 

Thank you so much for the help and all the tips.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • Very nice and passionate effort. Good luck.
    • SX.ORG is a global proxy platform offering residential, mobile and datacenter IPs for SEO, web scraping, ad verification and multi-account management. It provides flexible IP rotation, precise geo-targeting, HTTP(S)/SOCKS5 support, API access and pay-as-you-go pricing based only on the traffic you use.
    • L2-IMBA — SEASON 2  Custom PvP / PvE Interlude · Every Class Playable BETA — LIVE NOW GRAND START — 11 September 2026, 20:00 GMT+2 https://l2-imba.com · https://discord.com/invite/jmhVpj8ySv ═══════════════════════════════════════ RATES & CORE SETTINGS ═══════════════════════════════════════ Chronicle — Interlude XP / SP — x45, level-adjusted curve Adena — x1 Max level — 90 Subclass — 1, to level 80 Starting hub — Giran Skills — Auto-learn, post-80 via custom trainers Loot — Auto-loot with low-value filtering Buffs — Extended duration, expanded slots, saved schemes Client limit — NO DUAL-BOXING, one client per player Automation — Built-in auto-farm with daily time limit Offline — Trading and crafting enabled Current beta configuration. Final values confirmed at launch sign-off. ═══════════════════════════════════════ All 31 third classes are developed to level 90 through five specialized trainers — there are no dead classes here. Tanks, daggers, archers, warriors, summoners, healers, buffers and crafters all have real post-80 progression and a role worth playing. Full PvE progression through ten farm zones, thirty-five themed encounters and eighteen tracked raids, feeding into gear-equalized Team vs Team and open-world PvP. This isn't a stat patch with a new name. L2-IMBA keeps the combat, classes and world of Interlude and builds a new endgame on top of it — new equipment branches, custom class development past level 80, purpose-built farm ecosystems, boss progression, crafting, and augmentation, all connected into one progression loop. Level and develop your class → choose an armor identity → clear themed farm content → collect materials and boss resources → craft and upgrade without abandoning your build → compete in equalized and open-world PvP → reach God's equipment. ═══════════════════════════════════════ ROLE MASTERY ARMOR ═══════════════════════════════════════ Starting at Dynasty, armor becomes a real build choice instead of a mandatory set everyone wears. Each armor type offers three role masteries plus a flexible Universal path — twelve paths per tier, sixty full-set configurations across the progression. The chest piece selects your mastery; a matching five-piece set activates it. HEAVY   Juggernaut — frontline wall, shield synergy, reflection   Spellbreaker — anti-magic fortress, spell disruption   Slayer — heavy armor turned offensive, vampiric sustain LIGHT   Bowmaster — ranged pressure, kiting, accuracy   Assassin — positional burst, blow reliability, dagger lethals   Berserker — high-risk carry, power rises as HP falls ROBE   Arcanist — rapid-fire critical casting   Invoker — high-impact nuking and debuffs   Oracle — dedicated healing and support Upgrade recipes preserve your chosen path through every tier: Dynasty → Zariche → Valakas → Cursed → God's The system is gear-driven, not class-locked. Build creatively. ═══════════════════════════════════════ LEVEL 90 CLASS DEVELOPMENT ═══════════════════════════════════════ Max level extended to 90. Five specialized trainers — Archer, Tank, Rogue, Warrior, Mystic — cover all 31 third classes in post-80 progression, with 470+ learning entries. Every race gets a custom passive from level one. Tanks get distinct Human/Elf/Dark Elf identities. Duelist gains a two-handed greatsword path. Fortune Seeker becomes a real fighter without losing its spoil identity. Maestro gets a durable frontline route. Summoners, cubics and servitors get deeper combat logic rather than stat scaling. This is backed by server-side combat work — dedicated handling for debuff proficiency, PvE skill damage, blows, lethals, bow reuse, vampirism and reflection. ═══════════════════════════════════════ THE FARMING WORLD ═══════════════════════════════════════ Ten dedicated farm destinations via Global Gatekeeper: Farm Coins 1 & 2, Holy, Fire/Water, Wind, Earth, Unholy, Golden, Chaotic and Night zones. Seven themed enemy families — Undead, Demon, Angel, Beast, Bug, Water, Fire — each with four stages and a mini-boss. Thirty-five distinct encounters, each with its own resource identity feeding crafting. Eighteen tracked raids — twelve Farm Raid Bosses and six Custom Epic Raid Bosses. Plus a scheduled group-based Party Zone with dynamically managed normal and rare spawns. ═══════════════════════════════════════ CRAFTING & ENDGAME ═══════════════════════════════════════ SOUL FORGE — recycle old weapons into tier resources, convert boss and farm materials, craft Legendary components. Old gear becomes input, not warehouse clutter. CURATED AUGMENTATION — data-driven Top-Grade and Legendary profiles with meaningful stat, active and passive pools. Active effects are categorized so the same effect can't be stacked through equipment swapping. EXTENDED ENCHANT — Custom Crystal and Legendary stages. On the Legendary route, a failed enchant does not destroy the item or reduce its enchant level. Long-term progression, not an all-or-nothing gamble. TREASURE CHESTS — Rare, Immortal, Epic and Legendary tiers feeding gear growth, crafting and augmentation. ═══════════════════════════════════════ PvP ═══════════════════════════════════════ Gear-equalized Team vs Team on a recurring schedule — your equipment is snapshotted and restored, so the fight is about play, not who farmed longest. Open-world PvP with rewards and ranks alongside it. ═══════════════════════════════════════ QUALITY OF LIFE ═══════════════════════════════════════ - No dual-boxing — one client per player, enforced - Built-in auto-farm with a daily time limit — no third-party software needed, and third-party automation is bannable - Auto-learn skills, auto-loot with low-value drop filtering - Extended-duration buffs, expanded slots, saved schemes - Offline trading and crafting - Global Gatekeeper, global class change - Offline combat automation disabled ═══════════════════════════════════════ BY THE NUMBERS ═══════════════════════════════════════ 380+ custom item definitions · 110+ weapons and shields · 210+ armor and wearables · 250+ custom skill definitions · 2,700+ custom monster placements · 90+ shop and exchange catalogs · 1,100+ offers ═══════════════════════════════════════ BETA ═══════════════════════════════════════ Core systems, progression identities and content routes are in place. Exact item bonuses, mastery values, skill strength, reuse times, augment pools, enchant chances, drop rates and crafting costs remain subject to testing. Beta changes will refine balance without removing the defining role of each mastery or the overall progression structure. All beta characters are wiped at full launch. Beta testers keep their rewards. ═══════════════════════════════════════ OPEN BETA — 4 SEPTEMBER 2026 · 18:00 GMT+2 Website: https://l2-imba.com Wiki: https://l2-imba.com/wiki Register: https://l2-imba.com/account Download: https://l2-imba.com/start-playing Discord:  https://discord.com/invite/jmhVpj8ySv
    • 🛡️ 100% Safe on your personal Gmail. Zero VPN required and works globally. Grab yours directly on klouditem.com!
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..